波士顿动力技术揭秘:后空翻、俯卧撑与翻车,6年经验、教训总结
为什么波士顿动力的人形机器人能完成跑酷、后空翻等高难度动作?为什么有时候它会翻车?工程师从中总结的经验、教训都在这里了。
今年 4 月,著名机器人公司波士顿动力跟全世界开了一个玩笑,先是官宣人形机器人 Atlas 退役,狠狠来了一波回忆杀。
紧接着,就在第二天,他们又放出了一个新的人形机器人视频。新机器人也叫 Atlas,不过由原来的液压改为了电动,身材更为小巧、灵活。
此时,外界才反应过来,原来波士顿动力并不是要放弃人形机器人,而是转变了研发方向,让机器人更加适应工业环境。该公司表示,这个电动版的 Atlas 将于明年初在韩国现代汽车工厂里开始进行试点测试,并会在几年后全面投产。
自公布后,这个机器人鲜少露面。直到最近,在机器人顶会 RSS 的一场技术分享上,大家才知道,原来新的 Atlas 已经进化到可以做俯卧撑、倒立行走的地步了。
这个技术分享来自波士顿动力机器人工程师 Robin Deits。他是 MIT 博士,2018 年至今一直在波士顿动力工作,研究 Atlas 人形机器人的控制。
在分享中,他介绍了 Atlas 机器人过去几年的研发历程,以及从中学到的经验、教训,对机器人行业从业者可能很有启发。机器之心将在这篇文章中进行系统梳理。
Atlas 控制器的核心 ——MPC
在演讲开头,Robin Deits 首先介绍了波士顿动力这家公司。
波士顿动力现在是韩国现代汽车公司旗下的人形机器人公司,员工大概有八九百人,其代表性的机器人有 Spot(机器狗)、Stretch(仓库搬运机器人)和 Atlas(人形机器人)。目前,Atlas 主要还是一个研发平台,波士顿动力正慢慢将其转化为产品。
接下来,Robin Deits 介绍了他们如何将 MPC 用于 Atlas,包括怎么用、遇到了哪些挑战、还有哪些问题没有解决等。
MPC 指的是 Model Predictive Control(模型预测控制),这是一种高级控制策略,通过使用数学模型来预测系统在未来一段时间内的行为,然后优化控制输入,以实现系统性能的最佳化。MPC 的一个关键优势是它能够处理多变量系统,并且可以显式地考虑约束条件(例如输入和状态的限制)。在机器人领域,MPC 通常用于路径规划、运动控制、姿态控制等任务中,因为它能在动态和复杂的环境下提供鲁棒的控制解决方案。
Robin Deits 表示,他们从 2019 年以来实现的所有机器人动作都是依靠 MPC 来完成的,包括跑酷、体操、跳舞、后空翻等等。最近,他们还展示了 MPC 用于操纵物体的效果。2024 款纯电驱动的 Atlas 新版本也是由 MPC 驱动的。
所有版本 Atlas 的 MPC 都有一些共同特点,包括:
1、非线性动力学、成本和约束
Deits 指出,所有 MPC 版本从一开始就包含非线性动力学,非线性无处不在,特别是接触点的位置与接触点施加力的大小之间的耦合。他们选择接受这一点:如果一切都是非线性的,他们不会找到一个完美的线性近似系统。
2、迭代线性化并求解 QP
他们通过迭代地线性化来解决这个问题。这包括从一个初始猜测开始,然后解决一个 QP(二次规划问题),围绕那个 QP 的解进行线性化。
3、从不运行到收敛
他们对收敛不感兴趣,因为 Deits 认为收敛并不能很好地预测机器人是否真的有效。如果机器人在等待过程中摔倒了,那么为了等待收敛到某个阈值而花费上百倍的时间并不值得。
4、利用问题结构提高速度
他们做了很多工作,利用问题结构来提高速度,尽可能保留由 MPC 问题结构带来的稀疏性。
5、不将求解器视为黑盒
他们尝试打开求解器,重写其内部,以提高性能,而不是简单地将求解器视为一个无法更改的黑盒。因为最终,他们需要尽可能快地解决最大的 MPC 问题。
自进入波士顿动力以来,Deits 所在的团队已经在机器人(硬件)上解决了大约 1000 万个 QP 问题,在模拟环境中则解决了 100 亿个。但这些还远远不够。
把机器人看成长了四肢的「土豆」
为了简化模型,他们首先把机器人想象成一个土豆。机器人存在诸多非线性因素,比如力的位置和大小之间的耦合,以及旋转动力学等。通过简化模型,专注于重心动力学,他们成功实现了 Atlas 机器人的 360 度旋转、后空翻等动作。
但是,归根结底,机器人不是土豆,它有可以移动的四肢,因此他们转向了分阶段优化:首先考虑土豆的重心动力学,然后在独立的运动学上做一些下游优化,以找到与「土豆」一致的运动学行为。这种方法效果很好,帮 Atlas 实现了单手支撑跳过平衡木的动作。在这一过程中,他们使用手和脚来操纵重心动力变化,但是以一种跟踪参考轨迹的方式移动四肢,使其清楚地避开平衡木。
但问题是,一旦「土豆」想做一些四肢做不到的事情(「土豆」以为能跳到那么远,而四肢其实不能),Atlas 就会贡献翻车片段。二者之间不够协调。
所以,从这时起,波士顿动力调整策略,开始将 Atlas 视为一个运动学 - 重心动力学耦合的系统(a Kinodynamic System)。这个系统可以让 Atlas 完成 540 度的转体空翻,这是以前的分阶段优化系统做不到的。
此时,他们也意识到,增加模型的复杂性似乎总能在某种程度上提升机器人的性能,尽管这确实会让计算过程变得更加复杂,软件也更加庞大。他们在 MPC 问题中加入的每一个正确元素,都有助于改善机器人的表现,但这同时也意味着需要更强大的计算能力和更精细的软件实现。他们尚未发现一个临界点。
为了让机器人能够操纵物体,他们采取了类似的耦合方法,将机器人和物体的状态放到一个 MPC 问题中去解决,因为二者的运动互相约束。这使得 Atlas 能够做到扔工具包、搬运木板、操纵较重物体等动作。
不过,这些动作都是在非常结构化的环境中完成的,波士顿动力需要考虑机器人实际所处的世界。这让问题变得更大、更难,引入了感知驱动的约束之类的东西。
他们采用像体素地图这样的世界表示
感谢阅读!如果您对AI的更多资讯感兴趣,可以查看更多AI文章:GPTNB。
波士顿动力技术揭秘:后空翻、俯卧撑与翻车,6年经验、教训总结