如何将自研ROS包分享给他人并确保其可正常运行相关功能
仅执行source devel/setup.bash不足以正常运行你分享的功能包,具体操作需要根据你分享的内容分两种情况处理:
情况1:仅分享单个功能包(仅你开发的功能包目录)
- 对方需要先自行创建一个空白ROS工作空间,将你发来的压缩包解压后放到工作空间的
src目录下 - 回到工作空间根目录,执行编译命令:
catkin_make - 编译完成后执行环境变量生效命令:
source devel/setup.bash - 完成以上操作后即可正常使用
roslaunch命令启动包内的launch文件 - 如果你的功能包用到了公共ROS依赖,对方可在工作空间根目录执行
rosdep install --from-paths src --ignore-src -r -y一键安装缺失依赖
情况2:分享完整的已编译工作空间
你本地编译生成的build、devel目录中包含你本地设备的绝对路径配置,直接拷贝到其他设备无法正常识别,需要按以下步骤操作:
- 对方解压压缩包后,先删除工作空间根目录下的
build和devel两个文件夹 - 在工作空间根目录重新执行编译命令:
catkin_make - 编译完成后执行
source devel/setup.bash即可正常运行launch文件
常见坑点提醒
- 如果你开发时没有给Python脚本添加可执行权限,对方需要执行
chmod +x 对应Python脚本路径补权限,否则launch调用Python脚本时会报错 - 打包时必须包含功能包根目录下的
package.xml和CMakeLists.txt两个配置文件,缺失会直接导致编译失败 - 如果你的功能包包含自定义消息、服务、动作定义,必须让对方在本地环境重新编译才能生成对应语言的调用文件,直接使用你本地编译的产物无法正常识别
内容的提问来源于stack exchange,提问作者KansaiRobot
相关产品推荐
相关产品推荐

