ros学习笔记1——文件系统入门及常用工具指令

主题:ros文件系统

链接:http://wiki.ros.org/ROS/Tutorials/NavigatingTheFilesystem

 

 

1 先决条件

需要安装 ros-tutorials

命令行:sudo apt-get install ros-<distro>-ros-tutorials

Replace '<distro>' (including the '<>') with the name of your ROS distribution (e.g. indigo, kinetic, lunar etc.)

替换'<distro>' 为版本号, 如:kinetic

运行效果图如下图

 

 

 

 

 

 

 

 

 

2 文件系统概念快速概述

软件包:软件包是ROS代码的软件组织单位。 每个软件包可以包含库,可执行文件,脚本或其他工件。

清单(package.xml):清单是对软件包的描述。 它用于定义软件包之间的依赖关系并捕获有关软件包的元信息,例如版本,维护者,许可证等。

3 文件系统工具

代码分布在许多ROS软件包中。 使用lscd等命令行工具进行导航可能非常繁琐,这就是ROS提供帮助您的工具的原因。

3.1 使用rospack

rospack允许您获取有关软件包的信息。 在本教程中,我们仅讨论find选项,该选项返回包的路径。

 命令行:rospack find roscpp
应该会返回:YOUR_INSTALL_PATH/share/roscpp
如果您在Ubuntu Linux上从apt安装了ROS Kinetic,那么您将看到:/opt/ros/kinetic/share/roscpp
运行效果如下图:



3.2 使用roscd

roscdrosbash套件的一部分。 它使您可以直接将目录(cd)更改为程序包或堆栈。

要验证我们是否已更改为roscpp软件包目录,请运行以下示例:

 roscd roscpp

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

pwd

将会看到

YOUR_INSTALL_PATH/share/roscpp

您可以看到YOUR_INSTALL_PATH / share / roscpprospack在上一个示例中给出的路径相同。

上述运行截图为:

 

 

 

请注意,roscd与其他ROS工具一样,只会在ROS_PACKAGE_PATH中列出的目录中找到ROS软件包。 要查看您的ROS_PACKAGE_PATH中的内容,请输入

 echo $ROS_PACKAGE_PATH

您的ROS包路径应该包含一个目录列表,其中您有用冒号分隔的ROS包。一个典型的ROS包路径可能是这样的.

/opt/ros/kinetic/base/install/share

运行上述命令截图为:

 

 

rosbash只能在ROS_PACKAGE_PATH中有该包的时候起作用,如果该包不在其中,则roscd等并不能起作用。

与其他环境路径类似,您可以在ROS包路径中添加额外的目录,每个路径用冒号':'分隔。

 

3.2.1 子目录

roscd也可以移动到包或堆栈的子目录。

$ roscd roscpp/cmake
$ pwd
将会看到:
YOUR_INSTALL_PATH/share/roscpp/cmake
运行截图为:

 

 

 

3.3 roscd log

roscd log将带您进入ROS存储日志文件的文件夹。 请注意,如果您尚未运行任何ROS程序,这将产生一条错误消息,指出它尚不存在。

如果您以前运行过一些ROS程序,请尝试:

roscd log

运行截图为:

打开roscore的情况下为

 

 

未打开roscore的情况下为:



3.4 rosls的使用

roslsrosbash套件的一部分。 它允许您按名称而不是按绝对路径直接在软件包中使用ls

随便在什么位置即可ls出指定包文件夹中的内容

rosls roscpp_tutorials
运行截图为:

 

 

3.5 Tab键补全

输入完整的软件包名称可能很麻烦。 在前面的示例中,roscpp_tutorials是一个相当长的名称。 幸运的是,某些ROS工具支持TAB完成。

开始键入:

roscd roscpp_tut<<< 此时点tab>>>
TAB键之后,命令行应该填写其余的内容
 roscd roscpp_tutorials/
之所以可行,是因为roscpp_tutorials是当前唯一以roscpp_tut开头的ROS软件包。

运行截图为:





现在键入:

$ roscd tur<<< tab>>>

按下TAB键后,命令行应尽可能多地填写:

roscd turtle

但是,在本例中有多个以turtle开头的包。下次试着键入TAB。这将显示所有以turtle开始的ROS

turtle_actionlib/  turtlesim/         turtle_tf/

在命令行上,您仍然应该具有:

$ roscd turtle

现在在turtle后面键入s,然后按TAB

由于只有一个以turtles开头的软件包,因此您应该看到

roscd turtlesim/

 

 

 

如果要查看所有当前已安装软件包的列表,也可以使用制表符完成功能:

rosls <<< 双击tab>>>









4
回顾
您可能已经注意到ROS工具的命名模式:

rospack = ros + pack(age)

roscd = ros + cd

rosls = ros + ls

这种命名模式适用于许多ROS工具。







posted @ 2020-11-12 00:20  退而结网人  阅读(155)  评论(0编辑  收藏  举报