ROS总结——文件系统

来源:互联网 发布:java重载与重写的区别 编辑:程序博客网 时间:2024/06/17 05:49

文件系统

本博客是对http://wiki.ros.org/上ROS教程的学习总结,欢迎大家交流学习。本部分主要讲ROS文件系统,包括命令行工具rospack、roscd、rosls、和Tab 自动完成输入的使用。
1.准备工作
本部分会用到ros-tutorials程序包,请先安装ros-indigo-ros-tutorials:

$  sudo apt-get install ros-indigo-ros-tutorials

note:如果你所安装的ros版本为hydro,将indigo替换为hydro

Packages: 软件包,是ROS应用程序代码的组织单元,每个软件包都可以包含程序库、可执行文件、脚本或者其它手动创建的东西。
Manifest (package.xml): 清单,是对于’软件包’相关信息的描述,用于定义软件包相关元信息之间的依赖关系,这些信息包括版本、维护者和许可协议等。
2.rospack的使用
rospack可以获取软件包的有关信息,可以通过 $ rospack -h查看具体用法,在这里以rospack中find参数选项为例,该选项可以返回软件包的路径信息,基本用法:

   rospack find [包名称]

eg:

$  rospack find roscp/opt/ros/indigo/share/roscpp

3.roscd的使用
roscd是rosbash命令集中的一部分,可以直接切换(cd)工作目录到某个软件包或者软件包集当中,基本用法:

   roscd [本地包名称[/子目录]]

eg:

$  roscd roscpp$  pwd/opt/ros/indigo/share/roscpp

使用roscd也可以切换到一个软件包或软件包集的子目录中:

$  roscd roscpp/cmake$  pwd/opt/ros/indigo/share/roscpp/cmake

使用roscd log可以切换到ROS保存日记文件的目录下。需要注意的是,如果没有执行过任何ROS程序,系统会报错说该目录不存在。

$  roscd log

4.rosls的使用
rosls是rosbash命令集中的一部分,可以直接按软件包的名称而不是绝对路径执行ls命令(罗列目录),基本用法:

   rosls [本地包名称[/子目录]]

eg:

$  rosls roscpp_tutorialscmake  launch  package.xml  srv

5.Tab 自动完成输入
当要输入一个完整的软件包名称时会变得比较繁琐,在之前的例子中roscpp tutorials是个相当长的名称,幸运的是一些ROS工具支持TAB 自动完成输入的功能。
eg:
输入

$  roscd roscpp_tut<<<按TAB键>>>

当按TAB键后,命令行中应该会自动补充剩余部分:

$  roscd roscpp_tutorials/

因为roscpp tutorials是当前唯一一个名称以roscpp tut作为开头的ROS软件包。

从上面命令形式可知,ROS命令工具的的命名方式:
rospack = ros + pack(age)
roscd = ros + cd
rosls = ros + ls
这种命名方式在许多ROS命令工具中都会用到。

1 0
原创粉丝点击