最近要做costmap方面的实验,然后参考网上的方法新创建了一个 overlay_ws 的工作空间来overlay ROS 自带的navigation,此外我还有一个 catkin_ws 的工作空间。
希望最终的效果是:调用 costmap 时能自动跳到 overlay_ws 寻找,同时不影响原有的 ROS 的其他功能包的使用。
问题:按照官方的办法 overlaying 并 source 后, 虽然可以覆盖 ROS 的 navigation,但是环境 path 中少了 catkin_ws 这个工作空间,不管怎么调换 ~./bashrc 中 source 的顺序都没有办法解决,一直是 overlay_ws 和 catkin_ws 这两个无法共存。
第一次尝试:按照这个博主 https://blog.csdn.net/qq_16775293/article/details/80730510 的方法来设置 ~./bashrc 。
在 echo $ROS_PACKAGE_PATH 后:
所需的工作空间都包含了,用 roscd 打开各个工作空间下的功能包也都能正确找到, 但是 roslaunch catkin_ws 工作空间下的 .launch 文件时出现报错 。不知道是哪一步没有设置好,不管怎么尝试都不成功,调换顺序也只是问题出现在另一个工作空间,大家可以针对自己的情况来尝试看看。
第二次尝试: 按照这个博主 https://blog.csdn.net/dndxjj/article/details/90712809 的来设置~./bashrc 。
然后修改 overlay_ws/devel/_setup_util.py 中的 CMAKE_PREFIX_PATH ,把另一个工作空间的路径加上。
但是这里要注意: 另一个工作空间的路径要写完整,第一次尝试这个方法的时候偷懒直接复制的 ~./bashrc 里面 source 时的路径地址” ~/catkin_ws/devel “ ,然后一直不成功。
最终 echo $ROS_PACKAGE_PATH 三个工作空间都包含了,并且roslaunch也能正常运行无误。