欧拉角表示方位与万向锁问题

用欧拉角表示方位将会比矩阵更加的直观而且易于使用,欧拉角的基本思想是将角位移分解为绕三个互相垂直轴的三个旋转组成的序列.

那么这个三个互相垂直的轴是如何定义的呢?其实任意三个轴和任意顺序都是可以的,但是最常用的就是使用笛卡尔坐标系并且按照一定顺序组成的旋转序列.最常用的约定,就是所谓的"heading-pitch-bank"约定,在这个系统中,一个方位被定义为heading角,一个pitch角,一个bank角.其中,在左手坐标系中,我们把heading角定义为绕y轴旋转量,pitch角为绕x轴旋转量,bank角为绕z轴旋转量.旋转法则遵守左手法则,它的基本思想是让物体开始于"标准"方位,就是物体坐标轴和惯性坐标轴对齐.让物体做heading、pitch、bank旋转之后达到最终的空间方位.

左手坐标系和右手坐标系:

在Unity中,面板中Transform的Rotation就是使用这个约定。通常规定heading和bank范围在$[-180°,180°]$,pitch范围在$[-90°,90°]$。 “roll-pitch-yaw” 围绕轴分别代表:z、x、y,从物体坐标系到惯性坐标系。不同于上面那个y,这个yaw代表的是物体坐标系。 heading 和 yaw的区别:

万向锁问题

如果pitch轴(x轴)为±90°,则heading(y轴)和bank(z轴)旋转轴相同。y是惯性坐标,一直向上,pitch(x轴)转到±90°,bank轴(z轴)就会和竖直轴(y轴)平行。为了消除这种两个轴同时控制同一个方向的现象,使用四元数来旋转。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值