2.ROS文件系统指南final

安装与设置你的ROS环境(rawmeat:wiki.ros.org/ROS/Tutorials/NavigatingTheFilesystem)

描述:这个教程介绍了ROS文件系统的概念,包括使用roscd, rosls, and rospack命令行工具。
教程等级:初学者
下一个教程创建一个ROS package

(只介绍catkin)

内容:

  1. 预先条件
  2. 文件系统概念的快速浏览
  3. 文件系统工具
    1. 使用rospack
    2. 使用roscd
      1. 子目录
    3. roscd log
    4. 使用rosls
    5. Tab 补全
  4. 复习

1.预先条件

对于这篇教程我们将会检查ROS-tutorial中的一个教程,请使用以下命令安装:

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

将‘< distro >‘(包括’< >’)替换成你的ROS版本名(例如indigo, kinetic, lunar等)

2.文件系统概念的快速浏览

  • Package: package是ROS代码的软件组织单位。每个package可以包含库,可执行文件,脚本,或其他的artifact
  • Manifest(package.xml):一个manifest是一个package的描述。它定义了package之间的依赖文件,捕捉package的测试文件,例如版本,维护者,证书等。

Show - - - - - Note about stacks

3.文件系统工具

代码在许多ROS package之间传播,使用类似于ls与cd的命令行工具导航是非常无聊的,所以ROS为您提供工具。

3.1使用 rospack

rospack允许你得到关于package的信息。在这个教程中我们只会使用find选项,返回package的路径。
用法:

$ rospack find [package_name]

例子:

$ rospack find roscpp

将会返回:

YOUR_INSTALL_PATH/share/roscpp

如果你从Ubuntu Linux的apt安装了ROS kinetic你将会看见:

/opt/ros/kinetic/share/roscpp

3.2使用roscd

roscdrosbash套装的一部分。它允许你直接改变到一个packaeg或者栈的目录(cd)。
用法:

$ roscd [locationname[/subdir]]

为了证明我们已经改变了roscpp package目录,运行这个实例:

$ roscd roscpp

现在让我们打印工作目录,使用Unix命令pwd

$ pwd

你应该看见:

YOUR_INSTALL_PATH/share/roscpp

你将会看见YOUR_INSTALL_PATH/share/roscpp与rospack find在先前例子中给出的是相同的路径。
注意到roscd,和其他的ROS工具一样,只会找到在你的ROS_PACKAGE_PATH中列举出来的ROSpackage。为了看见你的ROS_PACKAGE_PATH中有什么,输入:

$ echo $ROS_PACKAGE_PATH

你的 ROS_PACKAGE_PATH应该包含一个目录的名单,其中ROSpackage被冒号分开。一个典型的ROS_PACKAGE_PATH看起来类似于:

/opt/ros/kinetic/base/install/share
类似于其他的环境路径,你可以向ROS_PACKAGE_PATH增加额外的目录,每个路径被一个冒号’:’分开。

3.2.1 子目录

roscd 可以移动到一个package或者stack的子目录。
尝试:

$ roscd roscpp/cmake

$ pwd

你将会看见:

YOUR_INSTALL_PATH/share/roscpp/cmake

3.3 roscd log

roscd log将会带你去ROS储存log文件的文件夹。注意到如果你没有运行任何ROS程序,这个将会报告一个错误,说这个不存在。
如果你之前已经运行了一些ROS程序,尝试:

$ roscd log

3.4 使用 rosls

roslsroabash组件的一部分。它允许你在一个package中ls目录,使用名称而不是绝对的路径。
用法:

$ rosls [locationname[/subdir]]

例子:

$ rosls roscpp_tutorials

将会返回:

cmake launch package.xml srv

3.5 Tab 补全

打出完整的package名称可能是无聊的,在之前的例子中,roscpp_tutorials是一个相当长的名字。幸运的是,有一些ROS工具可以支持TAB补全
输入以下内容开始:

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

在按TAB键之后,命令行将会尽可能多地填充:

$ roscd turtle

但是,当有许多package以turtle开头的情况下,再按TAB一次,这将会展示所有的以turtle开头的ROS package:

turtle_actionlib/ turtlesim/ turtle_tf/

在命令行你将会有:

$ roscd turtle

现在打一个s在turtle之后,按TAB:

$ roscd turtles<<< now push the TAB key >>>

既然现在只有一个以turtle开头的package,你将会看见:

$ roscd turtlesim/

如果你想要看看最近安装的package的名称,你可以使用tab实现:

$ rosls <<< now push the TAB key twice >>>

4.复习

你可能会注意到ROS的命名模式:

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

这个模式适用于许多ROS工具。
现在你可以在ROS中遨游了,让我们创造一个package

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值