两者的区别
二进制包是直接通过apt方式安装了ROS相关的软件包,而我们在GitHub上下载自己需要的源码来进行代码复用,编译通过生成可运行节点后的包是源码包,两者是可以共存的,但是运行时只能运行bash/zsh文件中默认环境下的包。 二进制包安装便捷,只需要sudo指令即可,如
sudo apt-get install ros-kinetic-PACAKGE
而源码包的安装需要使用git指令,如
$ cd catkin_ws/src #进入src路径
$ git clone https://github.com/源码包链接 #克隆软件包
同时一定不要忘记在克隆包后要安装依赖项然后进行编译:
$ rosdep install --from-paths src --ignore-src
$ cd ~/catkin_ws #回到catkin工作空间
$ catkin_make #编译
$ source ~/catkin_ws/devel/setup.bash #更新环境,如果使用zsh则更新为setup.zsh
对于希望改进算法的同学来说,一定要源码安装
如何更改默认包
相信大家在使用ROS中会遇到一个常见的问题,那就是明明自己改了代码,编译也通过了,但是运行后好像没有任何改变,自己的代码没有生效,其原因就是你的环境中默认调用了二进制包或者另一个路径的包,而你修改的是源码包,该如何查看呢?那就需要使用rospack指令。
更加详细的指令可以参考博主文章:ROS及SLAM进阶教程(七)ROS常用包指令操作总结
$ rospack find move_base #寻找move_base包的位置
/opt/share/kinetic/share/move_base #输出结果
这个输出结果说明了我是二进制安装,该如何改变包位置呢? 比如我的move_base源码位置在/catkin_ws/src/navigation
中,则我需要修改bash文件
$ getdit ~/.bashrc #如果你是zsh则修改zshrc
在最下方加入
source ~/catkin_ws/devel/setup.bash
然后保存退出,再source一下
$ source ~/.zshrc
这时再次查找包位置,即可发现变为我们二进制安装的地方
$ rospack find move_base #寻找move_base包的位置
/catkin_ws/src/navigation/move_base. #输出结果
这时修改源码改进的算法即可进行运行验证。 以上是关于ROS包源码安装与二进制安装的问题。 码字不易,喜欢的话请点赞收藏关注哦,您的支持是博主最大的动力。 本文转载自CSDN,原文链接:https://blog.csdn.net/qq_33742147/article/details/106100652