3.01ROS功能包的介绍
在ROS(Robot Operating System)中,功能包(Package)是构建ROS应用程序的基本单元。功能包是一组文件的集合,这些文件共同实现了一个特定的功能或一组相关的功能。每个功能包通常包含以下类型的文件:
-
源代码:实现功能包主要功能的C++或Python代码。
-
配置文件:如
.launch
文件,用于启动ROS节点和参数配置。 -
消息定义:使用
.msg
文件定义消息格式,用于节点间通信。 -
服务定义:使用
.srv
文件定义服务,用于请求和响应通信。 -
CMakeLists.txt:CMake构建脚本,指导CMake如何编译源代码和构建功能包。
-
package.xml:描述功能包的元数据,如作者、版本、依赖关系等。
-
README.md 或 README:提供功能包的使用说明和文档。
-
LICENSE:指明功能包的许可证,如Apache 2.0、BSD等。
创建ROS功能包
创建ROS功能包的基本步骤如下:
-
初始化功能包:使用
catkin_create_pkg
命令或roscreate
命令来初始化一个新的功能包。cd ~/catkin_ws/src catkin_create_pkg my_package rospy std_msgs
这将创建一个名为
my_package
的新功能包,并指定它依赖于rospy
和std_msgs
。 -
添加源代码:在
src
目录下创建C++或Python源文件。 -
添加消息和服务:在
msg
和srv
目录下创建消息和服务定义文件。 -
编辑CMakeLists.txt:确保CMakeLists.txt文件正确配置,以便可以找到所有必要的依赖项并编译源代码。
-
编辑package.xml:添加功能包的描述和其他元数据。
-
构建功能包:在工作空间的顶层目录运行
catkin_make
或使用catkin build
。cd ~/catkin_ws catkin_make
-
源环境:在工作空间的
devel
目录下运行source
命令,以便在当前shell会话中使用新构建的功能包。source ~/catkin_ws/devel/setup.bash
-
测试功能包:运行任何创建的节点或启动任何
.launch
文件来测试功能包。
使用ROS功能包
一旦功能包被创建和构建,你就可以通过ROS命令行工具来使用它。例如,你可以使用rosrun
来运行功能包中的节点:
rosrun my_package my_node
或者使用roslaunch
来启动一个或多个节点:
roslaunch my_package my_launch_file.launch
ROS功能包是ROS生态系统中的核心组件,它们使得ROS应用程序的模块化开发成为可能。