Skip to content

mehtivakili/imu_tk

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IMU-TK: Inertial Measurement Unit ToolKit

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.

References

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}
}

License

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.

Requirements

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

Building

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

Docker Workflow

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.

  1. 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.

  1. 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.

Contact information

Alberto Pretto [email protected]

About

Calibration Tools for MEMS IMU devices

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 95.8%
  • CMake 2.0%
  • C 1.2%
  • Other 1.0%