# OpenManipulator MoveIt 4DoF逆解失效致Yaw轴无法旋转

> 原文链接：https://robotics.hellobike.com/pitfalls/2024-12-19-open-manipulator-192
> 频道：pitfalls | 更新日期：2024-12-19 | 标签：auto, github-issue, open_manipulator
> 核心摘要：MoveIt默认IK不支持4DoF臂Yaw/Roll旋转，可通过配置position-only模式或替换社区IKFast插件绕过。

# OpenManipulator MoveIt 4DoF逆解失效致Yaw轴无法旋转

::: v-pre
> 本文由 AI 根据公开内容整理，可能有误，请以原文为准：[Proper 4DoF kinematics solver for MoveIt](https://github.com/ROBOTIS-GIT/open_manipulator/issues/192)（GitHub ROBOTIS-GIT/open_manipulator #192）

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

## 问题

在RViz中使用MoveIt控制OpenManipulator时，机械臂无法沿Yaw轴（左右）旋转。原因是MoveIt默认逆运动学求解器针对6DoF设计，无法解析4DoF机械臂末端执行器绕Yaw或Roll轴的位姿约束，导致规划失败。

## 环境

OpenManipulator-X, ROS Melodic, MoveIt, kinematics.yaml配置文件

## 解决办法

1. 修改 `kinematics.yaml` 将IK求解模式设为 position only，牺牲末端Pitch控制能力以换取位置规划可用性。
2. 克隆社区分支 `dudasdavid/open_manipulator` 的 `melodic-fixes` 分支并编译，使用其适配4DoF的IKFast插件替代默认求解器。
3. 参考官方开源库 `open_manipulator_libs/src/kinematics.cpp` 中的运动学实现，自行开发或优化适配MoveIt的4DoF IK求解器插件。

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

## 原始参考来源 (Sources)

- [GitHub ROBOTIS-GIT/open_manipulator #192：Proper 4DoF kinematics solver for MoveIt](https://github.com/ROBOTIS-GIT/open_manipulator/issues/192)