# libfranka关节运动触发reflex中止：速度/加速度不连续报错

> 原文链接：https://robotics.hellobike.com/pitfalls/2026-06-01-franka-ros2-127
> 频道：pitfalls | 更新日期：2026-06-01 | 标签：auto, github-issue, franka_ros2
> 核心摘要：FCI关节位置控制因信号变化率过大触发reflex，建议使用官方rate-limiter处理指令以消除速度/加速度不连续。

# libfranka关节运动触发reflex中止：速度/加速度不连续报错

::: v-pre
> 本文由 AI 根据公开内容整理，可能有误，请以原文为准：[what(): libfranka: Move command aborted: motion aborted by reflex! ["joint_motion_generator_velocity_discontinuity", "joint_motion_generator_acceleration_discontinuity"]](https://github.com/frankarobotics/franka_ros2/issues/127)（GitHub frankaemika/franka_ros2 #127）

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

## 问题

在Franka FR3上开发关节位置控制器时，即使采用五次多项式插值平滑轨迹并遵循FCI限制，仍触发`libfranka: Move command aborted: motion aborted by reflex!`错误，具体报错标识为`joint_motion_generator_velocity_discontinuity`和`joint_motion_generator_acceleration_discontinuity`。

## 环境

Franka FR3机器人，franka_ros2 humble分支，libfranka库，自定义关节位置控制器基于motion_generator.cpp实现。

## 解决办法

1. 检查当前轨迹生成算法输出的速度、加速度及加加速度是否严格满足FCI文档中的动态限制，五次多项式插值可能不足以抑制高频突变。
2. 集成并使用franka_ros2或libfranka提供的官方`rate-limiter`模块对关节位置/速度指令进行预处理，确保输入信号的导数连续性。
3. 将经过限幅和平滑处理的指令再发送至底层运动生成器，避免直接传递原始规划轨迹导致反射机制触发。
4. 若问题持续，需进一步降低目标运动参数或增加滤波环节以保证信号平滑度。

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

## 原始参考来源 (Sources)

- [GitHub frankaemika/franka_ros2 #127：what(): libfranka: Move command aborted: motion aborted by reflex! ["joint_motion_generator_velocity_discontinuity", "joint_motion_generator_acceleration_discontinuity"]](https://github.com/frankarobotics/franka_ros2/issues/127)