跳到正文
孔乙己

返回成果

VLA 到低层控制的桥接执行层

用确定性策略替身隔离出『动作块 → 伺服周期』这一层,把插值、限幅与安全包络做成可单独评测的模块。

我的角色独立完成(桥接层设计 / 故障注入 / 评测脚本)
时间2026.10 起
状态仿真实验模块 · 实现中
技术栈Python · MuJoCo · 轨迹插值 · 在线重参数化

VLA 策略以低频输出动作块(action chunk),而低层控制环以高得多的频率运行。 中间这一层要同时处理:块内插值与时间重参数化、关节限位与速度 / 加速度约束、 块边界处的连续性、推理延迟与到达抖动,以及对越界动作的拒绝或降级。

多数开源栈把这层逻辑散落在 demo 脚本里,与具体模型、具体机器人耦合, 没法单独测试——策略换了、延迟变了,执行层行为是否仍然安全,只能靠跑整套系统碰运气。 我在第一份工作做 VLA 真机验证时,相当一部分问题最终定位在这一层而不是模型本身。

这个模块把桥接层隔离成独立被测对象:策略侧用确定性替身(录制的动作序列、 脚本化策略)驱动,不依赖 GPU 推理,就能对执行层做系统性的故障注入评测。 这也意味着本模块不评价任何 VLA 模型的任务成功率——那是策略的属性,不是执行层的。

策略替身(录制序列 / 脚本化策略,可注入故障)
↓
动作块校验(限位、速度 / 加速度、工作空间包络)
↓
插值与在线重参数化(块内平滑 + 块边界连续)
↓
安全包络监督(越界 → 降级 / 平滑停止)
↓
高频控制环执行(MuJoCo 闭环)→ 全量日志
  1. 策略替身是第一公民。回放录制序列保证逐次确定;脚本化策略按需生成 边界用例(越限动作、块间跳变、乱序到达),每个用例有预期的桥接层行为。
  2. 校验在插值之前。动作块先过限位 / 速度 / 加速度 / 工作空间检查, 不合法的块按策略降级(截断、缩放或拒绝并保持安全轨迹),决策记入日志。
  3. 块边界连续性是硬约束。上一块执行中途收到新块时,从当前运动状态 (位置、速度、加速度)做在线重参数化衔接,不允许向控制环下发不连续指令。
  4. 故障注入是评测的主轴。延迟抖动、块丢失、块间不连续、持续越限动作 逐项注入,考察桥接层是否始终维持约束与连续性。

动力学模型复用动力学建模与参数辨识项目的产出,本模块不重做辨识。

首批实验尚未跑完,下表先固定指标定义与验收口径,数字与图表待实验报告产出后原位填入:

指标 口径 当前状态
约束违例 经桥接后下发到控制环的指令,限位 / 速度 / 加速度违例计数(目标为零) 待首批报告
块边界连续性 块衔接处指令加速度跳变的分布与上界 待首批报告
端到端延迟 动作块到达至首个对应控制指令下发的时延分布 待首批报告
降级 / 拒绝行为 每类注入故障下桥接层的处置分类与占比,对照预期行为表 待首批报告

图表位预留:各故障注入场景下的指令时间线对照、块边界加速度分布图, 由评测脚本从日志成套生成后替换本节占位。

评测按用例组织,每个故障注入用例要么验证桥接层按预期处置,要么成为失败案例 (配置 + 日志 + 复现命令)留档。同时明确本模块不覆盖的范围:

  • 策略分布:替身的动作统计不等于真实 VLA 的输出分布, 只能覆盖设计出的边界用例,不能证明对任意策略输出安全;
  • 感知误差:替身直接给动作,视觉 / 语言侧的误差传播不在被测链路内;
  • 执行器模型:MuJoCo 的理想执行器不含电流环动态与力矩饱和的真实形状, 延迟注入是设定模型而非实测。

桥接层对上(策略)与对下(控制环)各是一个窄接口:上游把替身换成真实模型的 推理进程,下游把 MuJoCo 执行换成实机驱动,校验、插值与安全包络逻辑原样保留。 故障注入用例库在实机联调前先在仿真里过一遍,是这层模块对真机部署的主要价值。

仓库正在从 Origin 草稿整理发布,公开后此处与上方按钮会替换为具体地址。 发布内容包含策略替身、故障注入用例库与评测脚本,报告可一键重建。