文章来源:视觉语言导航。
作者:Wenzhe Cai, Jiaqi Peng, Yuqiang Yang, Yujian Zhang, Meng Wei, Hanqing Wang, Yilun Chen, Tai Wang, Jiangmiao Pang
单位:上海人工智能实验室,清华大学,浙江大学,香港大学
论文标题:NavDP: Learning Sim-to-Real Navigation Diffusion Policy with Privileged Information Guidance
论文链接:https://arxiv.org/pdf/2505.08712
项目主页:https://wzcai99.github.io/navigation-diffusion-policy.github.io/
代码链接:https://github.com/InternRobotics/NavDP
提出了端到端框架——NavDP(Navigation Diffusion Policy),该框架仅在仿真环境中训练,却能够实现零样本(zero-shot)迁移到不同实体在多样化真实世界环境中的导航。
设计了结合基于扩散的轨迹生成和用于轨迹选择的批评函数的NavDP网络,仅依赖于共享策略Transformer编码的局部观测标记,利用仿真中的全局环境特权信息,大规模生成高质量演示数据来训练扩散策略,并利用对比负样本制定批评函数值目标。
提出了大规模导航数据集生成方法,其数据生成效率约为2500轨迹/GPU每天,比真实世界数据收集效率高出20倍,构建了一个包含1244个场景、363.2公里轨迹的大规模导航数据集。
使用高斯溅射技术进行真实到仿真的微调,以进一步弥合仿真到现实的差距,实验表明添加此类真实到仿真数据可将成功率提高30%,且不影响其泛化能力。
在动态开放世界中进行导航是机器人的一个基本但具有挑战性的技能。传统基于模块化的方法存在系统延迟和累积误差等问题,而基于学习的方法又受限于高质量数据的稀缺性。
仿真数据具有多样性和可扩展性,且随着3D数字复制品场景的可用性增加以及神经渲染算法的快速发展,仿真到现实的差距问题有望得到缓解。
模型设计:
构建了一个圆柱形刚体机器人模型,采用两轮差分驱动模型,以实现跨实体泛化。
导航安全半径设为0.25米,以确保机器人在导航过程中与障碍物保持安全距离。
高度随机化:
机器人的高度在0.25米到1.25米之间随机变化,以模拟不同实体机器人的观测视角变化。如果物体高于机器人高度,则在导航轨迹规划过程中不将其视为障碍物。
相机配置:
假设机器人顶部安装了一个RGB-D相机,相机的俯仰角在到之间随机变化,以确保局部可导航区域始终在视野内。
相机的水平视场角(HFOV)和垂直视场角(VFOV)分别设置为和,与RealSense D435i相机相同。
场景预处理:
将场景网格转换为体素图,体素大小为0.05米,用于估计可导航区域的欧几里得符号距离场(ESDF)。
可导航区域定义为z轴坐标低于阈值的体素元素,而障碍区域定义为z轴坐标超过阈值的体素元素。这两个阈值根据机器人高度变化。
路径规划:
将ESDF图下采样到0.2米分辨率,以便于高效地进行A*路径规划。
随机选择导航起点和目标点,A*算法生成规划路径。
轨迹优化:
对于每个路点,在原始ESDF图的局部区域内进行贪婪搜索,通过最大化与附近障碍物的距离来优化位置,使路点远离障碍物。
最后,使用三次样条插值将优化后的路点平滑成连续的导航轨迹。
数据集构建:
利用BlenderProc渲染逼真的RGB和深度图像,从3D-Front和Matterport3D中选择超过1200个场景,生成大规模数据集。
每个场景采样100对起始点和目标点,数据集包含超过56000条轨迹和1000万张渲染的RGB-D图像,覆盖超过360公里的导航距离。
数据增强:
为了增加数据集的多样性,引入了墙壁、地板和门的纹理随机化以及渲染过程中的光照随机化。
多模态编码器
输入为单帧RGB-D图像和导航目标。为了减少深度感知的仿真到现实差距,深度值被裁剪到0.1米到3.0米之间。
深度数据通过从头开始训练的Vision Transformer(ViT)进行编码,而RGB观测数据则使用预训练的DepthAnything ViT编码器,两者都产生256个patch tokens。
一个Transformer解码器将这512个RGB-D tokens压缩成16个融合tokens。
系统支持四种零标注成本的导航目标类型:
点目标:2D可导航平面上的相对坐标。
图像目标:目标位置的RGB观测。
轨迹目标:投影到第一人称视图的首选导航轨迹。
无目标:无特定目标,机器人应在环境中无碰撞地漫游。
每种目标类型都被编码成一个独特的token,与RGB-D融合tokens和轨迹token一起,形成下游处理的核心输入。轨迹token的作用将在后续部分详细说明。
扩散策略头通过预测相对位姿变化序列来生成未来24步的路点。
NavDP采用条件U-Net和DDPM调度器进行去噪过程。为了构建轨迹生成的条件上下文,使用两层Transformer编码器处理输入tokens。
输入tokens的顺序为:前16个索引对应RGB-D感知tokens,接下来的3个tokens用于表示导航目标,最后一个索引保留为轨迹token的占位符。
在路点生成过程中,由于没有先验的轨迹知识,策略Transformer编码器不关注轨迹token。为了防止多个任务之间的训练干扰,根据具体的导航任务,策略Transformer层只关注其中一个目标token。
无目标导航任务不关注这三个tokens中的任何一个。最后,策略Transformer在特定索引处的融合tokens被提供给条件U-Net,用于轨迹生成。
扩散策略能够生成多条导航轨迹,但随机选择一条轨迹可能会因为序列决策问题中的累积预测误差而导致碰撞。而在现实世界中,确保机器人的安全性至关重要。
为了解决这个问题,提出了一个批评函数,它可以普遍评估任何导航轨迹的安全性,而不依赖于任何目标。
批评函数头共享策略Transformer的权重和RGB-D tokens,但不关注目标索引处的tokens。轨迹token位于最后一个索引。轨迹token通过1D卷积网络进行编码。
在推理过程中,根据预测的批评分数选择生成的轨迹批次。
扩散策略头和批评头都使用仿真数据进行训练。为了在训练期间增强数据多样性,通过对轨迹的起点和终点进行随机采样,使用子轨迹作为策略训练的基本单元。
标签动作定义为中间帧相对于起始点的相对位姿。因此,端点位姿作为点目标,端点处捕获的RGB图像定义为图像目标,将轨迹投影回第一人称视图图像形成轨迹目标。
此外,通过遮蔽目标信息,可以将任务视为无目标场景。这四种任务类型共同构成了扩散策略头预测的多任务训练目标。
通过调整策略Transformer的输入掩码,扩散策略头在不同的条件下接收动作序列生成的条件。使用均方误差(MSE)损失在四种条件下预测的噪声和标签噪声之间进行反向传播。
目标是构建一个能够区分安全和危险轨迹的批评函数。然而,数据集中的轨迹完全由完美、无碰撞的动作组成,这些数据不足以形成这样的知识。
为了解决这个问题,应用了一种简单但有效的数据增强技术。对于用于训练扩散策略头的每个子轨迹,对原始路径应用随机旋转。设原始路径为,旋转后的路径为。
然后从范围(0,1)中随机采样一个权重,增强轨迹是和之间的插值,表示为。
在训练期间,将增强轨迹编码并输入策略Transformer进行批评值预测。由于仿真数据集中有全局ESDF图,因此可以轻松计算预测轨迹上每个路点到障碍物的距离。
设增强轨迹上第k个路点到障碍物的距离为。然后根据以下公式计算批评值标签:
其中,是轨迹预测长度,是安全距离阈值,是重权超参数。默认情况下,设置为0.5米,设置为0.1。
因此,批评函数的损失为:
实验评估和指标评估平台
仿真环境:使用IsaacSim进行高保真物理仿真,构建了三个功能场景(医院、办公室、仓库)。
机器人平台:选择三种不同类型的机器人进行评估,包括ClearPath Dingo(轮式机器人)、Unitree Go2(四足机器人)和Galaxea R1(人形机器人)。
真实世界场景:为了评估仿真到现实的迁移能力,构建了三个真实世界场景,并使用高斯溅射(Gaussian Splatting)技术重建了对应的仿真场景。
无目标导航任务:评估策略的安全性和一致性。主要指标包括:
Episode Time:机器人在碰撞前的持续时间(秒)。碰撞发生时,当前剧集结束,最大剧集时间为120秒。
Explored Areas:机器人在导航过程中探索的区域大小(平方米)。
点目标导航任务:评估路径规划的准确性和效率。主要指标包括:
Success Rate:机器人到达目标区域(距离目标小于1米)且线速度小于0.5米/秒的成功率(百分比)。
SPL(Success weighted by Path Length):路径长度加权成功率,衡量路径规划的效率和准确性。
实验结果无目标导航任务
仿真场景:NavDP在仿真场景中的表现显著优于其他基线方法。例如,在Dingo机器人上,NavDP的平均持续时间(Episode Time)为104.5秒,探索区域(Explored Areas)为280.2平方米,而其他方法如GNM和ViNT的平均持续时间分别为41.7秒和33.1秒,探索区域分别为61.8平方米和38.4平方米。
真实到仿真场景:在真实到仿真场景中,NavDP同样表现出色。例如,在Unitree Go2机器人上,NavDP的平均持续时间为95.8秒,探索区域为359.1平方米,而其他方法如NoMad(Pretrain)的平均持续时间为33.5秒,探索区域为60.2平方米。
真实世界场景:NavDP在真实世界场景中的表现也非常好。例如,在Galaxea R1机器人上,NavDP的平均持续时间为70.2秒,探索区域为95.7平方米,显示出良好的泛化能力。
仿真场景:NavDP在仿真场景中的成功率(Success Rate)和SPL(Success weighted by Path Length)均优于其他方法。例如,在Dingo机器人上,NavDP的成功率为70.4%,SPL为58.6%,而其他方法如PointNav的成功率为22.1%,SPL为16.6%。
真实到仿真场景:在真实到仿真场景中,NavDP的成功率和SPL也表现出色。例如,在Unitree Go2机器人上,NavDP的成功率为75.0%,SPL为50.2%,而其他方法如ViPlanner的成功率为62.0%,SPL为47.2%。
真实世界场景:NavDP在真实世界场景中的成功率和SPL也显示出良好的泛化能力。例如,在Galaxea R1机器人上,NavDP的成功率为64.6%,SPL为62.1%。
NavDP在不同机器人平台上的泛化能力非常强。例如,在无目标导航任务中,NavDP在Dingo、Unitree Go2和Galaxea R1机器人上的平均持续时间和探索区域均显著优于其他基线方法。在点目标导航任务中,NavDP的成功率和SPL也显著优于其他方法,显示出良好的跨实体泛化能力。
批评函数(Critic Function):批评函数在训练过程中作为辅助损失函数,在推理过程中用于选择最安全的轨迹。实验表明,批评函数对于提高策略的安全性和性能至关重要。
多任务训练目标(Multi-task Training Objectives):NavDP支持多种导航目标类型(点目标、图像目标、轨迹目标和无目标),这些多任务训练目标有助于提高策略的泛化能力。
NavDP能够实现零样本仿真到现实迁移。在真实世界场景中,NavDP在不同机器人平台上的表现与仿真场景中的表现相当,显示出良好的泛化能力。例如,在Galaxea R1机器人上,NavDP在真实世界场景中的平均持续时间为70.2秒,探索区域为95.7平方米,与仿真场景中的表现相当。
真实到仿真重建有助于仿真到现实迁移。实验表明,使用少量真实到仿真数据进行训练可以显著提高策略在真实世界场景中的成功率。例如,在Dingo机器人上,使用27%的真实到仿真数据进行训练,成功率从50%提高到80%,而不会影响策略的泛化能力。
实时性:NavDP能够实时推理(>10Hz),在动态场景中快速进行碰撞避免,而传统基于地图的规划方法在动态场景中往往难以实时响应。
泛化能力:NavDP在不同机器人平台上的泛化能力优于基于规划的方法。例如,EgoPlanner在轮式机器人上表现良好,但在四足机器人上容易卡住,而NavDP在不同机器人平台上均表现出良好的性能。
结论:
NavDP通过利用大规模仿真导航数据集和仿真中的特权信息,训练出了一种跨实体的仿真到现实的导航策略,具有高效的推理速度,能够在静态和动态场景下进行路径规划和碰撞避免。
未来工作:
将尝试引入额外的视觉语言导航数据集,使NavDP支持语言指令作为导航目标;
明确将实体编码作为网络输入,以提高在复杂环境中的碰撞避免能力;
构建能够直接将原始观测映射到关节控制并区分最可行路径的端到端策略,以实现更具泛化能力的敏捷导航策略。