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.)
运行效果图如下图
2 文件系统概念快速概述
软件包:软件包是ROS代码的软件组织单位。 每个软件包可以包含库,可执行文件,脚本或其他工件。
清单(package.xml):清单是对软件包的描述。 它用于定义软件包之间的依赖关系并捕获有关软件包的元信息,例如版本,维护者,许可证等。
3 文件系统工具
代码分布在许多ROS软件包中。 使用ls和cd等命令行工具进行导航可能非常繁琐,这就是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
roscd是rosbash套件的一部分。 它使您可以直接将目录(cd)更改为程序包或堆栈。
要验证我们是否已更改为roscpp软件包目录,请运行以下示例:
roscd roscpp
现在让我们使用Unix命令pwd打印工作目录
pwd
将会看到
YOUR_INSTALL_PATH/share/roscpp
您可以看到YOUR_INSTALL_PATH / share / roscpp与rospack在上一个示例中给出的路径相同。
上述运行截图为:
请注意,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的使用
rosls是rosbash套件的一部分。 它允许您按名称而不是按绝对路径直接在软件包中使用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工具。