ego-planner-master/src/planner/bspline_opt/package.xml

  声明:代码全部来源于https://github.com/ZJU-FAST-Lab/ego-planner-swarm,本人仅作解读学习交流使用,未有任何盈利,如有侵权,烦请联系笔者。

<?xml version="1.0"?>
<package format="2">
  <name>bspline_opt</name>
  <version>0.0.0</version>
  <description>The bspline_opt package</description>

  <!-- One maintainer tag required, multiple allowed, one person per tag -->
  <!-- Example:  -->
  <!-- <maintainer email="jane.doe@example.com">Jane Doe</maintainer> -->
  <maintainer email="iszhouxin@zju.edu.cn">iszhouxin</maintainer>


  <!-- One license tag required, multiple allowed, one license per tag -->
  <!-- Commonly used license strings: -->
  <!--   BSD, MIT, Boost Software License, GPLv2, GPLv3, LGPLv2.1, LGPLv3 -->
  <license>TODO</license>


  <!-- Url tags are optional, but multiple are allowed, one per tag -->
  <!-- Optional attribute type can be: website, bugtracker, or repository -->
  <!-- Example: -->
  <!-- <url type="website">http://wiki.ros.org/bspline_opt</url> -->


  <!-- Author tags are optional, multiple are allowed, one per tag -->
  <!-- Authors do not have to be maintainers, but could be -->
  <!-- Example: -->
  <!-- <author email="jane.doe@example.com">Jane Doe</author> -->


  <!-- The *depend tags are used to specify dependencies -->
  <!-- Dependencies can be catkin packages or system dependencies -->
  <!-- Examples: -->
  <!-- Use depend as a shortcut for packages that are both build and exec dependencies -->
  <!--   <depend>roscpp</depend> -->
  <!--   Note that this is equivalent to the following: -->
  <!--   <build_depend>roscpp</build_depend> -->
  <!--   <exec_depend>roscpp</exec_depend> -->
  <!-- Use build_depend for packages you need at compile time: -->
  <!--   <build_depend>message_generation</build_depend> -->
  <!-- Use build_export_depend for packages you need in order to build against this package: -->
  <!--   <build_export_depend>message_generation</build_export_depend> -->
  <!-- Use buildtool_depend for build tool packages: -->
  <!--   <buildtool_depend>catkin</buildtool_depend> -->
  <!-- Use exec_depend for packages you need at runtime: -->
  <!--   <exec_depend>message_runtime</exec_depend> -->
  <!-- Use test_depend for packages you need only for testing: -->
  <!--   <test_depend>gtest</test_depend> -->
  <!-- Use doc_depend for packages you need only for building documentation: -->
  <!--   <doc_depend>doxygen</doc_depend> -->
  <buildtool_depend>catkin</buildtool_depend>
  <build_depend>roscpp</build_depend>
  <build_depend>rospy</build_depend>
  <build_depend>std_msgs</build_depend>
  <build_depend>plan_env</build_depend>
  <build_depend>path_searching</build_depend>
  <build_export_depend>roscpp</build_export_depend>
  <build_export_depend>rospy</build_export_depend>
  <build_export_depend>std_msgs</build_export_depend>
  <build_export_depend>plan_env</build_export_depend>
  <build_export_depend>path_searching</build_export_depend>
  <exec_depend>roscpp</exec_depend>
  <exec_depend>rospy</exec_depend>
  <exec_depend>std_msgs</exec_depend>
  <exec_depend>plan_env</exec_depend>
  <exec_depend>path_searching</exec_depend>


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

  </export>
</package>

package.xml文件是Catkin软件包的元数据文件之一,用于描述软件包的基本信息,如名称、版本、作者、许可证等等。它也用于指定软件包依赖项的版本信息,以便Catkin构建系统在构建软件包时可以正确地解决依赖关系。package.xml还包含一些其他的信息,例如软件包的bug tracker、代码库位置等等。package.xml文件对于构建Catkin软件包非常重要。在构建和安装Catkin软件包时,package.xml文件是必需的,如果缺少该文件,Catkin工具将无法正确解析该软件包并生成构建系统所需的文件。

package.xml 文件不是自动生成的,而是需要开发者手动创建和编辑的。package.xml 文件用于定义 ROS 包的元信息,例如包的名称、版本、作者、依赖等。在创建一个新的 ROS 包时,需要手动编写 package.xml 文件,并根据需要进行更新。此外,一些工具,如 catkin_create_pkg 会根据用户的输入信息自动生成 package.xml 文件的基本框架,但还需要用户手动编辑和完善其中的信息。


<?xml version="1.0"?>
<package format="2">
  <name>bspline_opt</name>
  <version>0.0.0</version>
  <description>The bspline_opt package</description>

这是一个 XML 文件,是用来描述 ROS 软件包的元信息。下面是各行的含义:

  • <?xml version="1.0"?>:指定 XML 版本号。
  • <package format="2">:声明这是一个 ROS 软件包,并且使用格式 2,这是一个 ROS Kinetic 及之后版本使用的格式。
  • <name>bspline_opt</name>:指定软件包的名称为 bspline_opt
  • <version>0.0.0</version>:指定软件包的版本号为 0.0.0。通常情况下,第一个版本号表示主版本号,第二个版本号表示次版本号,第三个版本号表示修订版本号。
  • <description>The bspline_opt package</description>:指定软件包的描述信息为 The bspline_opt package

  <!-- One maintainer tag required, multiple allowed, one person per tag -->
  <!-- Example:  -->
  <!-- <maintainer email="jane.doe@example.com">Jane Doe</maintainer> -->
  <maintainer email="iszhouxin@zju.edu.cn">iszhouxin</maintainer>

这是在package.xml文件中指定软件包维护者的标签。email属性用于指定维护者的电子邮件地址,文本内容用于指定维护者的名称。可以有多个maintainer标签,以指定多个维护者。在这个例子中,维护者的电子邮件地址是iszhouxin@zju.edu.cn,名称是iszhouxin

在XML文件中,注释的格式为 <!-- 注释内容 -->,其中 <!-- 表示注释开始,--> 表示注释结束。


  <!-- One license tag required, multiple allowed, one license per tag -->
  <!-- Commonly used license strings: -->
  <!--   BSD, MIT, Boost Software License, GPLv2, GPLv3, LGPLv2.1, LGPLv3 -->
  <license>TODO</license>

这段XML代码是关于软件包许可证的信息。注释中列出了常用的许可证字符串,而<license>标签是用于指定软件包的实际许可证。在这个例子中,许可证是TODO,这意味着许可证尚未确定,需要后续进一步添加和完善。


<!-- Url tags are optional, but multiple are allowed, one per tag -->
  <!-- Optional attribute type can be: website, bugtracker, or repository -->
  <!-- Example: -->
  <!-- <url type="website">http://wiki.ros.org/bspline_opt</url> -->

这段 XML 注释描述了 package.xml 文件中可选的 <url> 标签。每个标签可以包含一个 URL,并且可以使用 type 属性指定其类型(例如,网站、问题跟踪器或存储库)。


<!-- Author tags are optional, multiple are allowed, one per tag -->
  <!-- Authors do not have to be maintainers, but could be -->
  <!-- Example: -->
  <!-- <author email="jane.doe@example.com">Jane Doe</author> -->

在ROS中的package.xml文件中,可以使用<author>标签来列出一个或多个软件包作者的信息。该标签是可选的,其主要用途是提供有关软件包开发人员的信息,包括姓名和电子邮件地址等。

需要注意的是,<author>标签与<maintainer>标签是不同的,前者提供软件包作者信息,后者提供软件包维护者的信息。


  <!-- The *depend tags are used to specify dependencies -->
  <!-- Dependencies can be catkin packages or system dependencies -->
  <!-- Examples: -->
  <!-- Use depend as a shortcut for packages that are both build and exec dependencies -->
  <!--   <depend>roscpp</depend> -->
  <!--   Note that this is equivalent to the following: -->
  <!--   <build_depend>roscpp</build_depend> -->
  <!--   <exec_depend>roscpp</exec_depend> -->
  <!-- Use build_depend for packages you need at compile time: -->
  <!--   <build_depend>message_generation</build_depend> -->
  <!-- Use build_export_depend for packages you need in order to build against this package: -->
  <!--   <build_export_depend>message_generation</build_export_depend> -->
  <!-- Use buildtool_depend for build tool packages: -->
  <!--   <buildtool_depend>catkin</buildtool_depend> -->
  <!-- Use exec_depend for packages you need at runtime: -->
  <!--   <exec_depend>message_runtime</exec_depend> -->
  <!-- Use test_depend for packages you need only for testing: -->
  <!--   <test_depend>gtest</test_depend> -->
  <!-- Use doc_depend for packages you need only for building documentation: -->
  <!--   <doc_depend>doxygen</doc_depend> -->

这段代码是用于 package.xml 文件中指定依赖关系的说明,主要包含以下指令:

  • depend:用于指定既是构建依赖项又是运行依赖项的包,等同于 build_depend 和 exec_depend 两个指令的组合。
  • build_depend:用于指定在编译时需要的依赖项。
  • build_export_depend:用于指定需要在构建此包时使用的依赖项,即其他需要构建此包的包的依赖项。
  • buildtool_depend:用于指定构建工具依赖项,例如 catkin 工具。
  • exec_depend:用于指定在运行时需要的依赖项。
  • test_depend:用于指定仅在测试时需要的依赖项。
  • doc_depend:用于指定仅在构建文档时需要的依赖项。

这些指令的使用可以根据需要进行组合,以满足构建和运行所需的依赖项。


  <buildtool_depend>catkin</buildtool_depend>
  <build_depend>roscpp</build_depend>
  <build_depend>rospy</build_depend>
  <build_depend>std_msgs</build_depend>
  <build_depend>plan_env</build_depend>
  <build_depend>path_searching</build_depend>
  <build_export_depend>roscpp</build_export_depend>
  <build_export_depend>rospy</build_export_depend>
  <build_export_depend>std_msgs</build_export_depend>
  <build_export_depend>plan_env</build_export_depend>
  <build_export_depend>path_searching</build_export_depend>
  <exec_depend>roscpp</exec_depend>
  <exec_depend>rospy</exec_depend>
  <exec_depend>std_msgs</exec_depend>
  <exec_depend>plan_env</exec_depend>
  <exec_depend>path_searching</exec_depend>

这段代码是在package.xml文件中用于指定依赖关系的部分,其中包含了一些<buildtool_depend>, <build_depend>, <build_export_depend><exec_depend>等指令。

<buildtool_depend> 指令指定用于构建该包的构建工具的依赖关系,对于大多数ROS包来说,构建工具是Catkin。

<build_depend> 指令指定构建该包所需的其他包的依赖关系,这些依赖关系在构建过程中被安装到catkin工作空间中。在这个例子中,这些包包括roscpp、rospy、std_msgs、plan_env和path_searching。

<build_export_depend> 指令指定其他的包需要在编译该包时才需要的依赖项,但是这些依赖关系需要与该包一起安装以供其他包使用。这些依赖项与<build_depend>指令不同,它们仅在编译过程中需要,而不在运行时需要。在这个例子中,这些包包括roscpp、rospy、std_msgs、plan_env和path_searching。

<exec_depend> 指令指定在运行时必须安装的其他包的依赖关系。在这个例子中,这些包包括roscpp、rospy、std_msgs、plan_env和path_searching。

需要注意的是,这些依赖关系并不是硬性要求的,而是作为提示来告诉用户这个软件包需要哪些其他软件包。在构建和运行过程中,catkin会尝试自动安装这些依赖关系,但是如果用户已经手动安装了这些依赖关系,catkin就不会再次安装它们。


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

<export> 标签中的内容用于为其他软件工具提供与此包相关的附加信息。这些工具可以请求将其他标签添加到 <export> 标签中,以公开有关软件包的特定信息。通常,这些信息是与软件包的构建和依赖关系相关的元数据,这些元数据可以在其他软件工具中使用。例如,某些软件工具可能需要知道软件包的头文件路径或链接库路径。


  </export>
</package>

这是一个XML文件的结尾,用于表示一个ROS软件包的结束。</export>标记表示软件包的导出信息结束,而</package>标记表示整个软件包定义的结束。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值