实践与wiki教程对比学习ROS(catkin/package.xml)
来源:互联网 发布:mac安装windows10失败 编辑:程序博客网 时间:2024/05/20 07:20
【wiki版本】
1.概述
该软件包清单是一个XML文件名为package.xml中必须包括与任何兼容柳絮包的根文件夹。此文件定义包的属性,例如包名称,版本号,作者,维护者和对其他catkin包的依赖性。
2.格式
<package format =“2”></ package>
2.2 【必须的标签】有一个最小的标签集需要嵌套在<package>标签中以使包清单完整。
<name> - 包的名称
<version> - 软件包的版本号(需要3个点分隔的整数)
<description> - 包内容的描述
<maintainer> - 维护包裹的人员的姓名
<license> - 发布代码的软件许可证(例如GPL,BSD,ASL)。
<package format =“2”> <name> foo_core </ name> <version> 1.2.4 </ version> <description> 此包提供foo功能。 </ description> <maintainer email =“ivana@osrf.org”> Ivana Bildbotz </ maintainer> <license> BSD </ license></ package>
2.3【依赖】具有最小标记的包清单不指定对其他包的任何依赖性。软件包可以有六种类型的依赖:
构建依赖关系指定构建此包所需的包。这是在构建时需要这些包中的任何文件的情况。这可以在编译时包括来自这些包的头,从这些包链接到库,或者在构建时需要任何其他资源(特别是当这些包在CMake 中是find_package()时)。在交叉编译场景中,构建依赖关系是针对目标体系结构的。
构建导出依赖关系指定需要哪些包来针对此包构建库。这是这种情况下,当你在头文件包中的公共头包含他们的头文件(特别是当这些包声明为(CATKIN_)DEPENDS在catkin_package()在CMake)。
执行依赖关系指定在此软件包中运行代码所需的软件包。这是依赖于此包中的共享库(特别是当这些包在CMake 中的catkin_package()中声明为(CATKIN_)DEPENDS时)。
测试依赖关系仅指定单元测试的附加依赖关系。它们不应该复制已经提到的构建或运行依赖项的任何依赖项。
构建工具依赖关系指定构建系统工具,这个包需要构建自己。通常,唯一需要的构建工具是catkin。在交叉编译场景中,构建工具依赖性是针对执行编译的体系结构。
文档工具依赖性指定此程序包生成文档所需的文档工具。
这六种类型的依赖关系使用以下各自的标签指定:
< depends >指定依赖关系是构建,导出和执行依赖关系。这是最常用的依赖标签。
<buildtool_depend>
<build_depend>
<build_export_depend>
<exec_depend>
<test_depend>
<doc_depend>
所有包都至少有一个依赖,一个构建工具依赖catkin如下例所示。
<package> <name> foo_core </ name> <version> 1.2.4 </ version> <description> 此包提供foo功能。 </ description> <maintainer email =“ivana@osrf.org”> Ivana Bildbotz </ maintainer> <license> BSD </ license> <buildtool_depend> catkin </ buildtool_depend></ package>指定build,exec,test和doc依赖项的更现实的示例可以如下所示。
<package> <name> foo_core </ name> <version> 1.2.4 </ version> <description> 此包提供foo功能。 </ 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> <depends> roscpp </ depend> <depends> 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【metapackage】将多个包作为单个逻辑包进行分组通常很方便。这可以通过元包实现。metapackage是一个在package.xml中具有以下导出标记的普通软件包:
<export> <metapackage /> </ export>
cmake_minimum_required(VERSION 2.8.3)项目(<PACKAGE_NAME>)find_package(catkin REQUIRED)catkin_metapackage()注意:将<PACKAGE_NAME>替换为元素包的名称。
<url> - 关于软件包的信息的URL,通常是ros.org上的wiki页面。
<author> - 包的作者
【实践版本】
- 实践与wiki教程对比学习ROS(catkin/package.xml)
- ROS之catkin介绍(CMakeLists.txt 、package.xml)
- ROS学习笔记(三)::RVIZ::wiki::translation::catkin:一:Creating a workspace for catkin
- ROS进二阶学习笔记(9)-- 关于Overlay:重名 package 在不同catkin workspace 中,
- ROS学习(五):package.xml 文件
- 学习ROS wiki 上rqt教程随手记录(一)
- ROS wiki教程翻译
- ROS Wiki教程总结
- ROS学习--(四)创建ROS Package
- ROS学习--(五)编译ROS Package
- ROS与Python入门教程-构建Catkin包
- ROS学习笔记-1: 构建工作空间-创建catkin包-编写发布器与订阅器
- ROS中package.xml
- ROS教程(十九):手动创建ROS package
- ROS学习笔记(三)先锋机器人的使用 — 参考 ROS wiki 和 Mobile wiki
- ROS的学习(五)在工作空间中构建和使用catkin包
- 【ROS学习】(三)package.xml和CmakeList.txt文件的编写
- ROS学习之CMakelists.txt和package.xml
- 闭包最常用的三种用法
- 折半查找的原理及其java的两种实现
- Swift3.1-实现自定义Log
- program received SIGSEGV
- mysql5.7解压版的安装与配置
- 实践与wiki教程对比学习ROS(catkin/package.xml)
- L1-003. 个位数统计
- 05:输出保留12位小数的浮点数
- 判断TextView是否有内容省略
- Tensorflow RNN源代码解析笔记1:RNNCell的基本实现
- java字符串转换成时间Unparseable date错误的解决方案
- C++抽象编程——递归简介(2)——阶乘函数的执行分析
- tcp请求建立连接,结束连接握手过程
- Spring源码解读前篇--Spring容器的设计