ros catkin包配置文件package.xml

参考:http://wiki.ros.org/catkin/package.xml

1. 概述

清单是一个名为package.xml 的 XML文件,必须包含在任何符合 catkin 的包的根文件夹中。此文件定义有关包的属性,如包名称、版本号、作者、维护者以及其他 catkin 包的依赖项。

2. 格式 2(推荐)

这是新包的推荐格式。还建议将较旧的格式 1 包迁移到格式 2。有关从格式 1 迁移到格式 2 的说明,请参阅在 catkin API 文档中从格式 1迁移到格式 2。

2.1 基本结构

每个包.xml 文件都具有 <package>标记作为文档中的根标记。

<package format="2">

</package>

2.2 必要标签

一个package最少需要包含以下tag来保证配置文件的完整性:

  • <名称> - 包的名称
  • <version> - 包的版本号(需要 3 个点分隔的整数)
  • <说明> - 包装内容说明
  • <维护者> - 正在维护包裹的人的姓名
  • <许可证> - 发布代码的软件许可证(例如 GPL、BSD、ASL)。

例如,下面是一个叫 foo_core 虚构包的配置文件。

<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)

2.3 Dependencies

当然,上面给出的示例是一个比较简单的例子,它没有加入任何依赖(dependencies),包依赖可以有6种类型。

depend指定依赖项,最常用
buildtool_depend指定构建此包所需的工具,通常唯一的工具就是catkin。
build_depend指定构建该包需要哪些包
build_export_depend指定根据这个包构建库所需要的包
exec_depend运行该包中的代码需要的包
test_depend单个测试需要的依赖
doc_depend指定此包生成文档时需要的文档工具


所有的包最少都有一个依赖,一个构建工具依赖(buildtool_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>

2.4 Metapackages(该章未翻译)

It is often convenient to group multiple packages as a single logical package. This can be accomplished through metapackages. A metapackage is a normal package with the following export tag in the package.xml:

 <export>
   <metapackage />
 </export>

Other than a required <buildtool_depends> dependency on catkin, metapackages can only have execution dependencies on packages of which they group.

Additionally a metapackage has a required, boilerplate CMakeLists.txt file:

cmake_minimum_required(VERSION 2.8.3)
project(<PACKAGE_NAME>)
find_package(catkin REQUIRED)
catkin_metapackage()

Note: replace <PACKAGE_NAME> with the name of the metapackage.

2.5 其他标签

  • <url> - 包上信息的 URL,通常是ros.org。
  • <作者> - 包的作者
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 终极编程指南 设计师:CSDN官方博客 返回首页
实付 39.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值