广告

从环境感知到交互,机器人控制设计有哪些特殊技巧?

2016-12-19 Top Liu 阅读:

机器人编程涉及控制系统的设计与实现,包括环境感知、交互、移动及行为的控制。jUFednc

一个理想的机器人编程过程包括(假定硬件已经一切就绪):jUFednc

1.系统架构设计jUFednc

2.具体功能的算法实现jUFednc

3.编码与集成jUFednc

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

一、机器人系统架构

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

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

201612190001
图1 机器人功能分解jUFednc

另外,软件工程的基本要求包括模块化、代码可复用、功能可共享。使用通用的框架,有利于分解开发任务及代码移植。机器人软件同样遵从软件工程的一般规律。说白了,架构就是你如何把机器人的功能打散,再如何把代码组织起来。一个清晰的与项目相匹配的架构直接决定了你的开发效率甚至最终功能的成败。jUFednc

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

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

1.S-P-A结构

201612190002
图2 机器人的“see-think-act”工作模式jUFednc

201612190003
图3 “传感——计划——行动”(SPA)结构jUFednc

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

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

缺点:这种方法强调世界模型的构造并以此模型规划行动,而构造符号模型需要大量的计算时间,这对机器人的性能会有显著的影响。另外,规划模型与真实环境的偏差将导致机器人的动作无法达到预期的效果。jUFednc

2.基于行为的结构

201612190004
图4 基于行为的结构jUFednc

由于SPA系统过于死板,出现了另一种实现方法:基于行为的方法。基于行为方法前身是反应式系统,反应式系统并不采用符号表示,却能够生成合理的复合行为。基于行为机器人方案进一步扩展了简单反应式系统的概念,使得简单的并发行为可以结合起来工作。jUFednc

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

201612190005
图5 《基于行为的机器人编程》jUFednc

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

最初的行为之间使用固定的优先级,而在现代的应用中则采用更加灵活的选择方案。jUFednc

“基于行为机器人学”主要特点包括(参见《嵌入式机器人学》):jUFednc

1)感应与动作的紧密耦合jUFednc

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

2)避开知识的符号表示jUFednc

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

3)分解成具有因果意义的单元jUFednc

行为按照状态——动作成对出现,设计为对特定的状态做出确定的动作响应。jUFednc

4)并发关联行为的时变等级调整jUFednc

为适应所要达成任务目的,在运行期间采用一个控制方案来改变行为的激活等级。jUFednc

5)行为选择jUFednc

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

说多了,感觉要跑题了。如果你有兴趣,并想了解更多关于编程机器人来处理未知的东西,推荐Ronald Arkin的《Behavior-Based Robotics》和Thomas Braun的《嵌入式机器人学:基于嵌入式系统的移动机器人设计和应用》。慎思式的机器人编程方法,从中级到高级的探讨,推荐Christopher A. Rouff等人的《Agent Technology from a Formal Perspective》。jUFednc

一张图小结一下:jUFednc

201612190006jUFednc

二、混合系统:实践的产物

201612190007jUFednc

没有万灵的结构,混合系统结合了SPA和反应体系的原理,将多种混合系统应用于在传感器和电机输出间进行协调来完成任务。混合结构相结合最具吸引力的好处可能是:系统按照有利于完成任务的标准进行设计,而非刻板的遵循某一教条。但再复杂的机构,基本上也都是二者的组合。以ROS的导航包为例:jUFednc

201612190008
图6 ROS导航包jUFednc

导航包整体上是SPA结构,左右两侧是感知S,包括传感器数据/里程计/地图等,中间框图是Global和Local两级规划P,最后发送cmd_vel给行动A。jUFednc

如果世界是完美的,那按照规划的地图行进到目的地就完事了。然而基于行为方法就是为了处理各种意外而生的。当机器人遇到障碍物或是被卡住的时候,内嵌的基于行为的系统就开始发挥作用。会根据情况,在“行为库”recovery_behaviors中调用某一预先设定的“行为”来摆脱困境。jUFednc

201612190009
图7 recovery_behaviorsjUFednc

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

当然,你还可以针对各种意外设计更为复杂的recovery_behaviors “行为库”以备调用。jUFednc

三、安全自主机器人应用框架

现在还有一种基于场景和态势的设计框架SARAA,我觉得很有趣。安全自主机器人应用架构(SARAA,Safe Autonomous Robot Application Architecture, SARAA)是一种强调安全性的自主机器人的开发方法。jUFednc

201612190010
图8 SARAAjUFednc

SARAA机器人总结jUFednc

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

软件机器人框架

ROLL模型

REQUIRE

RSVP

SPACES

STORIES

PASS

我们称具有这种体系结构的机器人为SARAA机器人。当正确地实现时,这些编程技术产生一个基于知识的机器人控制器。因此,一个SARAA机器人是一个可以在预先设定的场景和态势中自主行动的知识型机器人。其中一个设计思想是根据场景和态势对前提/后置条件的判断以提高安全性。jUFednc

感兴趣可访问Ctest实验室,SARAA已经用于在开源机器人平台内工作,例如Arduino、Linux和ROS。如果对编程SARAA机器人的场景和态势很好理解与恰当定义,则SARAA机器人的设计有助于提升机器人的安全性。jUFednc

【作者简介:Top Liu,易科机器人实验室系统设计师,机器人技术传播者,译著有《机器人编程实战》、《嵌入式机器人学》等。】jUFednc

(本文来源:雷锋网jUFednc

20160630000123jUFednc

本文为EDN电子技术设计 原创文章,禁止转载。请尊重知识产权,违者本司保留追究责任的权利。
  • 微信扫一扫
    一键转发
  • 最前沿的电子设计资讯
    请关注“电子技术设计微信公众号”
您可能感兴趣的文章
  • 微通道液冷是什么?它又能如何优化电子设计 小型电子设备在冷却方面面临着独特的挑战。尽管随着芯片功能的增加,热管理问题日益受到关注,但设备尺寸越小,留给传统散热器的空间就越小。而微通道液冷领域的最新突破可能会改变这一现状···
  • 热泵背后的技术:智能功率模块 热泵是一种既高效又环保的供暖方式,其可靠性和实用性已得到充分验证。它是推动全球向可持续供暖趋势发展的核心力量,运行所需的电力具有低排放的特点。在与传统锅炉、低排放氢能以及其他可再生能源和常规建筑系统相比时,能效是评估热泵的关键因素···
  • 没有优质探头,示波器 ADC 分辨率再高也无意义 为了实现准确的信号测量,示波器必须通过探头连接到被测电子电路。探头发挥着重要作用,能够确保到达示波器的信号无杂质、不失真,且尽可能接近电路中流通的原始信号···
  • 一个小改动,让铜线恒温器效率达94% 对于热线恒温器来说,虽然它也融合了传感器和加热器,但他们仍然与传递装置保持分离。因此,它在线性模式下工作时耗散的功率对加热没有任何贡献,被完全被浪费了,从而降低了效率···
  • 无需电力即可操控的机器人你见过吗? 最近,伦敦国王学院的研究团队取得了一项突破性进展,他们开发了一种无需电力即可向机器人发出复杂指令的新方法···
  • 2024诺贝尔奖公布,竟然有两项都颁给了AI? 诺贝尔奖被普遍认为是在世界范围内,所有颁奖领域内能够取得的最高荣誉,最近,2024年的诺贝尔奖获奖名单也陆续公布了出来,而在目前公布的奖项中竟然有两项都与人工智能相关···
相关推荐
    广告
    近期热点
    广告
    广告
    广告
    可能感兴趣的话题
    广告
    向右滑动:上一篇 向左滑动:下一篇 我知道了