关于source后ROS_PACKAGE_PATH没有包含的解决方案

有时可能大家在source后发现ROS_PACKAGE_PATH和自己想象中不一样

【提出问题】在执行下面的命令后

source devel/setup.bash

ROS_PACKAGE_PATH丢失之前的部分路径

【场景举例】

当前我们执行

echo ROS_PACKAGE_PATH

输出结果为

/opt/ros/indigo/share:/opt/ros/indigo/stacks

我们现在有两个在根目录下经常使用的ROS工程:catkin_ws和catkin_ws2

为了避免每回打开终端都要source,我们执行下面的命令

echo "source /catkin_ws/devel/setup.bash" >> ~/.bashrc
echo "source /catkin_ws2/devel/setup.bash" >> ~/.bashrc

现在我们关掉终端再次打开echo下路径希望看到的本应该是

/catkin_ws2/src:/catkin_ws/src:/opt/ros/indigo/share:/opt/ros/indigo/stacks

但事实上不出意外显示的应该是

/catkin_ws2/src:/opt/ros/indigo/share:/opt/ros/indigo/stacks

【解决】

这个原因是因为在创建devel文件时,即你执行

catkin_make

setup.bash文件将当前终端下的ROS_PACKAGE_PATH包含进去

如果你希望实现上例所说的希望看到的结果就要按以下步骤执行

rm -rvf /catkin_ws/devel /catkin_ws/build /catkin_ws2/devel /catkin_ws2/build
cd /catkin_ws
catkin_make
echo "source /catkin_ws/devel/setup.bash" >> ~/.bashrc
exit

重新Ctrl+Alt+T执行

cd /catkin_ws2
catkin_make
echo "source /catkin_ws2/devel/setup.bash" >> ~/.bashrc
exit

这时你再打开终端查看ROS_PACKAGE_PATH即为

/catkin_ws2/src:/catkin_ws/src:/opt/ros/indigo/share:/opt/ros/indigo/stacks

猜你喜欢

转载自blog.csdn.net/qq_35189442/article/details/88888924