# Unity 中 PUMA 560 IK 滑块旋转值如何输入

> 原文链接：https://robotics.hellobike.com/pitfalls/2017-03-10-robotics-se-11823
> 频道：pitfalls | 更新日期：2017-03-10 | 标签：auto, stackexchange, inverse-kinematics
> 核心摘要：在 Unity 5 中做 PUMA 560 逆运动学时，将 X/Y/Z 旋转滑块值转为旋转矩阵并相乘得到 IK 所需的姿态矩阵。

# Unity 中 PUMA 560 IK 滑块旋转值如何输入

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

**状态**：已解决

## 问题

提问者在 Unity 5/C# 中复现 Craig 书中 Unimation PUMA 560 逆运动学，已有 `theta(i)` 方程，但不知道如何把末端 X/Y/Z 旋转滑块值输入到方程中的 `r11` 等姿态项。

## 环境

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

## 解决办法

1. 将每个旋转角 `XRot`、`YRot`、`ZRot` 分别转换为对应的 3x3 旋转矩阵 `R_x`、`R_y`、`R_z`。
2. 明确使用全局坐标还是机体坐标，以及旋转顺序；答案示例采用机体坐标，顺序为先 yaw，再 pitch，再 roll。
3. 按矩阵乘法从右到左组合，示例为 `R = R_y R_x R_z`。
4. 从最终 3x3 姿态矩阵 `R` 中读取 `r11`、`r21` 等元素，代入已写好的 IK 方程。

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

## 原始参考来源 (Sources)

- [Robotics Stack Exchange #11823：Help with setting up Inverse Kinematics](https://robotics.stackexchange.com/questions/11823/help-with-setting-up-inverse-kinematics)