NCBL

Magnetic Inertial Measurement Unit (MIMU) sensor fusion

Sensor fusion algorithm for MIMU data

 Data included in this online repository was part of an experimental study performed at the University of Alberta (by Milad Nazarahari (nazaraha@ualberta.ca) as a part of the Ph.D. thesis under the supervision of Dr. Hossein Rouhani (hrouhani@ualberta.ca)).

  1. User Manual: Please see the file named “User Manual” for details of the codes, datasets, and the related references.

  2. License: file named “License”.

  3. Data Files: files named “DataLong.mat”, “DataShort.mat”, and SFA_Gains.mat”.

  4. Sensor Fusion Algorithm: file named “SensorFusionAlgorithms.zip” contains the MATLAB files of the all tested sensor fusion algorithms.

  5. Main File:

    1. file named “SensorFusion_Assessment.m”. Execute this script to evaluate various sensor fusion algorithms (you must have all the required files in the current directory to execute this code).

    2. SFA_Performance.m”: will present the error in estimated orientation by sensor fusion algorithm.

  6. Optimization of Sensor Fusion Algorithms:

    1. file named “Optimization.m”. Execute this script to find the optimal parameters for a sensor fusion algorithm. You need to create a function for the sensor fusion that you want to find its optimal parameters. Two examples are:

    2. Opt_Madgwick2011_MIMU.m”: find the optimal parameters for Madgwick 2011.

    3. Opt_Nazarahari2020.m”: find the optimal parameters for Nazarahari 2020.

  7. Utility functions:

    1. QuaternionProduct.m”: performs quaternion product.

    2. QuaternionConjugate.m”: calculates quaternion conjugate.

    3. Quat2EulerAngles.m”: converts quaternions to Euler angles.

    4. avg_quaternion_markley.m”: calculates average of quaternions.

    5. FiltFilt3D.m”: performs 3D low-pass filtering.