# 调用MoveIt的GetPositionIK服务仅返回一个逆运动学解，如何获取全部解

> 原文链接：https://robotics.hellobike.com/pitfalls/2024-05-01-robotics-se-110954
> 频道：pitfalls | 更新日期：2024-05-01 | 标签：auto, stackexchange, inverse-kinematics
> 核心摘要：用户使用MoveIt控制ABB GoFa时调用GetPositionIK仅得一个逆运动学解，可通过使用IKFast求解器获取全部解

# 调用MoveIt的GetPositionIK服务仅返回一个逆运动学解，如何获取全部解

::: v-pre
> 本文由 AI 根据公开内容整理，可能有误，请以原文为准：[MoveIt Inverse Kinematics](https://robotics.stackexchange.com/questions/110954/moveit-inverse-kinematics)（Robotics Stack Exchange #110954）

**状态**：已解决

## 问题

用户使用MoveIt控制ABB GoFa，调用`GetPositionIK()`服务仅返回一个逆运动学配置，为高效进行运动规划需要获取全部逆运动学解

## 环境

MoveIt 2

## 解决办法

1. 生成适配对应机器人的IKFast插件
2. 在MoveIt配置文件夹的kinematics.yaml中将逆运动学求解器修改为IKFast
3. 调用`solver-＞getPositionIK(ik_poses,ik_seed_state, solutions, result, kinematics::KinematicsQueryOptions());`，solutions参数将存储全部计算得到的关节状态解

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

## 原始参考来源 (Sources)

- [Robotics Stack Exchange #110954：MoveIt Inverse Kinematics](https://robotics.stackexchange.com/questions/110954/moveit-inverse-kinematics)