Current 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.
This paper presents a comparative analysis of six prominent registration techniques for solving CAD model alignment problems. Unlike the typical approach of assessing registration algorithms with synthetic datasets, our study utilizes point clouds generated from the Cranfield benchmark. Point clouds are sampled from existing CAD models and 3D scans of physical objects, introducing real-world complexities such as noise and outliers. The acquired point cloud scans, including ground-truth transformations, are made publicly available. This dataset includes several cleaned-up scans of nine 3D-printed objects. Our main contribution lies in assessing the performance of three classical (GO-ICP, RANSAC, FGR) and three learning-based (PointNetLK, RPMNet, ROPNet) methods on real-world scans, using a wide range of metrics. These include recall, accuracy and computation time. Our comparison shows a high accuracy for GO-ICP, as well as PointNetLK, RANSAC and RPMNet combined with ICP refinement. However, apart from GO-ICP, all methods show a significant number of failure cases when applied to scans containing more noise or requiring larger transformations. FGR and RANSAC are among the quickest methods, while GO-ICP takes several seconds to solve. Finally, while learning-based methods demonstrate good performance and low computation times, they have difficulties in training and generalizing. Our results can aid novice researchers in the field in selecting a suitable registration method for their application, based on quantitative metrics. Furthermore, our code can be used by others to evaluate novel methods.
Indoor positioning systems are facing to the demand of large-scale industrial applications in mobile robotics. It is still challenging to create an indoor positioning system that is easily embeddable, accurate, robust and power efficient. We constructed an easily embeddable, low-power optical sensor named InLock without lens to localize a mobile robot indoors moving at 0.20 m/s with an accuracy inferior to 10cm for the position and 0.1rad for the heading by using only three photo-detectors (PDs) and two infrared Light-Emitting Diodes (LEDs). (i) We modelled the optical sensor based on only three photo-detectors and two infrared LEDs by taking into account radiometric properties. (ii) We constructed the optical sensor by optimizing the geometry of the beacon and the receiver. (iii) We implemented and validated online estimation algorithms for an operating range at a height up to 3m by using an extended Kalman filter and a complementary filter. Our results showed that modelling the optical sensor so that it takes into account radiometric properties and it optimizes the geometry of the beacon can enhance the accuracy of the indoor positioning system.