ROS wiki文件系统导航

来源:互联网 发布:java校验邮箱格式 编辑:程序博客网 时间:2024/04/29 20:05

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版本

duan@duan-virtual-machine:~/catkin_ws/devel$ rospack find roscpp
/opt/ros/hydro/share/roscpp

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


 roscd使用

ros是rosbash 集的一部分,他允许你直接切换目录到包中。

用法:
# roscd [locationname[/subdir]]

Run this example:

$ roscd roscpp用pwd显示当前所在文件夹子
$ pwd

你会看到:

  • duan@duan-virtual-machine:~/catkin_ws/devel$ roscd roscppduan@duan-virtual-machine:/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'screate a package.


0 0
原创粉丝点击