机器人操作系统

✍ dations ◷ 2025-12-02 00:42:44 #自由操作系统,机器人操作系统,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官方网站

相关

  • 枸橼酸柠檬酸,化学式为 C6H8O7,(英语:Citric Acid,亦称为枸橼酸)它包括3个羧基(R-COOH)基团。是一种中强度有机酸,这是自然在柑橘类水果中产生的一种天然防腐剂,也是食物和饮料中的酸味添加
  • 形声陶文 ‧ 甲骨文 ‧ 金文 ‧ 古文 ‧ 石鼓文籀文 ‧ 鸟虫书 ‧ 篆书(大篆 ‧  小篆)隶书 ‧ 楷书 ‧ 行书 ‧ 草书漆书 ‧  书法 ‧ 飞白书笔画 ‧ 
  • 光呼吸光呼吸(英语:photorespiration)是所有使用卡尔文循环进行碳固定的细胞在光照和高氧低二氧化碳情况下发生的一个生化过程。它是卡尔文循环中一个损耗能量的副反应。过程中氧气被
  • 苏莱曼所罗门(希伯来语:שְׁלֹמֹה‬‎),天主教汉译为撒罗满,阿拉伯语称为苏莱曼(سليمان)。根据《希伯来圣经》记载,是以色列王国第三位国王,大卫家族第二位国王,是北方以色列王
  • 国际域名缩写本列表收录已加入DNS根域(英语:DNS root zone)的顶级域名,正式列表请以IANA为准,截止2019年官方列表拥有1530个顶级域名,其中部分已弃用。根据IANA定义:7个通用顶级域早在互联网早
  • 富岳三十六景《富岳三十六景》,浮世绘画师葛饰北斋晚年的作品之一,属于浮世绘中的“名所绘”,为描绘由日本关东各地远眺富士山时的景色。初版只绘制36景,因为大受好评,所以葛饰北斋仍以《富岳
  • 基罗·格利戈罗夫基罗·格利戈罗夫(Киро Глигоров,1917年5月3日-2012年1月1日),马其顿共和国政治家,马其顿独立后首任总统(1991年至1999年在位)。格利戈罗夫出生于斯提普,1941年开始参加
  • 嘉兴港嘉兴港,位于中国浙江省嘉兴市平湖市和海盐县,杭州湾跨海大桥北端,包括乍浦、独山、海盐三个港区,以乍浦港为主体,是中国国务院批准对外国籍船舶开放的一类口岸。1917年孙中山在《
  • 卡吉米日·施维亚泰克卡吉米日·施维亚泰克(意大利语:Kazimierz Świątek,1914年10月21日-2011年7月21日),是天主教白俄罗斯籍司铎级枢机。也是原明斯克-莫吉廖夫总教区总主教。卡吉米日·施维亚泰克
  • 大炊御门经久大炊御门经久(1781年11月1日-1859年8月8日),是江户时代后期的公卿;也是藤原北家清华家的大炊御门家(日语:大炊御門家)当主。大炊御门经久在天明元年(1781年)出生,是父母大炊御门家孝及