ROS 初级 - 文件系统工具
版权声明:本文为 DLonng 原创文章,可以随意转载,但必须在明确位置注明出处!
1、准备
这篇文章介绍 ROS 文件系统相关工具的使用,需要提前安装个 pkg:
sudo apt-get install ros-kinetic-ros-tutorials
2、ROS 文件系统基本概念
- Package:ros pkg 是 ros 中代码的基本组织结构,每个包中都包含库文件,可执行文件,脚本和其他文件。
- Manifests(package.xml):这个文件定义了 ros 包的基本属性,包括 pkg 的依赖关系,维护者,版本,license 等信息。
3、文件系统工具
ros 提供了 roscd,rosls 等命令来代替 shell 中的 cd,ls 等,可以非常方便我们在 ros 环境中使用,下面分别来学习常用的基础 ros 工具。
3.1 rospack
rospack 可以得到一个包的信息,比如用 find 来得到一个包的路径:
rospack find [pkg name]
例如:
rospack find roscpp
返回这个包的路径:
/opt/ros/kinetic/share/roscpp
3.2 roscd
使用 roscd 可以直接进入一个 pkg 中,不用像使用 cd 那样用绝对路径:
roscd [pkgname[/subdir]]
比如进入 roscpp 包的路径:
roscd roscpp
用 linux 命令打印当前的路径看看:
pwd
输出:
/opt/ros/kinetic/base/install/share/roscpp
这里要注意一点:roscd 只会在 ROS_PACKAGE_PATH 环境变量指定的路径中查找 ros 包,并进入这个包中,所以在使用 roscd 来进入一个 pkg 前,一定要保证 pkg 包的路径在 ROS_PACKAGE_PATH 中。
使用下面的命令来查看你当前的 pkg path:
echo $ROS_PACKAGE_PATH
另外,roscd 也支持进入一个 pkg 的子目录:
roscd roscpp/cmake
你可以再使用 pwd 来输出当前路径。
3.3 rosls
使用 rosls 来直接列出一个 ros pkg 的目录,也不用使用绝对路径,只需要一个 pkg name 即可:
rosls [pkgname[/subdir]]
例如:
rosls roscpp_tutorials
输出该 pkg 的目录:
cmake launch package.xml srv
3.4 Tab 补全
ROS 的命令也都支持 Tab 补全,如果对 shell 比较熟悉的同学应该都知道,不用完全手动输入一个 pkg 的全名,输入一些关键字符,然后按 Tab 键即可出现候选项了:
roscd tur <<< Push Tab key
roscd turtle
本文原创首发于微信公号「登龙」,分享机器学习、算法编程、Python、机器人技术等原创文章,扫码即可关注!
DLonng at 11/18/19