学习大纲:
1.1.2Naviqating the ROS Filesystem(安装和配置 ROS 环境)
1.先决条件
请使用检查 ros-tutorials 中的一个包
2. 文件系统概念
软件包 (Package):这是 ROS 文件系统中的最小组织单位,一个软件包可能包含库、可执行文件、工具等。
清单 (Manifest):用于描述软件包,最主要的功能是定义软件包之间的依赖关系。
堆栈 (Stack):由多个软件包组成的更高级别的集合,用来构建更大的功能模块。
堆栈清单 (Stack Manifest):用于描述堆栈,与普通软件包的清单相似。
文件系统中的包和堆栈可以通过特定的文件来区分:软件包 包含 manifest.xml 文件;堆栈 包含 stack.xml 文件。
3.文件系统工具
ROS 提供了一系列工具来简化对文件系统的操作,这些工具可以避免在复杂目录结构中频繁使用传统命令行工具(如 ls 和 cd)。
3.1 使用 rospack 和 rosstack
这两个命令分别用于获取有关软件包和堆栈的信息。本教程主要介绍如何查找软件包或堆栈的路径。命令用法如下:
查找包的路径:$ rospack find [package_name]
查找堆栈的路径:$ rosstack find [stack_name]
3.2.使用 roscd
roscd 是 Rosbash 套件中的一部分,用于直接切换到指定的软件包或堆栈目录。
命令用法:$ roscd [locationname[/subdir]]
例如,切换到 roscpp 包目录:
roscd 工具只会在 $ROS_PACKAGE_PATH 路径中查找 ROS 包。可以通过以下命令查看路径:$ echo $ROS_PACKAGE_PATH
如果尚未修改环境变量,输出会是:
/opt/ros/noetic/share:/opt/ros/noetic/stacks
3.3roscd 的特殊情况
你可以告诉 roscd 去一些特殊的地方,它们不是包或堆栈
A.不带参数的 roscd:会带你到 $ROS_WORKSPACE,
B.roscd 日志:会将你带到 ROS 存储日志文件的目录:
3.4 使用 rosls
rosls 是 Rosbash 套件中的一部分,它简化了查看包或堆栈中的内容,允许直接根据名称列出目录内容。命令用法:$ rosls [locationname[/subdir]]
如:
4. TAB 键补全
ROS 工具支持通过按下 TAB 键进行命令和路径的自动补全。
例如:$ roscd roscpp_tut<<< now push the TAB key >>>
输出:$ roscd roscpp_tutorials/
如果有多个选项,按下 TAB 键会显示所有以相同前缀开头的包。
例如输入:$ roscd tur<<< now push the TAB key >>>
将显示:turtle_actionlib/ turtlesim/ turtle_tf/
5. 命令命名模式
ROS 的工具命名模式通常是以 ros 作为前缀,加上工具的功能名,如:
rospack:用于包(package)操作。rosstack:用于堆栈(stack)操作。
roscd:用于改变目录(cd)。rosls:用于列出目录内容(ls)。