CAA
智慧起航,共创未来
【导读】在8月1日,清华大学依托精密仪器系的类脑计算研究中心施路平教授团队在《自然》(Nature)杂志上发表了一篇封面文章,发布了一项最新研究成果——类脑计算芯片“天机芯”。同时,搭载天机芯,由赵明国教授团队打造的无人驾驶自行车也火爆网络。对此,机器人大讲堂特邀赵明国教授带来《基于自然动力学的机器人控制——无人驾驶自行车及被动行走》主题演讲,为大家详细讲述他们是如何利用天机芯实现自行车的自动驾驶的,并给我们带来生动有趣的被动行走理论。
赵明国教授在仿人机器人步态控制上拥有近20年的研发经历,2003年赵明国教授进入清华自动化系工作,全身心投入到仿人机器人步态控制及无人驾驶自行车的研究中。他不仅是清华大学自动化系副研究员、机器人控制实验室主任,同时担任优必选科技人形机器人首席科学家,和优必选科技人形机器人团队一起在最前沿的人形机器人技术上进行探索,他所带领的团队多次参加全球机器人领域最知名的RoboCup机器人世界杯比赛,在多个赛项上获得前三名。
赵明国教授(左)与大讲堂联合发起人王伟(右)
以下是对赵明国教授演讲内容的简单整理:
无人驾驶自行车
我们有一个愿景,机器人在某种程度上能不能达到人能做的事情,甚至超过人,这是所有从事机器人研究的人,尤其是专注运动控制的人遇到的一个挑战。在挑战的过程中,我们看的是哪些控制的方法可以吸收过来,做一些新的东西。所以,我们本身的目的并不是把无人驾驶自行车做出来。它没有太现实的应用价值。只是把它作为一个标杆,去challenge一些技术,然后这些技术在其他行业能够应用。所以它在天机芯片上也就是一个应用,只不过它包含了很多内容可以去做一些事情。
大家几乎都会骑自行车,很清楚这些问题,自行车一旦会骑了很容易。但自行车的平衡受很多因素的影响(自行车速度、弹性的车轮和不同地面之间的摩擦、风的扰动等等)。自行车是人类100项最伟大的发明之一,一定有很多内容值得我们去做研究。一个自行车看起来很简单,但是它可以作为一个很好的研究平台把很多问题抽象出来。
在我们早期的研究中,是在固定的速度下面,通过车把的转向控制就可以实现在平地上行走或者在稍微粗糙一点的草地上行走,具有比较好的稳定性,也可以过一些障碍。自行车做到这样的功能没有特别大的难度,这是我们最早一代的天机芯片。对于车来讲这是一个固定速度,在一个恒定速度下面,车没有任何问题,控制起来是很容易的。真正的难度在于所有的速度降下来,速度发生变化,有各种扰动的时候,能不能做的更好,那就需要更多的功能。
关于降速这个事我们也做了一些实验。让车的速度降下来,当车身发生倾斜的时候,重力的力矩就会把车拉倒,所以车一定要有个速度,绕着圆弧跑就会有离心力。离心力如果和重力达到一个平衡,车是倒不了的。对于自行车来讲,能把速度降到的极限是降到1.5几公里就可以了。
我们对车的基本想法是能跟住它的主人,所以我们用神经网络做了一些训练,让车可以在主人的后面跟着主人去跑。我们最开始的愿景有这一项。主人变速车要改变速度,主人变路径车也要改变路径。这就超出了车的控制之外,大的系统要形成一个闭环,能够去追踪一些事情。把这些都做完之后,我们加上了一些基本的功能,比如语音识别,所有的控制功能都用天机芯片来实现。天机芯片里是两部分,一部分是像黑盒一样模仿大脑,一部分是像白盒一样模拟大脑。我们做了两部分结构,是第一个异构的芯片,识别、操控恰好是用异构的两部分来实现的。
这个车能不能用,我每周都会被问到这个问题,因为每周都有到实验室来参观的,从教授到企业家都会问这个问题。基本分成两个极端。一种极端觉得这是个很好的东西。实际上机器人面临的环境非常复杂我们几乎处理不了,所以现在只能说我们有其中的一项技术,但是还有十项技术要我们去做,才能达到视频里能用的效果。只做其中一个,不足以支撑那么多应用,所以希望更多的人加入进来。
机器人面临的挑战要比其它人工智能的领域难得多,解决的问题要现实得多,所以还是要一块一块的去解决,我们能解决其中的一块,目前控制平衡我们能解决得很好。再往后发展,人工智能要解决更多领域的问题,才能有更广阔的应用前景,但是现在没有突破性的技术。这个技术不在于机器人本身,还是在于人工智能本身,人工智能要落地在机器人上去做。
做机器人研究和人工智能研究的位置关系,很多人想法都不一样,我觉得是这样的,机器人从业者绝对要认清楚自己是蓝领,研究人工智能的是白领,做机器人一定是为人工智能服务的。当然工业机器人不需要,没有人工智能这么大的发展之前,工业机器人发展的挺好。但是为什么要为它做服务,因为机器人更大的空间还是服务机器人。
机器人要想真正应用,必须和人工智能结合。解决的问题都是靠人工智能来解决的,我们在里面解决的是从属问题。所以,机器人一定是作为人工智能的载体,这样才能把问题解决掉,引进人工智能的手法也还是为了解决控制层面的问题。我们要把平台做好,让人工智能研究者可以在上面做更多的算法和应用测试。所以机器人一定要作为人工智能的载体,这样才能把问题解决掉。
人工智能后面的基础是芯片,芯片是按摩尔定律去做的。制造行业、机器人行业再做也是线性增长,线性增长和指数级增长去对比,自然而然你就明白要选择哪一个,所以一定要拥抱回报率更大的那一个。
关于自行车的运动模型:
这是它的模型,一个车身的倾角、一个车把的转向角、一个速度,三个参数量就可以了。一个后轮的驱动电机或者前轮驱动电机,一个车把转向电机就够了,传感器就是车身的倾角。非常简单的原理,和平衡车没有太大的区别。
这是一个简化的动力学方程,已经做了一定的简化,去掉了若干项,非常弱的项我们都去掉了,所有的这些项它的系数都和我画圈的速度相关。这是在参数上做了很大变化的系统,它的控制就不是那么好控制,但是我们讲科普讲原理的时候只拉出特别强的那几项。
状态之间的耦合,对参数的敏感,要在工程上把这些做的很好。我们最主要的工作还是把速度估计的非常准,测车轮的速度是没有用的,传统的状态观测器也不太适用,也很难建立模型,所以要有理论+自己的实践去做这件事情。下面是简化好的模型。
控制器结构也比较容易做,像大多数机器人一样,无非是一个反馈和前馈。反馈部分解决不确定性的问题,前馈部分解决动力学问题。所以我们把动力学的K1、K2、K3加在里面,把反馈部分调好,这个事情就可以做到了。这是最基本的控制系统,我们还要解决很多问题,比如车下坡,动力没有,重力线变得非常大,要加一些刹车控制。正常的控制可以加速、可以减速,在自行车里只能加速没有减速,不可能靠电机来减或者靠刹车来减,几乎不好控制,所以调整车速的时候要把刹车也加上,这里面就涉及到大量工程问题。经过几年,现在这个车上坡、下坡、各种负载的变化、风的变化基本都没有大的问题。应对速度的变化我们可以用神经网络自动去适配速度。
我们未来想做什么?短期要把低速、静止,包括机动性、粗糙路面可以做的更棒。中期还是这个思路,希望车能够像人一样,人骑自行车能够出来的功能它都能表现出来,比如腾空、落地。将来希望两轮的平衡车能够在复杂环境中行驶,这个时候还需要加环境感知系统,因为一辆摩托车跑到100公里以上,对环境的感知要求就非常高了。所以,它能带动的问题还是比较多的。这个车可以继续做下去,除了芯片以外,还有它本身控制的研究。
被动行走
这是加拿大的一个教授在1988年到1990年做的工作,是一个机械结构,在一个非常小的斜坡上给了一个初始的状态以后它就可以走下去,而且走出来的所有性能指标和人是比较接近的,效率比较高。1990年它发表在机器人技术性最好的杂志上,几乎把这套理论和方法全部写下来了,但实际上这个结果一直没有得到太多人的关注和认可。直到2005年,康奈尔大学用这个原理做了右下角的机器人。这个机器人几乎可以以跟人相同的能量效应完成走路,并发表在Science的307期上,当年引起了很大轰动。
2005年是很有意思的一年,是机器人领域百花齐放的一年,本田机器人可以从走到跑6公里。波士顿动力放了一个视频,你可以踹大狗。2005年那个时间段,所有几个刷新大家眼球,颠覆大家想法的东西,都达到了最大的能量效力,本田的机器人大概只有20分钟,波士顿动力效力还要低。
这个时候这篇文章登在Science上也很正常,因为做到了与人几乎相当的效力。这套原理怎么应用,大家非常关注,2005年一直到2010年这个领域突然火爆起来。但之后进展非常缓慢,说白了这个事情就是牛顿定律,所有事情已经解释的非常清楚了,之后大家也没有提出太多的方法,好在是期间Science发表了好几篇相关研究文章。
这篇文章之后,我们上Science的想法是回收能量上了一篇,实物做出来又上了一篇。实际上这就是一个背包,背包里放一个磁铁切割磁力线就可以发电,但效率很低,没法使用。这个原理被实际做出来放在腿上,腿在走路过程中做正功和负功,又发表了一篇Science,第一作者是中国人,是西工大的一个学生出去之后在加拿大做博士后时做的,09年发表在Science上。纯被动的脚踝增强是2016年康奈尔发表在Nature上,可以提高人走路的效率和能量。除此之外,大的结果就没有了,都是在技术领域去做的。
2014年以后我发现了一些新的问题,觉得可能比较重要。这是一篇文章将人走路的步态记录下来,发现乱七八糟,因为每一步都不是完全相同,这个乱会随着年龄有所不同,但乱里面是不是有规律。最开始人们认为这就是随机的数据,但分析了以后,发现不是随机的,跟年龄、跟混沌等参数有关。
我又偶尔看到了这么一个结果,这是一个帕金森患者,走路是有障碍的,但是他的亲属发现上下楼梯的时候没有问题,跟正常人一样,后面有一个很有意思的情况发现。
关于自行车有两个极端,有些人觉得非常好,有些人觉得没什么用。认为是胡闹的人基本只看到90分以下的事情,认为可能有点过于理想化了。曾经有一家世界500强企业的董事长,清华的副校长带着他来实验室看这个研究,董事长很不客气说搞这个有什么用,什么也干不了,产生不了什么应用。副校长以期待的眼光看着我,当时我就说了一句话,学校里面做研究你承认不承认,他说这个我承认,你们是做了一个很不错的研究,我说那就对了,任何一件事情我们都要分成两部分,第一部分是做研究,第二部分是做应用。做研究是我们的事情,做应用是企业家的事情。
实物机器人也有人发现了,这是日本一个仿被动的四足机器人,一直观测发现后面几乎进入到了混沌的结果。清华力学系的一个博士生叫柳林,他做的被动机器人几乎观察到了八分杈。我也做了一个小的实验装置,学生拿手机去录音,也观察到了八分杈左右的结果。混沌会带来很多重要的结果。单周期步态代表只有一个周期,角度只有一个,每一步都是重复的。但是多周期到混沌以后,每一步都不重复,覆盖的面积非常大,但是就是不倒,可以不停地从一个跳到另一个。展开时间轴曲线,你看不出这些曲线有什么区别,所以画出来就像一个毛线团一样,一圈的毛线都是一个状态的轨迹。问题是人走路最理想的状态是单周期的,还是人的走路就是混沌的,这就涉及到我前面提出的生理学的问题,最终测出来的结果是倾向于混沌的。
计算是用李亚普洛夫指数来算的,根据李亚普洛夫指数的大小来判断它是不是混沌,随着年龄不同也会不同,几乎最后测出来都是认可混沌的。医学人提出来这个结果,在工科人看来有点不太满足,用了5、6个人每个人走二十几步,拿这个数据说这个是混沌,这个不是混沌,这个是帕金森,那个是什么,在工科人看来量不够,所以我们希望做的更多一点。在我们做的小机器人上也观测到这个现象,导致我们产生了别的想法,人走路是混沌的,还是单周期,应该用哪个模型来走。现在所有人都是单周期的,这个理论、那个理论,都是按照单周期来做的,只有一个方法不是,现在在美国比较火的,认为有可能能达到波士顿动力水平的就是HCD混合人工态方法。本质上没有用单周期,而是用了很多周期在做。
我做了一个特别简单的被动机器人,左边第二个。别看小,效力很高。我们是在两腿之间加了橡皮筋,用了燕尾夹去调整橡皮筋的张力,改变它的刚度,也可以用燕尾夹夹一些质量块,无非是调整弹簧的刚度,实际就是改变参数。经过微小的改变,就可以让系统稳定性极大的增强。和前面放的帕金森的视频一样,视觉上做一个微小的刺激就改变了整体的属性。这些系统的方式有共通的地方,能不能通过微小的改变四两拨千斤的去做这个事情,走路的过程中没有人用大脑去走路,都是用脊柱来控制的,中枢神经就可以控制,振荡系统是工作在混沌状态,还是工作在什么状态,能不能通过微小参数去调节就变得很重要,我们要把这件事情解决好。我们得出来被动方面可以起到很好的作用,所以我们就看动力方面。
这个机器人只有两条腿,用的就是女孩子扎头发的橡皮筋。这个机器人十几公斤,只在两腿之间加了一个很小的电机和一个橡皮筋,用电机拉橡皮筋,非常简单的走路模式就出来了。脚底下有个开关,前面的开关碰到了电机向后拉,拉多少度,反过来就向另一个方向拉,但是表现出来的步态跟人的几乎差不多。模型随着弹簧参数的变化最后也会变化出混沌,混沌意味着稳定性非常强。如果走路本身就是混沌状态,这个事就很好解释,先天的动力学就是很稳定的。
记录时间的轨迹,它就是个毛线团,一个周期、一个周期。这变成一个很大的问题,我们做机器人按什么原理去做,做外骨骼按什么原理去做,存在最根本的差异,所有人都按照单周期这样的步态去做,其实就是欠缺一个理论基础。
这边注定是一个机械的做法,但是你做仿生仿的是原理,我们就要确定这个原理是不是正确的。我们做的模型只能是两条腿之间拉个橡皮筋,不是太合理,人是躯干和一条腿之间有弹簧和肌肉,另一条腿也是肌肉肌腱。所以我们做了这样一个模型,仿真分析居然也有混沌现象。过渡到混沌之前,出来一个左边的图,时间图。横轴是时间,纵轴是角度。看数据看不出太大区别,不仔细看认为还是个周期性步态,可能采样点不一样,但是发现蓝色的点不是特别准确。实际做下来之后发现是右面这个图。它就在最外面的圈上跑,一次也不会重复,但会经过13个周期回来一次,不过永远不能整除,只能一圈一圈绕,最后走路的截面变成一个游泳圈,不是一条线。是在游泳圈表面上这样绕,永远不重复,变得非常稳定,再往下过渡就是混沌了。
如果只看时间数据,看人走路的样子,都差不多,实际规律不一样,数据是在游泳圈上绕。好处是稳定性好,坏处是抗干扰能力不够强,给它一个扰动它就容易倒,倒在游泳圈上。说明稳定状态的区域不够大,整个混沌非常大,但效力不够高。所以我们希望单周期的效力高。右边圈画了一个点,这个点是效力最高的点。这张图左边是单周期的,右边是混沌的,代表效力的不同和稳定性的不同。我们想了一个方法,每一次都微小的改变参数,而不是强加一个控制力。改变参数的结果是让它产生的动力学轨迹能够在游泳圈上倾向于我要的那个点,每次都贪婪地选一个最优值出来,这就需要计算。所以我们安排了一个时间窗口预测所有的动力学,预测之后按照不同的参数把它选出来去做。
还是拉动两条腿上的橡皮筋,一条是红色,一条是蓝色。标准的过程是在T等于0的时候,两个角度,红色在0的位置上,另一条腿是蓝色的在上面某一个角度上。时间开始以后,到T1阶段两个都朝某一个方向动,动到T1的时候,蓝色的不动,红色到T2的时候反方向动一下,这个过程就结束了。就两个参数,一个是拉的角度,一个是拉的时间。如果能只控制T1、T2,一个T1是一个系统,改变一次以后变成另外一个系统。所有的系统在某一个时刻就去选,哪个系统对未来是最好的我就选哪一个系统。T1、T2是按照对数收敛分布,我大概三十几组数,如果一瞬间能算出来,在零时刻就知道从现在开始走一步这几组参数里哪个最好我就走哪一个。每一步都这样做,就会出现一个非常好的结果。
传统的方法叫OGY,实际上是控制理论的状态反馈。方法是要很长时间才能回来,绿色的圆代表原来的游泳圈,上面的所有点要求它能够回到中间这个点,越快越好。对我们来讲要30步到40步,才能回到高效力的点上去。因为混沌是不做任何工作的,它要等,等到你进入一个很小的区域因为才能开始控制,把它收敛回来,但是我们不用等,直接就可以做,所以我们大概不到10步就可以回来。每一步都预测结果,有可能是稳定的,有可能是不稳定的,直接切一个最好的就可以了。所有的动力学系统都像银河系的图一样,绕着螺旋线回来原点,绕着螺旋线回来要非常长的步才能回来,但是一个系统的螺旋线,这个点用另外一组参数回来,可能第二步就回到这个点了,因为我是途径这个点,欺骗了它一下,所以这个时候要做计算和选择,在很远的地方也能回来,绿色的圈就变得很小,这个点很大。
我们用这种方法做了一个双足机器人,但不完全是这种方法,而是近似。当它遇到地面干扰的时候,非常容易就切换过去了。在此之前解决干扰问题相对比较困难,要建模,要搞很多控制,现在做一个简单的切换就可以了。理论分析很长,但实际执行的算法非常少,现在还处于只是平面机器人阶段。
我们拿这个做了个游戏,是它的能力,这是个超级玛丽,可以在草地上走,也可以在斜坡上走,可以在粗糙的路面上走。最后遇到球,可以转过去。我们不去测试机器人的某项指标,就是做了一个走路的方法,目标只有一个,就是走,而且要控制速度是多少。所以走在不同路面都会引起速度的变化,为了控制速度就会带来这些属性
以后的应用,除了控制速度、控制落脚点,其他的东西都可以加进去,但目前只用的控制速度和落脚点两项。
我大概就做了两件事,一个是做足式机器人的研究,一个是做自行车,但主业还是足式机器人,自行车是副业。我们希望基础的研究未来可应用、可落地的时候可以应用于服务机器人,特别是人形机器人。谢谢大家!
来源:机器人大讲堂
【重要通知】关于开展2019年度中国自动化学会会士候选人提名工作的通知
【重要通知】关于2019年度CAA科学技术奖励推荐工作的通知
【重要通知】关于开展2019年度中国自动化与人工智能创新团队奖推荐工作的通知
【CAA】中国自动化学会选举产生第十一届理事会领导机构(内附名单)
热烈祝贺中国自动化学会常务理事、火箭军工程大学教授胡昌华荣获中共中央军委通令记功
地址:北京市海淀区中关村东路95号
邮编:100190
电话:010-82544542(综合)
010-62522472(会员)
010-62522248(学术活动)
010-62624980(财务)
传真:010-62522248
邮箱:caa@ia.ac.cn
官方微信公众号(英文)
名称:CAA OFFICIAL
微信号:caaofficial
会员微信公众号
名称:CAA会员服务
微信号:caa-member