ROS中的软件以package(包)的形式组织。软件包可能包含ROS 节点,与ROS无关的库,数据集,配置文件,第三方软件或逻辑上构成有用模块的任何其他内容。这些包的目标是以易于消费的方式提供这种有用的功能,以便软件可以轻松重用。
ROS包往往遵循一个共同的结构。以下是您可能注意到的一些目录和文件。
- include/package_name:C ++包含头(确保在CMakeLists.txt中导出)
- msg/:包含消息(msg)类型的文件夹
- src/ package_name /:源文件,特别是导出到其他包的Python源代码。
- srv/:包含Service(srv)类型的文件夹
- scripts/:可执行脚本
- CMakeLists.txt:CMake构建文件(参见catkin / CMakeLists.txt)
- package.xml:package catkin / package.xml
- CHANGELOG.rst:许多软件包将定义一个可以自动注入到二进制打包中并进入wiki页面的更改日志