迁移接口
信息、服务和操作统称为 界面
在 ROS 2 中。
界面定义
信息文件必须以 .msg
必须位于子文件夹 信息
.服务文件必须以 .srv
必须位于子文件夹 服务
.操作文件必须以 .行动
必须位于子文件夹 行动
.
这些文件可能需要更新,以符合 ROS 接口定义.删除了一些原始类型,并删除了 会期
和 时间
在 ROS 1 中是内建类型,现在已被普通的消息定义所取代,必须从 内置接口 软件包。此外,一些命名约定也比 ROS 1 更为严格。 概念文章.
建筑界面
ROS 2 中构建接口的方式与 ROS 1 有很大不同。 CMakeLists.txt
.如果您开发的是纯 Python 软件包,则应将接口放在另一个仅包含接口的软件包中(无论如何,这是最好的做法)。参见 自定义界面教程 了解更多信息。
将接口软件包迁移到 ROS 2
在您的 package.xml
:
添加
<buildtool_depend>rosidl_default_generators</buildtool_depend>;
.添加
<exec_depend>rosidl_default_runtime</exec_depend>;
.添加
<member_of_group>rosidl_interface_packages</member_of_group>;
为每个从属报文包添加
<依赖>消息包</依赖>;
.
在您的 CMakeLists.txt
:
启用 C++17
设置(cmake_cxx_standard 17)
添加
find_package(rosidl_default_generators) 必填)
为每个从属报文包添加
find_package(message_package 必填)
并将 CMake 函数调用替换为生成消息
与生成接口
.
这将取代 添加信息文件
和 添加服务文件
可删除的所有信息和服务文件的列表。