ROS學習筆記二:探索ROS文件系統

ROS學習筆記二:探索ROS文件系統

ROS針對自己文件的特性,具有一些自己的工具命令,當針對ROS文件進行操作的時候是非常方便的。這些命令和ubuntu系統原有的命令相似但卻不同,單獨針對ROS文件進行的操作習慣的優化和效率的提升。

安裝一個學習需要的ros學習包

使用如下命令:

sudo apt-get install ros-indigo-ros-tutorials

文件系統概念

  • Packages:ROS代碼的軟件組織單元,每一個package可以包含庫文件、可執行文件、腳本文件或者其他。
  • manifests(package.xml):對應package的描述文件,他用來定義軟件包之間的依賴關係比提軟件包的版本號、維護者和證書等關鍵信息。

文件系統工具

代碼在很多ROS軟件包中使用非常廣泛,使用諸如ls、cd等命令行工具進行導航是非常乏味的,ROS提供了一些有用的工具來解決這個問題。

rospack

利用rospack可以獲得軟件包的信息:

rospack find [package-name]

例如

rospack find roscpp
/opt/ros/indigo/share/roscpp,即YOUR_INSTALL_PATH/share/roscpp

roscd

roscd是rosbash命令的一部分,它允許我們直接把目錄更改爲一個軟件包或者stack所在的目錄。
用法:

roscd locationname/subdir

例如

roscd roscpp
pwd
/opt/ros/indigo/share/roscpp

通過roscd命令直接轉跳至軟件包roscpp所在目錄,該目錄和通過rospack find命令查找的目錄一致。注意ROS工具只會操作在你ROS_PACKAGE_PATH目錄中的ROS軟件包。
roscd也可以將目錄更改至一個軟件包或者stack的子目錄下:

roscd roscpp/cmake
pwd
/opt/ros/indigo/share/roscpp/cmake

roscd log

roscd log命令直接將目錄更改至存放ROS log文件的文件夾中。

rosls

roscd是rosbash命令的一部分,它允許我們列出一個軟件包中的文件,通過軟件包名稱而不是絕對路徑。
用法:

rosls locationname/subdir

例子:

rosls roscpp_tutorials
cmake launch package.xml  srv

tab補全

ROS的工具命令也具有tab補全功能。

總結

注意:由於rospack、roscd、rosls命令行工具都是針對ROS軟件包進行的,所以一定要將要操作的軟件包加入到ROS_PACKAGE_PATH變量中。如果在使用這些命令的時候出現No such package/stack 'beginner-tutorial'的警告,說明該軟件包的位置並未加入到ROS_PACKAGE_PATH目錄中來,無法找到該軟件包,這時則需要讀取該軟件包所在工作空間的devel/setup.*sh文件。

  • rospack=ros+pack(age)
  • roscd=ros+cd
  • rosls=ros+ls

這種命名方式在ROS的其他很多工具命令中也是遵循這種方式。

祝楓
2016年7月20日於深圳

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章