# UR机器人IK如何加入TCP工具变换

> 原文链接：https://robotics.hellobike.com/pitfalls/2019-12-12-robotics-se-19865
> 频道：pitfalls | 更新日期：2019-12-12 | 标签：auto, stackexchange, robotic-arm, kinematics, inverse-kinematics
> 核心摘要：在求IK前把目标TCP位姿用固定工具变换映射到机器人末端坐标，或把该固定变换加入运动学链。

# UR机器人IK如何加入TCP工具变换

::: v-pre
> 本文由 AI 根据公开内容整理，可能有误，请以原文为准：[How do I add a tool to an inverse kinematic solver](https://robotics.stackexchange.com/questions/19865/how-do-i-add-a-tool-to-an-inverse-kinematic-solver)（Robotics Stack Exchange #19865）

**状态**：已解决

## 问题

已有6轴UR机器人Python逆运动学代码，可由空间变换矩阵求关节值；加装工具后不知道如何让`IK`考虑`TCP`变换，直接点乘目标坐标与`TCP`变换在有旋转时失效。

## 环境

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

## 解决办法

1. 定义`TCP`与“机器人末端”坐标系之间的固定坐标变换，可用`4x4`变换矩阵、双四元数等形式。
2. 方法一：在调用`IK`前，用该固定变换把期望`TCP`坐标系转换到机器人末端坐标系；为同时处理位置和姿态，可转换期望`TCP`坐标系各轴的单位向量，再按当前姿态表示约定（如欧拉角）重写。
3. 方法二：把该固定变换作为已知固定变换加入逆运动学问题；若使用`4x4`矩阵，就是在运动学链中增加一个元素全已知的矩阵。

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

## 原始参考来源 (Sources)

- [Robotics Stack Exchange #19865：How do I add a tool to an inverse kinematic solver](https://robotics.stackexchange.com/questions/19865/how-do-i-add-a-tool-to-an-inverse-kinematic-solver)