When the Simulator Fails, Not the Policy: Auditing Contact Artifacts in Simulated Robot Benchmarks
作者: Alex Zhou, Junhao Wu, Xueyang Zhou, Yixiao Huo, Hongcheng Gao, Di Zhu, Zhenghao Zhang, Yongchao Chen
分类: cs.RO
发布日期: 2026-10-30
备注: https://github.com/ALEXander22568/simuguard
💡 一句话要点
提出SimuGuard以解决机器人模拟基准中的接触伪影问题
🎯 匹配领域: 支柱二:RL算法与架构 (RL & Architecture) 支柱四:生成式动作 (Generative Motion) 支柱九:具身大模型 (Embodied Foundation Models)
关键词: 机器人模拟 接触伪影 成功率评估 物理引擎 SimuGuard 审计插件 策略优化
📋 核心要点
- 现有的机器人模拟基准在评估策略时,未能区分模拟器引起的失败与策略本身的缺陷,导致不准确的成功率评估。
- 论文提出SimuGuard插件,通过记录物体接触状态并重放剧集,识别并修复模拟器中的接触伪影问题。
- 实验结果表明,调整物理引擎的距离算法后,接触伪影导致的失败显著减少,成功率从89%提升至98%。
📝 摘要(中文)
在机器人模拟基准中,成功率用于评估机器人策略,而每次失败都对策略评分产生负面影响。许多失败实际上是模拟器的问题,而非策略本身。本文提出SimuGuard,一个用于LIBERO、RoboTwin、RoboCasa和RoboDojo的审计插件,能够在每个物理步骤记录状态,并标记因接触而快速移动的物体。通过重放记录的剧集并调整模拟参数,发现物理引擎的碰撞检测存在问题,导致物体被错误地弹出。通过调整距离算法的阈值,成功率显著提高,从89%提升至98%。
🔬 方法详解
问题定义:本文旨在解决机器人模拟基准中,策略评估时未能准确区分模拟器故障与策略缺陷的问题。现有方法在失败的情况下,往往将所有责任归于策略,导致评估结果不准确。
核心思路:论文提出SimuGuard插件,通过在每个物理步骤记录状态并标记因接触而快速移动的物体,来审计和识别模拟器中的接触伪影问题。这样设计的目的是为了确保评估的准确性,并为后续的调试提供依据。
技术框架:SimuGuard的整体架构包括状态记录模块、接触标记模块和重放与参数调整模块。状态记录模块在每个物理步骤捕捉物体状态,接触标记模块识别快速移动的物体,重放与参数调整模块则用于重现剧集并调整模拟参数。
关键创新:最重要的技术创新点在于通过审计插件的方式,能够在不改变评估标准的情况下,识别并修复模拟器中的接触伪影问题。这与现有方法的本质区别在于,现有方法通常只关注策略本身,而忽视了模拟器的影响。
关键设计:在技术细节上,SimuGuard的关键设计包括对物理引擎的距离算法进行调整,特别是对三角形面积阈值的设置,以避免有效三角形被错误丢弃。
🖼️ 关键图片
📊 实验亮点
实验结果显示,通过调整物理引擎的距离算法,接触伪影导致的失败从100次中的12次降至0次,成功率在五个容器任务中从89%提升至98%。这表明,模拟器的故障对成功率的影响显著,需在评估中加以考虑。
🎯 应用场景
该研究的潜在应用领域包括机器人控制、自动化测试和虚拟现实等。通过提高模拟器的准确性,能够更好地评估和优化机器人策略,从而推动机器人技术在实际应用中的发展。未来,SimuGuard可能会被广泛应用于各种机器人模拟平台,提升其可靠性和有效性。
📄 摘要(原文)
Simulation benchmarks score robot policies by success rate, and every failed episode counts against the policy. Many of these failures are the simulator's fault, not the policy's; we find the cause and fix it. Testing a vision language action model and a world action model in simulation, we find that the policy often places the object and the simulator then ejects it, and that the benchmark's own scripted demonstrations fail the same way. We present SimuGuard, an auditing plugin for LIBERO, RoboTwin, RoboCasa and RoboDojo. It leaves the evaluation unchanged. At every physics step, it records the state and flags an object that starts moving at a contact faster than the robot's contact or gravity account for. It replays a recorded episode bit for bit, and it reruns the episode with one simulation parameter changed. With it we trace these episodes on RoboTwin to the collision detection of the physics engine: for geometry one to two centimeters apart, the engine reports a penetration of about two centimeters, and the solver throws the object out at several meters per second. The cause is one constant: the distance algorithm discards triangles below a fixed area threshold, which valid triangles fall below at the centimeter scale. With that constant changed and nothing else, episodes with an artifact fall from 12 in 100 to none, and the success rate on five container tasks rises from 89% to 98%. Success rates in simulation thus count failures that the simulator causes. Benchmarks on PhysX 5.3.1 or earlier should rerun in a repaired engine. Where the engine cannot change, they should report the success rate together with the range it spans when every flagged episode fails or passes: 75.8% to 98.5% around a reported 83.1% for LingBot-VA.