# libfranka 0.18.0 Model::zeroJacobian()对末端帧返回全零

> 原文链接：https://robotics.hellobike.com/pitfalls/2025-11-26-libfranka-213
> 频道：pitfalls | 更新日期：2025-11-26 | 标签：auto, github-issue, libfranka
> 核心摘要：libfranka 0.18.0中Model::zeroJacobian()对末端相关帧返回全零致柔顺控制失效，升级至0.18.1或修改源码frame索引可修复。

# libfranka 0.18.0 Model::zeroJacobian()对末端帧返回全零

::: v-pre
> 本文由 AI 根据公开内容整理，可能有误，请以原文为准：[Model::zeroJacobian() returns zeros [0.18.0]](https://github.com/frankarobotics/libfranka/issues/213)（GitHub frankaemika/libfranka #213）

**状态**：已解决

## 问题

升级libfranka至0.18.0后，cartesian_impedance_control示例无报错但丧失柔顺性。排查发现当目标帧为franka::Frame::kFlange、kEndEffector或kStiffness时，Model::zeroJacobian()返回全零矩阵；使用kJoint7等其他帧则正常。

## 环境

libfranka 0.18.0，Franka机器人，涉及franka::Frame::kFlange/kEndEffector/kStiffness帧，底层依赖Pinocchio模型库。

## 解决办法

1. 推荐方案：将libfranka升级至0.18.1版本，该版本已官方修复此Bug。
2. 临时绕过：修改src/robot_model.cpp第13行，将last_link_frame_index_赋值改为pinocchio_model_.getFrameId("link8")，强制指定正确连杆ID以恢复雅可比矩阵计算。
3. 验证：修改后重新编译并运行cartesian_impedance_control示例，确认末端帧雅可比非零且柔顺行为恢复正常。
4. 注意：若使用Model类pose函数且涉及末端、刚度或法兰帧，需同步评估是否受同类Bug影响，建议一并升级修复。

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

## 原始参考来源 (Sources)

- [GitHub frankaemika/libfranka #213：Model::zeroJacobian() returns zeros [0.18.0]](https://github.com/frankarobotics/libfranka/issues/213)