龙空技术网

24岁浙大毕业生研发两足机器人,可以蹲伏走路和载重走路

DeepTech深科技 33667

前言:

此刻朋友们对“机器人行走代码”可能比较注意,朋友们都想要知道一些“机器人行走代码”的相关资讯。那么小编也在网摘上汇集了一些有关“机器人行走代码””的相关资讯,希望你们能喜欢,咱们一起来学习一下吧!

当机器人遇见强化学习,会碰出怎样的火花?

一名叫 Cassie 的机器人,给出了生动演绎。

图 | Cassie(来源:受访者)

最近,24 岁的中国南昌小伙李钟毓和其所在团队,用强化学习教 Cassie 走路 ,目前它已学会蹲伏走路和载重走路等。

(来源:受访者)

相关论文以 《双足机器人鲁棒参数化运动控制的强化学习》(Reinforcement Learning for Robust Parameterized Locomotion Control of Bipedal Robots)为题,已被机器人国际学术顶会 ICRA 收录。

图 | 相关实验(来源:受访者)

通过强化学习,它能自己走路,并能进行自我恢复。在现实世界中,通过反复试验来训练大型机器人会很危险,为解决这些问题,李钟毓所在小组使用了两个不同的仿真环境。

图 | 室内试验(来源:受访者)

研究中,一个虚拟版本的 Cassie,通过与环境交互产生的大量数据,来学习稳定的步态。

习得的步态控制器,被转移到名为 SimMechanics 的第二个仿真环境中进行验证,该环境有更高的准确性,可用以模拟现实世界的物理过程,但是会减慢仿真运行速度。

而通过使用在仿真环境中学习的步态控制器,Cassie 能非常平稳地行走,且无需进行任何额外微调。它不仅能像人类一样前后左右地走,还能蹲着走,也能承受意料之外的负载,更能从强行推动造成的失稳状态中恢复过来。

比如,在测试期间,Cassie 损坏了它右腿的两个电机,但它仍能调整其步行策略、并进行适应。

机器人如何更鲁棒?答案是强化学习

Cassie 是李钟毓所在的 Hybrid Robotics Group 实验室、从美国 Agility Robotics 公司买来的,它大概有一米多高,内部拥有十个电机,以及二十个自由度。

图 | 实验中的 Cassie(来源:受访者)

据他介绍,Cassie 于 2017 年首次开始出售,他从 2019 年开始接触,目前已经研究两年有余。

买来后,其主要用于测试和验证不同算法,如控制算法和导航控制算法等。在李钟毓这里,Cassie 更像是一个研究平台。

事实上,足式机器人的核心正是控制算法。研究中,李钟毓主要使用 Python 进行编程,主体代码由其所在小组搭建,剩余一部分基于其他学者的开源代码。

由于是二足机器人,算法控制上会更难。而该研究的创新点在于,用强化学习的方法,得到控制二足机器人步态的算法,相比传统基于模型的算法,性能可得到显著提升。

图 | 鲁棒性测试(来源:受访者)

由此带来的鲁棒性也比较强,怎么推它都不会倒,即便在几乎快要摔倒的情况下,也能快速恢复稳定状态,这也是业内首次展示出二足机器人如此稳定的性能。

在强化学习之前,传统基于模型的方法,需要很多时间和技巧给机器人做建模,尤其对于二足机器人而言,一旦其自身性质和周围环境发生改变,比如电机坏了、地面摩擦力有变化,模型很有可能就会失效。

其次,对于双足式的机器人系统,其非线性非常高,并且由于是高自由度的混合系统,每一次踏步都会受到地面冲击力,因此很难获得精确模型。

图 | 室外实验(来源:受访者)

而要想做一个实时控制算法,就要使用相对完整的动力学模型。但是,即便具备好的模型,部署在非常高自由度的非线性系统上,也很难做到较快的实时计算。

因此,使用传统方法时,很多学者都会做出权衡取舍,比如往往用简化模型来做控制算法。

这样做出的算法有两个缺点:一是无法完整利用动力学模型,无法充分发挥机器人系统的灵敏性;二是基于模型的算法,一旦超过其稳定区域,算法就会轻易崩溃。

而强化学习的优点在于,通过相对完整的机器人动力系统,Cassie 在仿真环境反复尝试后,就能获得大量和环境交互的数据,从而学会用稳定步态行走。

图 | 本次研究的核心:基于强化学习的步态控制器(来源:受访者)

如上图所示,这是本次研究提出的基于学习的步行控制器,控制器的输入包括所期望的步态参数、期望的转弯偏航速度、由期望的步态参数解码的参考步态、一段时间内的观察到的机器人状态以及控制器的输出。

另据悉,控制器可输出十个电机的期望位置,通过低通滤波器(LPF)后,可被发送到各个关节处的 PD 控制器产生期望的电机力矩。

两大创新,让 Cassie 可模仿各种步态

李钟毓告诉 DeepTech,该研究主要有两大创新点。

第一个创新点,在于采用了步态库,里面有各种各样不同的步行速度和步行高度的步态,比如有 1 米每秒的前进速度、0.3 米每秒的侧向行走速度、和 0.7 米的步行高度下的步态。这样就能在步态库中各取所需,从而让机器人模仿不同的参考步态,同时还能追踪参考步态的速度和步行高度。

通过步态库,在训练中使用神经网络所代表的控制器,就能控制不同的步行速度和步行高度,比如往前或者往后。此外,不同步态之间还可实现来回切换。

此外,步态库还能提供更多参考动作,Cassie 在仿真学习时,就能见到各种步态,同时还能学会在各种动作下保持平衡。

如下图所示,Cassie 滑了一跤,几乎差点摔倒,但在用安全绳把自己拉起来后,它能迅速恢复稳定步态,这个能力是前所未有的,而且李钟毓也并未就该能力,专门训练过它。

图 | Cassie 的步态(来源:受访者)

也就是说,这是 Cassie 通过在训练中模仿各种步态,并让自己从不同步态的过渡中“自摸学会”的能力,这在大部分基于模型控制算法的机器人身上很难实现。

试想一下,如果机器人自己倒在地上,没有人扶它,无论对它自己还是对周围人都非常危险。

第二个创新点在于,结合了机器人的历史输入和输出,从而实现对 Cassie 和其所在环境的在线系统辨识。

这样,控制器就能让 Cassie 适应不同的环境, 比如不同地面的摩擦力。

(来源:受访者)

测试中,Cassie 的两个电机坏了,但它仍能快速适应系统变化。再比如,把不同重物放在 Cassie 身上,即便拉着后面的安全架,它也能迅速适应这种变化。

据悉,该研究由李钟毓所在的、由 Prof. Koushil Sreenath 带领的课题组,和伯克利大学 Prof. Sergey Levine、以及 Prof. Pieter Abbeel 两个课题组合作。

李钟毓所在的小组,专注于机器人和控制算法领域,其他两个小组则是强化学习方面的专家。此外,该工作的成功也离不开团队成员程旭欣、Xue Bin Peng、Glen Berseth 的共同努力。

可应用于灾后搜救和快递 “最后一公里”

相比其他机器人,Cassie 有更大的运动空间,因为人类社会的环境,主要围绕人类需求而建造。而二足控制算法,能让 Cassie 在人类环境中更好地运动比如爬楼梯,这也是轮式机器人无法实现的。

具体应用中,当发生地震时,Cassie 能在塌房中做救援工作;或者在 “最后一公里” 的快递中,在此之前先用快递车运送到固定地方,但因为收件人一般在室内,这时 Cassie 就能替代快递小哥,把快递当面送给用户。

(来源:受访者)

此外,Cassie 这类二足机器人,形态上和人类相似,人类也更倾向于和它们做更好的交互,比如可以给其设计富有感情的动作,冷冰冰的机器也能变得更有温度。

李钟毓之前的论文 《动画Cassie:一个可读的动力学机器人角色》(Animated Cassie:A Dynamic Relatable Robotic Character), 首次用动画软件给 Cassie 设计了富有表情的动作,并使用基于模型的轨迹优化的算法,设计出来的动作能让 Cassie 在现实世界中复现出来,上述论文也入选了 IROS 2020 最佳娱乐应用论文。

图 | 相关论文(来源:受访者)

据悉,这也是首次在二足机器人上做这种尝试,Cassie 也因此能用肢体语言表达感情和人交互。

图 | 会做表情的 Cassie(来源:受访者)

未来,李钟毓会就 Cassie 的算法技术做以局部开源,相关研究方法已经以论文形式发表,以推动足式机器人的进步。

看好中国机器人发展态势,博士毕业后或将回国发展

谈及研究中难忘的事情,李钟毓表示,当时仿真训练做了很久都“颗粒无收”,不过此前也没有学者能一次就做成功。

仿真训练模型,非常难以部署到真实世界中。毕竟真实环境和仿真环境的差异非常大。为此,他折腾很久都没有眉目,导师也劝他再做不出来就要换方向。

但他秉持 “不是有希望才坚持,而是坚持才有希望” 的想法,首次把训练得到的控制器部署在 Cassie 就取得了成功。

实验成功后,他激动得给导师发了一条短信,导师知道后也非常振奋。这等于无需进行算法调参,开发好就能直接部署到机器人上。

(来源:受访者)

李钟毓生于 1996 年,来自江西南昌,本科就读于浙江大学竺可桢学院,学习机械电子工程,大四时申请到去卡内基梅隆大学(CMU)机器人研究所做科研实习。

在那里,他专门在机器人 Ballbot 的开发,该机器人能在一个球上保持平衡,并能带领盲人避开障碍物,这也为他后续工作夯实了基础。

图 | 李钟毓(来源:受访者)

由于表现优秀,本科毕业后,CMU 的导师把其推荐到伯克利大学机械系控制和机器人方向直博。

今年他在读博二,虽然毕业去向还未明朗,但他认为回国是很好的选择。因为他认为,中国现在有非常成熟的机器人平台,两足机器人也有着很好的发展空间。

标签: #机器人行走代码