https://hal-amu.archives-ouvertes.fr/hal-03848730Bernardes, EvandroEvandroBernardesISM - Institut des Sciences du Mouvement Etienne Jules Marey - AMU - Aix Marseille Université - CNRS - Centre National de la Recherche ScientifiqueViollet, StéphaneStéphaneViolletISM - Institut des Sciences du Mouvement Etienne Jules Marey - AMU - Aix Marseille Université - CNRS - Centre National de la Recherche ScientifiqueQuaternion to Euler angles conversion: a direct, general and computationally efficient methodHAL CCSD2022[SPI.AUTO] Engineering Sciences [physics]/Automatic[SDV.NEU.PC] Life Sciences [q-bio]/Neurons and Cognition [q-bio.NC]/Psychology and behaviorViollet, Stéphane2022-11-10 22:29:142023-02-08 17:11:262022-12-02 12:52:50enJournal articleshttps://hal-amu.archives-ouvertes.fr/hal-03848730/document10.1371/journal.pone.0276302application/pdf1Current methods of the conversion between a rotation quaternion and Euler angles are either a complicated set of multiple sequence-specific implementations, or a complicated method relying on multiple matrix multiplications. In this paper a general formula is presented for extracting the Euler angles in any desired sequence from a unit quaternion. This is a direct method, in that no intermediate conversion step is required (no quaternion-to-rotation matrix conversion, for example) and it is general because it works with all 12 possible sequences of rotations. A closed formula was first developed for extracting angles in any of the 12 possible sequences, both "Proper Euler angles" and "Tait-Bryan angles". The resulting algorithm was compared with a popular implementation of the matrix-to-Euler angle algorithm, which involves a quaternion-to-matrix conversion in the first computational step. Lastly, a single-page pseudo-code implementation of this algorithm is presented, illustrating its conciseness and straightforward implementation. With an execution speed 30 times faster than the classical method, our algorithm can be of great interest in every aspect.