ROS及SLAM进阶教程(十)ROS包源码安装与二进制安装的问题

492
0
2020年7月29日 10时30分

两者的区别

二进制包是直接通过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

 

发表评论

后才能评论