清华大学赵明国:AI芯片 +机器人,突破算法瓶颈
8 月 7 日,2020全球人工智能和机器人峰会(CCF-GAIR 2020)在深圳前海华侨城JW万豪酒店启幕。大会由中国计算机学会(CCF)主办,香港中文大学(深圳)、雷锋网(公众号:雷锋网)联合承办,鹏城实验室、深圳市人工智能与机器人研究院协办。
从 2016 年的学产结合,2017 年的产业落地,2018 年的垂直细分,2019 年的中国人工智能 40 周年,峰会一直致力于打造国内人工智能和机器人领域规模最大、规格最高、跨界最广的学术、工业和投资平台。
根据大会安排,8月8日在『机器人前沿专场』上,清华大学研究员,优必选人形机器人首席科学家赵明国教授做了题为《基于计算的智能机器人控制》主题演讲。
赵明国教授表示,在传统控制系统中,算法能力常常受到控制器的制约,智能机器人要想实现多模态非常不便捷,要么难实现,要么功耗大、体积大,如果将AI芯片融入机器人中,提供算法和算力支持则可以有效地解决机器人运动和感知的问题。
演讲中,赵明国教授介绍了其最新机器人案例——无人驾驶自行车。这款机器人能够在复杂的现实环境中,应对变速,不同粗糙度、不同材质的路面等干扰因素的影响,实现完全地自主行进。在他看来,无人驾驶自行车的实现过程需要满足三种基本功能:
-
运动控制:通过嵌入式系统运行控制算法来实现。
-
定位与导航:通过高主频的系统做迭代运算来实现。
-
交互与感知:利用GPU的并行计算做识别或算法推理来实现。
其中,对应的三种算法需求可以全部交由芯片来完成。赵明国教授称,他们在无人驾驶自行车中内置了“天机芯片”,实现了驾驶路径识别、障碍物识别、语音导航、运动控制等多种功能。这款芯片是去年清华大学施路平教授团队重磅发布的一款类脑芯片。它可以同时实现三种不同算法,而且是动态的,可定义,可重新编程。
基于天机芯片完成无人驾驶自行车的演示验证,赵明国教授针对未来智能机器人研究方向,提出了两条新的路径:
芯片+机器人:用机器人做芯片及AI算法的研究平台。
机器人+芯片:用芯片做机器人控制及智能算法的实现平台。
在他看来,未来智能机器人必将与人工智能技术深度融合,AI芯片会在机器人控制领域激发出更多潜能。
赵明国教授表示,无人驾驶车只是完成了地面行进的初级任务,接下来还会进一步探索自行车如何实现腾空、落地等高难度特技。在他看来,
只有把控制问题推向极致,探索技术的边界,才能推动整个技术的进步。我们的愿景就是让机器人能够达到,甚至超越人类操作自行车的水平。
此外,赵明国教授还分享了双足机器人的研究案例。他强调,无论是足式机器人还是轮式机器人,它们都是用于测试算法的工具或者载体,其最终成品并不会用于商业化。
会后,在接受雷锋网编辑采访时,赵明国教授也表示,人形机器人整体还处于学术研究的阶段,距离商业化还有一段路程。从行业发展来看,因研发投入高,技术路线长,很少有企业专注人形机器人的研究。在国家政策支持下,高校团队和部分企业的研发团队的工作比较多,近些年也不断有突破性研究成果发表。
另外,赵明国教授透露,目前正在开拓一些新的研究,预计明年会有相应的成果发表。
以下是赵明国教授的演讲全文,雷锋网 (公众号:雷锋网) 编辑在不改变原意的基础上进行了编辑和整理:
大家上午好!今天我和大家分享关于我们做机器人遇到的问题和思考。我的题目是“基于计算的智能机器人控制”。在机器人控制过程中,我们需要用到控制器来实现各种算法,但这里存在一个现实问题,即控制器的能力决定算法的能力。很长一段时间内我们没有办法突破控制器的限制,算法只能停留在比较初级或者中级阶段,难以到达高级。于是我们换了个思路,让算法来推动控制器的发展。
在这里我们做了两个实验案例,无人驾驶自行车和双足机器人。
需要说明的是,这两个机器人一个是轮式,一个是足式。我做轮式机器人不是为了实用,也不是为了商业化。无人驾驶自行车是我用来检测算法或者解决某些问题的实验工具。同样,双足机器人也是为了做研究性质的实验。他们的实用性有待于后续的商业开发。
“天机芯”驱动的无人自行车
首先我们讲什么叫无人车?没有人操控,可以自主行进的车都叫无人车。机器人本身会涉及到大量动力学原理。尽管自行车发明将近200年,但是力学机理始终没有研究透,直到2016年一群学者在Nature杂志上发表的一篇文章,才把复杂的动力学系统解释的比较透彻。我们做机器人控制也是要充分利用自行车的动力学原理来做。
人对自行车的控制能力很强,比如大家在校园里或者没有障碍的路面可以松手骑自行车。那么如何让自行车保持平衡,并自主行进呢?其实这里面涉及很多力学原理,总体来讲有以下几方面的影响因素。
-
如果自行车在圆弧轨道上行驶就会产生离心力,这个离心力会帮助它保持平衡。
-
自行车特殊的前叉结构——前叉角度和前轮拖曳距,这两个物理参数的变化会自动让车把自动扶正并保持平衡中起到重要作用。
-
整个车体质量的均衡分布也是让保持平衡的原因之一。
-
人在骑车时,上身运动会产生反作用力让自行车保持平衡。
-
车轮的陀螺效应,陀螺力矩会帮助车保持平衡。
-
加装反作用轮(航天器上经常用),或者加力矩陀螺会产生平衡作用。
上述的前两项是我们的研究方向,中间三项需要加装外部装置,与独立自行车没有关系,最后一项是与研究原理不相关。所以我们只选择了最前面两项。
我们利用前两项做控制的时候遇到了一些难点,比如低速、变速行驶影响离心力,风力干扰,大坡度,载荷变化,车轮与不同地面的相互作用等。
以下是一个相对简单的自行车动力学模型,其中的车身、车把和行驶速度可以用三个变量来描述,描述完这三个变量以后我们可以得到一个动力学方程,这个方程具有很强的非线性,而且不同状态下的角度和车速是耦合的,它对参数也很敏感。 另外,我们可以看到方程中很多参数都与速度相关。只要速度变化,动力学方程就会改变,这对我们来说是一个有意思的挑战,如果能够解决速度的影响,我们的控制算法就能向前更近一步。
单一速度下的车把转向控制依靠普通的控制手段就可以解决,我觉得大二、大三的学生可以尝试做固定速度的自行车实验。我们要做的是如何解决变速下的车把转向平衡控制。
以前我们尝试过采用速度估计+分段控制的方法实现变速控制。当时我们用了1个多⽉的时间⼈为调整了20段左右的参数,随着速度变化去切换,就可以⽐较好地解决车的稳定性问题;再⽤这些数据做初始参数去做强化学习,效果还会更好⼀点,可以适应地⾯材质。遗憾的是,在零初始知识的情况下的学习没有成功,虽然⽤Segway平衡车在零知识的情况下的强化学习我们做成了正负10 度范围内的平衡。因为基本学到的是线性部分的知识,所以就没有⽤到⾃⾏车上。因此,我们得出结论,“暴⼒”的强化学习可能不适合这个问题,还需要进一步探索。
我们的无人驾驶自行车是在普通自行车后轮加驱动器,在前车把加转向,加刹车、控制器和相应的各种传感器、电池,这样自行车已经能够实现定速驾驶。其实任何控制器通过反馈控制本身就具有一定的鲁棒性,所以它在基本路面行走是没有问题的。只要把各种速度下的参数都对应好,实现平滑切换就可以做到比较好的鲁棒性。
另外,我们也实现了变速下的自动导航行走,这是我们在清华校园内拍摄的短片,视频中的自行车可以从低速到高速,通过不同粗糙程度、不同材质的路面,我们在其中加入了传感器进行路面识别,它也可以按照比较简单的路径进行导航。
无人自行车能够达到这样的效果,我们做了几件事。除了实现机器人控制外,还加入了感知模块,所以这是我们的动力学模型。
从图中的两个红色圈来看,有些项跟陀螺效应相关,有些项与离心力相关,有些项和结构相关,最重要的第一项是和重力相关。这些项都会随着速度不断变化。
传统方法用NI控制器或者任何工业控制器,再集成大量传感器来做,可以实现这样的效果。当然这里面也有失败的过程,我们经常会摔倒再重新调整参数再做。不过,这是相当传统和复杂的机器人控制方法。
后来我们就没有这样做了。传统任务里面做运动控制需要嵌入式系统,因为嵌入式系统要实现控制算法。同时做定位和导航时,我们需要高主频的系统来做迭代运算,比如SLAM或其他(SLAM也可以在GPU上做)。交互和感知往往需要用GPU做一些识别或者推理算法。总之,适合并行计算、高频计算和实时性要求,这三种计算在智能机器人里面是同时需要的。尤其我们在参加RoboCup比赛时做的人形机器人同时需要这几种计算,最简单的办法是用三台计算机,这三台需要具备不同算力,然后用网线把它们接起来,用操作系统维护数据沟通。
这次我们并没有采用这样的方法。去年清华大学施路平教授团队发布了一款类脑芯片“天机芯”,在一个芯片上就可以实现三类计算,而且是动态的,可以定义,可以重新编程。这是两个学科或者多个学科进行交叉的结果,我们就和做芯片的老师进行了合作,我们用具备这些功能的芯片完成三个任务来测试,如果三个任务都可以实现,就说明芯片具备这三种计算功能。
这对于传统机器人控制硬件来说是很难实现的,如果能够实现也必然体积大,功耗大。那么我们就希望能够利用混合架构的芯片来实现这种功能。于是,我们把驾驶路径的识别、障碍物的识别、语音导航、运动控制的功能全部放到一款芯片中(当然不是一个芯片,而是芯片组成阵列的主板)。
如上面的动图演示,芯片实现了所有的计算功能。我们这项工作成果去年8月1日发表在了Nature杂志上,是我们国家在人工智能领域研究第一篇发表在Nature上的文章。
受这项工作的启发,利用天机芯片完成无人驾驶自行车的演示验证,为自动机器人的研发提供了一个新思路,可以有两条途径:
-
芯片+机器人:用机器人做芯片或者AI算法研究平台,以此来证明算法可行性。算法在推进的同时,以此反馈到机器人上,最终推动高算力或者多性能芯片的实现。
-
机器人+芯片:利用芯片破解机器人算力不足的问题。
这套新思路最早是2016年,张钹老师在Science发表的一篇文章中提到的,其目的是希望人工智能技术和机器人能够相互结合,相互促进。
目前这项研究成果得到了国际著名的杂志和专业人士的认可。另外,值得说明的是,Nature杂志的编辑告诉我们,通常一篇在Nature上发文章的报道量是100,而我们这篇文章的报道量达到了1400,是目前为止最好的。
以算力为支撑的技术挑战
到现在为止,对机器人控制的需求,对算力的需求还远没有结束,我们经常在Youtobe视频中看到一些山地越野挑战赛,这些视频足以证明人类对车的控制能力有多强。
我们的愿景就是让机器人能够达到,甚至超越人类操作自行车的水平。因为这样能够把控制问题推到极限,从而发现技术的边界在哪里,以此来推动整个技术的进步。长期来看,未来机器人控制可以划分为三个发展阶段:
第一阶段:自行车能够在低速、变速、粗糙/障碍路面正常的行进。
第二阶段:自行车能够自主完成腾空、落地等特技任务。
第三阶段:在落地应用中,融入控制和感知系统的自行车,可以像极限山地运动员一样在复杂的环境中可以自如的行进。
目前初级阶段的任务我们已经完成,中期任务和长期任务我们还没有明确方案,不过可以肯定的是这些任务实现必须要有强大的计算作为支撑,如果没有计算,其他局部做得再好也不会达成目标。
双足机器人的被动行走理论
早在1990年就有人提出了机器人被动行走理论。当时机器人是纯机械结构,只要给它初始条件就可以产生稳定的行走。到了2005年,康奈尔大学研究团队基于被动行走理论,研发出了与人类等效的行走机器人。当时这项研究成果发表在Science杂志上引起了不小的轰动,之后也陆续有不少关于被动理论的扩展研究发表。不过,除了哈佛研发的机器人软体外骨骼以外,几乎没有研究成果能够带来实际的应用价值。
外骨骼研究一直是近几年的热门研究领域,在国内就有几十家公司在做。它对于有功能性障碍、特殊工种人士确实有一定使用价值。看到这些成果,我们对其中涉及的理论产生了好奇。
人的步态到底是什么?很多医学科学家在分析了人的步态后发现,所记录的行走轨迹像一团乱麻,是周期性但不是重复的,起初以为是噪音或者步态不均匀导致的结果,最后发现其实人走路是混沌的步态。在1998年,就有人发现当参数变化到特定值时,被动模型中就会表现出混沌特性,后来,这一点在实物中也被证实。
比如,我们利用被动理论做了一款足式机器人,从它的行走数据来看有明显的混沌趋势。那么问题来了,人走路是混沌的,为什么机器人走路是单周期控制的?
TED上有这样一则视频,一位帕金森患者上下楼梯必须扶着扶手,后来,它的孙女做了一个实验,在平面的地上画了多层台阶,结果患者可以在无任何扶手的情况下完成独立行走。当然这和帕金森症的机理有关,但也说明其本身与动力学有关,帕金森的本质是神经系统局部存在障碍、传导不通的情况。这个案例说明,可以通过视觉上的刺激恢复神经系统的正常功能,或许可以解决这一问题。
传统的行走机器人都是按单周期步态在做控制,首要解决的问题是稳定性,而人类步态可能是混沌的。我们能否从被动步行中找到一些人类步态的动力学解释,并利用这些动力学来提高机器人或助行器性能的控制方法?如果按照混沌的特点去控制,可能会有完全不一样的效果。在这里,我们做了一些动力学轨迹的案例分析。如下图:
从SK出发绕一圈回到下次落地的状态,是周期性且重复的。从S0出发,下次落地到S1、S2、S3以及S4,红色点是最终去的地方,是稳定的值,单周期步态是吻合的,这和我们的系统很像。如果是给系统这个参数,系统会最终落到红点,如果我给系统另外一个参数,用一个红色的参数欺骗它,结果是当它走到第二步或者某一步的时候就会经过红色附近。显然对目标红点来讲,采用红色的参数会更好,而不是采用本身黑色的参数(它有渐进收敛的过程)。
如果用假目标欺骗它,那么就要考虑用哪个目标欺骗它会更好?在这里需要做很多运算,首先我需要知道红色轨迹、所有可能的黑色轨迹是什么,把他们都算出来,从中选出来最优化轨迹,再把参数发送给系统。最后,系统等效成传统的现代控制理论中的状态方程的反馈控制问题。
这个方法来自于混沌控制里最经典OGY方法,这里,我们提出了一种MPC的方法,发现通过大量计算的MPC远好过传统的OGY方法。而且如果机器人处于将跌到状态,也可以通过计算机找到适当的轨迹来恢复运动,远远扩大了稳定的范围。
目前,我们还无法实现在线计算和预测,但我们实现了一个只有5组参数的实验。即,我们提前算好了5组不同参数的步态,每组参数对应一个稳定的周期性步态,也就是5组不同的速度(草地、斜坡、狮石子路等5种不同的路径),通过计算来切换轨迹就可以达到稳定性。这和我们原来的暴力增强稳定性方法不一样。我们的控制量不是控制系统的某个指标,而只控制参数,如果指标变了,我改变参数,而不是改变输入量,参数的改变再变换到每个关节的电机上。这样就可以做出另类的结果,跟传统的控制不一样,属于参数激励方法。
另外,我们还做了具有真正的两条腿、两个手臂的人行机器人,它同样需要严格依赖计算的方法,目前还没有得到最终结果,以后有机会给大家展示最终效果。
今天我的报告就到这里。谢谢大家!
。