ROS通信,如何查看话题的数据类型和传输自定义数据类型

目录

文章目的

一、总体流程图

二、如何查看通信节点

三、传输自定义数据结构类型


文章目的

用代码(python or c++)进行对机器人(机械臂或移动底盘)进行控制时,我们需要了解两件事

  • 话题的名称
  • 话题所发布或订阅的数据结构类型

下面我将以海龟仿真器为例

  • 让大家了解如何查阅话题的名称以及话题发布或订阅的数据结构类型。
  • 如何自定义数据结构进行话题通信

一、总体流程图

总体流程图,如上pub 和sub通过roscore建立链接,两者通过topic话题进行通信

代码总结:

rosnode list 查看所有的节点列表

rosnode info xx 查看某一个节点的具体信息

rostopic info xx 查看某一个话题的具体信息

rosmsg show xx 查看某个话题的具体数据结构

二、如何查看通信节点

我们以海龟仿真器为例子:

终端运行,如下三个指令

roscore 打开rosmaster

rosrun turtlesim turtlesim_node

rosnode list

通过上图我们可以看到在rosnode 中有节点/turtlesim。

如果我们想查看节点的具体信息,即发布的话题(pub)、订阅的话题(sub)、接受的服务(ser)具体如上框图。

运行rosnode info /turtlesim

了解到订阅的话题后,如上框图,/turtle1/cmd_vel

运行rostopic info /turtle1/cmd_vel我们就可以知道通信节点的数据类型及Twist

如果我们想查看数据类型的具体信息,则可以输入

rosmsg show geometry_msgs/Twist

最后我们可以看到在python代码中,如下,我们可以发现通信话题名称以及输出的数据结构类型都要一一对应

这样我们就可以写控制代码实现对机器人(本文时小海龟的控制)例如:

三、传输自定义数据结构类型

test是我src工作空间下的功能包

如下图,我想传输一个person类

然后,我们需要在package.xml文件中添加依赖

在cmakelist中添加如下依赖

最后catkin_make 编译

需要我们在代码中引用一下

最终我们就可以实现自定义数据类型的通信

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沈夢昂志

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值