警告
您正在阅读的 ROS 2 文档版本已达到 EOL(生命周期结束),不再受官方支持。如果您想了解最新信息,请访问 Jazzy.
开发 ROS 2 软件包
本教程将教你如何创建第一个 ROS 2 应用程序。本教程面向希望学习如何在 ROS 2 中创建自定义软件包的开发人员,而不是希望使用 ROS 2 现有软件包的人员。
先决条件
创建软件包
所有 ROS 2 软件包都以运行命令
玫瑰2 包 创建 <pkg-name>; --依赖 [裁员]
在您的工作区(通常是 ~/ros2_ws/src
).
为特定客户端库创建软件包:
玫瑰2 包 创建 <pkg-name>; --依赖 [裁员] --构建类型 ament_cmake
玫瑰2 包 创建 <pkg-name>; --依赖 [裁员] --构建类型 ament_python
然后您就可以更新 package.xml
软件包信息,如依赖关系、描述和作者。
C++ 软件包
您将主要使用 add_executable()
CMake 宏以及
ament_target_dependencies(<可执行文件名>; [依赖项])
来创建可执行节点和链接依赖项。
要安装启动文件和节点,可以使用 安装()
宏放在文件末尾,但在 ament_package()
宏观。
启动文件和节点的示例:
# 安装启动文件
安装(
目录 启动
目的地 分享/${项目名称}
)
# 安装节点
安装(
目标 [节点名]
目的地 lib/${项目名称}
)
Python 软件包
ROS 2 遵循 Python 的标准模块发布流程,使用 设置工具
.对于 Python 软件包, setup.py
文件补充了 C++ 软件包的 CMakeLists.txt
.有关分发的更多详情,请参阅 官方文件.
在您的 ROS 2 软件包中,应该有一个 setup.cfg
文件,它看起来像
[发展]
脚本目录=基数/lib/<package-name>;
[安装]
安装脚本=基数/lib/<package-name>;
和一个 setup.py
文件,看起来就像
舶来品 os
从 水珠 舶来品 水珠
从 设置工具 舶来品 设置
包名 = 'my_package';
设置(
名字=包名,
版本='0.0.0',
# 要导出的软件包
套餐=[包名],
# 我们要安装的文件,特别是启动文件
数据文件=[
# 在软件包索引中安装标记文件
('share/ament_index/resource_index/packages';, ['资源/'; + 包名]),
# 包括我们的 package.xml 文件
(os.路.加入('分享';, 包名), ['package.xml';]),
# 包括所有启动文件。
(os.路.加入('分享';, 包名, 'launch';), 水珠(os.路.加入('launch';, *.启动.py'))),
],
# 这一点也很重要
安装要求=['setuptools';],
zip_safe=正确,
作者=ROS 2 开发人员';,
作者电子邮件='[email protected]',
维护者=ROS 2 开发人员';,
维护者电子邮件='[email protected]',
关键词=['foo';, 'bar';],
分类器=[
'目标受众 :: 开发人员';,
'许可 :: TODO';,
'编程语言 :: Python';,
'主题 ::软件开发';,
],
描述='我的超棒套餐;,
许可='TODO';,
# 与 CMakeLists 的 add_executable 宏一样,您可以将您的 python
# 脚本在此。
入口={
'console_scripts';: [
'my_script = my_package.my_script:main';
],
},
)