在创建ROS包的时候,会产生xml和CMakeList.txt文件,其中xml文件如下:
<package format="2">
<name>foo_core</name>
<version>1.2.4</version>
<description>
This package provides foo capability.
</description>
<maintainer email="ivana@osrf.org">Ivana Bildbotz</maintainer>
<license>BSD</license>
</package>
name
包的名字
version
包的版本号,需要以点将数字分开
description
包内容的描述
maintainer
维护这个包的作者
license
- 软件发布时的许可(例如 GPL, BSD, ASL)
当然,上面给出的示例是一个比较简单的例子,它没有加入任何依赖(dependencies
),包可以有6种类型。
depend
指定依赖项,最常用
buildtool_depend
指定构建项目的工具
build_depend
指定构建项目的依赖
build_export_depend
指定根据这个包构建库所需要的包
exec_depend
运行代码需要的包
test_depend
单个测试需要的依赖
doc_depend
指定此包生成文档时需要的文档工具
所有的包最少都有一个依赖,一个构建工具依赖,例如:
<package format="2">
<name>foo_core</name>
<version>1.2.4</version>
<description>
This package provides foo capability.
</description>
<maintainer email="ivana@osrf.org">Ivana Bildbotz</maintainer>
<license>BSD</license>
<buildtool_depend>catkin</buildtool_depend>
</package>
如果是一个比较实际的例子,那么就会有构建、执行、测试和文档依赖,例如下面:
<package format="2">
<name>foo_core</name>#包名
<version>1.2.4</version>#版本号
<description>#描述消息
This package provides foo capability.
</description>
<maintainer email="ivana@willowgarage.com">Ivana Bildbotz</maintainer>
<license>BSD</license>
<url>http://ros.org/wiki/foo_core</url>#链接
<author>Ivana Bildbotz</author>#作者
<buildtool_depend>catkin</buildtool_depend>#构建工具依赖
<depend>roscpp</depend>#依赖的包
<depend>std_msgs</depend>
<build_depend>message_generation</build_depend>#构建时依赖的包
<exec_depend>message_runtime</exec_depend>#运行是依赖的包
<exec_depend>rospy</exec_depend>
<test_depend>python-mock</test_depend>#测试时依赖的包
<doc_depend>doxygen</doc_depend>#生成文档时依赖的包
</package>
当然,在CMakeLists.txt
中,也有类似的依赖项,例如:
cmake_minimum_required(VERSION 2.8.3)
project(<PACKAGE_NAME>)
find_package(catkin REQUIRED)
catkin_metapackage()
这是cmake中的知识,这里不再详解。
以上内容参考ROS官方wiki中的详解