• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

浅析ROS及其通讯机制(Topic/Service/Action)

人工智能 光头明明 1831次浏览 0个评论

1,ROS

  根据W. S. Newsman 在“A Systematic Approach to Learning Robot Programming With ROS”中提到。   ROS (robot operating system),这一机器人操作系统是一系列开源软件库和开源工具,它可以帮助我们搭建起自己的机器人应用平台。如今,ROS平台被广泛的用于移动机器人,飞行器,双目相机,机械臂和其他领域。ROS的目的是为了搭建起一个融合不同研究结果,算法实现和代码复用的通用的机器人初始平台。   ROS有以下几个主要的特征:分布式架构,多语言支持,足够好的稳定性以及开源。   根据上面的优势,我选择了ROS作为机械臂抓取平台。与此同时,ROS对于OpenCV以及PCL具有很好的兼容性,它们可以在图像处理中发挥巨大作用。比如可以实现物体的识别和位姿估计。RVIZ作为ROS中的可视化平台,可以生动的展现三维信息,比如,可以通过TF树展示机械臂,相机以及目标物体的坐标变换。  

2,通讯机制

  ROS的通讯主要包含三种方式:Topic(话题),Service(服务),以及Action通讯   在介绍通讯之前,非常重要的一点是了解ROS的数据结构。   Messages(消息)在整个ROS系统中扮演关键的作用。消息在通讯中是传递信息的关键媒介。其中消息的类型有很多种,比如在KinectV2中/KinectV2/ rgb/Image_raw话题的消息 是sensor_msgs/ Image.同样在位姿估计中,我们经常会看到话题发布的geometry_msgs/Pose。  

Topic

  在话题中,它就像ROS节点间的总线,进行数据的交换。并且,话题可以直接从主机中订阅消息和发布消息到主机。在两者之间并没有强制的纽带关系。它更像是一种单向通信,话题作为中间枢纽。它们只关心话题的名称以及当前的消息类型。下面的图可以生动展现这种交流机制。发布者发布这个话题,订阅者可以订阅这个话题,与此同时,订阅者可以从发布者中获得话题中具体的消息数据。  
在这里插入图片描述   更形象来看的话,整个通讯是建立在主机的基础上,从红色箭头部分,我们可以看到一个节点发布了消息到一个topic上,然后可以让多个节点订阅此话题,可以满足一对多的关系。这便是Topic的方式进行数据通讯。其实本身节点间并没有联系,但是通过topic的方式便建立了纽带。  
在这里插入图片描述

Service

  ROS 服务是一个基于请求和回应的交互模式。它通常用于分布式系统中。ROS服务中的消息中,一部分会定义请求部分,一部分会定义回应部分。在服务中,一个节点可以作为ROS服务端,一个客户端可以向这个服务端请求服务,在请求后,它将发送一个结果到客户端作为回应。它更像是同步交互方式。   整个通讯是建立在主机的基础上,从绿色部分可以形象的看出节点利用服务进行通讯,一个节点作为服务的服务器端,另一个作为服务的客户端,当客户端发出对应的请求时,服务器便会给予相应的回应。  
在这里插入图片描述

Action

  Action 可以看作是一个高级的服务通讯方式。但是相比于服务只是包含两个话题请求和回应,action包含了五个话题,包括目标,状态,取消,反馈以及结果。Action服务在实时进程中可以起到很大的作用。action更像是一种异步的交互方式。它的异步性在于你并不需要等待结果,而是可以在做其他事情的时候获取到这个结果。  
在这里插入图片描述   在我们利用move_group框架时,我们会遇到几种action,像抓取放置,关节控制等。  
在这里插入图片描述   可能到现在还是不太理解service和action的大区别。下面有一个非常形象的例子来对比service和action。   利用两者方式购买卤肉饭来对比:   1,到卤肉饭店铺购买卤肉饭(ROS Services) a,和老板订餐(request) b,等待老板做完 c,得到卤肉饭(response)   2,利用订外卖的方式购买 a,网上下单购买(goal),可能取消订单(cancel) b,订单确认通知(feedback) c,偶尔检查一下订单的状态(status) d,做其他的事情,学习,睡觉 … e,卤肉饭送达(result)


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明浅析ROS及其通讯机制(Topic/Service/Action)
喜欢 (0)

您必须 登录 才能发表评论!

加载中……