# OpenVLA输出动作欧拉角顺序不一致及万向节锁问题

> 原文链接：https://robotics.hellobike.com/pitfalls/2024-07-01-openvla-6
> 频道：pitfalls | 更新日期：2024-07-01 | 标签：auto, github-issue, openvla
> 核心摘要：OpenVLA未对齐数据集旋转定义，需微调适配目标域；欧拉角奇异点导致状态抖动，建议改用非欧拉表示。

# OpenVLA输出动作欧拉角顺序不一致及万向节锁问题

::: v-pre
> 本文由 AI 根据公开内容整理，可能有误，请以原文为准：[yaw pitch roll or roll pitch yaw](https://github.com/openvla/openvla/issues/6)（GitHub openvla/openvla #6）

**状态**：有绕过办法

## 问题

Open-X-Embodiment数据集中动作向量旋转分量存在[yaw, pitch, roll]与[roll, pitch, yaw]混用现象。官方确认训练时未对齐各数据集坐标系与欧拉角定义，仅保证前3维为平移、后3维为旋转、第7维为夹爪。此外，使用固定坐标系RPY时，当Pitch接近90度触发万向节锁，导致状态差分计算出的动作非零，引发控制异常。

## 环境

OpenVLA模型，Open-X-Embodiment (OXE) 数据集（含TACO-Play等），RT-X/Octo训练范式

## 解决办法

1. 若需适配特定机器人构型，必须使用目标域数据对OpenVLA进行微调，使模型学习并输出目标动作空间定义。
2. 若不做微调直接推理，需确保部署环境与训练集中某一具体数据集的硬件配置及动作定义严格一致。
3. 针对欧拉角万向节锁导致的动作计算异常，避免在奇异点附近使用状态差分法计算动作，或改用四元数/旋转矩阵等非欧拉姿态表示以消除奇异性影响。

讨论原作者：@maytusp 等，版权归原作者所有。
:::

## 原始参考来源 (Sources)

- [GitHub openvla/openvla #6：yaw pitch roll or roll pitch yaw](https://github.com/openvla/openvla/issues/6)