ROS节点,消息,话题,服务的介绍

本文介绍了ROS中的关键概念,包括NODE(可执行文件)、Message(通信桥梁)、TOPIC(类似QQ群的平台)和服务(私聊式通信)。节点是ROS中的基本执行单元,消息在节点间传递信息,话题作为广播机制连接publisher和subscriber,服务则提供直接通信。此外,文章还提及了ROS中的C++编程体验和常用命令操作。
摘要由CSDN通过智能技术生成

##整理结合机器人操作系统(ros)浅析和网址http://wiki.ros.org/cn

NODE

node几乎是无处不在,这个东西相当于可执行文件,目前我更愿意把它当做cpp文件,通过catkin_make之后生成可执行文件。

Message

不用说了,没有message就是哑巴了。还是这是血液吧,不然传递机制是无法建立起来的

TOPIC

topic就像是QQ群一样,提供一个平台。当有人发了一条消息后,QQ群告诉任何一个加群的人,有没有红包啥的。显然这是一种通过第三方传递的方式,也就是间接传递。发红包的人就是publisher,看群消息的人就是subscriber,然后是MESSAGE传递,这就很简单了,就是水群。

SERVICE

service有点像两人私聊的意思,或者是很多人找一个人私聊。跳过了topic平台,它与topic区别就在于是消息直接传递还是间接传递。水群就是间接传递,多对多传递。私聊就是直接传递,一对一。

C++体悟

在ros中似乎和正常编程有点不一样,估计VS背后也是这么搞的,只不过ros用户体验不是太高。比如beginner_tutorials::AddTwoInts::Request这一句,把工作包当做命名空间,把里面的AddTwoInts.srv文件当做一个类,不知道VS底层机制是不是这样。当然,ros的c++实现毕竟是借助c++的,还是有不少地方是相似的。

ROS命令部分:

启动节点
启动节点(也称运行ROS程序)的基本命令是rosrun
rosrun [package_name] [node_name]
rosrun package-name executable-name
eg:rosrun turtlesim turtlesim_node
可以像执行任 何其他程序一样直接执行 turtlesim_node:
这里可以看出,一个节点相当于一个cpp文件,运行之后产生一个类似于exe的可执行文件。
可以使用 rosrun 命令显式设置节点的名称,语法 如下:
rosrun package-name executable-name __name:=node-name

Rosrun只是简便了操作,也可以直接找出下面的命令进行操作
/opt/ros/indigo/lib/turtlesim/turtlesim_node
查看节点
rosnode list
rosnode info node-name
在 ROS 系统中查看节点之间的发布-订阅关系的最简单方式就是在终端输入如下命令:
rqt_graph
这是图形界面,比较容易理解
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值