天天看點

ROS wiki檔案系統導航ROS檔案系統導航

ROS檔案系統導航

描述:這個教程描述了ROS檔案系統的概念,并且涵蓋了roscd, rosls, and rospack指令行工具

教程:針對初學者

下個教程:建立ROS包

内容

1. 前提

2. 檔案系統快速浏覽

3. 檔案系統工具

     3.1    rospack使用

     3.2    roscd使用

     3.3 roscd log

     3.4 Using rosls

     3.5 Tab Completion

4 回顧

1 前提

對于這個教程我們将檢查ros-tutorials包,請安裝按照下面的阿指令。

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

替代 '<distro>' 用你自己的版本 (e.g. hydro, groovy, electric, fuerte etc.),參見上篇文章。

2. 快速浏覽檔案系統的概念

2.1 Packages(包):包是ROS軟體組織單元,每一個包都包含庫檔案,可執行檔案,腳本,其它的檔案。

2.2 Manifest (package.xml),Manifest 是一個包的描述,他服務于定義依存關系,即包和擷取的元資訊(版本,維護者,許可證)之前的關系。

Show  note about stacks

檔案系統工具

代碼在交叉的多個ROS包之間展開,帶有指令行的導航工具如ls cd 可能是非常備援的,這就是為什麼ROS提供工具來幫助我們。

rospack的使用

rospack讓你能夠擷取包的資訊,在這個教程中,我們僅僅涉及find 選項,它将傳回包的路徑。

用法:

# rospack find [包名稱]      

Example:

$ rospack find roscpp

      

傳回:

  • YOUR_INSTALL_PATH/share/roscpp      

如果你是采用apt 方式安裝的系統,你們結果傳回:

indigo:版本号      
  • /opt/ros/indigo/share/roscpp      
  • -----------------------------------------------------------------
  • 我的是hydro版本

[email protected]:~/catkin_ws/devel$ rospack find roscpp

/opt/ros/hydro/share/roscpp

-----------------------------------------------------------------------------

 roscd使用

ros是rosbash 集的一部分,他允許你直接切換目錄到包中。

用法:

# roscd [locationname[/subdir]]      

Run this example:

$ roscd roscpp
用pwd顯示目前所在檔案夾子
      
$ pwd      

你會看到:

  • [email protected]:~/catkin_ws/devel$ roscd roscpp
    [email protected]:/opt/ros/hydro/share/roscpp$ pwd
    /opt/ros/hydro/share/roscpp
    
          

備注: roscd像其它的ROS工具一樣,他僅發現ROS包在ROS_PACKAGE_PATH内,通過echo $ROS_PACKAGE_PATH察看ROS 目錄,

$ echo $ROS_PACKAGE_PATH      

結果如下,目錄之間用;号隔開。

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

Subdirectories

roscd 能夠移動到一個包的子目錄

$ roscd roscpp/cmake
$ pwd      

結果:

  • YOUR_INSTALL_PATH/share/roscpp/cmake      

roscd log

roscd log将帶你到ROS儲存log的檔案夾,如果你沒有運作過任何ROS程式,他将産生錯誤,因為log不存在

$ roscd log      

Using rosls

rosls 直接進入包中,并列出檔案名稱。

# rosls [locationname[/subdir]]      
$ rosls roscpp_tutorials      
  • cmake launch package.xml  srv      

 TAB /符号

它将冗長的列印處整個包的名字。

I

# roscd roscpp_tut 按下TAB      

After pushing the TAB key, the command line should fill out the rest:

$ roscd roscpp_tutorials/      

按鍵聯想

# roscd tur<<< now push the TAB key >>>      
$ roscd turtle      
  • turtle_actionlib/  turtlesim/         turtle_tf/      
$ roscd turtle      
# roscd turtles<<< now push the TAB key >>>      
$ roscd turtlesim/      

回顧:

觀察前文ROS的命名風格

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

This naming pattern holds for many of the ROS tools.

Now that you can get around in ROS, let's create a package.