【ROS2】初级:客户端-实现自定义接口

目标:学习更多在 ROS 2 中实现自定义接口的方法。

 教程级别:初学者

 时间:15 分钟

 目录

  •  背景

  •  先决条件

  •  任务

    • 1. 创建一个包

    • 2. 创建一个 msg 文件

    • 3. 使用来自同一包的接口

    • 4. 尝试一下

    • 5. 使用现有的接口定义

  •  摘要

  •  下一步

  •  相关内容

 背景

在之前的教程中,您学习了如何创建自定义 msg 和 srv 接口。

虽然最佳实践是在专用的接口包中声明接口,但有时在一个包中声明、创建和使用接口会更方便。

请记住,接口目前只能在 CMake 包中定义。然而,可以在 CMake 包中拥有 Python 库和节点(使用 ament_cmake_python),因此您可以在一个包中同时定义接口和 Python 节点。为了简单起见,我们将在这里使用 CMake 包和 C++节点。

本教程将重点介绍 msg 接口类型,但这里的步骤适用于所有接口类型。

 先决条件

我们假设您在学习本教程之前,已经复习了《创建自定义 msg 和 srv 文件》教程中的基础知识。

您应该安装了 ROS 2,拥有一个工作空间,并且理解如何创建包。

始终不要忘记在您打开的每个新终端中获取 ROS 2 的源。

 任务

1. 创建一个包

在您的工作空间 src 目录中,创建一个包 more_interfaces ,并在其中为 msg 文件创建一个目录:

ros2 pkg create --build-type ament_cmake --license Apache-2.0 more_interfaces
mkdir more_interfaces/msg
cxy@ubuntu2404-cxy:~/ros2_ws/src$ ros2 pkg create --build-type ament_cmake --license Apache-2.0 more_interfaces
going to create a new package
package name: more_interfaces
destination directory: /home/cxy/ros2_ws/src
package format: 3
version: 0.0.0
description: TODO: Package description
maintainer: ['cxy <cxy@todo.todo>']
licenses: ['Apache-2.0']
build type: ament_cmake
dependencies: []
creating folder ./more_interfaces
creating ./more_interfaces/package.xml
creating source and include folder
creating folder ./more_interfaces/src
creating folder ./more_interfaces/include/more_interfaces
creating ./more_interfaces/CMakeLists.txt

b85d0a3942ded544e26ed260514f050a.png

2. 创建一个 msg 文件

在 more_interfaces/msg 中,创建一个新文件 AddressBook.msg ,并粘贴以下代码以创建旨在传达个人信息的消息:

cxy@ubuntu2404-cxy:~/ros2_ws/src$ cd more_interfaces/msg
cxy@ubuntu2404-cxy:~/ros2_ws/src/more_interfaces/msg$ gedit AddressBook.msg
uint8 PHONE_TYPE_HOME=0
uint8 PHONE_TYPE_WORK=1
uint8 PHONE_TYPE_MOBILE=2


string first_name
string last_name
string phone_number
uint8 phone_type

此消息由以下字段组成:

  • first姓氏:字符串类型

  • last姓氏:字符串类型

  • 电话号码:字符串类型

  • 电话类型:类型为 uint8,定义了几个命名的常量值

请注意,在消息定义中可以为字段设置默认值。有关自定义接口的更多方式,请参见接口 https://docs.ros.org/en/jazzy/Concepts/Basic/About-Interfaces.html 。

接下来,我们需要确保 msg 文件被转换为 C++、Python 和其他语言的源代码

建立消息文件

打开 package.xml 并添加以下行:

<buildtool_depend>rosidl_default_generators</buildtool_de
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值