Implemented a projected gradient descent algorithm to track the 3D-orientation of a robot undergoing pure rotation using the readings from the IMU.
-
Estimate the orientation trajectory of the robot by minimizing the squared error between Kinematics model and the IMU measurements. Compare the estimated trajectory with ground truth obtained from VICON recordings.
Results: The estimated and ground truth values of the Roll-Pitch-Yaw are plotted across time for nine different datasets.
Vicon: Ground truth -
Given images of surroundings captured by an onboard camera. With the estimated orientation trajectory, stitch all the images to create a panoramic view of the robot throughout the duration of the experiment
Results: Panoramas generated for the datasets #8 and #9.
Contact [email protected]
Numpy, matplotlib, pickle, os, autograd, transforms3d, tqdm
- Open main_code.py
- Look for ##### USER EDITABLE ##### section in the top.
- Please update the MANDATORY file paths and flags.
- Various flags are provided to switch ON/OFF - parameters estimation, graphs plotting and panorama.
- Parameters estimation generates pickle files of the estimated parameters, only after which you can perform graphs plotting and panorama.
- Run main_code.py
- //trainpickle: Contains pickle files of estimated quaternions, cost values and gradient norm values of training data. (FILE INDEXING: 0...8)
- //testpickle: Contains pickle files of estimated quaternions, cost values and gradient norm values of testing data. (FILE INDEXING: 9, 10)
- //PlotImages: Contains Yaw-Pitch-Roll and cost function plots for all data sets. (FILE INDEXING: 1...11)
- //PanoramaImages: Contains panorama images for all data sets. (FILE INDEXING: 1...11)