蹄牛操作系统TINIUX
ROS中文社区
查看: 12506|回复: 30

[跟我学ROS]2.ROS系统中文件系统及命令工具介绍

  [复制链接]
发表于 2013-5-12 10:13:36 | 显示全部楼层 |阅读模式
本帖最后由 时飞 于 2013-5-12 22:52 编辑


描述:这篇文章主要介绍ROS文件系统的概念,包括roscd,rosls和rospack等命令工具的用法;

1.1 ROS文件系统中的相关概念

功能包(Packages):功能包是ROS中比较基础的软件组织方式,每个功能包可包含依赖库,可执行文件,脚本文件及其它的相关文件;

Manifest(package.xml):Manifest是功能包的描述文件,它主要定义功能包与其他功能包之间的依赖关系,并提供关于功能包的版本信息,维护者信息和许可信息等。

1.2 文件系统工具集

由于ROS代码分布在许多功能包中,如果采用ls和cd等命令将会非常繁琐,因此ROS提供一些自定义的工具集辅助操作;

1.2.1 rospack使用介绍

rospack用于获取功能包的相关信息,在这篇文章中,我们只涉及其中的find参数,它返回功能包的路径信息;

用法:
# rospack find [package_name]

示例:
  1. $ rospack find roscpp
复制代码

执行结果如下:
YOUR_INSTALL_PATH/share/roscpp

如果你的ROS是从apt安装到Ubuntu系统中的,将会显示如下结果:
/opt/ros/groovy/share/roscpp

1.2.2 roscd使用介绍

roscd 是rosbash套件中的一部分,利用它可以改变路径到指定的功能包或功能包集中;

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

示例:
  1. $ roscd roscpp
复制代码

为了验证是否改变到roscpp功能包的路径下,可采用Uinx的命令pwd打印出当前的路径信息;
  1. $ pwd
复制代码

得到如下执行结果:
YOUR_INSTALL_PATH/share/roscpp

这个路径和上一个示例中rospack find roscpp查找出的路径是一致的;

注意,roscd和其他ROS命令工具一样,只会查找ROS_PACKAGE_PATH变量中包含的packages,通过下面的命令可以查看ROS_PACKAGE_PATH包含的信息:

  1. $ echo $ROS_PACKAGE_PATH
复制代码

ROS_PACKAGE_PATH变量包含一系列被冒号“:”隔开的路径,通常情况下,ROS_PACKAGE_PATH变量值如下所示:
/opt/ros/groovy/base/install/share:/opt/ros/groovy/base/install/stacks

与其他环境变量的用法一致,可以添加路径到ROS_PACKAGE_PATH中,路径间必须用冒号隔开;

子目录

roscd也可以改变到一个功能包或者功能包集的子目录中;

试用如下命令:
  1. $ roscd roscpp/cmake
  2. $ pwd
复制代码
执行结果如下所示:
YOUR_INSTALL_PATH/share/roscpp/cmake

1.2.3 roscd log

roscd log 将会把你引导到ROS日志所在的目录下;需要注意的是,如果你没有运行任何ROS程序,它将显示日志目录不存在的错误信息;

如果你已经运行过ROS程序,可以尝试如下命令:

  1. $ roscd log
复制代码

1.2.4 rosls使用介绍

rosls是rosbash套件的一部分,它可以通过功能包的名称列出其下面包含的文件,而不必使用绝对路径;

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

示例:
  1. $ rosls roscpp_tutorials
复制代码

执行结果如下:
cmake  package.xml  srv

1.2.5 使用Tab键

有时拼写出整个功能包的名称会比较繁琐,在上一个示例中, roscpp_tutorials是一个相当长的名称,幸运的是大部分ROS的命令工具支持TAB键操作;

按照如下所示操作:
# roscd roscpp_tut<<< 此处按下TAB键 >>>

按下TAB键后,命令行会自动填充完余下的字符,如下所示:
$ roscd roscpp_tutorials/

1.2.6 ROS命令工具的风格

经过上面的一些示例可以总结出关于ROS命令的命名风格:
rospack = ros + pack(age)
roscd = ros + cd
rosls = ros + ls

在ROS系统中,大部分的命令工具均采用这样的命名方式;


注:欢迎你转载本篇文章,时飞提醒你转载时请注明出处!

回复

使用道具 举报

发表于 2013-8-5 10:47:55 | 显示全部楼层
回复 支持 反对

使用道具 举报

发表于 2014-10-3 20:30:46 | 显示全部楼层
回复 支持 反对

使用道具 举报

发表于 2014-11-11 00:14:33 | 显示全部楼层
感谢楼主分享
回复 支持 反对

使用道具 举报

发表于 2014-11-26 22:53:56 | 显示全部楼层
谢谢楼主分享,好东西啊
回复 支持 反对

使用道具 举报

发表于 2015-8-12 11:09:49 | 显示全部楼层
谢楼主分享
回复 支持 反对

使用道具 举报

发表于 2015-8-12 12:25:43 | 显示全部楼层
感谢楼主分享
回复 支持 反对

使用道具 举报

发表于 2015-8-14 16:20:28 | 显示全部楼层
感谢楼主分享
回复 支持 反对

使用道具 举报

发表于 2015-8-29 22:55:12 | 显示全部楼层
学习了,刚开始学,很有帮助
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|智能硬件开发社区 ( 京ICP备14010787号 )

GMT+8, 2019-4-25 04:04 , Processed in 0.064084 second(s), 15 queries .

Powered by Discuz! X3.3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表