The C++ IMU-TK Library (Inertial Measurement Unit ToolKit) provides simple functions and data structures to calibrate MEMS-based inertial navigation units, and to process and display IMU data. IMU-TK implements a multi-position calibration method that does not require any parameter tuning and simply requires the sensor to be moved by hand and placed in a set of different, automatically detected, static positions. IMU-TK also provides a collection of functions for data integration.
Papers Describing the Approach:
D. Tedaldi, A. Pretto and E. Menegatti, "A Robust and Easy to Implement Method for IMU Calibration without External Equipments". In: Proceedings of the IEEE International Conference on Robotics and Automation (ICRA 2014), May 31 - June 7, 2014 Hong Kong, China, Page(s): 3042 - 3049 (PDF)
#!bibtex
@inproceedings{tpm_icra2014,
title={A Robust and Easy to Implement Method for IMU Calibration
without External Equipments},
author={Tedaldi, A. and Pretto, A. and Menegatti, E.},
booktitle={Proc. of: IEEE International Conference on Robotics and
Automation (ICRA)},
year={2014},
pages={3042--3049}
}
A. Pretto and G. Grisetti, "Calibration and performance evaluation of low-cost IMUs". In Proceedings of the 20th IMEKO TC4 International Symposium, Sep. 15 - 17, 2014 Benevento, Italy, pages: 429 - 434 (PDF)
#!bibtex
@inproceedings{pg_imeko2014,
title={Calibration and performance evaluation of low-cost IMUs},
author={Pretto, A. and Grisetti, G.},
booktitle={Proc. of: 20th IMEKO TC4 International Symposium},
year={2014},
pages={429--434}
}
IMU-TK is licensed under the BSD License. IMU-TK is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the licenses for more details.
The code is tested on Ubuntu 14.04. IMU-TK requires the following tools and libraries: CMake, Eigen3, Ceres Solver, OpenGL, QT and Gnuplot. To install these required packages on Ubuntu, use the terminal command:
#!bash
sudo apt-get update && sudo apt-get install -y libqt4-opengl libgoogle-glog0v5 libgoogle-glog-dev liblapack3 liblapack-dev libblas3 libblas-dev libatlas-base-dev build-essential cmake libeigen3-dev libqt4-dev libqt4-opengl-dev freeglut3-dev gnuplot
and follow this guide to install Ceres Solver.
Note: On ubuntu 20.04, libqt4-dev is not included by default. Add the following source to the system to install it:
#!bash
sudo add-apt-repository ppa:rock-core/qt4
To build IMU-TK on Ubuntu, type in a terminal the following command sequence.
#!bash
cd imu_tk
mkdir build
cd build
cmake ..
make
Test the library with the test_imu_calib app (binary in /bin, source code in src/test_imu_calib.cpp): test_imu_calib performs an IMU calibration given the data included in bin/test_data/:
#!bash
./test_imu_calib test_data/xsens_acc.mat test_data/xsens_gyro.mat
To simplify the installation process, IMU-TK provides a Docker workflow. Instead of installing the package locally, you can follow these steps to use IMU-TK within a Docker container.
- Build the Docker image by running the following command in the terminal:
docker build -t <image-name> .
Replace <image-name>
with the desired name for your Docker image.
- Launch the Docker container with GUI support using the provided shell script
docker_start
. Execute the following command:
./docker_start <image-name>
This will start the Docker container and enable GUI support. The script will mount the directory where it is executed to the /home/imu_tk/host
directory within the container.
Note: The docker_start
shell script allows X11 server connections to enable GUI support. It's important to note that enabling X11 server connections may be considered a security risk. If you don't require GUI support, you can comment out the corresponding xhost
commands from the docker_start
script.
Alberto Pretto [email protected]