您的位置首页  科技产品  机器人

机器人系统架构:(一)概览

  • 来源:互联网
  • |
  • 2019-10-12
  • |
  • 0 条评论
  • |
  • |
  • T小字 T大字

  3.机器人技术传播者,译介有《机器人编程实战》、《ROS机器人程序设计(第二版)》、《嵌入式机器人学》、《机器人与未来》

  由于笔者所从事工作性质,主要集中在1.系统设计和2.算法的研究上,ing的机会并不是很多。第二个原因是:如果1,2工作完成后,3的工作其实和机器人本身并不大,计算机专业恐怕会做的更好。因此本文主要就1给出一些总结和建议。另外,由于所研究的算法过(wu)于(fa)先(ying)进(yong),通常会在专业的学术期刊上发表,在此也不做过多讨论。

  “架构可定义为组件的结构及它们之间的关系,以及规范其设计和后续进化的原则和指南。简言之,架构是构造与集成软件密集型系统的深层次设计。”

  系统架构也可称其为如何实施解决方案的一个策略性设计(例如基于组件的工程标准、安全)和解决方案做什么的功能性设计(如算法、设计模式、底层实现)。

  从人类第一台可编程的机器人开发伊始,架构问题就与之相伴而生。早在1996年,Garlan 和 Shaw在《软件架构:一门新兴学科的展望》就总结了移动机器人的基本设计需求, 如:(1) 慎思规划和反应式行为;(2)容许不确定性;(3)考虑危险;(4)灵活性强。针对这些要求,他们评估了四种用于移动机器人的架构,包括控制回路(control loop)、分层(layers)、隐式调用(implicit invocation)、黑板(blackboard)。经过了几十年的实践,一些架构被逐渐淘汰,一些架构逐渐被完善起来。

  注意:现在很多机器人开发者一上手就是ROS,虽然ROS是一种比较不错的系统架构,它的基于node的思想在当时是非常先进的,在今天已成为主流。但我们也要清楚,它只是其中一种架构,尤其是在小型嵌入式设备上定制机器人系统时,其他的架构可能会更有效率。另外Master中央控制模式,也是单机时代的产物,在多机的情形就不是很适用。

  机器人天然的工作模式是“see-think-act”,所以自然而然的就形成了“传感——计划——行动”(SPA)结构:从感知进行映射,经由一个内在的世界模型构造,再由此模型规划一系列的行动,最终在真实的环境中执行这些规划。与之对应的软件结构称为经典模型,也称为层次模型、功能模型、工程模型或三层模型,这是一种由上至下执行的可预测的软件结构,

  SPA机器人系统典型的结构是中建立有三个抽象层,分别称为行驶层(Pilot)(最低层)、导航层(Navigator)(中间层)、规划层(Planner)(最高层)。传感器获取的载体数据由下两层预处理后再到达最高“智能”层作出行驶决策,实际的行驶(如导航和低层的行驶功能)交由下面各层执行,最低层再次成为与小车的接口,将驾驶指令发送给机器人的执行器。

  小历史:Joe JonesDaniel Roth于2003年出版的《Robot Programming:A Practical Guide to Behavior-Based Robotics》以及使用基于行为系统的iRobot扫地机器人的大获成功(通过基于行为的系统可有效实现遍历、避免在某处卡死等多个目标的达成),标志着当年基于行为系统结构的统治地位。第一作者Joe Jones是iRobot扫地机器人Roomba的设计师。短短十年间,SLAM的迅速兴起,基于地图的规划和导航再次兴起,很多人似乎忘记了或压根就没听说过Behavior-Based Robotics的存在。

  基于行为的软件模型是一种由下至上的设计,因而其结果不易预测,每一个机器人功能性(functionality)被封装成一个小的独立的模块,称为一个“行为”,而不是编写一整个大段的代码。因为所有的行为并行执行,所以不需要设置优先级。此种设计的目的之一是为了易于扩展,例如便于增加一个新的传感器或向机器人程序里增加一个新的行为特征。所有的行为可以读取载体所有传感器的数据,但当归集众多的行为向执行器产生单一的输出信号时,则会出现问题。

  在某种程度上,所有行为机器人的动作是对刺激的反应而不是依赖于有意识的规则。回避使用思考规划,取而代之的是一些计算简化的模块来实现从输入到执行的映射,此举有利于快速响应。基于这个观察Brooks言简意概的表达出来其中的原理“规划不过是一种回避计算下一步要做什么的方法”。

  对环境的处理上不需要构造一个内部模型以用于执行规划任务,而是采用真实世界“它自己最好的模型”。机器人直接从观测中获取到未来的行为,而非试图去生成一个能够内部操作的世界的抽象表示并以此作为规划未来行动的基础。

  在基于行为系统中运行着一定数目作为并行进程的行为,每一个行为可以读取所有的传感器(读动作),但只有一个行为可获得机器人执行器或行驶机构的控制权(写动作)。因此需要一个全局在恰当的时机来协助行为选择(或是行为激活、或是行为输出融合)以达到预期的目的。这将系统的设计工作,就从描述系统本身转移到定义一个正常工作的系统的输出上。

  默认的行为是:首先,清除机器人地图指定区域以外的障碍。接下来,如果可能的话,机器人将执行一个原地旋转清理空间。如果这也失败了,机器人将更激进地清理地图,清除一切可以原地旋转的矩形区域以外的障碍。这将是另一个就地旋转紧随其后。如果这些都失败了,机器人将认为其目标不可行,停止运行并通知用户。

  机器人总结在《机器人编程实战》(2017年出版)书中,详细介绍了编程一个机器人自主执行其任务、构成了所谓SARAA的7项技术:

免责声明:本站所有信息均搜集自互联网,并不代表本站观点,本站不对其真实合法性负责。如有信息侵犯了您的权益,请告知,本站将立刻处理。联系QQ:1640731186
友荐云推荐