I have begun a basic incursion into understanding quaternions. I have read the following: https://en.wikipedia.org/wiki/Quaternion and https://en.wikipedia.org/wiki/Quaternions_and_spatial_rotation. I understand that quaternions are used to identify the rotation of an object in 3-dimensional space. I have seen quaternions be converted into 3D space via turning the Quaternion into Euler rotations but from my understanding, these are not positional coordinates rather another representation of rotation. I am wondering if it is possible to use quaternions to plot an objects path or if I would need something separate. I am asking in the context of IMU data with 9df (Accelerometer, Magnetometer, Gyroscope). I have applied the Madgwick filter to this data and received quaternion output. However, I do not believe I can use this alone to plot a path. As I do not have a Mathematics background I was hoping to hear opinions from people with greater expertise.
-
$\begingroup$ A quaternion is a scalar plus a 3D vector. When you conjugate a vector by a unit quaternion (versor), the effect is rotation of that vector around the versor's axis by twice its phase angle. You model positions in 3D space with 3D vectors. $\endgroup$– anonJun 13, 2022 at 17:52
-
$\begingroup$ Alas, only those who know what "IMU data with 9df" and "the Madgwick filter" are - likely a very small percentage of respondents here - can truly appreciate your problem. Without an understanding of what the quaternions this filter produces represent, the question of how to correctly convert them to positional data cannot be answered. runway44's comment is accurate, but may not be directly applicable to your case. $\endgroup$– Paul SinclairJun 14, 2022 at 15:14
-
$\begingroup$ Is there a better stack exchange form for a question like this @PaulSinclair $\endgroup$– djoJun 14, 2022 at 16:49
-
$\begingroup$ I can't say. I only know a few of the forums. If this data and filter are all parts of some technical product, then you need a forum associated with that product, if one exists. Or you could explain the jargon here. Or if you know where the support information is on-line, you can link to it to provide a resouce we could you to find out the necessary information to be helpful. $\endgroup$– Paul SinclairJun 14, 2022 at 17:58
1 Answer
You need to use Madgwicks filter and the algorithm described in detail here. Using Rivals theorem, this algorithm lets you calculate the acceleration of any point of the body (typically used for center of mass). Just integrate it twice to get the position (preferably, use Cauchy's formula for repeated integration to reduce the error of numerical integration). Don't forget to calibrate you IMU!