Skip to content
Certifiably globally optimal unit quaternion rotation averaging via Sparse Bounded-degree sum of squares optimization.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
data/results
matlab
.gitignore
README.md
rotation_averaging.png

README.md

sos-rotation-averaging

Certifiably globally optimal unit quaternion rotation averaging via Sparse Bounded-degree sum of squares optimization.

Installation and Dependencies

All code and experiments were developed in Matlab R2017b.

We use the Sparse-BSOS Matlab package, which ships with its own modified version of SDPT3 (see the linked repository for setup details).

We use the CVX modelling language, which is free for academic usage. The default SDPT3 solver that ships with CVX was used.

Our plotting script makes use of the subaxis function to create subplots.

Usage

All code is found in the folder matlab/. Be sure to add this folder, its subfolders, and all dependencies to your Matlab path.

Plotting Script

The code for error and cost function plots appearing in our paper (see below) can be run with the script matlab/plot_error_figures.m. This script uses the .mat files containing experimental results in data/. The data files are accessed with relative paths, so be sure to run the script from within the matlab/ folder.

Rotation Averaging Example Script

The script matlab/results_rotation_averaging_sbsos_odom.m shows a sample usage of our main contribution, the function matlab/rotation_averaging_sbsos.m on simulated noisy data. The script matlab/results_rotation_averaging_sbsos_dual.m compares our approach with an SDP-relaxation.

Citation

If you use any of this code in your work, please cite the relevant publication:

@article{giamou2019sparse,
  title={Sparse Bounded Degree Sum of Squares Optimization for Certifiably Globally Optimal Rotation Averaging},
  author={Giamou, Matthew and Maric, Filip and Peretroukhin, Valentin and Kelly, Jonathan},
  journal={arXiv preprint arXiv:1904.01645},
  year={2019}
}

You can’t perform that action at this time.