一个做ROS安装包的想法

Posted lwlv

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个做ROS安装包的想法相关的知识,希望对你有一定的参考价值。

一般情况下,ROS运行在Linux Ubuntu系统上,最好是采用server版本,一是Linux系统免费开源,二是实时性还不错。此外,Linux还需要运行在一个性能不错的工业级PC板上。其实做机器人,最最重要的就是控制器,也就是这个工业级PC板和运行在上面的Linux系统。

我们知道,大部分的ROS包可以从网站上获取到,其实下载后是一个deb文件,它里面指定了需要安装的目录,并用sudo dpkg -i *.deb进行安装。

对于用ROS开发的产品,我们选好系统和ROS版本后,比如在Ubuntu Focal (20.04)+ROS Noetic基础之上,并把额外的依赖包比如OpenCV,PCL,Qt等环境也相应的下载并配置好。

  1. 首先做一个img或iso系统镜像,这样每次就安装这个镜像就好了,不用每次因为下载和环境配置耽误时间,对于后续批量生产也有帮助。关于Linux定制系统的制作可参见《linux启动镜像文件(*.img)的制作》和《制作img镜像文件的5种方法》。
  2. 在此基础上进行的个性化开发,当然要验证成功后,将要运行的库文件和bin文件统一打包成一个压缩文件比如tar。这样就可以一键解压并安装。当然这里面涉及到很多各种各样的脚本。
  3. 再进一步做得更高级一点就是从Windows端将tar文件通过ftp等协议传输至Linux端,然后下载完毕后在Linux端一键安装。这样服务器端或控制器端或ROS端在介入网络后就能更新,这一思路就有点像跟嵌入式硬件板下载固件。当然这里面涉及到一些细节问题,一是安装镜像的时候就有一个原始版本在系统中,其次在下载时服务端和服务端的压缩文件要进行一个对比,也就是版本更高一点的时候才进行更新下载。

做好这个对于ROS后续的软件迭代也是具有相当帮助的一件事。也是根据一个其他案例想的一个方法,至于具体实现肯定还涉及到很多很多细节问题。不过我坚信的是,实现一般都不是问题,怕的就是连想法都没有。

有做成希望能留个言知会一声。

以上是关于一个做ROS安装包的想法的主要内容,如果未能解决你的问题,请参考以下文章

ros_arduino_bridge功能包的使用

自定义msi安装包的执行过程

ROS Gazebo使用解析

4.1 ROS元功能包

ROS操作系统快速入门

ros功能包的创建(详细版)