3.01ROS功能包的介绍

在ROS(Robot Operating System)中,功能包(Package)是构建ROS应用程序的基本单元。功能包是一组文件的集合,这些文件共同实现了一个特定的功能或一组相关的功能。每个功能包通常包含以下类型的文件:

  1. 源代码:实现功能包主要功能的C++或Python代码。

  2. 配置文件:如.launch文件,用于启动ROS节点和参数配置。

  3. 消息定义:使用.msg文件定义消息格式,用于节点间通信。

  4. 服务定义:使用.srv文件定义服务,用于请求和响应通信。

  5. CMakeLists.txt:CMake构建脚本,指导CMake如何编译源代码和构建功能包。

  6. package.xml:描述功能包的元数据,如作者、版本、依赖关系等。

  7. README.mdREADME:提供功能包的使用说明和文档。

  8. LICENSE:指明功能包的许可证,如Apache 2.0、BSD等。

创建ROS功能包

创建ROS功能包的基本步骤如下:

  1. 初始化功能包:使用catkin_create_pkg命令或roscreate命令来初始化一个新的功能包。

    cd ~/catkin_ws/src catkin_create_pkg my_package rospy std_msgs

    这将创建一个名为my_package的新功能包,并指定它依赖于rospystd_msgs

  2. 添加源代码:在src目录下创建C++或Python源文件。

  3. 添加消息和服务:在msgsrv目录下创建消息和服务定义文件。

  4. 编辑CMakeLists.txt:确保CMakeLists.txt文件正确配置,以便可以找到所有必要的依赖项并编译源代码。

  5. 编辑package.xml:添加功能包的描述和其他元数据。

  6. 构建功能包:在工作空间的顶层目录运行catkin_make或使用catkin build

    cd ~/catkin_ws catkin_make

  7. 源环境:在工作空间的devel目录下运行source命令,以便在当前shell会话中使用新构建的功能包。

    source ~/catkin_ws/devel/setup.bash

  8. 测试功能包:运行任何创建的节点或启动任何.launch文件来测试功能包。

使用ROS功能包

一旦功能包被创建和构建,你就可以通过ROS命令行工具来使用它。例如,你可以使用rosrun来运行功能包中的节点:

rosrun my_package my_node

或者使用roslaunch来启动一个或多个节点:

roslaunch my_package my_launch_file.launch

ROS功能包是ROS生态系统中的核心组件,它们使得ROS应用程序的模块化开发成为可能。