# IK 中如何处理舵机 -90° 到 +90° 限位

> 原文链接：https://robotics.hellobike.com/pitfalls/2017-11-03-robotics-se-13899
> 频道：pitfalls | 更新日期：2017-11-03 | 标签：auto, stackexchange, robotic-arm, inverse-kinematics, jacobian
> 核心摘要：逆运动学求解器需显式感知关节边界，可用梯度投影或带边界的非线性优化求解。

# IK 中如何处理舵机 -90° 到 +90° 限位

::: v-pre
> 本文由 AI 根据公开内容整理，可能有误，请以原文为准：[How to apply Inverse Kinematics with angle constrained servos?](https://robotics.stackexchange.com/questions/13899/how-to-apply-inverse-kinematics-with-angle-constrained-servos)（Robotics Stack Exchange #13899）

**状态**：已解决

## 问题

提问者使用逆雅可比法做逆运动学，但舵机只能在 -90° 到 +90° 内运动；直接把超限角度截断到最大/最小值会影响后续路径计算。

## 环境

Linux / ROS 机器人软件与控制通用开发环境

## 解决办法

1. 让 `IK` 求解器显式包含关节上下限，保证输出始终在允许范围内。
2. 可采用梯度投影法，利用雅可比矩阵零空间设置次任务，使关节远离限位并收敛到主任务解；可参考 `KDL`。
3. 也可采用天然支持有界搜索区域的非线性优化方法；可参考 `TRAC-IK`、`iKin`、`iDynTree`。

原问题作者：spetty flakson；采纳答案作者：Ugo Pattacini。原内容依 CC BY-SA 4.0 授权，本页摘要同样依 CC BY-SA 4.0 授权。
:::

## 原始参考来源 (Sources)

- [Robotics Stack Exchange #13899：How to apply Inverse Kinematics with angle constrained servos?](https://robotics.stackexchange.com/questions/13899/how-to-apply-inverse-kinematics-with-angle-constrained-servos)