本地发布ROS包

需求:本地构建ROS包,生成.deb文件
 

1、安装 bloom

$ sudo apt-get install python-bloom

2、生成.deb文件

$ cd path/to/your/catkin/package
$ bloom-generate rosdebian --os-name ubuntu --os-version xenial --ros-distro kinetic
$ fakeroot debian/rules binary

3、可能的错误

 
3.1 对于只依赖于ROS的package,bloom-generate 命令一般不会出现问题。但是如果我们包 my_package
    依赖于自己的另外一个包,如 my_private_package1,此时bloom-generate构建my_package时,一般会
    出现 rosdep 错误,解决方法:
 
    新建文件 private.yaml (位置随意),内容如下:
    
my_private_package1:
    ubuntu: ros-kinetic-my-private-package1

    然后将private.yaml文件路径追加到 /etc/ros/rosdep/sources.list.d/20-default.list

# os-specific listings first
yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosep/osx-homebrew.yaml osx
yaml file:///home/user/rosdep/private.yaml

    执行 rosdep update 后再运行 bloom-generate 命令,可解决rosdep问题。

 
3.2 对于WSL系统,fakeroot 命令可能会出现 SYSV IPC 错误,解决方法:
    
update-alternatives --set fakeroot /usr/bin/fakeroot-tcp

4、其他注意事项

    package本地生成的.deb文件,安装后即可使用,但要注意package下CMakeList.txt 的 Install 部分,一般有如下部分:
    
# Specifying Installable Targets
install(TARGETS package_node
  RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)

# Installing header files
install(DIRECTORY include/${PROJECT_NAME}/
  DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
  PATTERN ".svn" EXCLUDE
)
install(DIRECTORY include/
  DESTINATION ${CATKIN_GLOBAL_INCLUDE_DESTINATION}
  PATTERN ".svn" EXCLUDE
)

# Check launch file
if(CATKIN_ENABLED_TESTING)
  find_package(roslaunch REQUIRED)
  roslaunch_add_file_check(launch)
endif()

# Installing roslaunch files or other resources
install(DIRECTORY launch images
  DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
  PATTERN ".svn" EXCLUDE
)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值