在讨论视频More Parkour Atlas时,一位朋友询问机器人的动作为何与真人的动作如此相似,并想知道这是如何实现的?
据我所知,这不是开发人员“编程”的东西,而是从学习算法中产生的。
您能否就如何实现这一目标提供概述和一些参考?
在讨论视频More Parkour Atlas时,一位朋友询问机器人的动作为何与真人的动作如此相似,并想知道这是如何实现的?
据我所知,这不是开发人员“编程”的东西,而是从学习算法中产生的。
您能否就如何实现这一目标提供概述和一些参考?
因为波士顿动力是一家私人的营利性公司,我们无法确定他们是如何取得成果的。但是,我们可以检查可用的公共信息并做出有根据的猜测。
在随视频发布的信息中,波士顿动力公司告诉我们,他们使用
... 一种优化算法将每个机动的高级描述转换为动态可行的参考运动。然后,Atlas 使用模型预测控制器跟踪运动,该控制器从一个动作平滑地融合到下一个动作。
这听起来像是将三种较旧的 AI 方法混合在一起来创建视频。
首先,他们提到使用优化算法从“动态可行的参考运动”中组装复杂的运动。这听起来像是他们首先学会了,或者可能预先编程了一系列简单的动作,这些动作本身并不令人印象深刻,但可以组合成更复杂的动作。这种方法称为分层学习,由 Peter Stone 和 Manuela Veloso 在 1990 年代后期开创。它在学术机器人竞赛中被广泛并成功地使用。基本上,该算法会尝试不同的简单动作组合和序列,直到找到一个接近所需复杂动作的组合和序列。这通常使用本地搜索算法或有时使用其他优化工具来完成。
当然,第二种技术实际上是学习执行分层学习可以组合成更复杂的动作的基本动作。这通常是通过某种形式的强化学习来完成的,但有时是由明确解决简单系统运动方程的编程来完成的。
最后,他们需要使用模型预测控制器在分层学习方法提出的动作序列之间进行平滑插值。在这种方法中,设计机器人的工程师非常仔细地测量,对于这个特定的机器人,它的各个部分究竟是如何移动或继续移动的,并将其写成一个称为动力系统的数学模型. 该模型允许算法计算出这个特定机器人的动作在执行动作时是如何偏离计划的动作的。滑动的发生是由于摩擦等原因(机器人的部件并非完全光滑,可能有不同的润滑量,或者电机可能会打滑)。然后,该算法可以对运动进行微小的更改,以消除这些意外的颠簸。这就是让一切看起来如此顺利的部分。
同样值得注意的是,视频并不能完全代表他们的算法获得的典型结果。波士顿动力公司在视频说明中声称,他们的算法在大约 80% 的时间内“成功”实现了所需的运动。他们没有告诉我们“成功”是什么意思,但这段视频可能只是精心策划和拍摄的许多镜头中最好的一个。