关闭

ROS文件系统的介绍

941人阅读 评论(0) 收藏 举报
                                           1、ROS文件系统的介绍

声明:本文由ROS.ORG站上的教程翻译而来,旨在为更多ROS初学者提供方便,不可用于任何商业运作,如有转载请注明出处,谢谢合作
水平有限,翻译有问题的地方也请大家多提意见和建议
原文链接http://wiki.ros.org/ROS/Tutorials/NavigatingTheFilesystem

注意: 我们假设阅读或使用这篇教程的前提是您已经按照之前的教程安装了ROS环境: Installing and Configuring Your ROS Environment.

描述:这篇教程介绍了ROS文件系统的概念,包括使用roscd、rosls和rospack等命令行工具

教程等级:初学者

ROS文件系统概念

  • Packages(功能包): Packages是ROS软件的元级组织形式. 每一个功能包都包括libraries(库), executables(可执行文件), scripts(脚本)或其他文件

  • Manifest (package.xml): manifest是Packages的描述文件. 它的作用是定义Packages包之间的关系和获取指定Packages的的信息,如版本、维护者、注册信息等等。。。

文件系统工具

通常我们在ROS中的代码都会分布在ROS系统的各部分.若要组织好这些代码单靠ls、cd这样的命令行工具是很难的,所以我们提供了一套ROS下的命令行工具,以此来方便我们的使用

rospack的使用

rospack 让我们可以察看Package的信息。在这篇教程中,我们只展示find选项的功能,它的作用是返回Packege的路径。

用法:

# rospack find [package_name]

例:

$ rospack find roscpp

返回:

  • YOUR_INSTALL_PATH/share/roscpp

如果你使用的是ubuntu下apt的方法安装的ROS,你得到的返回就是如下内容:

  • /opt/ros/hydro/share/roscpp

roscd的使用

roscd是rosbash集合中的一部分。它的作用是可以使我们跳至package或者是stack(功能包集)的目录下,这有点像ubuntu下的cd命令。

用法:

# roscd [locationname[/subdir]]

运行这个例子:

$ roscd roscpp

为了确认我们已经切换到roscpp功能包的目录下,我们可以在Unix系统下的pwd命令,来现实我们当前的工作目录:

$ pwd

你将会看到:

  • YOUR_INSTALL_PATH/share/roscpp

你可以看到YOUR_INSTALL_PATH/share/roscpp和上文例子中执行rospack find命令后的路径是一样的,即/opt/ros/hydro/share/roscpp

可以注意到,roscd和其他ROS命令一样,只能找到在ROS_PACKAGE_PATH(工作路径)下目录中存在的功能包。那么想要知道你的ROS_PACKAGE_PATH路径是在哪,你可以输入:

$ echo $ROS_PACKAGE_PATH

你的ROS_PACKAGE_PATH将会是一系列包含功能包的目录,它们之间会用冒号隔开,一个典型的ROS_PACKAGE_PATH应该是下面这样的(典型就是指ubuntu下apt方式安装的ROS系统)

  • /opt/ros/hydro/base/install/share:/opt/ros/hydro/base/install/stacks

和其他Similarly to other 环境路径一样,你可以添加自定义的路径到你的ROS_PACKAGE_PATH,但要注意每个路径都要用冒号分隔开

roscd还可以直接跳转到一个一个功能包或者功能包集的子目录下。

输入:

$ roscd roscpp/cmake
$ pwd

你就可以看到:

  • YOUR_INSTALL_PATH/share/roscpp/cmake

roscd log

roscd log 可以让我们跳转到ROS存储日志文件的文件夹下。注意如果之前没运行过任何ROS的程序,这里会产生一个提示说“it does not yet exist”(没有任何东西存在,即日志还未建立)

如果你之前已经有运行过ROS程序了,那么输入:

$ roscd log
(按提示来做,如果提示没有运行ros,就输入:
$ roscore
$ roscd log

rosls的用法

rosls 是rosbash集合中的一部分。它可以显示某一目录下所有文件或文件夹的名称,而不用像ls那样去到那个目录。

具体用法:

# rosls [locationname[/subdir]]

例:

$ rosls roscpp_tutorials

返回:

  • cmake  package.xml  srv

Tab键自动完成

一口气打完整个功能包的文件名无疑很费时。在上面的rosls例子中roscpp_tutorials这个名字就很长,所以ROS里也提供了UNIX系统下常用的TAB自动完成文件名输入的功能:

输入:

# roscd roscpp_tut<<< 在输入最后一个t之后按TAB键 >>>

我们可以看到显示:

$ roscd roscpp_tutorials/
试着输入:
# roscd tur<<< 在输入r后按TAB键 >>>

显示:

$ roscd turtle


然而,有时候会有几个包的名称开始都是turtle,那么我们就继续输入名称,直到能用TAB补充完整为止。


在终端输入:

$ roscd turtle

再打一个s,之后按TAB:

# roscd turtles<<< 按TAB >>>

现在这里就只有一个turtles开头的文件了:

$ roscd turtlesim/

复习

你可能已经注意到了,ROS命令的格式其实是有规律的:

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

这种命名方式同样适用于其他ROS命令工具。

现在,我们就可以继续下一个ROS教程的学习了:  create a package(建立一个功能包).

Wiki: ROS/Tutorials/NavigatingTheFilesystem (2013-10-29 13:38:47由JanBross编辑)

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:971次
    • 积分:20
    • 等级:
    • 排名:千里之外
    • 原创:0篇
    • 转载:0篇
    • 译文:1篇
    • 评论:0条
    文章存档
    阅读排行
    评论排行