How to solve gimbal lock logically?

38 visualizaciones (últimos 30 días)
Kang Geonhui
Kang Geonhui el 23 de Dic. de 2022
Comentada: Kang Geonhui el 23 de Dic. de 2022
Hello.
I am analyzing the three-dimensional motion data of a glenohumeral joint with MATLAB, and I think the analyzed results seem to have an error.
I am told that this kind of error is called 'gimbal lock,' but I don't know well about it as I am new to this area.
So my question is, how to logically solve this gimbal lock? Is it appropriate to remove the error data and interpolate it?
Thank you.

Respuesta aceptada

William Rose
William Rose el 23 de Dic. de 2022
Yes, your plot illustrates what happens when you are near "gimbal lock". Interpolation is not a good idea.
Background: From motion caputure, you obtain a 3x3 rotation matrix at each instant. The rotation matrix is always well defined. Nonetheless, the determination of flexion/extension, ab/adduction, and internal/external rotation can become problematic, as your plot shows, when the middle angle is approximately 90 degrees. Sometimes the problem can be avoided by choosing a different rotation sequence, so that the middle angle in the sequence is not near 90 degrees. Another solution is to represent rotations with helical angles. Helical angles never suffer from gimbal lock.
Consult the large literature on the subject. Start with the recommendations for analysis of shoulder joint motion of the International Society of Biomechanics, here. For better or worse, not many researchers follow the ISB recommendations for reporting shoulder joint angles. Here is an example paper (one of many) about how to avoid gimbal lock issues when analyzing shoulder motion.
Good luck with your work.
  5 comentarios
William Rose
William Rose el 23 de Dic. de 2022
The middle angle:
When trying to describe a 3D rotation, you can do it with the rotation matrix. This 3x3 matrix has some reducndancy in it, since it has 9 elements, but only three independent quantities. There are various versions of the three quantities that can be extracted from the rotaiton matrix. In biomecha ics, we have the proximal and sital segment. Each has a coordinate system defined by an i,j,k set of vectors. The roation matrix transforms the proximal ijk to the distal ijk. THis transformation could be acocmplished in various ways. I could be done by 3 successive rotaitons, and you could do them in different orders. But if you change the order, the amount of rotaiton on each axis will tend to differ. This is a consequence of the non-commutativity of the 3D rotaiton matrices when you multiply them. So you could do flex/extend, then internal/external rotation, then ab/adduction. In that case, Internal/external rotaiton is the "middle angle". If you do ab/adduct, then flex/extend, the IR/ER, then flex/extend is the middle angle.
Any rotation can be accomplisheed by just one rotation, if you choose the axis of rotaiton, and the amount of rotation, properly. This rotation is called the helical rotation. The axis of rotation is called the helical axis. The amount is called the helical angle. You can represent a helical rotation by a vector pointing along the helical axis, with a length equal to the helical angle. The projection of this vector onto the three axes can be used to express the amount of flex/extend, abaddcut, and internal external rotaiton. In the special case of a rotation about one of the standard anatomical axes (for example, a pure abduction or adduction, or a pure flexion or extension), the helical approach gives the answer you would want to get.
There are formulas and scripts (see the notes attached) which compute the helical angles from the rotation matrix.
Kang Geonhui
Kang Geonhui el 23 de Dic. de 2022
Thank you very much for your reply and explanation of the middle angle. I should calculate the helical angle instead of using quaternion! Have a nice day!!

Iniciar sesión para comentar.

Más respuestas (1)

William Rose
William Rose el 23 de Dic. de 2022
My lecture notes on rotation matrices are attached. Lectures 2 and 3 include discussion of helical angles.
The lecture notes of Young-Hoo Kwon are nice. Here is the top page. I recommend reading his notes on rotation matrix, here. Then see his notes on Euler and Cardan angles, here. Then see his notes on helical axis, here.
Here is another paper that might interest you: "The Appropriateness of the Helical Axis Technique and Six Available Cardan Sequences for the Representation of 3-D Lead Leg Kinematics During the Fencing Lunge", 2013, https://sciendo.com/article/10.2478/hukin-2013-0020
  1 comentario
Kang Geonhui
Kang Geonhui el 23 de Dic. de 2022
There's a lot to study! I appreciate your providing references.

Iniciar sesión para comentar.

Categorías

Más información sobre Assembly en Help Center y File Exchange.

Productos


Versión

R2022a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by