坐标变换最通俗易懂的解释(推导+图解)_肥肥胖胖是太阳的博客-CSDN博客
绕一个轴的旋转
| 这里写的旋转角与标准的旋转角互为相反数,标准旋转角的定义为面向旋转轴的方向观察,顺时针为正,逆时针为负,ChatGpt给出的结果:[Chat](#Chat) |
两个直角坐标系间的变换有6个自由度,分别是X、Y、Z的平移和θx、θy、θz三个绕轴的旋转。

以Z轴旋转为例,转动一个小角度,得到下列关系式:
X′=Xcosθz+(Y−Xtanθz)sin(θz)=Xcosθz+YsinθzY′=(Y−Xtanθz)cos(θz)=−Xsinθz+YcosθzZ′=Z
即:
⎡⎢⎣X′Y′Z′⎤⎥⎦=⎡⎢⎣cosθzsinθz0−sinθzcosθz0001⎤⎥⎦⎡⎢⎣XYZ⎤⎥⎦=Rz⎡⎢⎣XYZ⎤⎥⎦
同理:
Ry=⎡⎢⎣cosθy0−sinθy010sinθy0cosθy⎤⎥⎦ Rx=⎡⎢⎣1000cosθxsinθx0−sinθxcosθx⎤⎥⎦
则坐标变化的公式为:
⎡⎢⎣X′Y′Z′⎤⎥⎦=RxRyRz⎡⎢⎣XYZ⎤⎥⎦+⎡⎢⎣xyz⎤⎥⎦
任意两个坐标系之间的旋转平移
Drawing 2023-04-14 20.19.22.excalidraw

先考虑两个坐标系之间的旋转关系,再考虑平移就十分简单了。
正交坐标系O中,三个正交的单位向量:ex,ey,ez
正交坐标系O′中,三个正交的单位向量:ex′,ey′,ez′
则,一定可以用ex,ey,ez来表示ex′,ey′,ez′。(注意:向量符号的表示与坐标系无关) ,即:
⎡⎢⎣e′xe′ye′z⎤⎥⎦=⎡⎢⎣a11a12a13a21a22a23a31a32a33⎤⎥⎦⎡⎢⎣exeyez⎤⎥⎦=R⎡⎢⎣exeyez⎤⎥⎦
其中,旋转矩阵中的系数是O'坐标轴向O坐标轴的投影
已知P(x,y,z),即→OP=xex+yey+zez,易证:
⎡⎢⎣x′y′z′⎤⎥⎦=⎡⎢⎣a11a12a13a21a22a23a31a32a33⎤⎥⎦⎡⎢⎣xyz⎤⎥⎦=R⎡⎢⎣xyz⎤⎥⎦
加上平移矩阵:
⎡⎢⎣x′y′z′⎤⎥⎦=⎡⎢⎣a11a12a13a21a22a23a31a32a33⎤⎥⎦⎡⎢⎣xyz⎤⎥⎦+⎡⎢⎣x0y0z0⎤⎥⎦=R⎡⎢⎣xyz⎤⎥⎦+T
Chat
role::user
如何根据旋转、俯仰和偏航角确定旋转矩阵
role::assistant
旋转、俯仰和偏航角通常用于描述飞行器或机器人在三维空间中的朝向。根据欧拉角的定义,旋转、俯仰和偏航角分别是绕Z轴、Y轴和X轴的旋转角度。因此,可以通过以下步骤确定旋转矩阵:
- 绕Z轴旋转θ角度,得到旋转矩阵Rz:
Rz=⎡⎢⎣cosθ−sinθ0sinθcosθ0001⎤⎥⎦
- 绕Y轴旋转ϕ角度,得到旋转矩阵Ry:
Ry=⎡⎢⎣cosϕ0sinϕ010−sinϕ0cosϕ⎤⎥⎦
- 绕X轴旋转ψ角度,得到旋转矩阵Rx:
Rx=⎡⎢⎣1000cosψ−sinψ0sinψcosψ⎤⎥⎦
- 将三个旋转矩阵按照Z−Y−X的顺序相乘,得到最终的旋转矩阵R:
R=RxRyRz=⎡⎢⎣cosθcosϕcosθsinϕsinψ−sinθcosψcosθsinϕcosψ+sinθsinψsinθcosϕsinθsinϕsinψ+cosθcosψsinθsinϕcosψ−cosθsinψ−sinϕcosϕsinψcosϕcosψ⎤⎥⎦
这个旋转矩阵R描述了从一个坐标系到另一个坐标系的旋转变换。例如,如果一个向量v在原始坐标系中的坐标是(x,y,z),那么在新的坐标系中的坐标v′可以通过以下公式计算:
v′=Rv
其中,v和v′都是列向量。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现