欧拉角(Euler Angles)

本文详细介绍了欧拉角在右手笛卡尔坐标系中的旋转定义,包括推转、翻转和扭转,并强调了旋转矩阵次序的重要性。讨论了一种常见次序:先翻转,再推转,最后扭转。同时,阐述了如何根据新坐标系的正交向量推导对应的三个欧拉角,以及atan2函数在计算过程中的应用。需要注意的是,欧拉角可能存在多个解。
摘要由CSDN通过智能技术生成

【原文来自:http://blog.csdn.net/zhang11wu4/article/details/47754035】


欧拉角

Written by  Paul Bourke
June 2000

通用旋转矩阵中欧拉角的萃取
by R.D. Kriz (2006).

在不同坐标系的转换过程中经常要用到坐标轴的旋转。在这里用到的是右手笛卡尔空间直角坐标系(y轴指向前方,x轴指向右方,z轴指向上方),为了方便描述关于不同数轴的旋转,我们将使用不同的术语。 我们约定关于z轴的旋转叫做扭转(direction),关于y轴的旋转叫做翻转 (roll) ,关于x轴的旋转叫做推转(pitch) 。进一步,我们约定正旋转为顺时针(从数轴正方向看原点),负旋转为逆时针。更多的约定读者可以自行处理。

注意下面给出的三个旋转矩阵看起来并不是对称的

关于x轴旋转tx 度(或者说推转tx 度):

x'
y'
z'
 = 
100
0cos(tx)sin(tx)
0-sin(tx)cos(tx)
x
y
z

关于y轴旋转 ty 度(或者说翻转 ty 度)

x'
y'
z'
 = 
cos(ty)0-sin(ty)
010
sin(ty)0cos(ty)
x
y
z

关于z轴旋转 tz 度(或者说扭转 t度)

x'
y'
z'
 = 
cos(tz)sin(tz)0
-sin(tz)cos(tz)0
001
x
y
z

在使用这些转换矩阵是,转换矩阵之间的次序是非常重要的。我们把以上的旋转矩阵分别叫做Rx(t), Ry(t), 和 Rz(t),当他们以次序一:Rz(t) Rx(t) Ry(t)执行旋转,或者以次序二 Rx(t) Ry(t) Rz(t)执行旋转,将会得到不同的结果。以下将会讨论其中一种矩阵的旋转次序,同理可得剩下的矩阵次序组合,这些将留个读者自行推导。我们要讨论的次序是:先翻转(关于y轴旋转),在推转(关于x轴旋转),最后扭转(关于z轴旋转)。这个也可能是在游戏或者飞行模拟中最常用的次序。

x'
y'
z'
= Rz(t) Rx(t) Ry(t)
x
y
z

写成单个矩阵A(矩阵结合后)就是:

cos(tz) cos(ty) + sin(tz) sin(tx) sin(ty)   sin(tz) cos(tx)   -cos(tz) sin(ty) + sin(tz) sin(tx) cos(ty)
-sin(tz) cos(ty) + cos(tz) sin(tx) sin(ty)   cos (tz) cos(tx)   sin(tz) sin(ty) + cos(tz) sin(tx) cos(ty)
cos(tx) sin(ty)   -sin(tx)   cos(tx) cos(ty)

另外一个要求是:给定一个新的坐标系,如何去推导相对应的三个欧拉角。如果新坐标系的正交向量(正交向量是指所有向量之间两两垂直)是X,Y,Z 那么从从坐标系 (1,0,0), (0,1,0), (0,0,1) 到新坐标系的转换矩阵B就是:

XxYxZx
XyYyZy
XzYzZz

由于矩阵AB是同一个矩阵,对比可得:
Y z = -sin(t x)

所以:
t x = asin(-Y z)

又有:

cos(t x) (-sin(t y), cos((t y)) = (X z, Z z)

所以:
t y = atan2(X z, Z z))

最后有:

cos(t x) (sin(t z, cos(t z)) = (Y x, Y y)

所以:
t z = atan2(Y x, Y y)

注意:

  • 以上用到的函数 atan2() 需要两个参数来计算正确的象限结果。它和代数的tan()函数有所不同。

  • 当赋予指定的值给以上 tx, ty,和 tz 时,存在多个不同的解。也就是说,对于同一个坐标系转换,存在多个不同的欧拉角组合解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值