首页 > 代码库 > ROS的文件系统 (二)

ROS的文件系统 (二)

   

ROS的文件系统的基本概念,

     ROS文件系统中的两个最基本的概念:Package和Manifest,即包和清单文件。

     Package是组织ROS代码的最基本单位,每一个Package都可以包括库文件,可执行文件,脚本及其它的一些文件。

     Manifest文件是对Package的相关信息的一个描述。他提供了Package之间的依赖性,以及一个包的元信息,比如版本、维护着和许可证等信息。

     文件系统提供了几个很有用的命令行的工具,专门用来对ROS的文件系统进行操作。

     rospack被用来获取一个包的相关信息,这里只介绍它的find选项,用法如下:

 
# rospack find [package_name]  

 

您可以在一个新打开的终端中输入如

 

rospack find roscpp  

 

就可以找到roscpp这个包的位置信息,可能会返回类似于下面的这种结果:

 

技术分享

     roscd命令允许您利用包的名字直接切换到相应的文件目录下,当然这是对ROS文件系统而言,它的使用方法如下

 
  1. roscd [locationname[/subdir]]  


举一个例子,直接在终端输入:

 

技术分享

roscd将只能打开存在与环境变量ROS_PACKAGE_PATH中的目录及其子目录,您可以使用如下命令来查看ROS_PACKAGE_PATH中的内容:

 
echo $ROS_PACKAGE_PATH  


您所看到的结果可能类似于以下的情况:

 
技术分享
 

每一个路径使用“:”分割。

 

     roscd log将会把您带到ROS存储日志文件的目录下面,当然如果您之前没有运行过任何的ROS程序的话,那么将会提示一个错误,即log文件夹不存在。

     rosls能够让您直接利用包的名字,去列举包中的所有文件即文件夹,而不用使用绝对路径。它的使用和roscd是一样的,只有存在于ROS_PACKAGE_PATH中的目录及其子目录才能使用这个命令。使用方法如下:

 

# rosls [locationname[/subdir]] 


例子如下:

 

技术分享

 

     之前有过使用linux命令行经验的人都清楚,我们在输入一个比较长的文件的名字时,可以使用tab键来提供方便,ros也是这样的,例如:

 

# roscd roscpp_tut<<now push the TAB key >>>  


在输入完tab键之后,看到的结果如下:

 
roscd roscpp_tutorials/  



     当然有些场合如果工作目录下有多个文件有相同的前缀时,就需要我们输入到直到系统能够识别为止。

     相信很多使用过linux的朋友们会发现这些命令和linux下的命令是非常相似的。

 

 

  你也许已经注意到了ROS命令工具的的命名方式:

 

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

这种命名方式在许多ROS命令工具中都会用到。

 

ROS的文件系统 (二)