Robotics Toolbox

Stars

面向机器人研究与教学的 Python 工具箱,覆盖串联机械臂的运动学与动力学、雅可比矩阵、轨迹规划和控制,并提供 Puma 560、Franka Panda 等 50 余种机器人模型。

Robot Kinematics · Dynamics50+ Robot ModelsPython 3.10+
ROBOT DYNAMICS · OPERATIONAL SPACE

让关节动力学正确落到末端六维加速度

这里不是把一个 NameError 换成能运行的表达式,而是重新接通从操作空间速度、解析雅可比到末端加速度的完整动力学关系。

OPERATIONAL INPUT
qn joints6D velocityw6D wrench

Puma 560 · Panda 7-DoF

ANALYTICAL KINEMATICS
q̇ = Jₐ⁺ ẋrecover joint velocity
=J̇ₐ q̇+Jₐ q̈
frame motionjoint dynamics

T · (J̇q̇ + Jq̈) no undefined T / J

CARTESIAN OUTPUT
ω̇xω̇yω̇z
shape = (6,)

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 维,并同步修正文档中的速度、外力和轨迹形状语义。

机器人覆盖

6 轴与冗余 7 轴模型都能正确执行

Puma 560 的单点及双样本轨迹现在得到一致的有限数值结果,7 轴 Panda 也稳定返回 `(6,)` 笛卡尔向量。PR #629 关闭长期存在的 #576,并通过 Linux、Windows、macOS 与 Python 3.10–3.14 的完整 CI 后合入主分支。