复杂机器人的运动控制,一直阻挡机器人产业发展的老大难问题,迟迟没有得到很好的解决。即便是代表机器人最高水平的波士顿动力,其机器人离实用也还远。近两年发展迅猛的AI,俨然如万金油般,被用在各种地方,自然也包括机器人控制领域,而且似乎取得了不错的效果。前端时间,UCberkely的强化学习专家Pieter Abbeel创办了Embodied Intelligence,业务更是直接涵盖了VR、AI、机器人三大热点。
为了搞清楚VR、AI等新技术如何在机器人控制领域应用,本文根据一些相关论文和公开资料,包括Pieter Abbeel的演讲,对VR和AI在机器人控制方面的应用进行了简单梳理,发现AI和VR等在机器人控制等方面还是有实在的应用,只不过离取得实质性突破,还有相当长的距离。
机器人控制的几种类型
很多机器人的研究目标很多是模拟人的智能,所以研究人的控制系统,对于机器人有很大的借鉴意义。人体的神经系统由大脑、小脑、脑干、脊髓、神经元等共同构成,复杂而又完善。人体神经系统包括中枢神经系统和周围神经系统。中枢神经系统由脑和脊髓组成,是人体神经系统的最主体部分。周围神经系统是从脑和脊髓发出的分布到全身各处的神经。无数的神经元存在于神经系统各处,构成神经网络。
中枢神经网络负责运动控制,主要分成三层:
大脑:居于最高层,负责运动的总体策划,各种任务的下达。
小脑:居于中间层,负责运动的协调组织和实施。人体平衡由小脑控制。
脑干和脊髓:属于最低层,负责运动的执行,具体控制肌肉的骨骼的运动,由脑干和脊髓完成。
三层对运动的调控作用不同,由高到低,低层接收高层的下行控制指令并具体实现。大脑可直接也可间接的通过脑干控制脊髓运动神经。
如果把机器人与人进行类比,机械臂控制器就类似于人的脊髓,负责控制电机(肌肉)和机械机构(骨骼)的具体运动,多足机器人的运动控制器,就类似于人的小脑,负责控制平衡和协调。而机器人的操作系统层,则类似于人的大脑,感知和认知世界,并下达各种复杂的运动目标。
基于以上类比,参照目前的各类机器人的情况,机器人的运动控制大概可以分成4种任务:
脊髓控制——机械臂运动的基础控制。工业机器人,各类机械臂,无人机的底层运动控制等面临的主要是这类问题。
小脑控制——多足机器人的平衡和运动协调控制。这块目前是机器人控制仍未突破的难点,目前做的最好的显然是波士顿动力。
大脑控制——环境的感知。主要是扫地机器人、无人机等底层运动控制已经封装好的机器人的导航和路径规划。需要通过环境感知,对自身和目标进行定位、导航和运动规划。
大脑控制——环境的认知和交互,也就是机器人具体执行交互任务,如控制机械臂抓取物体,执行操作等。这是
服务机器人需要突破的重要问题。
几种具体控制的AI应用情况
1.脊髓控制类
脊髓控制的两种典型的应用是机械臂路径规划和无人机的飞行控制。这类问题属于传统自动控制理论,以数学和动力学建模为基础,发展了很多年,已经有了非常完备的理论和实践基础,也取得了很好的效果。虽然深度学习在最近很热,理论上也可以用于这类控制。但目前在这类基础控制领域,并没有应用。主要原因可能有:
1)工业机器人高精度重复特定动作等,基于自动控制理论已经能从数学上很好的解决,且由于了解原理,属于白盒系统。既然有可靠的白盒方案,没必要换成黑盒的神经网络控制系统。
2)工业机器人等应用领域,对控制算法稳定性要求很高。而作为黑盒方案的神经网络控制系统,数据上还无法证明其稳定性。神经网络控制器一旦发生问题,难以进行解释和改进。
3)神经网络算法基于大量数据训练,而现有的运动控制中,比如飞控,拿到实际实验数据的成本高,大量数据的获取非常困难。
2.小脑控制类
小脑控制典型问题是类人型双足和多足机器人的平衡和运动协调控制问题。这方面一直是基于传统控制理论在进行研究,不过由于相比于机械臂或无人机,其运动的自由度高很多,难度很大。双足类人机器人给人大多数的印象还是运动迟缓、僵硬、站不稳。波士顿动力的Altas、大狗等已经是在这方面最先进的,波士顿动力学公司并未公布他们使用的技术,但谷歌工程师Eric Jang表示,根据从演讲得来的信息,BD的机器人控制策略使用基于模型的控制器,并不涉及神经网络相关算法。
3.环境感知类
主要的场景是服务机器人的路径规划、无人机目标追踪、工业机器人的视觉定位等,通过感知环境,给封装好的运动控制系统下达目标运动指令。
目标识别
环境感知过程中的目标识别,如无人机目标的识别和追踪等,有神经网络的帮助,可以识别的更准确,已经在大疆等无人机上应用。
定位导航和路径规划
目前机器人的定位导航,主要基于流行的vSLAM或激光雷达SLAM技术。主流的激光雷达方案大概可以分三步,中间部分环节可能涉及到一些深度学习,大部分内容并不涉及深度学习相关。
第一步:SLAM,构建场景地图,用激光雷达构建场景的2D或3D点云,或者重建出3D场景。
第二步:构建语义地图,可能会对物体进行识别和分割,对场景中的物体进行标记。(有的可能略过这一步)
第三部:基于算法进行路径规划,并驱动机器人的运动。
4.环境交互
典型应用场景:机械臂抓取目标物体等。与环境的交互,一直是传统自动控制难以解决的问题。近年来,以强化学习为基础,AI相关技术用在了这类问题上,取得了一定的研究进展,但是否是未来的主流方向,仍存在很大争议。
1)强化学习
强化学习框架中,有一个包含神经网络的Agent负责决策。Agent以当前机器人传感器所采集到的环境为输入,输出控制机器人的行动命令action,机器人行动后,再观察新的环境状态和行动带来的结果Reward,决定下一步新的行动action。Reward根据控制目标进行设置,并有正反向之分。例如,如果以自动驾驶为目标,正向的Reward的就是到达目的地,反向就是不能达到目的地,更不好的Reward就是出车祸。然后重复这个过程,目标是最大化Reward。
强化学习的控制过程,本来就是个正向反馈的控制过程,是AI用于机器人控制的基础。以此为基础,强化学习在机器人控制方面出现了一些研究成果。
2)环境中寻找目标
16年,李飞飞组放出了一篇论文,基于深度强化学习,在以目标图像为输入的情况下,不建图去找东西。大致思路是:根据机器看到的图,决定怎么走,然后再看图,再决定新走的一步,直到找到东西。论文将目标图像作为输入,训练出来的神经网络具有通用性。
这种方式找东西更接近人的思维。训练出的控制器并没有记住物体的位置,更不知道房屋的结构。但它记住了在每一个位置,通向各个物体应该怎么走。
3)机器人抓取
传统的机器人学研究认为,需要非常清楚要抓取的物体的三维几何形状,分析受力位置和力的大小,再反向计算机器手如何一步步移动到这些位置。但这种方式抓取不规则形状和柔性物体会很困难。例如毛巾,可能需要看成一系列刚体的链接,再进行动力学建模分析,但是计算量比较大。而小黄鸭那样的橡胶,外部并不能看出弹性程度,难以计算出需要施加的正确的力。
Pieter Abbeel、DeepMind和OpenAI关于机器人控制的研究,都以此深度强化学习为基础。基于强化学习进行机器人抓取,以机器视角看到的图像为输入,以机器最终抓到物体为目标,不断对机器进行训练,从而在不建模和不做受力分析的情况下,实现对物体的抓取。Pieter Abbeel已经展示过机器人叠毛巾,开瓶盖,装玩具等复杂的动作。
不过基于强化学习也仍有很多问题,如效率低、推理过程长、任务难以描述、不能终身学习、不能最大限度从真实世界获取信息等。其中一些通过meta学习,one-shot学习,迁移学习,VR示教等方法的引入得到了改善,有些则还暂时难以解决。
5.Dexterity Network
鉴于深度强化学习的各种问题,Pieter Abbeel在UCBerkeley的同事Ken Goldberg,则采用了叫做Dexterity Network(Dex-Net)的研究思路。首先通过传统机器人学中分析受力和建模的思路,建立一个包含大量数据的数据集,这个数据集里的每一项数据包含一个物体的模型和这个物体在不同姿态下可以被稳定抓起来的施力方式,这些施力方式是通过物体模型计算出来的。有了数据之后,用这些数据训练一个神经网络。然后给出一个新物体,通过神经网络判断这个物体和数据集里哪个物体最相似,然后根据最相似的物体的数据集里包含的施力方式计算出这个新物体的最稳定施力方式。
Ken Goldberg的方案的一个重要弊端,是计算量过于庞大。整个算法占用了Google云服务器上的1500台虚拟机的计算量。此方法也让“云机器人”这个概念受到了关注。
目前Pieter Abbeel和Ken Goldberg的两种方法还处于学术争议阶段,新的研究成果还在不断出现,也还有很多问题没有解决,尤其是稳定性和鲁棒性是各方争议的焦点。不同于语音识别音箱出了错,无非是闹个笑话,机器人系统对稳定性和可靠性的要求非常高,系统一旦出错,轻则毁物,重则造成人类的生命危险。Pieter Abbeel也承认目前还没考虑鲁棒性和稳定性问题,似乎整体还没达到商用产品级。
总结
总体而言,以强化学习为代表,AI在机器人控制领域近两年取得了一些进展,尤其是在过去研究方法难以突破的环境交互问题方面取得了进展。但基于神经网络的控制系统,在鲁棒性等方面短期似乎难以得到解决,因此离实际应用还有很远的距离。在多种研究方法的共同努力下,我们也期待机器人控制问题能够早日有所突破。