1. 程式人生 > >【ROS】cd命令和roscd命令的區別,並解決環境變數問題

【ROS】cd命令和roscd命令的區別,並解決環境變數問題

cd命令和roscd命令都是切換到指定目錄的命令。不同的是,cd是Linux系統的命令,在使用時必須指定目標目錄的完整路徑;而roscd是ros系統中的命令,它可以直接切換到指定目錄(ros系統中的軟體包),而不需要輸入冗長的完整路徑。

例如,要切換到roscpp這個軟體包,兩個命令的格式分別為:

cd /opt/ros/kinetic/share/roscpp
roscd roscpp

顯然,在ros系統中,roscd要比cd命令更加方便。

但在使用的過程中,我們有時候會發現,roscd命令不能正常使用,系統會提示找不到軟體包,這是因為roscd只能切換到那些路徑已經包含在ROS_PACKAGE_PATH

環境變數中的軟體包,這時候我們需要切換到ros系統的工作空間(catkin_ws)下,通過source命令將軟體包新增到環境變數中,即:

cd ~/catkin_ws
source ./devel/setup.bash

新增環境變數之後,roscd即可正常使用。

注意,如果新打開了一個終端,在使用某一工作空間之前,都需要執行上述命令切換到該工作空間的目錄下將工作空間的路徑新增到環境變數中。

可以使用下面的命令來檢視你當前的環境變數:

$ echo $ROS_PACKAGE_PATH

若系統返回資訊為:

/home/你的使用者名稱/你的工作空間名/src:/opt/ros/kinetic(ROS的版本名)/share

如果安裝的ROS是idigo版本,則返回資訊可能是:

/home/你的使用者名稱/你的工作空間名/src:/opt/ros/indigo/share:opt/ros/indigo/stacks

則表示環境變數已經設定成功了。