一句话定位
给 Unitree Go2 四足机器人装一个前置 1 自由度”咬合式”夹爪,低层用仿真训练的深度视觉全身控制器(爬障+俯仰),高层用现成 VLM(Florence-2 + SAM2 + GroundingDINO + Cutie)做开放词表检测与轨迹跟踪,全程零真实数据、零微调,在两个未见过的家庭房间里完成”爬上床/沙发叼玩具”的开放世界抓取任务,首次尝试成功率 60%。
背景与定位
四足机器人在纯运动能力(跑、跳、爬障)上已相当成熟,但要做”帮人取物”这类家庭助理任务,缺的是两块拼图:(1) 机械上没有称手的末端执行器,背负机械臂又拖累敏捷性;(2) 语义上缺少对开放世界物体和场景的理解——仿真训练数据覆盖不了真实家庭的多样性。
本工作的解法是把这两块拼图彻底解耦:下层运动控制完全在仿真里练成(不用任何真实数据),上层语义理解完全交给预训练 VLM(不做任何微调)。低层控制器的训练配方直接继承自 extreme-parkour-legged-robots(Cheng et al. 提出的路点引导速度跟踪奖励、egocentric depth 输入)和 robot-parkour-learning 这条”仿真爬障 + 教师-学生蒸馏”的四足 parkour 谱系,蒸馏阶段所用的 Regularized Online Adaptation (ROA) 技术则来自同组更早的 deep-whole-body-control-loco-manipulation。与这些前作相比,本文的差异化贡献是新增一个可俯仰指令跟踪的全身控制目标(把工作空间从平地扩展到床/沙发高度),并第一次把这套 sim-only 控制器和 VLM 语义栈拼成一个端到端的、可在未知房间零样本工作的”取物”系统,而不是停留在纯运动 benchmark 上。与同期把 VLM/VLA 直接接到腿足机器人做导航的 navila-legged-robot-vla-navigation 不同,本文的 VLM 不做端到端动作生成,只做检测/跟踪/PID 目标点生成,动作仍由仿真训练的强化学习策略执行。
模型架构
系统分两条独立管线,之间没有联合训练或共享权重:
硬件:12 自由度 Unitree Go2 四足机器人 + 自研 1 自由度 Finray 夹爪(3D 打印,Dynamixel XM430-W350-T 舵机通过滑块-曲柄机构快速开合,安装在机身前下方,作为机器人的”嘴”)。机载 Jetson(Orin)运行低层控制器(输入 RealSense D435 前视深度)和近距离阶段的 VLM 感知;一台独立工作站运行需要算力的 VLM(输入天花板吊装的第三人称鱼眼俯视相机画面),高层指令通过 Wi-Fi 下发给 Jetson。
低层全身控制器(RL 策略):两阶段训练。
- Phase 1(特权信息教师策略):PPO 训练,观测包含地形高度图(scandots)等特权信息,同时优化俯仰跟踪目标 r_wb = exp(−3·|p_cmd − p|)(p_cmd 从 [−30°, 30°] 均匀采样,仅在无障碍物时启用)和继承自 Extreme Parkour 的路点引导速度跟踪目标 r_tracking = min(⟨v, d̂_wp⟩, v_cmd)/v_cmd(v_cmd 从 [0, 1 m/s] 采样)。
- Phase 2(蒸馏为可部署策略):用 ROA(Regularized Online Adaptation)把教师策略蒸馏为仅依赖机载深度图+本体感知的学生策略;在线估计器结构为 CNN + GRU,处理深度图像的时序序列,输出替代 Phase 1 的 scandots 输入。与 Extreme Parkour 的”双重蒸馏”(同时蒸馏朝向指令和外感知)不同,本文只蒸馏外感知,朝向指令改由 VLM 在部署时直接给定,避免双重蒸馏容易出现的分布外问题。
语义感知与控制栈(VLM,全程零训练/零微调):
- 初始检测:Florence-2 做开放词表目标检测(定位机器人自身和目标物体)。
- 分割:SAM2 生成精确物体掩码;SAM2 同时以 10 Hz 做实时跟踪。
- 导航阶段(远距离,用天花板鱼眼俯视相机):把检测到的目标位置当作单一路点,机器人以恒定线速度 0.8 m/s 朝路点前进,角速度由比例控制器(K_p=0.5)根据当前朝向与路点方向的夹角计算,此阶段俯仰指令固定为 0;当机器人距目标约 1 米时切换到抓取模式。
- 抓取阶段(近距离,用机载深度+RGB):SAM2 算力开销大不适合机载推理,改用 GroundingDINO(0.2 Hz 目标检测)+ MobileSAM(0.2 Hz 在 RGBD 上生成掩码)+ Cutie(10 Hz 高频跟踪)三级流水线,在慢速检测更新之间维持准确的物体位置;从跟踪掩码提取物体中心在机器人局部坐标系下的 (x, y, z)。抓取指令由三个独立比例控制器生成:线速度由 x 坐标控制(K_p=0.5),角速度由 y 坐标控制(K_p=0.5),俯仰由 z 坐标控制(K_p=1);当三坐标均进入阈值范围时触发夹爪闭合。
数据
全程无真实世界数据采集或训练,是本文强调的核心卖点之一。
- 仿真训练环境:Isaac Gym Preview 4,6144 个并行机器人实例,400 种地形,10 级楼梯高度难度课程;楼梯高度 [0, 0.65m]、每环境楼梯数 [0, 6]、楼梯宽度 [0.8, 3m]、楼梯长度 [1.5, 2m]、地形噪声 [0.02, 0.06]、摩擦系数 [0.2, 2];课程晋级/降级阈值分别为总长度的 0.8 倍/0.5 倍。
- 蒸馏阶段用 384 个带实时深度图渲染的视觉环境(vision envs)。
- 域随机化(sim-to-real):外力扰动间隔 8s,最大水平/竖直推力速度各 0.5 m/s,附加质量 [0, 3kg],附加质心偏移 [−0.2, 0.2m],电机强度 [0.8, 1.2],动作延迟 [0, 0.02s],视觉延迟 0.1s,视觉位置随机 0.005m,视觉角度随机 [24°, 34°]。
- VLM 侧完全复用预训练的现成模型(Florence-2、SAM2、GroundingDINO、MobileSAM、Cutie),没有针对本任务采集任何标注数据或做微调。
- 真实世界仅用于评测,不用于训练:3 个真实场景(卧室的床、客厅的沙发、地面),物体(毛绒玩具/塑料水瓶/球)在指定区域内随机摆放,每种设置 10 次试验。
训练方法
- Phase 1(PPO 教师策略):单张 GeForce RTX 4090,训练 20k 迭代,耗时 10 小时。
- Phase 2(ROA 蒸馏,CNN+GRU 在线估计器):训练 5k 迭代,耗时 6 小时(未注明是否同一张卡,但上下文一致推断为同一单卡环境)。
- 奖励设计包含全身俯仰跟踪、偏航速度跟踪、路点方向速度跟踪等主目标,外加一系列辅助奖励(竖直速度惩罚、角速度惩罚、关节加速度、碰撞、动作变化率、力矩变化率、力矩、髋部姿态、关节误差、脚部打滑/踩边缘/拖拽、能耗等),用于促成爬升、平地行走、俯仰过渡之间的平滑切换(具体系数见论文附录 Table V)。
- VLM 侧不涉及任何训练/微调/RL,纯推理时组合调用,靠工程流水线(检测→分割→跟踪→PID)把语义输出转成运动指令,属于”训练好的运动技能 + 免训练的语义路由”架构,而非端到端 VLA。
Infra(训练 / 推理工程)
- 训练:单张 NVIDIA GeForce RTX 4090;Phase 1 教师策略 20k 迭代/10 小时,Phase 2 蒸馏策略 5k 迭代/6 小时;GPU 总数未披露具体并行方案,论文只提到”single GeForce RTX 4090 GPU”(单卡)。
- 推理侧(机载 NVIDIA Jetson Orin):深度编码器网络以 10 Hz 运行(带固定延迟),通过 UDP 与主进程通信;主进程以 50 Hz 执行蒸馏后的低层策略;本体感知数据以 500 Hz 通过 Cyclone DDS 获取;计算出的关节角度和 PD 参数通过 ROS 2 消息发送给 Unitree 内置低层控制器,由其内部 PD 控制器计算电机力矩。
- 深度相机:RealSense D435,经 USB 3.0 接入 Jetson Orin,做孔洞填充、空间滤波、时间滤波,再缩放归一化(与仿真中处理流程对齐)。
- VLM 推理频率:SAM2 跟踪 10 Hz;抓取阶段 GroundingDINO 检测 0.2 Hz、MobileSAM 分割 0.2 Hz、Cutie 跟踪 10 Hz;导航阶段依赖的高算力 VLM 运行在独立工作站上,通过 Wi-Fi 下发指令给机器人。
- 训练总 GPU-小时(除已给出的 10 小时/6 小时外)、精度(fp16/fp32/bf16):论文未披露。
评测 benchmark
仿真消融(Table I,success rate % / average distance %,5 类任务:爬上/爬下/俯仰行走+30°/俯仰行走−30°/平地行走):
- Blind(仅本体感知无深度):爬上/爬下成功率 0/0,平地及俯仰行走 100;对应平均距离 11/10/100/100/100。
- No GRU(MLP 无记忆):0/0/100/100/100;距离 12/13/100/100/100。
- No Distill(跳过蒸馏,直接 PPO+GRU):全 0(成功率与距离均为 0)。
- No Waypoint(去掉路点引导的敏捷运动目标):爬上/爬下 14/12,俯仰行走 90/100/100;距离 10/13/100/100/100。
- Ours(完整方法):爬上 96%、爬下 90%,俯仰行走与平地行走均 100%;对应平均距离 92/84/100/100/100。
- Oracle(Phase 1,使用特权地形高度图,未蒸馏):爬上 98%、爬下 96%,其余 100%;距离 95/92/100/100/100 —— 蒸馏后策略与教师策略差距很小。
真实世界首试成功率与耗时(Table II,10 次试验/设置,三种任务 Bed+Toy / Sofa+Bottle / Ground+Ball,四个基线 Go2 Default / No Tracking / Ours / Teleop):
- Go2 Default(无外感知的内置控制器):三项任务总成功率均为 0(Ground+Ball 的”到达”子阶段 80%,但取物 0%),无法爬上床/沙发。
- No Tracking(仅用初始位姿开环生成指令):Bed+Toy/Sofa+Bottle 总成功率 0,Ground+Ball 总成功率 0(导航子阶段 40%)。
- Ours:Bed+Toy 总成功率 60%(导航+爬上 90%、取物 78%、爬下 86%);Sofa+Bottle 总成功率 60%(导航+爬上 80%、取物 88%、爬下 86%);Ground+Ball 总成功率 70%(导航 100%、取物 70%);平均耗时 Bed+Toy 62s、Sofa+Bottle 50s、Ground+Ball 23s。
- Teleop(专家人工遥操作,替代 VLM 的上限参照):Bed+Toy 总成功率 80%、Sofa+Bottle 70%、Ground+Ball 80%;平均耗时 75s/58s/38s——本系统首试成功率与专家遥操作仅差 20 个百分点左右,且在 Ground+Ball 任务上耗时反而比遥操作快(23s vs 38s)。
- 任务定义:Bed+Toy 需爬上 40cm 高的双人床(玩具在床面 1m×1m 区域随机摆放);Sofa+Bottle 需爬上 44cm 高的沙发(瓶子在 0.2m×1m 区域随机摆放);Ground+Ball 为地面取球(3m×3m 区域随机摆放)。
创新点与影响
- 贡献:(1) 简单有效的 1 自由度”咬合式”前置夹爪设计,让四足机器人具备抓取能力而不显著牺牲敏捷性;(2) 一个仿真训练的通用低层控制器,同时支持敏捷爬障和可控俯仰的全身运动;(3) 用预训练 VLM(而非人类演示或仿真语义标注)做开放词表语义理解和反应式指令生成的架构;(4) 在两个真实但训练时完全未见过的室内场景中验证了零样本泛化能力。
- 影响:“sim-only 运动控制 + 免训练 VLM 语义路由”这一解耦架构为四足移动操作提供了一条不依赖大规模真实机器人数据、也不依赖端到端 VLA 微调的可行路径;作者在项目页明确”欢迎所有人把 ‘DoggyBot’ 这个名字用在自己的开源四足项目上”,作为该方向的一个开放起点(论文结论部分引用了同期的 “Playful DoggyBot”[85] 作为敏捷宠物行为方向的相关工作)。
- 论文自陈局限:夹爪灵巧度有限(仅 1 自由度,“咬合”式抓取无法处理复杂形状/精细操作);导航依赖天花板固定安装的第三人称相机,无法在没有此类基础设施的环境中工作;感知系统存在被遮挡的风险。作者列出的未来方向包括:在不牺牲敏捷性的前提下增强操作能力、只用机载传感器做导航、进一步提升敏捷性以实现”讨喜的宠物行为”、把多个任务整合成复杂序列、提升动态环境下的鲁棒性、引入在线学习和人类反馈,以及探讨四足机器人进入家庭场景的社会影响。
原始链接
- arXiv: https://arxiv.org/abs/2410.00231
- PDF: https://arxiv.org/pdf/2410.00231
- 项目页: https://helpful-doggybot.github.io/
- GitHub: https://github.com/WooQi57/Helpful-Doggybot
一手源存档(sources/)
- helpful-doggybot—project-page(项目页,含摘要/团队/致谢/BibTeX)
- helpful-doggybot—github-readme(GitHub README,全身控制器与 Overhead VLM 两套子系统的安装与使用说明)
- arXiv 原文 PDF(2410.00231,不入 git)