ROS2 通信接口

ROS2通信接口的全部类型如下图所示。
在这里插入图片描述
话题通信接口的通信定义使用的是.msg文件,由于是单向传输,所以只需要描述传输的每一帧数据就可以了。
在这里插入图片描述
服务通信的 .src 类型如下,包含请求和应答两部分数据,— 上的数据是request数据,— 下的数据是responds的数据。
在这里插入图片描述
动作是用来描述机器人的运动过程,使用.action文件类型。
在这里插入图片描述
在编写玩这些通信接口后需要在CMakeLists.txt 文件中包含这些通信接口的文件及地址。
在这里插入图片描述
当在程序文件中需要使用这些接口时,可以通过包含这些文件的名称去调用,例如python文件调用自定义的服务接口:
在这里插入图片描述
在后面创建服务器对象的时候,就可以调用某个接口类型了。
在这里插入图片描述
在回调函数里面使用的到时候就会分成两个部分,分别是 request 和respondse.
在这里插入图片描述

查看常用的通信接口

在终端输入如下命令:

  • ros2 interface
    在这里插入图片描述

查看服务通信的接口。

在这里插入图片描述

查看动作通信的接口。

在这里插入图片描述

查看某个功能包定义的所有通信接口。

在这里插入图片描述

话题消息:发布者和订阅者

创建一个发布者节点,发布一些消息
在这里插入图片描述
在回调函数里面将位置信息发布出去。
在这里插入图片描述
订阅者订阅发布者发布的话题消息
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
ROS2中引入了action通信机制,通过action通信可以实现更复杂和灵活的交互式任务处理,相比于ROS1中的service通信机制,action通信可以处理需要长时间运行、中间结果反馈以及取消请求的任务。 实现一个ROS2 action通信的demo可以遵循以下步骤: 1. 创建一个名为my_package的ROS2 package,并在该package中创建一个名为my_action的action文件,用于定义action的目标和反馈消息。 2. 在package的CMakeLists.txt文件中添加对action接口的依赖,确保action文件正确编译。 3. 编写一个名为action_server.cpp的节点程序作为action服务器,用于接收action请求并生成结果。 4. 在action_server.cpp中,包含自动生成的action接口头文件,并在main函数中创建一个相应的action服务器。 5. 在action服务器的回调函数中处理action请求,并根据需要更新并发送反馈消息。 6. 编写一个名为action_client.cpp的节点程序作为action客户端,用于向action服务器发送请求并获取结果。 7. 在action_client.cpp中,包含自动生成的action接口头文件,并在main函数中创建一个相应的action客户端。 8. 在action客户端的回调函数中发送action请求,并根据需要处理和显示从action服务器接收到的反馈消息和结果。 9. 使用colcon编译并运行action服务器和action客户端节点,观察是否可以成功进行action通信,并获取到相应的反馈和结果。 通过实现这个简单的demo,可以理解和体验ROS2中action通信的使用方法和优势,为自己更复杂的机器人任务处理和交互设计提供参考。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值