ROS文件系統介紹(二)

本教程介紹ROS文件系統概念,包括命令行工具roscd、rosls和rospack的使用。

內容:
預備工作 快速瞭解文件系統概念 文件系統工具
使用 rospack
使用 roscd
roscd log
使用 rosls
Tab 自動完成輸入 回顧

預備工作

本教程中我們將會用到ros-tutorials程序包,請先安裝:

$ sudo apt-get install ros-<distro>-ros-tutorials

將 替換成你所安裝的版本(比如Jade、Indigo、hydro、groovy、fuerte等)。

快速瞭解文件系統概念

Packages: 軟件包,是ROS應用程序代碼的組織單元,每個軟件包都可以包含程序庫、可執行文件、腳本或者其它手動創建的東西。

Manifest (package.xml): 清單,是對於'軟件包'相關信息的描述,用於定義軟件包相關元信息之間的依賴關係,這些信息包括版本、維護者和許可協議等。 

Show note about stacks

文件系統工具

程序代碼是分佈在衆多ROS軟件包當中,當使用命令行工具(比如ls和cd)來瀏覽時會非常繁瑣,因此ROS提供了專門的命令工具來簡化這些操作。

使用 rospack

rospack允許你獲取軟件包的有關信息。在本教程中,我們只涉及到rospack中find參數選項,該選項可以返回軟件包的路徑信息。

# rospack find [包名稱]
$ rospack find roscpp

應 YOUR_INSTALL_PATH/share/roscpp是在Ubuntu Linux操作系統上通過apt來安裝ROS,你應該會準確地看到:

    /opt/ros/groovy/share/roscpp

使用 roscd

roscd是rosbash命令集中的一部分,它允許你直接切換(cd)工作目錄到某個軟件包或者軟件包集當中。

用法:

# roscd [本地包名稱[/子目錄]]

示例:

$ roscd roscpp

爲了驗證我們已經切換到了roscpp軟件包目錄下,現在我們可以使用Unix命令pwd來輸出當前工作目錄:

$ pwd

你應該會看到:

    YOUR_INSTALL_PATH/share/roscpp

你可以看到YOUR_INSTALL_PATH/share/roscpp和之前使用rospack find得到的路徑名稱是一樣的。

注意,就像ROS中的其它工具一樣,roscd只能切換到那些路徑已經包含在ROS_PACKAGE_PATH環境變量中的軟件包,要查看ROS_PACKAGE_PATH中包含的路徑可以輸入:

$ echo $ROS_PACKAGE_PATH

你的ROS_PACKAGE_PATH環境變量應該包含那些保存有ROS軟件包的路徑,並且每個路徑之間用冒號分隔開來。一個典型的ROS_PACKAGE_PATH環境變量如下:

    /opt/ros/groovy/base/install/share:/opt/ros/groovy/base/install/stacks

跟其他路徑環境變量類似,你可以在ROS_PACKAGE_PATH中添加更多其它路徑,每條路徑使用冒號’:’分隔。

子目錄

使用roscd也可以切換到一個軟件包或軟件包集的子目錄中。

執行:

$ roscd roscpp/cmake
$ pwd

應該會看到:

    YOUR_INSTALL_PATH/share/roscpp/cmake

roscd log

使用roscd log可以切換到ROS保存日記文件的目錄下。需要注意的是,如果你沒有執行過任何ROS程序,系統會報錯說該目錄不存在。

如果你已經運行過ROS程序,那麼可以嘗試:

$ roscd log

使用 rosls

rosls是rosbash命令集中的一部分,它允許你直接按軟件包的名稱而不是絕對路徑執行ls命令(羅列目錄)。

用法:

# rosls [本地包名稱[/子目錄]]

示例:

$ rosls roscpp_tutorials

應輸出:

    cmake  package.xml  srv

Tab 自動完成輸入

當要輸入一個完整的軟件包名稱時會變得比較繁瑣。在之前的例子中roscpp tutorials是個相當長的名稱,幸運的是,一些ROS工具支持TAB 自動完成輸入的功能。

輸入:

# roscd roscpp_tut<<< 現在請按TAB鍵 >>>

當按TAB鍵後,命令行中應該會自動補充剩餘部分:

$ roscd roscpp_tutorials/

這應該有用,因爲roscpp tutorials是當前唯一一個名稱以roscpp tut作爲開頭的ROS軟件包。

現在嘗試輸入:

# roscd tur<<< 現在請按TAB鍵 >>>

按TAB鍵後,命令應該會盡可能地自動補充完整:

$ roscd turtle

但是,在這種情況下有多個軟件包是以turtle開頭,當再次按TAB鍵後應該會列出所有以turtle開頭的ROS軟件包:

    turtle_actionlib/  turtlesim/  turtle_tf/

這時在命令行中你應該仍然只看到:

$ roscd turtle

現在在turtle後面輸入s然後按TAB鍵:

# roscd turtles<<< 請按TAB鍵 >>>

因爲只有一個軟件包的名稱以turtles開頭,所以你應該會看到:

$ roscd turtlesim/

原文地址:http://wiki.ros.org/cn/ROS/Tutorials/NavigatingTheFilesystem

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