公开方法引用了从未定义的矩阵
`DynamicsMixin.accel_x()` 的正常调用会走到未定义的 `T` 与 `J`,使已发布的 1.4.0 包直接抛出 `NameError`;同时结果缓冲区错误地使用关节数 `self.n` 作为列数,7 轴冗余机器人无法返回应有的六维笛卡尔加速度。

面向机器人研究与教学的 Python 工具箱,覆盖串联机械臂的运动学与动力学、雅可比矩阵、轨迹规划和控制,并提供 Puma 560、Franka Panda 等 50 余种机器人模型。
这里不是把一个 NameError 换成能运行的表达式,而是重新接通从操作空间速度、解析雅可比到末端加速度的完整动力学关系。
Puma 560 · Panda 7-DoF
q̇ = Jₐ⁺ ẋrecover joint velocityJ̇ₐ q̇+Jₐ q̈T · (J̇q̇ + Jq̈) no undefined T / J
independent of joint count
`DynamicsMixin.accel_x()` 的正常调用会走到未定义的 `T` 与 `J`,使已发布的 1.4.0 包直接抛出 `NameError`;同时结果缓冲区错误地使用关节数 `self.n` 作为列数,7 轴冗余机器人无法返回应有的六维笛卡尔加速度。
调用入口提供的是操作空间速度 `xd`。由 `xd = Ja · qd` 恢复关节速度后,末端加速度必须同时包含解析雅可比的时间导数项与关节加速度映射:`xdd = Jad · qd + Ja · qdd`。原实现混用了未生成的变换矩阵与几何雅可比,还隐含假设其变换导数为零。
复用现有 `jacob0_analytical()` 与带同一角度表示的 `jacob0_dot()`,直接计算完整解析关系;将单点和轨迹输出统一为固定 6 维,并同步修正文档中的速度、外力和轨迹形状语义。
Puma 560 的单点及双样本轨迹现在得到一致的有限数值结果,7 轴 Panda 也稳定返回 `(6,)` 笛卡尔向量。PR #629 关闭长期存在的 #576,并通过 Linux、Windows、macOS 与 Python 3.10–3.14 的完整 CI 后合入主分支。