Quaternion rotation around only two axes.
18 ビュー (過去 30 日間)
古いコメントを表示
Hello all,
I am working on a problem where i am using quaternions to put meaured accelerations into the global reference frame (North-East-Down). When I rotate the acceleraion vectors by the conjugate of the quaternions it does this perfectly. However, what if i wanted to keep the Heading (the yaw, or the k component on the quaterion) the same and not rotate my accelerations about this axis as to not change the heading? How would i go about doing this? is this possible?
thank you for your input
4 件のコメント
James Tursa
2020 年 12 月 11 日
Can you post the exact code you are using currently to rotate your acceleration vector?
回答 (1 件)
Amrtanshu Raj
2020 年 12 月 23 日
Hi,
You can convert the quaternion to euler angles and then set the yaw(z axis) to zero and then convert it back to quaternion and do the required rotations.
quat = quaternion(0,.1,.2,.3) %Sample data
ang = quat2eul(quat) %get euler angles
ang_new = ang
ang_new(1) = 0 %set yaw to zero
quat_new = quaternion(eul2quat(ang_new)) %convert it back to quaternion
Hope this helps !!
2 件のコメント
Amrtanshu Raj
2020 年 12 月 23 日
Directly getting the desired quaternion after eliminating rotation along a specific axis is not possible in Matlab. However, you can derive a set of equations using basic quaternion and vector calculations to get rotation quaternion after eliminating rotation along a specific axis.
参考
カテゴリ
Help Center および File Exchange で Coordinate Transformations についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!