机器人近年来的发展与应用
机器人问世至今,已经有50多个年头了,在工业、医疗、生活服务等方面取得了令人瞩目的成就,在焊接、喷漆以及装配等工业领域也均有突出表现。但它们的这些表现也有局限性,例如,承担的任务都比较简单而且应用范围有限。目前机器人发展的趋势主要有:自动驾驶、仓库物流、大规模生产、服务和社交机器人等。
自2005年到2014年,中国工业机器人应用增长显著。2014年,中国市场新增了5.6万台工业机器人。自2013年起,中国本土的工业机器人供应商也在迅速崛起。与其他国家相比,中国工业机器人市场得到了空前的发展与壮大,并已经成为全球最大的机器人市场。图1展示了中国机器人的发展趋势。
图1 中国工业机器人发展现状
目前制造业将大量资金用于采购机器人硬件,但仅着眼于发展硬件是远远不够的。2011年,富士康集团创始人郭台铭预测,到2014年富士康将安装100万台机器人;而到了2016年,富士康仅安装了1万台。因为富士康发现,对于人力比机器人更快的装配线来说,“自动化”是低效的。比起硬件,我们更需要关注机器人软件和算法方面的性能提升,利用机器视觉、机器学习、自然语言处理和并行计算等方面的最新成果来解决实际问题。机器人和人一起工作,高效率只能由硬件和软件结合起来实现。
基于以上分析,人机交互将会是一个巨大的挑战。以自动驾驶为例,目前,有12亿辆交通工具在路上行驶,庞大的车辆数目以及混乱的交通状况是自动驾驶不得不面对的一个难题,如图2所示。
图2 混乱的交通状况是自动驾驶面临的难题
机器人运动规划技术
如图3所示,抽象化的机器人系统包括5个关键部分:F为前馈(feedforward),用来做规划和生成轨迹;C为控制器(control),控制执行器;A为执行器(actuator),执行动作;S为传感器(sensor),反馈信号到控制器;S+为传感器后期处理(sensor post-processing),反馈后期处理的信号。将期望的任务输入F,F输出期望的轨迹,传给控制器C,最终,轨迹将被转换成由机器人的电子和机械装置执行的低级指令,由A去执行。
图3 抽象化的机器人系统
机器人的动作规划需要给定机器人的初始位置A,找到一个可行的轨迹到达目标B,并对这个轨迹做一些约束,如图4所示。首先,机器人不应和环境中的障碍物碰撞。其次,轨迹应该满足与具体应用有关的约束,例如,仿人机器人在运动时应保持平衡。第三,我们希望在一定的标准下,规划最优轨迹,例如,让工业机器人沿着最短的路径前进,花费最少的时间。
图4 机器人的动作规划
学术界对动作规划的研究已经持续了40余年,目前也有了很好的算法和软件工具,并在CAD/CAM、游戏、模拟等场合得到了应用。当然这些都是应用在合成的虚拟场景。动作规划在工业、服务、娱乐机器人上的使用是有限的,而在人机交互的系统中,动作规划却极具挑战性。
真实的物理世界没有虚拟环境那么理想,机器人要使用摄像头、雷达、接触式传感器,这些传感器只提供有关物理世界的部分信息。所以,我们需要面对传感器和执行器之间产生的误差,实时地处理数据。
在机器人的传感器方面,摄像头是重要的数据采集工具。在机器人运动规划中,处理传感器采集到的数据是重要的一环,也十分具有挑战性,主要体现在三个方面:
一是人类环境的复杂性。人类环境比结构化的环境更加杂乱,且常常包含动态的障碍物,例如运动的人体等。
二是数据量大。从三维传感器中采集到的数据都包含大量的点,例如激光雷达采集到的点有1万个左右,立体相机采集到的点有2万个左右。
三是实时性要求高。对于快速的在线抓取,实时性非常重要,所以对处理传感器数据的实时性有很高的要求。
为了应对上述挑战,北卡罗来纳大学教堂山分校(UNC)和Willow Garage公司于2013年联合开发了FCL项目。FCL是一个开源的项目,包含了各种高效的碰撞检测及接近度计算技术,是MoveIt的一部分。MoveIt是一个移动操作软件,融合了运动规划、操纵、3D感知、运动学、控制和导航方面的最新进展。
机器人通常把一个复杂的任务分解为多个原始的子任务来执行。例如,当机器人执行从冰箱里拿出一罐啤酒的任务时,整个任务被分解成9个子任务,其中大部分的任务都是将机器人移动到指定的位置(如图5中的第1,2,3,4,5,6,8步)。
图5 复杂任务分解
机器人执行子任务的步骤可以概括为三个阶段:感知、计划和行动。例如,为了执行 “将身体移动到冰箱”这个子任务,机器人需要使用其传感器来识别环境中的物体和障碍物。根据传感器传来的信息,计算一个靠近冰箱姿势的无碰撞路径。如果成功地计算出一个动作,则机器人控制其电机将其自身移动到期望的位置。
目前已经有一些机器人使用运动规划技术来执行复杂的任务,例如KUKA机器人执行的打铆钉任务。在一个嵌入的网页浏览器控制窗口,我们可以浏览机器人能够执行的程序,点击即可开始。设定好需要打铆钉的位置后,开始执行程序,同时激活的程序会高亮显示。机器人会用机械臂捡起铆钉,移动架子,旋转到设定的位置,然后打入铆钉。如图6所示。
图6 KUKA 机器人
到目前为止,机器人运动规划技术还不够成熟,依然面临如下挑战:实现实时运动规划计算,处理高自由度的机器人,处理带噪声的传感器数据以及进行人机协作。
机器人的人机交互技术
机器人与人类协同作业是一种应用趋势,如图7所示。机器人需要在同一个工作空间中和人类配合工作,在这种情况下,人身安全成为一个大问题。由于人的运动是不确定的,机器人需要对人的运动做出一定的预测。
图7 机器人与人类协同作业
一般来说,完整的人机交互流水线(流程)包含以下三个步骤:
首先,人的运动轨迹预测,包括动作分类和轨迹上的估计和预测;其次,在带噪声的数据上进行安全运动规划(碰撞处理);第三,计算为了避免碰撞而产生的多余的运动造成的延迟,为更高层的规划器提供信息:因为绕开障碍物需要额外时间,导致任务完成的时间推迟;尝试避免碰撞需要额外计算,会在系统中带来延迟。
我们将这些因素都整合到交互式协作机器人的应用场景中,如图8所示。图8的左上图对比了是否带有运动预测的ITOMP方法。带有运动预测的ITOMP方法比一般的ITOMP方法可以更早地规划规避路径。无论人运动得是快是慢,带运动预测的ITOMP方法都可以比较好地规避人体运动。
图8右上图展示了在真实场景下使用带运动预测的ITOMP方法的7自由度机械臂的表现。无论是拿饮料罐来回晃动,还是递送饮料罐,机器人都可以很好地规避人的运动路径,从而避免碰撞。
图8的下图通过解析自然语言里带有的属性信息,机器人可以根据指令中的某些属性做出特定动作或者不做特定动作。
图8 测试实验
“机器人&人群”任务要解决的一个重要问题是,让机器人在人群中走动并最终到达目标地点,而不撞上行人。这个任务主要有四个难点:(1) 每个人都是一个障碍物;(2) 障碍物时刻处于移动状态;(3) 机器人需要有足够的应变能力以应对突发状况;(4) 机器人需要克服复杂的背景环境。从根本上讲,这是一个分布式的运动规划问题。为了达到以上目的,首先需要模拟和预测人群可能的运动模式。除了为机器人在人群中的正常行走提供数据支持外,人群运动的预测在公共安全等方面也具有重要意义。该任务需要结合计算机视觉、并行模拟、路径规划、机器学习等方法来完成。ICRA 2017的一篇论文“Realtime Pedestrian Behavior Learning for Path Prediction and Navigation”,给出了实时行人轨迹的学习、预测、导航方法。该方法基于人格特质理论(personality trait theory)对行人行为进行分类,进而预测。
总结
机器人和人类协同作业是机器人领域的重大挑战,该任务综合了人工智能、计算机视觉、自然语言处理、机器学习等最新技术。人群中工作的机器人以及自动驾驶都是该领域的典型案例,我们需要关注系统软件、算法及其在机器人领域的场景应用。 ■
(本文根据CNCC 2017特邀报告整理而成)
整理者:
张文强
CCF专业会员,YOCSEF上海2012~2013年度主席。复旦大学研究员,智能机器人研究院副院长。中国机器人教育联盟副理事长,G30全球人工智能和机器人协会联席理事长。wqzhang@fudan.edu.cn
所有评论仅代表网友意见