Frame Jacobian 是针对机器人模型中某个具体 frame 的雅可比矩阵,描述该 frame 的空间速度如何由关节速度产生。
如果 表示关节速度或广义速度,某个 frame 的 Jacobian 可写成:
其中 是该 frame 的 6D 空间速度,具体线速度/角速度排列和表达坐标系取决于所用库的约定。
核心问题
普通“末端 Jacobian”通常默认关注末端执行器。Frame Jacobian 更一般:机器人模型里的任意 frame 都可能被拿来做控制或分析,例如法兰、工具中心点、相机、夹爪指尖或中间 link。
它回答的是:当前配置 下,这个指定 frame 的瞬时运动对每个关节速度有多敏感。
核心机制
以 Pinocchio 为例,使用 frame Jacobian 时通常要明确三件事:
- frame id:要分析的是哪个 frame。
- reference frame:速度向量表达在 LOCAL、WORLD 还是其他对齐参考系中。
- 当前状态:需要先基于当前 计算 joint Jacobian 和 frame placement。
在同一机器人姿态下,frame id 或 reference frame 改变,得到的 Jacobian 数值和物理解释都会改变。上层误差向量也必须和 Jacobian 的表达参考系一致,否则 IK 会朝错误方向更新。
工程用途
- 以工具中心点而不是法兰为控制目标。
- 用相机 frame 做视觉伺服误差映射。
- 在诊断中观察某个中间 link 对关节速度的敏感性。
- 给 DLS、伪逆 IK 或局部控制器提供指定 frame 的速度映射。
边界与常见坑
- Frame Jacobian 不是 FK 结果本身,而是 FK 映射在当前点附近的局部导数。
- 不能跨 frame 或跨参考系混用误差与 Jacobian。
- 读取 Jacobian 前必须确保运动学缓存已按当前 更新。
- 如果末端工具偏置没有在 URDF 中建模,frame Jacobian 可能对应法兰而不是真正任务 TCP。