机器人操作系统

✍ dations ◷ 2025-08-03 19:19:40 #自由操作系统,机器人操作系统,2007年软件

ROS(机器人操作系统,Robot Operating System),是专为机器人软件开发所设计出来的一套电脑操作系统架构。它是一个开源的元级操作系统(后操作系统),提供类似于操作系统的服务,包括硬件抽象描述、底层驱动程序管理、共用功能的执行、程序间消息传递、程序发行包管理,它也提供一些工具和库用于获取、建立、编写和执行多机融合的程序。

ROS的运行架构是一种使用ROS通信模块实现模块间P2P的松耦合的网络连接的处理架构,它执行若干种类型的通讯,包括:

ROS的首要设计目标是在机器人研发领域提高代码复用率。ROS是一种分布式处理框架(又名Nodes)。这使可执行文件能被单独设计,并且在运行时松散耦合。这些过程可以封装到数据包(Packages)和堆栈(Stacks)中,以便于共享和分发。ROS还支持代码库的联合系统。使得协作亦能被分发。这种从文件系统级别到社区一级的设计让独立地决定发展和实施工作成为可能。上述所有功能都能由ROS的基础工具实现。

为了实现“共享与协作”这一首要目标,人们制订了ROS架构中的其他支援性目标:

ROS有三个层次的概念:分别为Filesystem level,Computation graph level, 以及Communication level。 以下内容具体的总结了这些层次及概念。除了这三个层次的概念, ROS也定义了两种名称-- Package资源名称和Graph资源名称。同样会在以下内容中提及。

文件系统层概念就是你在碟片里面遇到的资源,例如:

Computation Graph Level(计算图)就是用ROS的P2P(peer-to-peer网络传输协议)网络集中处理所有的数据。基本的Computation Graph的概念包括Node, Master, Parameter Server,messages, services, topics, 和bags, 以上所有的这些都以不同的方式给Graph传输数据。

在ROS的计算图中,ROS的Master以一个name service的方式工作。它给ROS的节点存储了topics和service的注册信息。Nodes 与Master通信从而报告它们的注册信息。当这些节点与master通信的时候,它们可以接收关于其他以注册节点的信息并且建立与其它以注册节点之间的联系。当这些注册信息改变时Master也会回馈这些节点,同时允许节点动态创建与新节点之间的连接。

节点之间的连接是直接的; Master仅仅提供了查询信息,就像一个DNS服务器。节点订阅一个topic将会要求建立一个与发布该topics的节点的连接,并且将会在同意连接协议的基础上建立该连接。ROS里面使用最广的连接协议是TCPROS,这个协议使用标准的TCP/IP 接口。

这样的架构允许解耦操作(decoupled operation),通过这种方式大型或是更为复杂的系统得以建立,其中names方式是一种行之有效的手段。names方式在ROS系统中扮演极为重要的角色: topics, services, and parameters 都有各自的names。每一个ROS客户端库都支持重命名,这等同于,每一个编译成功的程序能够以另一种形似【名字】运行。

例如,为了控制一个北阳激光测距仪(Hokuyo laser range-finder),我们可以启动这个hokuyo_node 驱动,这个驱动可以给与激光仪进行对话并且在"扫描"topic下可以发布sensor_msgs/LaserScan 的信息。为了处理数据,我们也许会写一个使用laser_filters的node来订阅"扫描"topic的信息。订阅之后,我们的过滤器将会自动开始接收激光仪的信息。注意两边是如何脱钩工作的。 所有的hokuyo_node的节点都会完成发布"扫描",不需要知道是否有节点被订阅了。所有的过滤器都会完成"扫描"的订阅,不论知道还是不知道是否有节点在发布"扫描"。 在不引发任何错误的情况下,这两个nodes可以任何的顺序启动,终止,或者重启。

以后我们也许会给我们的机器人加入另外一个激光器,这会导致我们重新设置我们的系统。我们所需要做的就是重新映射已经使用过的names。当我们开始我们的第一个hokuyo_node时,我们可以说它用base_scan代替了映射扫描,并且和我们的过滤器节点做相同的事。现在,这些节点将会用base_scan的topic来通信从而代替,并且将不再监听"扫描"topic的信息。然后我们就可以为我们的新激光测距仪启动另外一个hokuyo_node。

ROS官方网站

相关

  • 声门下腔声门下腔(infraglottic cavity)为喉部的一部分、位于喉室(英语:laryngeal ventricle)及声门裂(英语:rima glottidis)的下方。喉部、咽部及舌头的深层解剖,后视图。喉部、咽部及舌头的
  • 最优惠利率这是一个各国商业银行简单平均最优惠利率列表。这些数据来自世界概况。
  • 埃尔湖艾尔湖(Lake Eyre,又称艾耳湖, 当地语言: Kati Thanda),位于澳大利亚的中部地区,是一个时令湖。在罕有情况注满时,是澳洲最大的湖泊。湖的最低点位于海平线下15米(50英尺),是艾耳湖
  • 冈瓦纳在地质学中,冈瓦那大陆(英语:Gondwana,/ɡɒndˈwɑːnə/,或Gondwanaland),也称冈瓦纳古陆、南方大陆,是存在于新元古代至侏罗纪前期(约5.73亿至1.8亿年前)的超大陆,它是从罗迪尼亚大
  • 南波特兰坐标:43°37′54″N 70°16′22″W / 43.63167°N 70.27278°W / 43.63167; -70.27278 南波特兰(英语:South Portland),位于美国缅因州坎伯兰县,是该州的第四大的城市。根据美国20
  • 圣玛丽医院 (伦敦)圣玛丽医院(St Mary's Hospital)是一间位于英国伦敦帕丁顿的公立医院,于1845年成立,当中于1937年成立的林登分院为成立医院。在过去,医院曾经是伦敦大学的一部分,现时则成为了伦敦
  • 五氯化砷五氯化砷是一种砷元素和氯元素形成的无机化合物,化学式为AsCl5。直到上世纪70年代,人们还在争论这种物质是否存在。这种化合物最早于1976年制得,当时用紫外线在−105°C的低温
  • 文森茨 (菲斯滕贝格)文森茨·海因里希·埃贡·约阿希姆·哥特弗里德·胡贝图斯·玛利亚·埃尔文(德语:Vincenz Heinrich Egon Joachim Gottfried Hubertus Maria Erwein;1985年3月16日-),出生于维也纳
  • bis (杂志)《bis》(ビス),是光文社发行的10到20岁出头的女性向时尚杂志。于2001年创刊。2006年8月号休刊。2017年复刊。杂志购买对象的年龄从16~25岁都有,而主要目标读者是女大学生。前
  • 韦特·霍伊特韦特·查尔斯·霍伊特(英语:Waite Charles Hoyt,1899年9月9日-1984年8月25日),为美国职棒大联盟的投手。生涯曾效力过巨人、红袜、洋基、老虎、运动家、道奇与海盗等队。霍伊特是1