ROS 2指南(十七)——构建自定义Debian软件包 - 知乎 (zhihu.com)

小米铁蛋创始团队,教你5分钟学会构建自定义ROS 2安装包 (qq.com)

构建自定义Debian软件包

1. 前提条件

要成功构建自定义软件包,待构建的软件包的所有依赖项都必须在本地或在rosdep工具中可用。此外,该软件包的所有依赖项都应该在其package.xml文件中被正确地声明。

2. 安装依赖项

运行以下命令来安装编译(构建)所需的实用程序:

$ sudo apt install python3-bloom python3-rosdep fakeroot

3. 初始化rosdep

通过调用以下命令初始化rosdep数据库:

$ sudo rosdep init

$ rosdep update

请注意,rosdep init命令如果前面已经被初始化过,则可能会失败; 运行rosdep update就可以安全地忽略前面的初始化。

rosdep init 错误解决终极方法(药到病除)

rosdep init 错误解决终极方法(药到病除)_朱国鑫的博客-CSDN博客

ROS安装过程中如何解决 rosdep update 命令出现错误

ROS安装过程中如何解决 rosdep update 命令出现错误 - 知乎 (zhihu.com)

oot@fa647741f188:/usr/lib/python3/dist-packages/rosdistro# sudo vim /usr/lib/python3/dist-packages/rosdep2/gbpdistro_support.py

root@fa647741f188:/usr/lib/python3/dist-packages/rosdistro# sudo vim /usr/lib/python3/dist-packages/rosdep2/sources_list.py

root@fa647741f188:/usr/lib/python3/dist-packages/rosdistro# sudo vim /usr/lib/python3/dist-packages/rosdep2/rep3.py

root@fa647741f188:/usr/lib/python3/dist-packages/rosdistro# sudo vim /usr/lib/python3/dist-packages/rosdistro/manifest_provider/github.py

root@fa647741f188:/usr/lib/python3/dist-packages/rosdistro# sudo vim /usr/lib/python3/dist-packages/rosdep2/gbpdistro_support.py

root@fa647741f188:/usr/lib/python3/dist-packages/rosdistro# rosdep update

4. 从软件包中构建debian

在构建debian前应先建一个cpp功能包

参考如下: ROS2学习之旅(14)——编写简单的发布者和订阅者(C++) - Love&Robot - 博客园 (cnblogs.com)

运行以下命令来编译构建debian软件包:

$ cd /path/to/pkg_source # this should be the directory that contains the package.xml

$ bloom-generate rosdebian

$ fakeroot debian/rules binary

假设要求的所有依赖项都可用并且编译成功,则新的软件包将可以在此目录的父目录中看到而且可用。

生成的软件包如下:

root@fa647741f188:/home/dev_ws/src# ls

cpp_pubsub     learning_pkg_python                                   ros-humble-cpp-pubsub_0.0.0-0jammy_amd64.deb

退出docker容器:

root@fa647741f188:/home/dev_ws/src# exit

复制docker 的.deb包到宿主机

$ sudo docker cp fa647741f188:/home/dev_ws/src/ros-humble-cpp-pubsub_0.0.0-0jammy_amd64.deb /home/sean

将.deb文件拷到另一台电脑中,

再通过以下指令复制到docker容器中:

$ sudo docker cp ~/Desktop/ros-humble-cpp-pubsub_0.0.0-0jammy_amd64.deb 8418995d42e7:/home

开启进入容器:

$ sudo docker start 8418995d42e7

$ sudo docker exec -it 8418995d42e7 /bin/bash

确认.deb 文件已考到文件夹

root@8418995d42e7:/home# ls

ros-humble-cpp-pubsub_0.0.0-0jammy_amd64.deb

5. 安装刚生成的安装包

root@8418995d42e7:/home# sudo dpkg -i ros-humble-cpp-pubsub_0.0.0-0jammy_amd64.deb

运行测试功能包

root@8418995d42e7:/home# ros2 run cpp_pubsub talker

[INFO] [1692180986.835723792] [minimal_publisher]: Publishing: 'Hello, world! 0'

[INFO] [1692180987.335846418] [minimal_publisher]: Publishing: 'Hello, world! 1'

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐