为什么 OXE 中 VLA 训练时 state 给关节,而预测的 action 是 xyz 加欧拉角

张开发
2026/4/9 8:56:33 15 分钟阅读

分享文章

为什么 OXE 中 VLA 训练时 state 给关节,而预测的 action 是 xyz 加欧拉角
为什么 VLA 训练时 state 给关节而预测的 action 是 xyz 加欧拉角核心结论在 VLA 训练中state使用关节状态joint state而action预测为xyz Euler这通常不是冲突而是两者承担的角色不同state表示机器人当前的真实内部状态action表示策略输出的任务层控制目标换句话说输入和输出并不一定要使用同一种表征空间。1. state 和 action 的功能不同关节角更适合作为状态输入因为它能够直接反映机械臂当前的真实构型。而很多操作任务在定义动作时更适合放在末端执行器空间也就是笛卡尔空间中描述位置x, y, z姿态Euler angle有时还包括 gripper 的开合量因此模型的输入更偏向“当前机器人是什么状态”而输出更偏向“下一步末端应该往哪里走、如何旋转”。2. 为什么 state 常用 joint state使用关节状态作为输入通常有以下几个原因2.1 信息更完整末端位姿不能唯一确定整条机械臂的构型。尤其是冗余机械臂同一个xyz orientation往往可能对应多组不同的关节角。因此如果只输入末端位姿模型并不能知道当前机械臂具体是怎样弯折的而输入 joint state 后模型可以获得更完整的构型信息。2.2 更贴近真实可观测量关节角、关节速度等量通常是机器人底层系统可以直接读取的状态具有较强的物理真实性和稳定性。2.3 有助于反映控制约束joint state 还能反映很多末端位姿不容易体现的信息例如是否接近关节限位是否接近奇异位形当前构型是否容易引发自碰撞机械臂当前的可操作性如何这些信息对策略决策往往是有帮助的。3. 为什么 action 常预测为 xyz Euler3.1 更符合任务空间的语义很多操作任务本质上是在末端空间里定义的例如手往前移动一点向下压几厘米末端绕某个方向旋转后完成插入对准目标后闭合夹爪这些动作天然更适合用xyz orientation描述而不是直接用各个关节的变化量描述。3.2 更容易和视觉任务对齐VLA 模型通常需要结合图像、语言和动作进行学习。从视觉角度看目标物体的位置关系、朝向关系通常更容易和末端执行器在空间中的移动联系起来。因此相比直接预测 joint action预测笛卡尔空间动作往往更容易学到“朝物体靠近”“调整姿态去抓取”“对准后插入”这类任务语义。3.3 泛化性通常更好如果直接预测关节动作模型学到的可能更像是在这个视角下第 3 个关节转一点第 5 个关节减一点这种表征往往和具体平台、具体姿态绑定较强。而如果输出xyz Euler则更接近“末端该如何运动”的抽象任务表示通常更利于跨初始位姿和场景的泛化。4. 预测 Cartesian action 不代表直接控制电机需要注意的是策略输出xyz Euler后通常不会直接把这个结果原样发送给执行器。实际系统中往往还会有一层控制模块将其转换为底层关节控制命令例如inverse kinematics逆运动学differential IKoperational space controlmotion plannerjoint-level controller因此整体流程更像是observation(image, language, joint state) - policy predicts end-effector action - controller / IK converts it to joint commands - robot executes也就是说VLA 负责输出高层、任务相关的动作目标而底层控制器负责把它落实为可执行的关节命令。5. 为什么 state 不直接也用 xyz Euler虽然 action 使用末端位姿表示较常见但 state 若只保留末端位姿通常会损失很多信息。主要问题在于5.1 存在多解问题同一个末端位姿可能对应多组关节构型因此仅用末端位姿无法完整刻画当前机器人状态。5.2 缺少构型细节模型无法知道当前机械臂是“肘上”还是“肘下”也难以判断当前是否接近限位或奇异区域。因此很多系统会保留 joint state 作为输入以增强状态表达能力。6. Euler angle 只是工程实现中的一种姿态参数化xyz Euler中的Euler并不一定是理论上最优的选择更多时候是出于工程实现方便维度低可读性强容易存储和调试数据集和旧系统中较常见但它也存在一些明显问题会出现万向节锁gimbal lock存在角度周期性带来的不连续问题训练时损失函数设计不够自然因此也有不少方法会使用其他姿态表示例如quaternionaxis-angle6D rotation representationrotation matrix 的连续表示所以“action 预测为 xyz Euler”中的关键其实在于采用了末端空间动作至于是否一定使用 Euler则更多取决于具体实现。7. 一句话总结state 给 joint是为了准确描述机器人当前真实构型action 预测为xyz Euler是为了让策略在更符合任务语义的末端空间中输出控制目标。两者分别服务于“状态表达”和“动作决策”因此使用不同表征是合理且常见的设计。8. 进一步理解的一个直观说法可以把整个过程简单理解为输入层关心的是机器人现在处于什么状态输出层关心的是末端下一步应该往哪里走、怎么转因此state更偏系统状态描述action更偏任务空间控制目标这就是为什么在很多 VLA 或机器人模仿学习框架中会看到joint-state input Cartesian-action output这样的组合。

更多文章