一、熟悉ROS文件系统
0.1 预备工作
$ sudo apt-get install ros-melodic-ros-tutorials
" ros中间的modelic是ros的版本,笔者是这个版本的,其他版本的可自行替换。"
ROS版本查询::
1、先在终端输入$ roscore
2、打开新终端,再输入,$ rosparam list
3、再输入$ rosparam get /rosdistro就能得到版本
0.2 回顾文件系统概念
-
Packages: Packages are the software organization unit of ROS code. Each package can contain libraries, executables, scripts, or other artifacts.
-
Packages:软件包,ROS代码的软件组织联合体,包含目录、可执行文件、脚本或者其他手动创建的文件。
-
Manifests (package.xml): A manifest is a description of a package. It serves to define dependencies between packages and to capture meta information about the package like version, maintainer, license, etc…
-
Manifests (package.xml):清单,软件包的一个描述。用作定义软件包相关信息之间的依赖项,这些信息包括软件包的版本、维护者、相关协议等信息。
0.3 文件系统工具
- Code is spread across many ROS packages. Navigating with command-line tools such as ls and cd can be very tedious which is why ROS provides tools to help you.
- 代码散布在很多ROS软件包中。使用命令行工具(如ls、cd)会十分的繁琐,这就是为什么ROS要提供的下面这些工具的原因了。
0.3.1 使用rospack
- rospack allows you to get information about packages. In this tutorial, we are only going to cover the find option, which returns the path to package.
- rospack 可以得到软件包的信息。find选项,可以还回软件包路径。
用法:
$ rospack find [package_name]
例如:$ rospack find roscpp
0.3.2 Using roscd
类似cd,可直接切换到任一packages或stack。
Usages:
$ roscd [locationname[/subdir]]
例如:roscd roscpp
"如果想知道是否已经在roscpp文件夹之下,可以通过ubantu自带命令验证:"
即:$ pwd
"同样,roscd也可以切换到一个软件包或者文件集的子目录中。"
$ roscd roscpp/cmake
0.3.3 roscd log
roscd log 可以帮助切换到保存日记文件的目录之下。如果没有运行过ros程序,则会显示No active roscore。
$ roscd log
0.3.4 Using rosls
rosls 是 rosbash 命令集中的一部分,它允许你直接按软件包的名称而不是绝对路径执行 ls 命令。
Usages:
$ rosls [locationname[/subdir]]
例如:$ rosls roscpp_tutorials
0.3.5 Tab Completion
当要输入一个完整的软件包名称时会变得比较繁琐。在之前的例子中 roscpp tutorials 是个相当长的名称,幸运的是,一些 ROS 工具支持 TAB 自动补全 的功能。
$ roscd roscpp_tut<<< now push the TAB key >>>
"按下Tab健之后,就会出现以下内容:"
$ roscd roscpp_tutorials/
三个命令:
1. rospack = ros + pack(age)
2. roscd = ros + cd
3. rosls = ros + ls
参考文献:ros官方教程