IMU-Cop: 3D-Printed Contraption for Measuring Accuracy of Angular Orientation of a 3D-object with 9-DOF IMU and Calibrating 3-DOF Magnetometers.
Timeline:
Work in Progress
Project Summary:
IMU-Cop is an Arduino Pro Mini-based, 3D-Printed 4-DOF mechanical appliance to
measure accuracy of angular orientation estimated using any I2C protocol-based 9-DOF
or 6-DOF Inertial Measurement Units (IMUs) and the computationally
inexpensive sensor fusion algorithm, Madgwick filter (a
3D-orientation filter). The device can also be used to reduce the hassle and errors
of calibrating the hard and soft iron offsets of 3-DOF magnetometers using
the popular MagMaster Software with
wireless data transmission capability. These two functionalities are mutually
exclusive, and therefore, it has a mode button that facilitates switching between
these two functionalities. The device can automatically register the I2C address of
the IMU under consideration and upon wirelessly connecting to a receiver at the
host-PC, it can transmit angular orientation values for measuring estimation
accuracy or magnetometer values for calibration.

IMU-Cop Prototype





The Arduino Pro Mini-based 3D-printed IMU-Cop [Figures (a) - (e)] follows a modular structure with separate compartments for battery and necessary electronics. The battery compartment [Figure (a)] acts as the base of the device and sits underneath the electronics' compartment [Figure (b)]. The electronics' compartment houses an Arduino Pro Mini, a NRF24L01+ module for wireless communication, a power button, a reset button [Figure (c)], USB Type-C charging module, and a device mode switch to switch between calibration and accuracy mode [Figure (d)]. At the end point of the 4-DOF joint mechanism, is a platform [Figure (e)] that allows a user to connect a single I2C protocol-based IMU for either calibrating the magnetometer or measuring accuracy of angular orientation. IMU-Cop utilizes the infamous I2CScanner program to dynamically search for the I2C address of the plugged in IMU at device startup and/or upon pressing the reset button. As a result, the user need not worry about the I2C address of the IMU if not known. Due to its dependency on library functions to extract sensor values, its current version only supports the IMUs, MPU6050 and MPU9250. Furthermore, the functionality of measuring accuracy of estimated angular orientation is yet to be implemented. The process of calibrating a magnetometer using the popular MagMaster Software is beyond the scope of this blog, and the reader is requested to refer to this excellent instructables by YuriMat.
System Demonstration