# Franka FR3 URDF默认零位违反关节限位致MuJoCo初始化非法

> 原文链接：https://robotics.hellobike.com/pitfalls/2026-09-02-franka-description-33
> 频道：pitfalls | 更新日期：2026-09-02 | 标签：auto, github-issue, franka_description
> 核心摘要：FR3 URDF缺失默认构型致MuJoCo回退零位越限，临时绕过方案为加载时手动指定SRDF中合法的ready姿态。

# Franka FR3 URDF默认零位违反关节限位致MuJoCo初始化非法

::: v-pre
> 本文由 AI 根据公开内容整理，可能有误，请以原文为准：[[Bug Report] Franka FR3 default configuration violates declared joint limits](https://github.com/frankarobotics/franka_description/issues/33)（GitHub frankarobotics/franka_description #33）

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

## 问题

MuJoCo加载Franka FR3 URDF时，因文件未定义默认关节角，重置状态回退至全零。但fr3_joint4上限-0.1169 rad、fr3_joint6下限0.4398 rad均不包含零点，导致初始qpos分别超限0.1169 rad和0.4398 rad。该问题影响fr3、fr3_v2及fr3_v2_1变体，且SRDF中的extended状态joint4=-0.1同样越限。

## 环境

MuJoCo &gt;= 3.1（验证于3.9.0），franka_description仓库URDF/xacro，机型涵盖fr3、fr3_v2、fr3_v2_1，Python环境调用mujoco.MjModel.from_xml_path加载模型。

## 解决办法

1. 确认硬件限位正确不可修改，禁止通过放宽joint_limits.yaml解决；
2. 在MuJoCo仿真初始化代码中，避免依赖mj_resetData的默认零位，改用SRDF中已验证合法的ready姿态[0, -π/4, 0, -3π/4, 0, π/2, π/4]作为初始qpos；
3. 若使用仅解析URDF的工具链，需在加载后显式注入上述ready构型或自定义合法默认值；
4. 排查并弃用SRDF中extended命名状态，其joint4=-0.1在fr3/fp3/fr3v2/fr3v2_1上均超出上限0.0169 rad；
5. 等待官方将SRDF ready姿态暴露至URDF以支持纯URDF消费者，当前需自行在应用层补全默认构型逻辑。

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

## 原始参考来源 (Sources)

- [GitHub frankarobotics/franka_description #33：[Bug Report] Franka FR3 default configuration violates declared joint limits](https://github.com/frankarobotics/franka_description/issues/33)