# 3D 姿态间笛卡尔速度控制如何求角速度？

> 原文链接：https://robotics.hellobike.com/pitfalls/2020-07-14-robotics-se-20913
> 频道：pitfalls | 更新日期：2020-07-14 | 标签：auto, stackexchange, control, kinematics, inverse-kinematics, manipulator
> 核心摘要：用两姿态间旋转矩阵转为轴角表示，角速度取旋转轴乘角度再除以时间 T。

# 3D 姿态间笛卡尔速度控制如何求角速度？

::: v-pre
> 本文由 AI 根据公开内容整理，可能有误，请以原文为准：[Cartesian Velocity Control between Two 3D Poses](https://robotics.stackexchange.com/questions/20913/cartesian-velocity-control-between-two-3d-poses)（Robotics Stack Exchange #20913）

**状态**：已解决

## 问题

提问者想从当前末端位姿 `T_BE` 移动到目标位姿 `T_BG`，用 `q = J^-1 v` 求关节速度，但用欧拉角分量差除以 `T` 生成旋转速度后行为不符合预期。

## 环境

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

## 解决办法

1. 计算当前姿态与目标姿态之间的相对旋转矩阵。
2. 将该相对旋转矩阵转换为轴角表示。
3. 将角速度设为旋转轴乘以旋转角度再除以运动时间 `T`，作为速度向量 `v` 的旋转分量。

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

## 原始参考来源 (Sources)

- [Robotics Stack Exchange #20913：Cartesian Velocity Control between Two 3D Poses](https://robotics.stackexchange.com/questions/20913/cartesian-velocity-control-between-two-3d-poses)