ROS学习——ROS通信架构

Master节点管理器

作用:每个Node启动时都要想master注册,管理node之间的通信(可实现点对点通信)
$roscore    启动ros master

node节点(ROS的进程)

pkg里面的可执行文件运行的实例。
启动一个node
$rosrun[包名][节点名]

rosnode
$rosnode list查看当前运行的node信息
$rosnode info [node_name]现实node的详细信息
$rosnode kill [node_name]结束node

roslaunch
$roslaunch [pkg_name] [file_name.launch]启动master和多个node
.launch 文件包含启动规则

通信方式

Topic(string)

ROS中的异步通信方式,node间通过publish-subscribe机制通信

nodeA->发送>/Topic->订阅>nodeB

可以多个publisher和subscriber共用一个Topic
Message
topic内容的数据类型,定义在.msg文件中,相当于“类”。
相关主要命令
rostopic
$rostopic list列出当前所有topic
$rostopic info/topic_name显示某个topic的属性信息
$rostopic echo/topic_name显示某个topic的内容
$rostopic pub/topic_name向某个topic发布内容

rosmsg
$rosmsg list列出系统上所有msg
$rosmsg show/msg_name显示某个msg内容

Service

ROS中的同步通信方式,node间可以通过request-reply方式通信

Topic和Service的区别

在这里插入图片描述

srv
Service通信的数据格式,定义在.srv文件中
srv文件只能嵌套msg文件
相关主要命令
rosservice
$rosservice list列出当前所有活跃的service
$rosservice info service_name显示某个service的属性信息
$rosservice call service_name args调用某个service

rossrv
$rossrv list列出系统上所有的srv
$rossrv show srv_name显示某个srv内容

Parameter Service

存储各种参数的字典,可用命令行,launch文件和node(API)读写
命令行设置参数(rosparam)
$rosparam list列出当前所有参数
$rosparam get param_key显示某个参数的值
$rosparam set param_key param_value设置某个参数的值
$rosparam dump file_name保存参数到文件
$rosparam load file_name从文件读取参数
$rosparam delete param_key删除参数
launch文件设置参数
使用<param>和<rosparam>标签

Action

类似于service,但是是service的升级版,是带有状态的通信方式,通常用在长时间、可抢占的任务中。
action
action通信的数据格式,定义在.action文件中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值