- 精通ROS机器人编程(原书第3版)
- (印)郎坦·约瑟夫等
- 634字
- 2024-08-19 16:09:44
1.2.1 ROS功能包
ROS功能包的典型结构如图1.3所示。
图1.3 一个典型C++ROS功能包的结构
让我们讨论一下每个文件夹的使用方法。
●config:ROS包中使用的所有配置文件都保存在这个文件夹中。此文件夹由用户创建,通常将文件夹命名为config,表示这是保存配置文件的位置。
●include/package_name:这个文件夹里面包含我们需要在包中使用的头文件和库。
●script:此文件夹包含可执行的Python脚本。
●src:此文件夹存储C++源代码。
●launch:此文件夹包含用于启动一个或多个ROS节点的启动文件。
●msg:此文件夹包含自定义的消息定义。
●srv:此文件夹包含服务定义。
●action:此文件夹包含动作文件。我们将在第2章中了解更多关于此类文件的知识。
●package.xml:这是此包的功能包清单文件。
●CMakeLists.txt:此文件包含编译包的指令。
我们需要了解一些用于创建、修改和使用ROS包的命令,如下是一些常用的。
●catkin_create_pkg:此命令用于创建新包。
●rospack:此命令用于获取文件系统中包的相关信息。
●catkin_make:此命令用于在工作区中构建包。
●rosdep:此命令将安装此软件包所需的系统依赖项。
为了使用功能包,ROS提供了一个类似bash的命令,叫作rosbash(http://wiki.ros.org/rosbash),可用于导航和操作ROS包。以下是一些rosbash命令。
●roscd:此命令用于使用包名、栈名或特殊位置信息更改当前目录。如果我们以一个包名作为参数,它将切换到该包的文件夹。
●roscp:此命令用于从包中复制文件。
●rosed:此命令用于使用vim编辑器编辑文件。
●rosrun:此命令用于在包内运行可执行文件。
在一个典型的包中,package.xml的定义如图1.4所示。
图1.4 package.xml的定义
package.xml也包含有关编译的信息。<build_depend></build_depend>标签包括构建包的源代码所需的包。<run_depend></run_depend>标签内的包是在运行时运行包节点所必需的。