如何在ROS的不同版本间进行切换以实现共存效果
如何在ROS的不同版本间进行切换以实现共存效果
ROS1.0已经逐渐跟不上时代的需求,后续的ROS版本更新肯定会集中在ROS2.0。只不过,国内现在应该还没有办法迅速地从ROS1.0完全解脱。因此可能会面对不同ROS版本之间切换的繁琐。
ROS版本间切换的两种解决方法
方法一:
当我们打开一个新的终端时,如果想要运行ROS就要先进行source。以现在的noetic的版本为例,输入source /opt/ros/noetic/setup.bash。若是之后,你想运行ROS2.0,但没有进行source。就会出现下面的状况:
还有可能会出现无法识别ros2指令的情况。但是在source之后,就会出现另外一种情况:
打开新的终端还是有这种状况。而且如果你每source一次,以运行不同的ROS版本的话,这样的印记就会叠加一层。到时候终端上就会密密麻麻的一大坨。为了应对以上这些令人头皮发麻的状况。有以下几种方法应对:
方法一:
在主目录打开隐藏文件.bashrc文件,在结尾处输入source /opt/ros/noetic/setup.bash。再重启终端即可。但是这样并没有办法解决所有问题,因为如果你要在运行完ROS1.0之后再运行ROS2.0的话,你就不可能只source一次。这样带来的后果就是再次出现我之前提到的印记。而且,好像你每source一次的话,.bashrc文件里面就会多一行类似source /opt/ros/noetic/setup.bash的东西(不确定)。应对这种情况,想要消除上文的印记不让自己心烦的话,就在.bashrc文件中出现source的前面加上#以注释,从而消除印记。
但是,这玩意不是永久的,是一次性的,只要你重新在终端为运行不同版本的ROS进行source的话,还会出现。若你内心够硬不会嫌弃终端上密密麻麻的东西烦,或者愿意在运行不同版本奇拿一次又一次的注释的话,就不用看方法二了。
方法二:
同样是.bashrc文件,到文件末端把source全部删掉。输入
echo "ros noetic(1) or ros2 foxy(2)?"
read edition
if [ "$edition" -eq "1" ];then
source /opt/ros/noetic/setup.bash
else
source /opt/ros/foxy/setup.bash
fi
然后保存。再次打开终端,结果如下·:
(本文为学习交流制作,如有问题欢迎在评论区点出批评指正,若对文章内容改进有兴趣的话欢迎博主在留言区留下高见。献丑了)
本文地址:https://blog.csdn.net/m0_46269438/article/details/107624106
上一篇: Linux基础命令之关机,重启,注销
下一篇: 2021阿里巴巴校招笔试题