Visual-Inertial Odometer with a Marker
This work is the result of my Masters thesis project done at the CINVESTAV Zacatenco.
The developed software was coded in C/C++ and incorporates both visual and inertial odometry models to combine the data obtained from a camera and an inertial sensor, using a Kalman filter.
These models include the pairing of points of the marker model and its image in the scene using the order type, the calculation of the pose of the marker by means of a homography, and the integration of the signals provided by the inertial measurement unit to implement an inertial navigation system.
The hardware consists of a single board computer Raspberry Pi 3 along with its respective camera module and an MPU-6050 inertial sensor that is mounted to a fiducial marker; same that is tracked by the system from a point in the vision range.
An acrylic object was designed to couple the inertial sensor with the marker by matching both coordinate systems. This object allows the use of interchangeable markers and connects to the computer to obtain information from both sensors.
All components of the system were chosen according to restrictions of size, price and computing power, thus providing an affordable and scalable device for various applications.
The full thesis document (in spanish) is available a the CINVESTAV site:
http://www.cs.cinvestav.mx/tesisgraduados/2019/resumenSergioHerrera.html
https://www.cs.cinvestav.mx/TesisGraduados/2019/TesisSergioHerrera.pdf
- Fiducial Marker recognition:
- Scene reprojection onto image:
- Giroscope signals integration via Quaternion:
- Giroscope drift and correction:
- Accelerometer drift due to gravity vector misalignment:
- Visual only odometer:
- Kalman Filter [Trust Visual information]
- Kalman Filter [Trust Inertial information]