说明:本文主要是结合ROS官网的相关内容以及自己的相应操作心得整理而成,记录在此处仅仅是为了自己查找方便!
ROS官网相关参考内容网址:http://wiki.ros.org/ROS/Tutorials/NavigatingTheFilesystem
1. 先决条件
本文将检查ros-tutorials中的一个功能包,需要先安装:
sudo apt-get install ros-melodic-ros-tutorials
2. 文件系统概念简介
Packages:功能包,ROS代码的软件组织单元。每个功能包都可以包含库、可执行文件、脚本或其他工件。
Manifests(package.xml):清单,是对功能包的描述。 它用于定义功能包之间的依赖关系并捕获有关功能包的元信息,如版本、维护者、许可证等...
3. 文件系统工具
3.1 rospack
rospack允许获取有关包的信息。 在本文中,只介绍 find 选项,它返回包的路径。
用法:
rospack find [package_name]
将返回:
YOUR_INSTALL_PATH/share/roscpp
举例:
rospack find roscpp
3.2 roscd
roscd是 rosbash 套件的一部分。 它允许您将目录 直接更改为一个package或stack。
用法:
roscd <package-or-stack>[/subdir]
举例:
roscd roscpp
需要注意的是,roscd 与其他 ROS 工具一样,只会查找 ROS_PACKAGE_PATH 中列出的目录中的 ROS 包。 要查看 ROS_PACKAGE_PATH 中的内容,输入:
echo $ROS_PACKAGE_PATH
与其他环境路径类似,也可以向 ROS_PACKAGE_PATH 添加其他目录,每个路径用冒号“:”分隔。
roscd 也可以移动到一个package或stack的子目录。
举例:
roscd roscpp/cmake
3.3 roscd lg
roscd log 将移动到 ROS 存储日志文件的文件夹。 请注意,如果还没有运行任何 ROS 程序,这将产生一个错误,指出它尚不存在。
3.4 rosls
rosls 是 rosbash 套件的一部分。 它允许直接在包中按名称而不是绝对路径列出内容。
用法:
rosls <package-or-stack>[/subdir]
举例:
rosls roscpp_tutorials
3.5 Tab补全
输入:
roscd roscpp_tut<<< now push the TAB key >>>
按下Tab键后,命令行将会自动补全:
roscd roscpp_tutorials/
如果想查看当前安装的所有软件包的列表,也可以使用制表符补全:
rosls <<< now push the TAB key twice >>>
4. Review
至此,可能已经注意到 ROS 工具的命名模式:
- rospack = ros + pack(age)
- roscd = ros + cd
- rosls = ros + ls
这种命名模式适用于许多 ROS 工具。