打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
四元数
发这个帖子,主要是来源与之前思考的两个问题:
1.不同的欧拉角旋转顺序,为什么四元数更新方程都一样,但是得到的欧拉角仅仅只是更改欧拉角输出方程。
2.不同的欧拉角旋转顺序,四元数更新方程一样,为什么初始化方程却不一样,它们之间有什么联系。
以下是我这段时间对这两个问题的解释,我不能保证是对的,如果是错的,希望高人指出。
以免小生一错再错。
已知一个刚体V,通过旋转到V’。
V--->V’用旋转方式1进行旋转,得到roll1、pitch1、yaw1三个欧拉角。
V--->V’用旋转方式2进行旋转,得到roll2、pitch2、yaw2三个欧拉角。
我们知道,已知欧拉角后,可以得到方向余弦矩阵。
两种旋转方式,得到方向余弦矩阵C1与C2.
得到矩阵后,已知V的向量坐标,可以得到V’的向量坐标
V’ = C1*V;
V’ = C2*V;
由以上可知,C1 = C2,也就是说,V--->V’,不管是以何种旋转方式旋转,所得到的方向余弦矩阵都是相同的。也就是,让V--->V’,两种不同的旋转方式下的 roll,pitch,yaw,没有必然联系。
换一句话说,用同样的欧拉角进行两种不同的旋转顺序将刚体V进行旋转,得到刚体向量V1 与 V2,V1与V2之间没有必然的联系。
其实也不难想象,同样的欧拉角,以不同的旋转顺序旋转,得到的刚体姿态之间没有什么联系。(基本不一样,可能会有巧合一样)
----------------------------------------------------------------------------------------------------------------------
[q0 q1 q2 q3]
刚体四元数,表征了刚体的旋转信息。
我们已知一个V--->V’的旋转:
旋转轴向量[L        M        N]
绕旋转轴的旋转角度a
得到一个四元数:
[q0                q1                q2                q3]
=
[cos(a/2)                L*sin(a/2)        M*sin(a/2)        N*sin(a/2)]
已知q0、q1、q2、q3得到一个坐标变换矩阵C3.
V’ = C3*V
其中C3 = C2 = C1
这样我求出四元数,就可以得到刚体的旋转信息。
不同的旋转方式,只要是V---V’,旋转信息就是一样的,我们通过四元数得到的变换矩阵C,都是一样的,但是由于旋转方式不同,所以求得的欧拉角套用的方程不一样,得出的欧拉角也不一样。
根据之前的设想,不同旋转方式下的欧拉角之间,本来就没有什么联系。
所以我们程序和书里面,欧拉角更新方程,不管是以什么方式旋转都是相同的。
----------------------------------------------------------------------------------------------------------------------
那为什么四元数的初始化会不一样呢?
假设四元数初始化用同意的代码,V--->V’,旋转顺序不一样,旋转顺序不一样,得到的欧拉角会不一样、欧拉角不一样,用同意的公式进行四元数初始化,就会得到不同的四元数。但都是V--->V’,只是旋转方式不一样,旋转信息都是一样的,四元数应该是一样的这一条件想矛盾。
以上只是小生对近日的总结,是一种复习,也希望对其他同仁有所帮助,更希望大神可以对我理解有误的地方委婉拍砖。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
APM姿态旋转理论基础
三维旋转:旋转矩阵,欧拉角,四元数
点云配准中的数学基础
刚体在三维空间的旋转(关于旋转矩阵、DCM、旋转向量、四元数、欧拉角)
【Unity技巧】四元数(Quaternion)和旋转
位姿描述和齐次变换
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服