1.ROS文件系統中的基本概念
Packages: Package是ROS系統中最底層最基本的組織,里面存放各種文件:庫、工具、可執行文件等.
Manifest: 一個package描述xml文件,定義package之間的依賴關系.
Stacks: package的集合,比package這個概念高一級別
Stack Manifest: 作用類似package manifest文件,但是它是針對stack的.
在文件系統中很容易識別package和stack:
package是一個包含 manifest.xml 文件的目錄.
stack是一個包含 stack.xml 文件的目錄.
2.文件系統工具
ROS中大量代碼分散在眾多的packages和stacks之中. 命令工具ls 和 cd已不能滿足檢索要求。因此ROS提供了一套自己的命令工具來完成與這些命令相似的工作。
先下載一個 ros-tutorials
程序包:
$ sudo apt-get install ros-indigo-ros-tutorials
(1) 使用rospack和rosstack
rospack
查找軟件包。返回信息:軟件包的路徑。 $ rospack find [package_name]
rosstack 查找stack。返回信息:stack的路徑。 $ rosstack find [stack_name]
$ rospack find roscpp
結果:/opt/ros/indigo/share/roscpp
(2) 使用roscd
【1】直接切換(cd)到某個package或者stack的目錄.
$ roscd [locationname[/subdir]]
$ roscd roscpp
為了驗證我們已經切換到了roscpp p軟件包目錄. 我們使用unix的命令查看路徑pwd:
$ pwd
結果:/opt/ros/indigo/share/roscpp
(3)使用 rosls
作用是列出指定的package或stack中的文件及目錄.
$ rosls [locationname[/subdir]]
$ rosls roscpp_tutorials
結果:cmake launch package.xml srv
(5)Tab 自動完成輸入
當要輸入一個完整的軟件包名稱時會變得比較繁瑣,ROS工具支持TAB 自動完成輸入的功能。
Eg:roscd roscpp_tut<<< 現在請按TAB鍵 >>> ,命令行中應該會自動補充剩余部分。
總結:
ROS命令工具的的命名方式:
rospack = ros + pack(age)
roscd = ros + cd
rosls = ros + ls