ROS文件系统介绍
預備工作
本教程中我們將會用到ros-tutorials程序包,請先安裝:
sudo apt-get install ros-<distro>-ros-tutorials快速了解文件系統概念
Packages: 軟件包,是ROS應用程序代碼的組織單元,每個軟件包都可以包含程序庫、可執行文件、腳本或者其它手動創建的東西。
Manifest (package.xml): 清單,是對于’軟件包’相關信息的描述,用于定義軟件包相關元信息之間的依賴關系,這些信息包括版本、維護者和許可協議等。
文件系統工具
程序代碼是分布在眾多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/kinetic/base/install/share跟其他路徑環境變量類似,你可以在 ROS_PACKAGE_PATH 中添加更多其它路徑,每條路徑使用冒號’:'分隔。
子目錄
使用 roscd 也可以切換到一個軟件包或軟件包集的子目錄中。
roscd log
使用 roscd log 可以切換到 ROS 保存日記文件的目錄下。需要注意的是,如果你沒有執行過任何 ROS 程序,系統會報錯說該目錄不存在。
如果你已經運行過ROS程序,那么可以嘗試:
使用 rosls
rosls 是 rosbash 命令集中的一部分,它允許你直接按軟件包的名稱而不是絕對路徑執行 ls 命令。
用法:
rosls [本地包名稱[/子目錄]]示例:
rosls roscpp_tutorials應輸出: cmake package.xml srvTab 自動補全
當要輸入一個完整的軟件包名稱時會變得比較繁瑣。在之前的例子中 roscpp tutorials 是個相當長的名稱,幸運的是,一些 ROS 工具支持 TAB 補全 的功能。
輸入:
roscd roscpp_tut<<< 現在請按TAB鍵 >>>當按TAB鍵后,命令行中應該會自動補充剩余部分: roscd roscpp_tutorials/總結
- 上一篇: 第八期:继美商务部拉黑多家中国公司后,M
- 下一篇: 创建ROS程序包