# libfranka笛卡尔速度控制触发关节加速度不连续反射错误

> 原文链接：https://robotics.hellobike.com/pitfalls/2026-01-19-libfranka-199
> 频道：pitfalls | 更新日期：2026-01-19 | 标签：auto, github-issue, libfranka
> 核心摘要：CartesianVelocities指令阶跃导致反射报错，需手动实现速度平滑过渡或使用MoveIt等运动生成库。

# libfranka笛卡尔速度控制触发关节加速度不连续反射错误

::: v-pre
> 本文由 AI 根据公开内容整理，可能有误，请以原文为准：[Error when using Cartesian Velocity contol (`libfranka: Move command aborted: motion aborted by reflex! ["cartesian_motion_generator_joint_acceleration_discontinuity"]`)](https://github.com/frankarobotics/libfranka/issues/199)（GitHub frankaemika/libfranka #199）

**状态**：有绕过办法

## 问题

使用 `libfranka` 发送 `franka::CartesianVelocities` 指令时，若从静止状态直接给定恒定速度（如0.025m/s），会触发安全反射报错 `motion aborted by reflex! ["cartesian_motion_generator_joint_acceleration_discontinuity"]`。即使监测到的关节位置、速度、加速度及力矩均未接近物理限值，该错误仍会发生。

## 环境

Franka Panda机器人（非FR3），libfranka 0.8.0，Ubuntu 20.04系统。

## 解决办法

1. 避免在控制回调中直接发送阶跃式恒定笛卡尔速度指令，必须自行实现速度斜坡函数（Ramp）或S曲线规划，确保指令在时间上连续平滑。
2. 推荐使用 MoveIt 或其他封装了运动生成算法的 `libfranka` 包装库来处理轨迹规划，由上层自动生成满足连续性约束的速度指令。
3. 理解 `libfranka` 底层控制机制：该接口提供最大可控性但不自动平滑输入，从静止到恒速的突变会被底层安全反射判定为关节加速度不连续而强制中止。

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

## 原始参考来源 (Sources)

- [GitHub frankaemika/libfranka #199：Error when using Cartesian Velocity contol (`libfranka: Move command aborted: motion aborted by reflex! ["cartesian_motion_generator_joint_acceleration_discontinuity"]`)](https://github.com/frankarobotics/libfranka/issues/199)