[ROS](04)package.xml详解

2023-05-16

  文章只是个人学习过程中学习笔记,主要参考ROS教程1


1、概述

  软件包(package)清单(manifest)是一个名为 package.xml 2 的 XML 文件,必须包含在任何兼容 catkin 的软件包的根文件夹中。该文件定义了有关软件包的属性,例如软件包名称、版本号、作者、维护者以及对其他catkin软件包的依赖关系。

Notepackage.xml类似于早期的rosbuild编译系统中使用的manifest.xml文件。

2、package.xml文件

2.1 遵循的格式

  package.xml遵循XML(可扩展标记语言)标签的写法,包含的标签有:

编号标签功能备注
1<package>根标签,所有其他标签都嵌套在它下面Required
2<name>软件包的名称Required
3<version>软件包的版本号(必须是3个点分隔的整数)Required
4<description>软件包的内容描述Required
5<maintainer>软件包的维护者Required
6<license>发布代码的软件许可证(例如 GPL、BSD、ASL)Required
7<buildtool_depend>编译系统工具,通常为catkin
8<depend>指定依赖项为编译、导出、运行需要的依赖,最常用
9<build_depend>编译依赖项
10<build_export_depend>编译导出依赖项
11<exec_depend>执行依赖项
12<test_depend>测试用例依赖项
13<doc_depend>文档工具依赖项

2.2 文件解析

<!-- 定义文档的语法 ,内容遵循xml的1.0版本  -->
<?xml version="1.0"?>
<!-- (1) package为根标签,软件包的格式为2(推荐),老版本为1  -->
<package format="2">
  <!-- (2) 软件包的名称  -->
  <name>beginner_tutorials</name>
  <!-- (3) 软件包的版本  -->
  <version>0.0.0</version>
  <!-- (4) 软件包的内容描述  -->
  <description>The beginner_tutorials package</description>

  <!-- (5) 软件包的维护者 -->
  <maintainer email="fly@todo.todo">fly</maintainer>

  <!-- (6)  发布代码的软件许可证(ROS核心代码默认为BSD) -->
  <!--   BSD, MIT, Boost Software License, GPLv2, GPLv3, LGPLv2.1, LGPLv3 -->
  <license>BSD</license>

  <!-- (可选) Url标签是可选的,但是允许多个,每个标签一个 -->
  <!-- 可选属性类型可以是:网站、bug跟踪器或存储库 -->
  <!-- Url标签可以帮助用户查找文档并报告问题 -->
  <!-- <url type="website">http://wiki.ros.org/beginner_tutorials</url> -->

  <!-- (可选) Author标签是可选的,但是允许多个,每个标签一个 -->
  <!-- 维护者是发布软件包的人,但作者不一定是维护者 -->
  <!-- <author email="jane.doe@example.com">Jane Doe</author> -->

  <!-- (8) depend 标记用于指定依赖项(依赖项可以是catkin包或系统依赖项) -->
  <!--   <depend>roscpp</depend> -->
  <!--   上述 depend 标签依赖,相当于下面两行内容 -->
  <!--   <build_depend>roscpp</build_depend> -->
  <!--   <exec_depend>roscpp</exec_depend> -->
  
  <!-- (9) 对编译时需要的包使用build_depend: -->
  <!--   <build_depend>message_generation</build_depend> -->
  
  <!-- (10) 对于你需要的包使用build_export_depend来构建这个包: -->
  <!--   <build_export_depend>message_generation</build_export_depend> -->
  
  <!-- (7) 对构建工具的包,使用 buildtool_depend标签 -->
  <!-- 构建工具依赖关系指定此软件包需要构建自身的构建系统工具。通常唯一的构建工具是 catkin -->
  <!--   <buildtool_depend>catkin</buildtool_depend> -->
  
  <!-- (11) 对运行时需要的包,使用 exec_depend标签 -->
  <!-- 执行依赖关系,指定此程序包中运行代码所需的软件包,如动态链接库,可执行文件,Python模块,脚本文件 -->
  <!--   <exec_depend>message_runtime</exec_depend> -->
  
  <!-- (12) 对于只用于测试的包使用test_depend: -->
  <!--   <test_depend>gtest</test_depend> -->
  
  <!-- (13) 对于只用于构建文档的包,使用doc_depend -->
  <!--   <doc_depend>doxygen</doc_depend> -->

  <!-- ============================================ -->
  <!--                实例说明                      -->
  <!-- ============================================ -->
  <!-- (7) 依赖的构建工具,这是必须的 -->
  <buildtool_depend>catkin</buildtool_depend>
  
  <!-- (9) 指定编译此软件包需要的依赖 -->
  <build_depend>roscpp</build_depend>
  <build_depend>rospy</build_depend>
  <build_depend>std_msgs</build_depend>

  <!-- (10) 指定根据这个软件包构建库所需的依赖项(导出) -->
  <build_export_depend>roscpp</build_export_depend>
  <build_export_depend>rospy</build_export_depend>
  <build_export_depend>std_msgs</build_export_depend>

  <!-- (11) 运行该软件包中的代码所需的依赖项 -->
  <exec_depend>roscpp</exec_depend>
  <exec_depend>rospy</exec_depend>
  <exec_depend>std_msgs</exec_depend>


  <!-- The export tag contains other, unspecified, tags -->
  <export>
    <!-- Other tools can request additional information be placed here -->

  </export>
</package>


  1. ROS.otg. ROS教程[EB/OL]. 2020-12-22[2022-7-5].
    http://wiki.ros.org/cn/ROS/Tutorials. ↩︎

  2. ROS.org.MaryaBelanger. package.xml[EB/OL]. 2019-07-24[2022-07-18]. https://wiki.ros.org/catkin/package.xml. ↩︎

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[ROS](04)package.xml详解 的相关文章

  • 通过 XSL 查看 XML 到 XHTML 转换中的源代码

    我正在尝试使用 XSL 文件将 XML 文件转换为 XHTML 文件 如何查看转换后输出的XHTML源代码 我目前正在通过 Firefox 查看结果 但我看到的只是 XHTML 文件的渲染版本 我想查看源代码 但是当我转到 查看 gt 页面
  • JAXB:如何注释类以使它们属于不同的命名空间?

    我希望有JAXB 注释的类将是 编组 解组到不同的 XML 命名空间 我需要的是这样的
  • 使用 XSLT 将 XML 转换为 SQL

    由于我无法控制的原因 我将获得一个 XML 文件和一个 XSLT 文件 该文件可以将 XML 文件转换为 SQL 代码或错误 现在让我们假设我们可以信任提供 XML 文件的人不会在 XML 中包含危险的构造 我什至不知道是否应该使用 Sim
  • 如何将 XML 文档嵌入到 XHTML 文档中?

    例如 我如何嵌入
  • 使用非 ASCII(自然语言)XML 标签是否合适?

    使用以非 ASCII 自然语言编写的 XML 标签 元素名称 是否合适 XML 规范允许这样做 请参阅Names http www w3 org TR 2006 REC xml11 20060816 NT Name and 例外情况 htt
  • 禁止的软件包名称:java

    我尝试从数据库名称为 jaane 用户名 Hello 和密码 hello 获取数据 错误 java lang SecurityException Prohibited package name java at java lang Class
  • 如何获得打开另一个活动的按钮?

    我已在活动 XML 文件中添加了一个按钮 但无法用它来打开我的其他活动 有人可以逐步告诉我如何做到这一点吗 A 确保您的其他活动已在清单中声明
  • Java 包 - 引用不同包中的类

    在 默认包 中 我有一个名为 Bird 的类 它有一个名为 dialog 的方法 我可以在同一个包中创建一个名为 Class1 的类 如下所示 public class Class1 public static void main Stri
  • 从流中过滤/删除无效的 xml 字符

    首先 我无法更改 xml 的输出 它是由第三方生成的 他们在 xml 中插入无效字符 我得到了 xml 字节流表示形式的 InputStream 除了将流消耗到字符串中并对其进行处理之外 是否有一种更干净的方法来过滤掉有问题的字符 我找到了
  • XML 渲染错误 Android 预览 N

    更新后我已将 android SDK 更新为 android Preview N 但收到此 xml 渲染错误 单击详细信息后 它显示以下堆栈跟踪如何避免这种情况 org jetbrains android uipreview Renderi
  • android中使用xml的新自定义字体方法

    随着 android 发布 O 预览版 添加了一个新功能 称为xml 中的字体 它很容易实现 但我没有什么疑问 让我首先添加最好的方法1 右键单击资源文件夹并前往新建 gt Android 资源目录 新的出现资源目录窗口 2 在资源类型列表
  • 如何在 C# 中使用 XmlDsigC14NTransform 类

    我正在尝试使用规范化 xml 节点System Security Cryptography Xml XMLDsigC14nTransformC net Framework 2 0 的类 该实例需要三种不同的输入类型 NodeList Str
  • CDATA 真的有必要吗?

    我经常使用内联 Javascript 通常是在我制作的 WordPress 主题中 我没有听说过将内联 Javascript 包装在 直到几个月前 几年来我一直在以相当的能力水平做这些事情 我用谷歌搜索了一下 听说人们使用它是因为他们的 J
  • 使用 powershell 将 XML 转换为特定的 JSON 结构

    需要有关将 xml 转换为特定 json 结构的帮助 XML 看起来像这样
  • 使用 XmlWriterSettings 或 XmlWriter 设置引号字符

    我目前有一些直接实例化的代码XmlTextWriter对象 它允许我将引号字符设置为单引号 我需要它来生成 XML 以匹配旧系统 例如 var fred new XmlTextWriter stream encoding fred Quot
  • 如何将 xmlns:* 属性与 XSLT 匹配?

    我怎样才能匹配xmlns XSLT 1 0 的属性 我尝试使用 RDF 文档
  • 带有 Null 的 Soap WSDL

    我需要在函数中指定一个可为空的参数 这不起作用
  • 如何在 Java 中根据 XSD 1.1 验证 XML?

    在 Java 中根据 XML Schema 1 1 验证 XML 文件的最佳方法是什么 我从中获取了代码tutorial http www ibm com developerworks xml library x javaxmlvalida
  • 在 Java 中查询 XML 的最简单方法

    我有带有 XML 的小字符串 例如 String myxml
  • pip 安装软件包两次

    不幸的是我无法重现它 但我们已经见过几次了 pip 将一个软件包安装两次 如果卸载第一个 第二个就会可见并且也可以被卸载 我的问题 如果一个包安装了两次 如何用 python 检查 背景 我想编写一个测试来检查这一点 devOp Updat

随机推荐

  • python中字符串及其格式转换技巧

    目录 python中字符串及其格式转换技巧其他数据转为字符串字符串的格式化带格式限定符的格式化字符串的连接字符串切片字符串转换为 ASCII 值 python中字符串及其格式转换技巧 在python语言中 xff0c 对字符串的处理可以说是
  • Linux命令发送Http的get或post请求(curl和wget两种方法)

    xfeff xfeff Http请求指的是客户端向服务器的请求消息 xff0c Http请求主要分为get或post两种 xff0c 在Linux系统下可以用curl和wget命令来模拟Http的请求 下面就来介绍一下Linux系统如何模拟
  • 让bat文件后台运行

    让bat文件后台运行 文章目录 让bat文件后台运行 前言方法一方法二 前言 bat文件运行时会有一个黑黑的cmd exe窗口 xff0c 很吓人 xff0c 就算用start min命令去运行bat文件 xff0c 电脑的任务栏下仍然会有
  • 5.C语言中全局变量在多个文件中使用

    转自 xff1a https www eefocus com codevisionlife blog 13 12 300658 1a0b8 html 用C语言编写程序的时候 xff0c 我们经常会遇到这样一种情况 xff1a 希望在头文件中
  • 利用GitHub actions实现Docker Image的构建并传送到Docker Hub或者harbor

    目录 1 github actions的介绍 2 dockerfile 的编写 2 1 dockerfile 范例 2 2 其他指令 3 workflow的编写 3 1 上传到docker hub 3 2 上传到 harbor 4 结果展示
  • UCOSIII编写无人机飞控程序——第一篇

    研究无人机飞控已经接近两年 xff0c 作为一个业余的兴趣爱好 兴趣源于看到国外大神Raffaello D 39 Andrea在TED做的无人机演讲和展示 xff0c 感觉无人机很像工程师所施展的魔法 xff0c 给一向给人苦逼印象的工程师
  • 解决 Ubuntu :: Configure: Error: The QtCore Library >= 4.3.0 Could Not Be Found? 问题

    解决 Ubuntu Configure Error The QtCore Library gt 61 4 3 0 Could Not Be Found 问题 作者 19届YJF 日期 2020 10 2 这是我在打 robocup 2D仿真
  • 魔都,3年,程序员到CTO

    过一个平凡无趣的人生实在太容易了 xff0c 你可以不读书 xff0c 不冒险 xff0c 不运动 xff0c 不写作 xff0c 不外出 xff0c 不折腾 但是 xff0c 人生最后悔的事情就是 xff1a 我本可以 陈素封 我可以 在
  • 几种内存泄露检测工具的比较

    概述 内存泄漏 memory leak 指由于疏忽或错误造成程序未能释放已经不再使用的内存的情况 xff0c 在大型的 复杂的应用程序中 xff0c 内存泄漏是常见的问题 当以前分配的一片内存不再需要使用或无法访问时 xff0c 但是却并没
  • ubuntu查看磁盘占用和分配情况

    1 df hl Filesystem Size Used Avail Use Mounted on udev 978M 0 978M 0 dev tmpfs 200M 3 6M 197M 2 run dev sda5 28G 12G 15G
  • Android Studio主菜单(Main Menu)消失后,恢复显示

    当出现这个情况的时候 xff0c 我按找一般软件的办法找了半天也没找到 xff0c 最后没办法只能用万能的百度了 这里只记录一下当前我个人认为比较不错的方法 在Android Studio软件的右上角找到搜索 xff0c 输入Menu xf
  • github响应时间过长,无法访问此网站[已解决]

    某一天或某个时段总是出现 github 响应时间过长 xff0c 无法访问此网站的问题 获取github可以使用的DNS域名 通过站长工具 下的DNS查询 获取TTL值最小的 修改hosts配置 找到hosts xff08 域名解析文件 x
  • STM32(F407)—— 堆栈

    目录 1 SRAM 2 堆栈的作用 3 堆栈的设置 4 堆栈的实现 5 双堆栈机制 堆栈 是一种数据结构 堆栈都是一种数据项按序排列的数据结构 xff0c 只能在一端 称为栈顶 top 对数据项进行插入和删除 xff0c 相应地 xff0c
  • zabbix4.0学习五:Zabbix监控邮箱发送设置

    zabbix4 0学习五 xff1a Zabbix监控邮箱发送设置 文章目录 zabbix4 0学习五 xff1a Zabbix监控邮箱发送设置 前言配置centos安装mailx配置zabbix用户与报警媒介绑定 前言 zabbix里报警
  • STM32(F407)—— 存储区映射和存储器重映射

    Arm Cortex M4 处理器采用哈佛结构 xff0c 可以使用相互独立的总线来读取指令和加载 存储 数据 指令代码和数据都位于相同的存储器地址空间 xff0c 但在不同的地址范围 程序存储器 xff0c 数据存储器 xff0c 寄存器
  • MarkDown语法汇总

    文章目录 总览标题1 使用 号创建标题2 使用 61 和 号创建标题 段落1 换行2 字体格式3 删除线4 脚注5 下划线6 首行缩进7 字体颜色 大小 字体类型8 文本高亮 块引用1 嵌套块引用2 具有其他元素的块引用 列表1 有序列表2
  • 【VCU】详解S19文件(S-record)

    目录 1 概述 2 S record格式 3 S record类型 4 S19文件示例 5 校验和计算示例 6 参考 1 概述 Motorola S record是由Motorola创建的一种文件格式 xff0c 它以 ASCII十六进制
  • [ROS](03)CMakeLists.txt详解

    文章只是个人学习过程中学习笔记 xff0c 主要参考ROS教程1 目录 1 概述2 CMakeLists txt文件2 1 遵循的格式和顺序2 2 文件解析2 3 find package 2 4 catkin package 1 概述 C
  • [ROS](01)创建ROS工作空间

    文章只是个人学习过程中学习笔记 xff0c 主要参考ROS教程1 1 创建catkin工作空间 Catkin工作空间是一个文件夹 xff0c 可以在其中修改 构建和安装 catkin 包 span class token function
  • [ROS](04)package.xml详解

    文章只是个人学习过程中学习笔记 xff0c 主要参考ROS教程1 1 概述 软件包 xff08 package xff09 清单 xff08 manifest xff09 是一个名为 package xml 2 的 XML 文件 xff0c