Quaternion rotation around only two axes.
18 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
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 comentarios
James Tursa
el 11 de Dic. de 2020
Can you post the exact code you are using currently to rotate your acceleration vector?
Respuestas (1)
Amrtanshu Raj
el 23 de Dic. de 2020
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 comentarios
Amrtanshu Raj
el 23 de Dic. de 2020
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.
Ver también
Categorías
Más información sobre Coordinate Transformations en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!