赵明国:基于自然动力学的机器人控制——无人驾驶自行车及被动行走

还记得《自然》(Nature)杂志发表的清华大学“天机芯”论文里酷炫无人驾驶自行车吗?

赵明国:基于自然动力学的机器人控制——无人驾驶自行车及被动行走

S型路线跟踪

赵明国:基于自然动力学的机器人控制——无人驾驶自行车及被动行走

语音控制“左转”

赵明国:基于自然动力学的机器人控制——无人驾驶自行车及被动行走

语音控制“直行和加速”

赵明国:基于自然动力学的机器人控制——无人驾驶自行车及被动行走

自主避障

8月1日,清华大学类脑计算研究中心施路平教授团队在《自然》(Nature)杂志上发表了一篇封面文章,发布了一项最新研究成果——类脑计算芯片“天机芯”。同时,文章中搭载天机芯,由优必选科技人形机器人首席科学家、清华大学赵明国教授团队打造的无人驾驶自行车也火爆网络。

赵明国:基于自然动力学的机器人控制——无人驾驶自行车及被动行走

近日,赵明国教授做了《基于自然动力学的机器人控制——无人驾驶自行车及被动行走》主题分享,详细讲述了团队是如何利用天机芯实现自行车的自动驾驶,并介绍了背后生动有趣的被动行走理论。

2003年赵明国教授进入清华自动化系工作,全身心投入到仿人机器人步态控制及无人驾驶自行车的研究中。他不仅是清华大学自动化系副研究员、机器人控制实验室主任,同时担任优必选科技人形机器人首席科学家,和优必选科技人形机器人团队一起在最前沿的人形机器人技术上进行探索,他所带领的团队多次参加全球机器人领域最知名的RoboCup机器人世界杯比赛,在多个赛项上获得前三名。

无人驾驶自行车能用吗?

机器人在某种能力上达到人类的水平,甚至超过人,这是所有从事机器人研究的人,尤其是专注运动控制的研究人员需要面对的一个挑战。在挑战的过程中,我们追求的是哪些可以提炼出来做一些新的东西控制方法。所以,我们本身的目的并不仅仅是把无人驾驶自行车做出来,更是把它作为一个标杆,去验证一些技术,然后让这些技术在其他行业能够应用。无人驾驶自行车在天机芯片研发过程中的应用就是一个很好的案例。

大家几乎都会骑自行车,而且对人来讲自行车一旦会骑了就是一件很容易的事情,它的平衡受很多因素的影响,如自行车速度、车轮和地面之间的摩擦、风的扰动等等。自行车是人类100项最伟大的发明之一,但其力学和控制机理仍没有完全清楚,一定有很多内容值得我们去做研究,一个看起来很简单的自行车却可以作为研究平台。

赵明国:基于自然动力学的机器人控制——无人驾驶自行车及被动行走

我们早期的研究中,是在固定的速度下,通过车把的转向控制就可以实现在平地上行驶,在稍微粗糙一点的草地上也具有比较好的稳定性,甚至可以过一些障碍。通过控制让自行车做到这样的功能没有特别大的难度,我们通过第一代的天机芯片就实现了这个功能。对于自动行驶的自行车控制起来真正的难度在于低速度、变速度和有各种扰动的时候,能不能做的更好,需要考录更多的内容。

当车身发生倾斜的时候,重力力矩会使车很快倒掉,所以车一定要以一个速度绕着圆弧行驶,这样离心力就会和重力达到一个平衡,车就不会倒掉了。关于低速行驶,我们也做了一些实验,通过改变车的部分结构并来车的速度可以降下来,实验中我们能把速度降到1.5公里每小时,相当于成人散步的速度。

我们对车的最初想法是让它自主跟住主人,所以我们用神经网络做了一些训练,让车可以在主人的后面跟着主人跑。我们最开始的愿景有这一项:主人变速车要改变速度,主人变路径车也要改变路径。这就要求在车的平衡控制功能之外,系统要具有一个视觉闭环,能够去追踪主人及做好行驶路径控制。把这些都做完之后,和整个天机芯片团队一起,再加上语音识别等功能,并把它们都用天机芯片来实现。天机芯片是世界上第一个异构的芯片,我们的识别、操控恰好为它提供了这样应用问题。

赵明国:基于自然动力学的机器人控制——无人驾驶自行车及被动行走

自行车的运动模型

这是自行车的数学模型,车身倾角、车把转向角、后轮速度,三个变量就可以描述了。一个后轮或者前轮驱动电机,一个车把转向电机就能够实现控制,当然需要角度传感器测量车身的倾角,这个系统的平衡原理和倒立摆没有太本质的区别。

赵明国:基于自然动力学的机器人控制——无人驾驶自行车及被动行走

这是一个已经做了简化的动力学方程,去掉了若干影响比较小的项。我画圈的很多项的系数都和速度相关,变速行驶时模型参数会发生很大变化,就不是那么好控制,我们科普自行车原理的时候就只保留最主要的那几项,实际上也就可以实现匀速的控制了。

但为了更大的适应性,解决状态之间的耦合,对参数的敏感等,都要在工程上把这些做得很好。我们最主要的工作之一是把速度估计做得比较准,测车轮的速度是不够用的,传统的状态观测器也不太适用,也很难建立模型,我们需要把这些理论和实际情况结合起来去具体解决这件事情。下面是就简化的模型介绍控制系统。

赵明国:基于自然动力学的机器人控制——无人驾驶自行车及被动行走

控制器结构也像大多数机器人一样,包括一个反馈和一个前馈。反馈部分解决不确定性的问题,前馈部分解决动力学问题。所以我们把动力学的K1、K3计算好,再把反馈部分的K2调好,单一速度的平衡就可以做到了。这是最基本的控制系统,我们还要解决很多问题,比如下坡时后轮要不加动力,车速会变化非常大,需要加一些刹车控制车速。正常的控制系统可以加速、可以减速,在自行车里只能加速没有减速,不应该靠电机主动减速,这样效率不高,应该靠刹车来减速,所以调整车速的时候就涉及到大量工程问题。经过摸索,现在这个车能够实现上坡、下坡、适应负载的变化、风的变化基本都没有大的问题。我们也用神经网络自动去适配速度来应对速度的变化,实际上很好地解决了这些问题。

赵明国:基于自然动力学的机器人控制——无人驾驶自行车及被动行走

我们未来想做什么?短期要把低速、静止,包括机动性、粗糙路面做得更棒。中期还是希望自行车能够实现的更多人类具有的功能,比如腾空、稳定落地等。将来希望自行车能够在更复杂的环境中行驶,还需要增加环境感知系统,因为一辆自行车或摩托车跑到100公里每小时以上,对环境的感知会有非常高的要求。所以,它能带动的挑战性问题也应该比较多。这个车可以继续做下去,除了验证天机芯片的功能以外,它本身控制能力的研究也很有趣。

这个自行车能不能用?我经常都会被问到这个问题,因为每周都有人到实验室来参观,从教授到企业家都会问类似的问题。基本分成两种看法,有人觉得这个很好,也有些人觉得没什么用。认为明天就能应用的可能有点理想化了,认为没用的人可能只看到了当下。曾经有一家世界500强企业的董事长,清华的副校长带着他来实验室,他问我搞这个有什么用,他觉得没什么应用的可能。当时我就问他是否认为这是学校里面可以做的研究工作,他表示认可。我说我们把事情分成两部分,第一部分是做研究,第二部分是做应用,做研究是我们的事情,做应用是企业家的事情。

实际上无人驾驶自行车要面临的环境非常复杂,我们几乎处理不了,现在只能说我们有了一项技术,但是可能还有十项技术要我们去做,才能达到能应用的效果。只做其中一个,不足以支撑那么多应用,所以希望更多的人加入进来解决更多的问题。

被动行走理论的前世今生

赵明国:基于自然动力学的机器人控制——无人驾驶自行车及被动行走

这是加拿大的一个教授在1988年到1990年做的工作,是一个机械结构,在一个非常小的斜坡上给了一个初始的状态以后,它就可以走下去,而且走出来的性能指标和人比较接近。1990年它发表在机器人领域最好的杂志IJRR上,作者几乎把这套理论和方法全部写下来了,但实际上这个结果一直没有得到太多人的关注和认可。直到2005年,康奈尔大学用这个原理做了右下角的机器人。这个机器人以跟人类相当的能量效率实现走路,并发表在Science的307期上,当年引起了很大轰动。

2005年是机器人领域很有意思的一年,本田机器人ASIMO可以从达到6公里每小时的小跑。波士顿动力放出了一个视频,机器人Big Dog可以踹不倒。那个时间段,几个刷新大家眼球、颠覆大家想法的机器人,都要消耗很大的能量,本田的ASIMO大概只能工作20多分钟,波士顿动力的Big Dog效率还要低。

这个时候这篇文章登在Science上也就很合乎情理了,因为机器人做到了与人几乎相当的能量效率。这套原理怎么应用,大家非常关注,2005年一直到2010年这个领域突然火爆起来,但之后进展非常缓慢。简单讲,宏观物体受牛顿定律的支配,根本层面所有事情已经解释的非常清楚了,大家也很难提出太多的方法。值得一提的是,这期间Nature和Science也发表了好几篇相关研究文章。

这篇文章之后,09年Science上发表了一篇关于回收行走能量的文章,实物做出来又发了一篇。实际上提案是一个背包,背包里放一个磁铁切割磁力线就可以发电,但效率很低,没法使用。这个原理被实际做出来时时放在腿上,膝关节在走路过程中做负功的能量被成功转化并进行了存储。这篇文章的第一作者是中国人,是西工大的一个博士学生出去加拿大做博士后时和导师一起完成的。2005年Cornell机器人的作者完成了纯被动的脚踝增强装置,并于2016年发表在Nature上,它可以提高人走路的能量效率。除此之外,“大”的结果就没有了,都是在技术领域上做的。

2014年以后我发现了一些新的问题,觉得可能比较重要。有些生理学研究的人将人走路的步态记录下来,发现数据看上去“乱七八糟”,因为每一步都不是完全相同。最开始人们认为这就是采样或路不平引起的随机干扰,但分析了以后,发现不是随机数据,而更符合混沌的特征,而且和跟年龄、健康程度等有关。

赵明国:基于自然动力学的机器人控制——无人驾驶自行车及被动行走

我又偶尔看到了一个TED演讲。这是一个帕金森患者,走路是有障碍,但是他的亲属发现上下楼梯的时候他行走没有问题,跟正常人一样,后面有一个很有意思的情况是他看到地上画的楼梯后也可以正常走路了。

实物机器人上也有人发现了混沌步态,这是日本一个被动的四足机器人,观测发现了混沌步态的结果。清华力学系的博士生叫柳宁,他做的被动机器人也观察到了分叉步态。我也做了一个小的实验装置,学生拿手机去录音,也观察到了分叉的结果。混沌会带来很多重要的结果。单周期步态代表只有一个周期,每一步都是重复的。但是经多周期到混沌以后,每一步都不重复,覆盖的面积可能步态范围非常大,但是就是不倒,可以不停地从一个转换到另一个。展开时间轴曲线,你看不出这些曲线有什么区别,所以画出来就像一个毛线团一样,一圈的毛线都是一个状态的轨迹。我的问题是:人走路最理想的状态是单周期的,还是混沌的?这就涉及到我前面提出的生理学的问题,最终测出来的结果是倾向于混沌的。

赵明国:基于自然动力学的机器人控制——无人驾驶自行车及被动行走

计算是用李亚普洛夫指数来算的,根据李亚普洛夫指数的大小来判断它是不是混沌,随着年龄不同也会不同,几乎最后测出来都是认可混沌的。医学研究人员提出来这个结果,用了5、6个人,每个人走二十几步,拿这个数据说这个是混沌步态,这个不是混沌步态是帕金森症的步态,那个是什么,在工科人看来量不够,所以我们希望数据能更多一点。在我们做的小机器人上也观测到这个现象,导致我们产生了别的想法,人走路是混沌的,还是单周期,应该用哪个模型?现在所有方法都是单周期的,都是按照单周期来做的。只有一个似乎是例外,美国比较火的混合零动态( HZD)方法,本质上用了很多单周期步态在切换。

赵明国:基于自然动力学的机器人控制——无人驾驶自行车及被动行走

我做了一个特别简单的被动机器人,左边第二个。别看小,效率很高。我们是在机器人两腿之间加了橡皮筋,用了燕尾夹去调整橡皮筋的张力,改变它的刚度,也可以用燕尾夹夹一些质量块来调整质量分布,就是改变系统的参数。经过微小的改变,就可以让系统稳定性得到极大的增强。和前面放的帕金森病人的视频一样,视觉上做一个微小的刺激就改变了整体的属性。这些系统有共通的地方,能够通过微小的改变实现四两拨千斤的效果。人类走路的过程中没有人用大脑去控制,都是用脊柱中的中枢神经来实现控制。中枢神经这个振荡系统是工作在混沌状态,还是工作在其他状态?“能不能通过微小参数的调节性能?”就变得很重要,我们要把这件事情解决好,是否可以解决其他问题。我们已经知道被动原理可以做出很好的机器人,所以我们就看动力机器人方面了。

赵明国:基于自然动力学的机器人控制——无人驾驶自行车及被动行走

这个机器人只有两条腿,用的就是女孩子扎头发的橡皮筋。这个机器人重十几公斤,只在两腿之间加了一个很小的电机和一个橡皮筋,用电机来拉橡皮筋,非常简单的走路模式就出来了。脚底下有个开关,前面的开关碰到了电机向后拉,反过来就向另一个方向拉,但是表现出来的步态跟人的步态很相像。模型随着弹簧参数的变化最后也会出现混沌,混沌步态意味着稳定性非常强。如果走路本身就是混沌状态,这个事就很好解释,系统自身的动力学就是很稳定的。

赵明国:基于自然动力学的机器人控制——无人驾驶自行车及被动行走

这变成一个很重要的问题,我们做机器人按什么原理去做,做外骨骼按什么原理去做,可能存在最根本的差异。所有人都按照单周期这样的步态去做,就是欠缺一个理论基础,这注定是一个机械的做法。我们做仿生仿是原理,就要确定这个原理是不是正确的。我们做的模型只能是两条腿之间拉个橡皮筋,不是很符合实际情况,人是躯干和每条腿之间有肌腱、韧带和肌肉。所以我们做了这样一个与人相近的模型,仿真分析居然也有混沌现象。过渡到混沌之前,会出来一个特殊的分叉现象,如左边的图。横轴是时间,纵轴是角度。看数据看不出太大区别,不仔细看认为还是个周期性步态。脚与地面碰撞状态的像平面图是右面这个图,也是步态像轨迹的庞加莱截面图。每次状态轨道在截面上都有一个点,它们就在最外面的圆圈上跑,一次也不会重复,但会经过13个周期回到初始位置附近一次,不过永远不能回到重复的点上,只能一圈一圈绕,最后走路的像轨道就变成一个游泳圈,而不是一条线。像轨迹是在游泳圈表面上绕的轨迹,永远不重复。再往下过渡就也进入混沌步态了。

赵明国:基于自然动力学的机器人控制——无人驾驶自行车及被动行走

如果只看时间数据,像轨迹和单周期走路的样子都差不多。它的好处是稳定性好,抗干扰能力强,坏处是能量效率不如单周期步态高。所以我们希望步态具有单周期的高效率和混沌步态的高稳定性。右边圈画了一个点,这个点是效力最高的点。这张图左边是单周期的,右边是混沌的,代表效率的不同和稳定性的不同。我们想到了一个方法,每一次都微小地改变一下系统的参数,而不是强加一个控制力。改变参数的结果是让它产生的动力学轨迹能够在游泳圈上倾向于我要的那个状态流形,每次都贪婪地选一个最优参数值出来,就会取得很好的效果,但这就需要计算。所以我们安排了一个时间窗口预测所有轨道的动力学,预测之后把结果最优的参数选出来去实施。

赵明国:基于自然动力学的机器人控制——无人驾驶自行车及被动行走

赵明国:基于自然动力学的机器人控制——无人驾驶自行车及被动行走

还是拉动两条腿上的橡皮筋,一条是红色,一条是蓝色。标准的过程是在T等于0的时候,两个角度,红色在0的位置上,另一条腿是蓝色的在上面某一个角度上。时间开始以后,到T1阶段两个都朝某一个方向动,动到T1的时候,蓝色的不动,红色到T2的时候反方向动一下,这个过程就结束了。就两个参数,一个是拉的角度,一个是拉的时间。如果一个T1、T2是一个系统,改变一次以后变成另外一个系统。所有的可能系统在某一个时刻被选择,哪个系统对未来是最好的我就选哪一个系统。实验中T1、T2是按照对数收敛分布,我大概三十几组数,如果一瞬间能算出来,在零时刻就知道从现在开始走一步这几组参数里哪个最好我就走哪一个。每一步都这样做,就会出现一个非常好的结果。

赵明国:基于自然动力学的机器人控制——无人驾驶自行车及被动行走

类似的传统方法叫OGY,也是90年前后发表在Nature上,实际上是现代控制理论中的状态反馈。这个方法要很长时间才能回来,绿色的圆代表原来的“游泳圈”,上面的所有点要求它能够回到中间这个点,越快越好。对我们来讲要30步到40步,才能回到中间高效率的点上去。因为混沌系统是不需要做任何工作的,它会遍历,等到它进入期望点附近很小的区域内才能开始控制,把它收敛回来。但是我们的方法不用等,直接就可以做,所以我们需要不到10步就可以完成。每一步都预测结果,有可能是稳定的,有可能是不稳定的,直接切一个最好的就可以了。所有的动力学系统都像银河系的图一样,绕着螺旋线回来原点,绕着螺旋线回来要非常长的步才能回来,但是一个系统的螺旋线,可能第二步就会是另外一个你期望的点,因为我是途径这个点,欺骗不了它一下,所以这个时候要做计算和选择,甚至在很远的地方也能回来。

赵明国:基于自然动力学的机器人控制——无人驾驶自行车及被动行走

我们用这种方法做了一个双足机器人,但还很初级阶段,还没有实现在线运算。当它遇到地面干扰的时候,非常容易就切换到新步态上。在此之前解决干扰问题相对比较困难,要建模,要搞很多控制,现在做一个简单的切换就可以了。理论分析很长,但实际执行的算法非常少,现在还处于只是平面机器人的实验阶段。

我们拿这个做了个游戏,它是个超级玛丽机器人,可以在草地上走,也可以在斜坡上走,可以在粗糙的路面上走。最后遇到球,可以撞过去。我们不去测试机器人的某项指标,就是做了一个走路的方法,目标只有一个,就是要控制速度。所以走在不同路面都会引起速度的变化,为了控制速度就会带来这些属性。

以后的应用,除了控制速度、控制落脚点,其他的东西都可以加进去,但目前只用的控制速度和落脚点两项。

机器人是人工智能的最佳载体

机器人面临的挑战要比其它人工智能的领域难得多,解决的问题要现实得多,所以还是要一块一块的去解决,目前我们能解决其中的一块,控制平衡我们能做得很好。再往后发展,人工智能要解决更多领域的问题,才能有更广阔的应用前景,但是现在没有突破性的技术。这个技术不在于机器人本身,还是在于人工智能本身,人工智能要落地机器人是非常好的载体。
做机器人研究和人工智能研究的位置关系,很多人想法都不一样,我觉得是这样的,机器人从业者绝对要认清楚自己是蓝领,研究人工智能的是白领,做机器人一定是为人工智能服务的。当然工业机器人不需要,没有人工智能这么大的发展之前,工业机器人发展的挺好。但是为什么要为它做服务,因为机器人更大的空间还是服务机器人,服务机器人要想真正应用,必须有很好的智能。

赵明国:基于自然动力学的机器人控制——无人驾驶自行车及被动行走

优必选大型仿人服务机器人Walker

服务机器人需要解决的问题最终都是靠人工智能来解决的,我们搞的控制技术在里面解决的是从属问题。所以,机器人一定是作为人工智能的载体,这样才能把问题解决掉,引进人工智能的手法也还是为了解决控制层面的问题。我们要把平台做好,让人工智能研究者可以在上面做更多的算法和应用测试。

我目前的研究大概就做了两件事,一个是做足式机器人的研究,一个是无人驾驶自行车,但主业还是足式机器人,无人驾驶自行车是副业。我们希望基础的技术研究在未来可以应用、可落地于服务机器人,特别是人形机器人。