Windows ROS2使用教程03-首个功能包的创建

Windows ROS2使用教程03-首个功能包的创建

上一篇在win11下验证了ROS2开发环境(编译),其中使用了官方提供的demo程序,而非自行创建的功能包;本章将自行创建功能包熟悉ROS2开发流程.

背景

1 什么是 ROS 2 包?

包是 ROS 2 代码的组织单位。如果您希望能够安装代码或与其他人共享代码,那么您需要将其组织在包中。通过包,您可以发布您的 ROS 2 作品并允许其他人轻松构建和使用它。

ROS 2 中的包创建使用 ament 作为其构建系统,并使用 colcon 作为其构建工具。您可以使用官方支持的 CMake 或 Python 创建包,但也存在其他构建类型。

2 ROS 2 包由哪些部分组成?

ROS 2 Python 和 CMake 包各自有自己的最低要求内容:

  • CMakeLists.txt描述如何在包中构建代码的文件

  • include/<package_name>包含包的公共标头的目录

  • package.xml包含有关包的元信息的文件

  • src包含包的源代码的目录

最简单的包可能具有如下所示的文件结构:

my_package/
     CMakeLists.txt
     include/my_package/
     package.xml
     src/

先决条件

按照上一教程中的说明进行操作后,您应该拥有一个 ROS 2 工作区。您将在此工作区中创建包。Win11下其实就是创建好指定文件夹。

操作步骤

1 创建包

首先,获取 ROS 2 安装的源码。

让我们将您在上一教程ros2_ws中创建的工作区用于您的新包。

src在运行包创建命令之前,请确保您位于该文件夹中。

cd 
os2_wssrc

在本教程中,您将使用可选参数–node-name在包中创建一个简单的 Hello World 类型可执行文件。

在终端中输入以下命令:

ros2 pkg create --build-type ament_cmake --node-name my_node my_package

运行命令后,您的终端将返回消息:

Windows ROS2使用教程03-首个功能包的创建

2 构建

略,参考上一篇开发环境验证

3 应用环境变量

install/local_setup.bat

4 使用包

要运行您–node-name在包创建期间使用参数创建的可执行文件,请输入以下命令:

ros2 run my_package my_node

这将向您的终端返回一条消息:

hello world my_package package

5 自定义package.xml

您可能已经注意到,在创建包后的返回消息中,字段description和license包含TODO注释。这是因为包描述和许可证声明不会自动设置,但如果您想要发布包,则需要它们。该maintainer字段可能还需要填写。

从,使用您喜欢的文本编辑器ros2_ws/src/my_package打开:package.xml

CMake

<?xml version="1.0"?>
<?xml-model
   href="http://download.ros.org/schema/package_format3.xsd"
   schematypens="http://www.w3.org/2001/XMLSchema"?>
<package format="3">
 <name>my_package</name>
 <version>0.0.0</version>
 <description>TODO: Package description</description>
 <maintainer email="user@todo.todo">user</maintainer>
 <license>TODO: License declaration</license>

 <buildtool_depend>ament_cmake</buildtool_depend>

 <test_depend>ament_lint_auto</test_depend>
 <test_depend>ament_lint_common</test_depend>

 <export>
   <build_type>ament_cmake</build_type>
 </export>
</package>

maintainer如果系统没有自动填充您的姓名和电子邮件,请在行中输入您的姓名和电子邮件。然后,编辑该description行以总结该包:

<description>Beginner client libraries tutorials practice package</description>

然后,更新该license行。您可以在此处阅读有关开源许可证的更多信息。由于该软件包仅用于练习,因此使用任何许可证都是安全的。我们将使用:Apache License 2.0

<license>Apache License 2.0</license>

完成编辑后不要忘记保存。

在许可证标签下方,您将看到一些以_depend.您可以在此处package.xml列出其对其他包的依赖关系,以供 colcon 搜索。 my_package很简单并且没有任何依赖项,但是您将在接下来的教程中看到这个空间的使用。

概括

您已经创建了一个包来组织您的代码并使其易于其他人使用。

您的包会自动填充必要的文件,然后您使用 colcon 来构建它,以便您可以在本地环境中使用它的可执行文件。千里之行始于足下,基础环境已参考官方链接验证完成,后面才是真正的开始,加油,继续我的Windows踩坑之路。

参考连接

https://docs.ros.org/en/foxy/Tutorials/Beginner-Client-Libraries/Colcon-Tutorial.html

https://docs.ros.org/en/foxy/Tutorials/Beginner-CLI-Tools/Configuring-ROS2-Environment.html

Windows ROS2使用教程03-首个功能包的创建

© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...