什么是ROS?

ROS(Robot Operating System) 是一个在计算机上对机器人进行操作的一个开源系统。ROS系统通常由大量节点组成,其中任何一个节点均可以通过发布/订阅的方式与其他节点进行通信。举例来说,机器人上的一个位置传感器如雷达单元就可以作为ROS的一个节点,雷达单元可以以信息流的方式发布雷达获得的信息,发布的信息可以被其他节点如导航单元、路径规划单元获得。

为什么使用ROS?

ROS作为一个灵活的操作系统,其上的节点具有很大的随意性,它们可以位于不同的计算机上,甚至可以位于不同的网络上。举例来说,我们可以使用一个Arduino作为一个节点发布信息,使用一台笔记本电脑作为一个节点订阅上述信息以及使用一台手机作为一个节点驱动电机等。上述灵活性使得ROS可以适应很多不同场合的应用,另外,ROS还是一个开源的系统,由专门的社区维护。

ROS的一些基本概念

首先我们从宏观的角度观察ROS系统的构成。

ROS首先包含一个超级管理员ROS Master, ROS Master管理系统中所有节点,包括节点之间的相互通信。下图为ROS系统的基本结构。

 

那么ROS节点之间是如何相互通信的呢?

ROS各个节点之间通过发布消息与订阅消息进行相互通信。

举例来说,我们的机器人上有一个摄像头,我们希望能够从机器人图像处理单元以及另外一台计算机上观察摄像头的图像,我们应该怎么办呢?

首先,我们有一个管理员ROS Master管理我们的整个系统,然后我们需要建立三个节点,分别是摄像头节点、机器人中的图像处理节点以及计算机上的显示节点,如上图。

然后,在ROS Master的管理下,摄像头节点(Camera Node)发起一个会话(Topic)发送图像信息,同时,另外两个节点订阅这个会话(Topic)。

这样,当摄像头节点从摄像头获得一帧新的图像时,它将立刻将获得的图像发送给另外两个节点(使用网络协议TCP/IP)。

那么,接下来我们可能会想,如果机器人图像处理节点需要在某一个特定的时刻向摄像头节点请求一个信息,怎么办呢? 这里,ROS采用一种请求服务机制(Service Request)。

此时,图像处理节点可以告诉ROS Master,我需要向摄像头节点请求一项服务,然后ROS Master 将在摄像头节点和图像处理节点之间建立一个请求服务/应答的联系通道。如下图。

在上图中,图像处理节点将首先请求图像信息,然后摄像头节点将收集所需要的信息发送给图像处理节点。

本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。

最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。 若排除这种情况,可在对应资源底部留言,或联络我们。

对于会员专享、整站源码、程序插件、网站模板、网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。

如果您已经成功付款但是网站没有弹出成功提示,请联系站长提供付款信息为您处理

源码素材属于虚拟商品,具有可复制性,可传播性,一旦授予,不接受任何形式的退款、换货要求。请您在购买获取之前确认好 是您所需要的资源