天天看點

ROS多個工作空間存在同名包的BUG0. 寫在最前面1. 問題描述2. 解決辦法參考

0. 寫在最前面

本文持續更新位址:https://haoqchen.site/2019/03/28/ros-same-ws-bug/

為了測試友善,我有多個工作空間。不同工作空間會存在一些同名的包。按照官網教程的說法,隻要source了setup就可以将目前工作空間設定為ROS頂層。一天在測試的時候發現,并不能通過修改

.bashrc

來修改目前活躍的工作空間。之前source的工作空間仍然存在,一直調用的是之前的工作空間的包。

ROS多個工作空間存在同名包的BUG0. 寫在最前面1. 問題描述2. 解決辦法參考

如果覺得寫得還不錯,可以找我其他文章來看看哦~~~可以的話幫我github點個贊呗。

你的Star是作者堅持下去的最大動力哦~~~

1. 問題描述

檢視你目前的ROS包路徑:

輸出:

/home/night_fury/robot_ws/src:/home/night_fury/catkin_ws/src:/home/night_fury/JDD_ws/src/cartographer_ros/cartographer_rviz:/home/night_fury/JDD_ws/src/cartographer_ros/cartographer_ros:/home/night_fury/JDD_ws/src/cartographer_ros/cartographer_ros_msgs:/opt/ros/indigo/share:/opt/ros/indigo/stacks

會輸出你所有的ROS工作空間路徑,如果有同名的包,則調用順序為

echo $ROS_PACKAGE_PATH

顯示的順序。

像我這裡,一直調用的是robot_ws空間的包,無法調用catkin_ws的包,哪怕我已經按照前面那樣子吧robot_ws注釋掉了。

甚至我删掉

ROS_PACKAGE_PATH

變量再重新source仍然無效,

ROS_PACKAGE_PATH

仍然會重新變為所有的工作空間。應該是catkin_ws中的setup.bash檔案被污染了,導緻了明明隻source

catkin_ws

工作空間,但實際

source

所有的工作空間。這應該是一個bug。

2. 解決辦法

  1. 删掉

    build

    devel

    檔案夾
  2. 删掉

    ROS_PACKAGE_PATH

    環境變量:

    unset ROS_PACKAGE_PATH

  3. 重新編譯你的包
  4. 注釋掉

    ~/.bashrc

    中無關的包的bash,隻保留想要的工作空間,如圖一。
  5. source ~/.bashrc

完成以上五步就可以實作多個工作空間的分離,調用同名的包了。

參考

http://wiki.ros.org/cn/ROS/Tutorials/InstallingandConfiguringROSEnvironment

https://blog.csdn.net/moondog123/article/details/88432341

喜歡我的文章的話Star一下呗Star

版權聲明:本文為白夜行的狼原創文章,未經允許不得以任何形式轉載