Tight Learned Inetrial Odometry (TLIO) Data Loader

Built data pipeline using motion capture system (VICON) and Treadmill (D-Flow) for robot motion profiles (Digit).Utilized the same to develop a data loader in python to reduce IMU (Inertial Measurement Unit) drift by 40 cm/min

The TLIO Data Loader Model focuses on creating a reliable dataloader using Python for our motion capture (MOCAP) and Inertial Measurment Unit (IMU) data pipeline.

Tight Learned Inertial Odometry (TLIO) Flowchart

Reinforcement Learning is used to determine the displacement estimates of the IMU at any point in time. Then an Extended Kalman Filter (EKF) was used to integrate the displacement and determine the roll, pitch, and yaw.

Data collection using the MOCAP, IMU, and Treadmill was conducted as shown below for 30 different motion profiles:

The D-Flow,VICON Software, and Digit robot used to capture the experimental data to be fed into model
Left depicts the device used to calibrate the MOCAP Cameras. Right depicts the software to calibrate the IMU

Once the data was collected, It needed to be transformed to match the format required for the TLIO network and EKF. The main problem was data incompletness - A lack of readings directly from the MOCAP system such as the acceleration and angular velocity. A Custom Data Loader with smoothing, integration, and derivation functionalities was made.

Once transformed, the IMU and MOCAP data needed to be time aligned, interpolated, and calibrated using external JSON files. The entire process was automated to ensure replaceability. The results are as follows:

Left depicts raw IMU and MOCAP Data for data set 01 and the Right depicts the same processed for the TLIO

To debug the model, a learning curve plotting function was added to the train file

Learning curve for 33,66,and 99 epochs for data set 05 (left to right)

The model was then trained on the same data and tested with different train-test-val batches. Both were 60%-20%-20% splits - one was a random choice and the other had a train set which was filled with the complex motion profiles.

Left depicts test result of random split and Right depicts test result of specific split for data set 05

As seen above the model for which train data was handpicked shows only around a drift of ~20 cm in either direction whereas the random train data set shows ~50 cm drift