1. 程式人生 > >ROS中package.xml檔案標籤

ROS中package.xml檔案標籤

目錄

概述

軟體包清單是一個XML檔名為package.xml中必須包括與任何相容包的根資料夾。此檔案定義有關包的屬性,例如包名稱,版本號,作者,維護者以及其他catkin包的依賴關係。請注意,這個概念類似於傳統rosbuild構建系統中使用的manifest.xml檔案。

您的系統包依賴關係在package.xml中宣告。如果缺少或不正確,您可能可以從原始碼構建,並在自己的機器上執行測試,但是當釋出到ROS社群時,您的軟體包將無法正常工作。其他依賴於這些資訊來安裝他們使用您的軟體包所需的軟體。

格式2(推薦)

這是新軟體包的推薦格式。還建議將較舊的格式1包遷移為格式2.有關從格式1遷移到格式2的說明,請參閱

catkin API文件中的從格式1遷移到格式2 。

基本結構

每個package.xml檔案都有<package>標籤作為根標記檔案。

<package format =“2”>

</ package>

所需標籤

有一小部分標籤需要巢狀在<package>標籤中,以使包清單完整。

  • <name> - 包的名稱

  • <version> - 包的版本號(需要3個點分隔的整數)

  • <description> - 包裝內容的描述

  • <maintainer> - 維護包的人員的名稱

  • <license> - 釋出程式碼的軟體許可證(例如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="[email protected]
">Ivana Bildbotz</maintainer> <license>BSD</license> </package> 

複製程式碼

依賴關係

具有最小標籤的包清單不指定對其他包的任何依賴關係。軟體包可以有六種依賴關係:

  • 構建依賴關係指定構建此包所需的包。在構建時需要這些軟體包中的任何檔案時才是這種情況。這可以包括在編譯時的標頭檔案,連結到這些包的庫檔案或在構建時需要任何其他資源(特別是當這些包在CMake 中是find_package()時)。在交叉編譯場景中,構建依賴關係針對目標體系結構。

  • 構建匯出依賴關係指定根據此包構建庫所需的包。當您將此標頭檔案包含在此包中的公用標頭檔案中時(特別是當CMake中的catkin_package()中宣告為(CATKIN_DEPENDS 時),就是這種情況。

  • 執行依賴關係指定在此程式包中執行程式碼所需的軟體包。當您依賴此程式包中的共享庫(尤其是當CMake 中的catkin_package()中宣告為(CATKIN_DEPENDS 時),就是這種情況。

  • 測試依賴關係僅指定單元測試的附加依賴項。他們不應該將已經提到的任何依賴關係重複為構建或執行依賴關係。

  • 構建工具依賴關係指定此軟體包需要構建自身的構建系統工具。通常唯一的構建工具是catkin。在交叉編譯場景中,構建工具依賴關係用於執行編譯的架構。

  • 文件工具依賴關係指定此軟體包需要生成文件的文件工具。

這六種依賴關係使用以下相應的標籤來指定:

  • <depend>指定依賴關係是構建,匯出和執行依賴關係。這是最常用的依賴標記。

  • <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>
    This package provides foo capability.
  </description>
  <maintainer email="[email protected]">Ivana Bildbotz</maintainer>
  <license>BSD</license>

  <buildtool_depend>catkin</buildtool_depend>
</package>

複製程式碼

指定構建,執行,測試和文件依賴關係的更現實的示例可能如下所示。

複製程式碼

<package>
  <name>foo_core</name>
  <version>1.2.4</version>
  <description>
    This package provides foo capability.
  </description>
  <maintainer email="[email protected]">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>

複製程式碼

關於依賴關係的更多細節可以在這裡的 catkin API文件中找到

Metapackages

將多個軟體包分組為單個邏輯軟體包通常很方便。這可以通過metapackages來實現。元包是在package.xml中具有以下匯出標記的普通包:

 <export>
   <metapackage />
 </ export>

除了所要求的<buildtool_depends>的依賴,元資料包只能有在包上執行依賴關係,其中它們組。

另外,metapackage有一個必需的,樣板CMakeLists.txt檔案:

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

注意:將<PACKAGE_NAME>替換為metapackage的名稱。

附加標籤

  • <url> - 有關該軟體包資訊的URL,通常是ros.org上的wiki頁面。

  • <author> - 包的作者

格式1

舊的catkin pakages使用格式1.如果<package>標籤沒有format屬性,它是一個格式1的包。使用格式2的新包。

package.xml的格式很簡單。

基本結構

每個package.xml檔案都有<package>標籤作為根標記檔案。

<package>

</package>

所需標籤

有一小部分標籤需要巢狀在<package>標籤中,以使包清單完整。

  • <name> - 包的名稱

  • <version> - 包的版本號(需要3個點分隔的整數)

  • <description> - 包裝內容的描述

  • <maintainer> - 維護包的人員的名稱

  • <license> - 釋出程式碼的軟體許可證(例如GPL,BSD,ASL)。

例如,這裡是一個名為foo_core的虛構包的包清單

複製程式碼

<package>
  <name>foo_core</name>
  <version>1.2.4</version>
  <description>
  This package provides foo capability.
  </description>
  <maintainer email="[email protected]">Ivana Bildbotz</maintainer>
  <license>BSD</license>
</package>

複製程式碼

構建,執行和測試依賴關係

具有最小標籤的包清單不指定對其他包的任何依賴關係。軟體包可以有四種依賴關係:

  • 構建工具依賴關係指定此軟體包需要構建自身的構建系統工具。通常唯一的構建工具是catkin。在交叉編譯場景中,構建工具依賴關係用於執行編譯的架構。

  • 構建依賴關係指定構建此包所需的包。在構建時需要這些軟體包中的任何檔案時才是這種情況。這可以包括這些包在編譯時的標頭,連結到這些包的庫或在構建時需要任何其他資源(特別是當這些包在CMake 中是find_package())時)。在交叉編譯場景中,構建依賴關係針對目標體系結構。

  • 執行依賴關係指定在此程式包中執行程式碼所需的軟體包,或針對此軟體包構建庫。在這種情況下,您依賴於共享庫或將其頭部包含在此包中的公頭中(特別是當這些包在CMake 中的catkin_package()中宣告為(CATKIN_DEPENDS時)。

  • 測試依賴關係僅指定單元測試的附加依賴項。他們不應該將已經提到的任何依賴關係重複為構建或執行依賴關係。

這四種類型的依賴關係使用以下相應的標籤來指定:

  • <buildtool_depend>

  • <build_depend>

  • <run_depend>

  • <test_depend>

所有包至少有一個依賴關係,構建工具依賴於catkin,如下例所示。

複製程式碼

<package>
  <name>foo_core</name>
  <version>1.2.4</version>
  <description>
    This package provides foo capability.
  </description>
  <maintainer email="[email protected]">Ivana Bildbotz</maintainer>
  <license>BSD</license>

  <buildtool_depend>catkin</buildtool_depend>
</package>

複製程式碼

指定構建,執行時和測試依賴關係的更實際的示例可能如下所示。

複製程式碼

<package>
  <name>foo_core</name>
  <version>1.2.4</version>
  <description>
    This package provides foo capability.
  </description>
  <maintainer email="[email protected]">Ivana Bildbotz</maintainer>
  <license>BSD</license>

  <url>http://ros.org/wiki/foo_core</url>
  <author>Ivana Bildbotz</author>

  <buildtool_depend>catkin</buildtool_depend>

  <build_depend>message_generation</build_depend>
  <build_depend>roscpp</build_depend>
  <build_depend>std_msgs</build_depend>

  <run_depend>message_runtime</run_depend>
  <run_depend>roscpp</run_depend>
  <run_depend>rospy</run_depend>
  <run_depend>std_msgs</run_depend>

  <test_depend>python-mock</test_depend>
</package>

複製程式碼

有關依賴關係的更多細節可以在這裡找到。

Metapackages

將多個軟體包分組為單個邏輯軟體包通常很方便。這可以通過metapackages來實現。元包是在package.xml中具有以下匯出標記的普通包:

<export>
   <metapackage />
 </export>

除了所要求的<buildtool_depends>的依賴,元資料包只能有在包裝上執行依賴關係,其中它們組。

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

注意:將<PACKAGE_NAME>替換為metapackage的名稱。

附加標籤

  • <url> - 有關該軟體包資訊的URL,通常是ros.org上的wiki頁面。

  • <author> - 包的作者

最後來一個小海龜的package.xlm的例子

複製程式碼

<?xml version="1.0"?>
<package>
  <name>turtlesim</name>
  <version>0.5.5</version>
  <description>
    turtlesim is a tool made for teaching ROS and ROS packages.
  </description>
  <maintainer email="[email protected]">Dirk Thomas</maintainer>
  <license>BSD</license>

  <url type="website">http://www.ros.org/wiki/turtlesim</url>
  <url type="bugtracker">https://github.com/ros/ros_tutorials/issues</url>
  <url type="repository">https://github.com/ros/ros_tutorials</url>
  <author>Josh Faust</author>

  <buildtool_depend>catkin</buildtool_depend>

  <build_depend>geometry_msgs</build_depend>
  <build_depend>libqt4-dev</build_depend>
  <build_depend>message_generation</build_depend>
  <build_depend>qt4-qmake</build_depend>
  <build_depend>rosconsole</build_depend>
  <build_depend>roscpp</build_depend>
  <build_depend>roscpp_serialization</build_depend>
  <build_depend>roslib</build_depend>
  <build_depend>rostime</build_depend>
  <build_depend>std_msgs</build_depend>
  <build_depend>std_srvs</build_depend>

  <run_depend>geometry_msgs</run_depend>
  <run_depend>libqt4</run_depend>
  <run_depend>message_runtime</run_depend>
  <run_depend>rosconsole</run_depend>
  <run_depend>roscpp</run_depend>
  <run_depend>roscpp_serialization</run_depend>
  <run_depend>roslib</run_depend>
  <run_depend>rostime</run_depend>
  <run_depend>std_msgs</run_depend>
  <run_depend>std_srvs</run_depend>
</package>

相關推薦

ROSpackage.xml檔案標籤

目錄 概述 該軟體包清單是一個XML檔名為package.xml中必須包括與任何相容包的根資料夾。此檔案定義有關包的屬性,例如包名稱,版本號,作者,維護者以及其他catkin包的依賴關係。請注意,這個概念類似於傳統rosbuild構建系統中使用的manifest.xm

ROS-package.xml檔案

前言:package.xml是一個XML檔名為package.xml中必須包括與任何相容包的根資料夾。此檔案定義有關包的屬性,例如包名稱,版本號,作者,維護者以及其他catkin包的依賴關係。 標籤 功能 <?xml> 

MyBatisxml檔案部分標籤使用

1:parameterType、resultType 無非就是物件,map,其他型別 <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.

springboot多模組專案,引用子專案的mapperxml檔案

springboot多模組專案,引用子專案的mapper中的xml檔案,一直引用不到, 提示: Caused by: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): utopi

Ros 的launch檔案

在ROS中,每個節點通常有許多引數需要設定,為了方便高效操作多個節點,可以編寫launch檔案,然後用roslaunch命令執行 使用方式: roslaunch [options] [package]<filename>[arg_name:=value...] roslaun

去掉IntelliJ IDEA mapper xml 檔案警告

版權宣告:本文為博主原創文章,如需轉載,請寫明出處, 尊重他人即尊重自己(^_^)。 http://blog.csdn.net/aubdiy/article/details/68485336 IntelliJ IDEA 開啟 mybatis 的 xml 檔案時,對應的 xml

IntelliJ IDEA建立xml檔案

1、file—setting,左上角輸入template, 2、在左側欄找到File And Code Templates 3、中間選中Files 4、點選+號,新增模板 5、輸入模板名字:Name:mybatis-cfg.xml (nam

tomcatserver.xml檔案配置解析

server.xml配置簡介          下面是這個檔案中的基本配置資訊,更具體的配置資訊見tomcat的文件          server:      

javawebxml檔案報錯:Multiple annotations found at this line:

今天在學習java web中的Filter的時候在配置xml檔案的報了一個錯誤: Multiple annotations found at this line:     - <?xml version="1.0" encoding="UTF-8"?>   

Ideapom.xml檔案新增包的時候不自動提示解決方法

解決方案很簡單: (1)File–>Settings… (2)Build,Execution,Deployment --> Build Tools --> Maven -->Reposi tories (3)選中第一項,右側的Update便會亮起 (4)點選Up

如何在tomcat伺服器讀取xml檔案(路徑問題)

因為之前用的dom4j讀取的都是本地的xml檔案,所以一旦在伺服器中就不能再像之前那樣獲取xml路徑了。 可以通過反射獲得專案的src的路徑。 問題:如何在伺服器中讀取xml檔案(路徑問題)讀取product.xml檔案 解決方案:

Eclipse設定XML檔案的自動格式化配

  在Eclipse下編輯XML檔案時可以像Java檔案一樣進行格式化。不過,預設的格式化設定效果不太理想,尤其是標籤屬性較多時。   通過以下設定可以達到一個相對理想的效果:   Window -> Preferences -> XML ->XML Fi

FLEX讀取XML檔案

有時候我們可能需要在FLEX中操作XML檔案. 可以在Flex客戶端工程的資原始檔夾asserts裡面新增.asserts/config/text.xml  如下: <configuration> <config> <con1 tit

Mybatis Mapper XML 檔案 的學習詳解(強烈推薦)

Auto-mapping As you have already seen in the previous sections, in simple cases MyBatis can auto-map the results for you and in others you will need

java解析xml檔案的五種常見方法:DOM4J,dom,pull,SAX,Jdom

package com.zhidi.dom4jtest; import java.io.File; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import or

JAVA以及JSP讀取XML檔案(解析及路徑問題)

    在系統開發過程中,從配置檔案中讀取配置資訊是每一個系統必須具備的功能,例如,我們要配置讀取資料庫配置資訊,包括驅動程式名、連線字串,使用者名稱,口令等資訊,由於這些資訊會隨著使用者的不同而發生

mybatis的.xml檔案總結--mybatis的動態sql

https://www.cnblogs.com/xiaoxi/p/6406504.html resultMap resultType可以指定pojo將查詢結果對映為pojo,但需要pojo的屬性名和sql查詢的列名一致方可對映成功。 如果sql查詢欄位名和pojo的屬性名不一致,可以通過

解決Struts2XML檔案沒有提示的問題

剛接觸Struts時,你可能會遇到這樣的問題,在寫XML配置檔案的時候,輸入尖括號"<"後,按快捷鍵alt+/沒有程式碼提示,可別人的有,現在我們分析下原因。在Struts.xml中有這樣一段:

QT讀取XML檔案三種方式 的例項

第一部分:QXmlStreamReader XML(eXtensible Markup Language)是一種通用的文字格式,被廣泛運用於資料交換和資料儲存(雖然近年來 JSON 盛行,大有取代 XML 的趨勢,但是對於一些已有系統和架構,比如 WebService,由於歷史原因,仍舊會繼

Spring專案XML檔案熱載入程式碼實現

前言: 平時我們進行Spring專案開發的時候,經常需要因為XML的改變而重啟伺服器,假如專案較大的時候,重啟將會非常耗時。最近編寫的webschool框架需要用到較多的XML檔案進行配置,在這裡參考公司程式碼,實現了對XML檔案的熱載入。 效果 每