从机器人视角“看”世界
萧箫 发自 凹非寺
非常AI 报道 | 公众号 QbitAI
波士顿动力机器人get跑酷技能,着实震撼了一波网友。
然而,它的跑酷技能究竟是不是真的?
这套行云流水的动作,背后到底有没有“预设程序”?
机器人是根据环境实时做出动作判断,还是每一步都经过精确测量……
现在,波士顿动力亲自公布了机器人Atlas跑酷背后的原理。
让我们从机器人的视角,来看看它眼中的跑酷世界是什么样的。
机器人眼中的跑酷世界
在机器人Atlas的大脑中,有一个模糊的地图“轮廓”。
同时,Atlas还会拿到一些目标信息,例如在行动中需要完成什么动作、会遇到什么样的障碍物。
相比于精确的感知地图,这个稀疏地图并不会精确到路线轮廓和障碍物之间的距离,而是需要靠Atlas用感知算法去“看”。
像这样,需要实时规划出自己的行走路线,并根据障碍物的距离进行调整:
例如,Atlas知道地图上会出现一个盒子,它要做的动作是跳上去。
这个盒子可能会与地图的标注相差甚远,甚至往旁边移动了0.5米,但它仍然能靠感知算法,正确找到这个盒子并跳上去(除非盒子远得离开了Atlas视野范围,它就会停下来)。
这是3D可视化后,Atlas的跑酷“世界”:
其中,Atlas下一步需要跟踪的物体是绿色的,而不在传感器视野范围内的物体,则是紫色的。
Atlas会凭借自身的跟踪系统,来不断地估计障碍物在地图上的精确位置;再根据导航系统,结合实时感知数据,绘制出需要行走的绿色脚印。
那么,Atlas究竟是怎么感知环境、并做出动作的呢?
首先,它会通过感知算法来“看”,即获取摄像机、激光雷达等传感器数据;然后,再做出行动判断,即转换为决策和物理上的动作。
感知上,Atlas利用ToF深度相机,来生成帧率为15的点云,其中包含大量的距离信息,并借此判断出如何跨过像间隙、窄梁这样的障碍目标。
动作上,Atlas通过惯性测量单元和力传感器,结合关节位置信息来控制身体运动,同时在地面上保持平衡。
Atlas会采用感知软件,利用多平面点云分割算法来从点云中提取出物体表面,并被输入到绘图系统中,让系统通过摄像机参数/照片建立不同物体的模型。
这是Atlas眼中的障碍物、和它的行动规划图:
其中,Atlas会通过深度相机捕捉到红外图像(左上角),并从图像数据中提取出点云,绘制出跑酷障碍物的表面(橙色轮廓)。
再根据传感器观测数据实时进行位置跟踪,在这些物体表面上规划下一步行动,例如跳跃或慢跑等,并提前生成绿色的轨迹脚印。
预设动作,但无须预设细节
从上面的感知算法中可以看出,机器人Atlas的跑酷确实“有备而来”。
也就是说,无论是翻越、跑、跳跃、后空翻,Atlas在跑酷过程中的每一个动作,都需要提前设计好,并被放进模板库中。
在设计中,这些动作会根据轨迹优化技术进行完美调整,再根据具体的行动目标,从模板中进行选用。
同时,利用轨迹优化机器人的离线行为,让工程师来探索机器人行动的极限,来降低计算量。
例如,发现机器人训练过程中的一些限制条件,并及时做出调整。
像机器人后空翻这个动作,表面上的成功率来自于机器人的四肢协调,但经过优化后才发现,这背后的根本原因是由于身体的驱动限制。
而一切行动的控制,都来自于一个叫做MPC(模型预测控制器)的Atlas“大脑”,它要做的就是计算出当下的最佳动作,并根据时间推移预测出最好的行动。
也正是由于这个控制器,让波士顿动力不用在意Atlas的控制细节,因为它不仅能从52cm的跳台跳下来,也能从40cm的跳台一跃而下。
同时,机器人也不会自己做出慢跑后直接后空翻这样“不可能”的行为。
如上种种可以看出,机器人背后确实做出了大量“预设”,但最终的行动和目标,却并不全是演练和动画。
至于网友之前猜测的CG特效,这次波士顿动力似乎的确没用在视频中。
期待机器人Atlas的下一场表演。
参考链接:
[1]https://blog.bostondynamics.com/flipping-the-script-with-atlas
[2]https://www.youtube.com/watch?v=EezdinoG4mk