Neural Scene Representation for Locomotion on Structured Terrain

2026/6/15

来源:RSS22

Takeaway Message

这篇工作可以看作 ETH ANYmal 团队在《Learning Robust Perceptive Locomotion for Quadrupedal Robots in the Wild》之后,对"地形感知模块"的一次独立化和神经化改造。作者认为,真正限制四足机器人野外行走的往往不是控制器本身,而是前端地图质量,因此他们提出用一个时空神经重建网络直接从噪声深度点云中恢复机器人周围的三维场景,并且能够补全被遮挡区域、修正状态估计漂移,从而为任何运动控制器提供更可靠的地形表示。最终,这个模块在真实 ANYmal 上显著优于传统 Elevation Mapping 和 Voxblox。

背景

从故事线来看,这篇文章的出发点其实非常符合四足机器人领域近几年的发展趋势。过去大家主要关注 locomotion policy,认为只要控制器足够强,就能够适应复杂地形。但 ETH 团队在长期部署 ANYmal 的过程中发现,实际系统里经常出现的问题不是策略不会走,而是地图本身就错了。深度相机存在大量盲区,尤其是机器人身体正下方;同时运动过程中会出现模糊、遮挡、深度匹配失败、状态估计漂移等问题。当这些误差累积后,即使控制器本身很优秀,也会因为错误的地形信息而做出错误落脚决策。传统方法例如 Elevation Mapping 本质上是在做滤波和融合,它们并不真正理解场景结构,因此面对缺失观测和漂移时往往无能为力。作者的核心想法是:既然人类看到半截楼梯也知道下面还有台阶,那么机器人是否也可以学习这种"场景先验",在观测不完整的情况下推断真实地形?

因此,这篇工作的核心目标并不是做一个更精确的 SLAM,也不是做一个新的 locomotion policy,而是学习一个神经场景表示(Neural Scene Representation)。输入是机器人当前时刻的深度点云、机器人位姿以及上一时刻的地图估计;输出则是机器人周围完整的三维地形。换句话说,它试图学习一个函数:从不完整、带噪声的观测恢复局部真实世界。

技术

这篇文章最有意思的地方在于它的"记忆机制"。如果只看当前深度图,那么很多区域根本不可见,例如机器人已经走过的箱子现在位于机身下方,完全落入相机盲区。作者没有简单使用 RNN,而是采用一种非常巧妙的自回归设计上一时刻网络输出的地图先根据机器人运动变换到当前坐标系,然后与当前观测一起作为下一步输入。这样网络实际上一直在维护一个内部世界模型。过去看到过的物体即使暂时消失,仍然能够被保存在地图中。当新的观测到来时,网络再决定哪些内容应该保留、哪些应该修改。这种设计让地图逐渐被"雕刻"出来,而不是每一帧都重新估计。图1和图4展示的正是这个现象:某些箱子已经完全离开视野,但网络仍然能够正确重建它们。

在表示形式上,作者没有采用当时比较流行的二维高度图,而是选择了三维稀疏体素表示。原因很简单:高度图天然丢失三维结构信息,例如桌子在高度图里会变成一个实心块,而真实世界中桌子下面其实是空的。作者把点云离散到 64×64×64 的体素网格中,每个体素不仅记录是否被占据,还记录点在体素内部的精确偏移量,因此能够获得亚体素级别的精度。更重要的是,他们把当前观测和历史地图作为两个时间通道堆叠起来,使问题从 3D 卷积变成了 4D 时空卷积。这样网络可以同时在空间和时间维度上传播信息。

网络结构本身建立在 Minkowski Engine 之上,采用稀疏卷积 U-Net。编码器不断降采样提取全局结构信息,解码器再恢复高分辨率几何细节。由于三维重建会导致体素数量指数增长,作者借鉴 NeuralRecon 等工作的思想,在解码过程中加入 pruning 模块。网络会预测每个体素存在的概率,低概率体素直接删除,从而保持整个计算过程始终稀疏。这个设计非常关键,否则 64³ 的三维体素网格根本无法实时运行在机器人上的 Jetson Xavier 上。

训练方面,作者完全没有使用真实机器人数据,而是在 Isaac Gym 中自动生成大量结构化场景,包括楼梯、墙壁、走廊、箱子等,并让机器人随机行走收集约20万帧数据。他们在训练时主动往数据里注入各种现实世界问题:深度噪声、随机缺失、异常点、姿态误差、地图漂移等等。换句话说,网络从出生开始就在一个"坏掉的世界"里训练,因此部署到真实机器人时反而能够自然适应各种传感器缺陷。这也是其能够实现 sim-to-real 的关键。

实验

实验部分最值得关注的其实不是重建精度,而是对漂移的处理能力。传统 Elevation Mapping 假设机器人位姿基本正确,因此一旦状态估计发生漂移,历史地图和新观测就会出现错位,最终形成台阶、断层等错误结构。图7展示了一个典型案例:机器人上楼梯时状态估计突然下沉约7厘米。Elevation Mapping 直接把新数据叠加到旧地图上,于是出现明显断层;Voxblox 能够部分修正,但机器人脚下区域仍然存在错误;而作者的方法能够检测到"当前观测与历史地图不一致",然后主动整体调整地图位置,因此最终结果与真实地图最接近。

从量化结果来看,提升也比较明显。在楼梯场景中,作者方法的 F1 达到约89%,相比 Elevation Mapping 的76%和 Voxblox 的74%有明显优势;在箱体场景中同样取得最好结果。同时高度误差也最低。更有意义的是,这种地图质量提升最终转化成了 locomotion 性能提升。作者进一步分析发现,当地图存在10厘米以上漂移时,机器人虽然不一定摔倒,但跟踪性能会急剧下降,经常无法按时到达目标位置。也就是说,对于四足机器人而言,"地图正确"往往比"控制器更强"更重要。

如果站在今天(2025-2026)的视角再看这篇 RAL 2022,它其实处于一个很有代表性的历史位置。一方面,它仍然属于经典的显式地图路线:输入点云,输出三维地图,再交给控制器使用;另一方面,它已经开始把神经网络引入地图构建过程,让地图不再只是几何融合,而是带有场景理解能力。从后来的工作发展来看,ETH 后续很多感知 locomotion 工作、NeuralRecon 类工作,以及最近越来越流行的 world model 思想,都能看到这篇文章的影子。