Robotics Toolbox

—Stars

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

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

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

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

OPERATIONAL INPUT
qn jointsẋ6D 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
ẍÿz̈ω̇xω̇yω̇z
shape = (6,)

independent of joint count

运行故障

公开方法引用了从未定义的矩阵

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

动力学关系

加速度需要雅可比及其时间导数

调用入口提供的是操作空间速度 `xd`。由 `xd = Ja · qd` 恢复关节速度后,末端加速度必须同时包含解析雅可比的时间导数项与关节加速度映射:`xdd = Jad · qd + Ja · qdd`。原实现混用了未生成的变换矩阵与几何雅可比,还隐含假设其变换导数为零。

维度修复

末端输出始终属于六维操作空间

复用现有 `jacob0_analytical()` 与带同一角度表示的 `jacob0_dot()`,直接计算完整解析关系;将单点和轨迹输出统一为固定 6 维,并同步修正文档中的速度、外力和轨迹形状语义。

机器人覆盖

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

Puma 560 的单点与轨迹输入现在都能得到有限、维度一致的末端加速度;7 轴 Panda 也稳定返回六维笛卡尔向量,而不会把关节数泄漏到输出形状。速度、加速度和轨迹接口重新共享同一套操作空间语义。

PR #629 已随 Robotics Toolbox v1.4.1 正式发布
  • 解析雅可比导数修复
  • v1.4.1 Release Notes 收录
  • 正式版本标签包含合并提交
查看正式版本