Skip to content

Latest commit

 

History

History
71 lines (51 loc) · 2.36 KB

README.md

File metadata and controls

71 lines (51 loc) · 2.36 KB

Graph SLAM Simulator

This is a repository for generating random single- and multi-robot graph SLAM experiments. The simulator makes the distinction between robot states and map features to enable separability in multi-robot SLAM system global cost functions, and logs the resulting graph to PyFactorGraph format. The simulator focuses on the underlying graphical structure of the RA-SLAM problem, and assumes measurement models are consistent with those presented in the paper:

@article{papalia2023certifiably,
  title={Certifiably Correct Range-Aided SLAM},
  author={Papalia, Alan and Fishberg, Andrew and O'Neill, Brendan W. and How, Jonathan P. and Rosen, David M. and Leonard, John J.},
  journal={arXiv preprint arXiv:2302.11614},
  year={2023}
}

The simulator supports the generation of i) random Manhattan worlds and ii) controlled experiments with parameterized robot navigation and map feature placement. Supported measurement types include:

  • Pose priors in SE(2) and SE(3)
  • Relative SE(2) and SE(3) measurements (pose-pose and pose-point) for robot odometry and loop closures
  • Range measurements in 2D and 3D for pose-pose, pose-point, and point-point pairs

Getting Started

Example

Run the example:

cd ~/manhattan-world-sim/examples
python3 example.py

Dependencies

PyFactorGraph:

git clone [email protected]:MarineRoboticsGroup/PyFactorGraph.git
cd PyFactorGraph
pip install .

liegroups:

git clone [email protected]:utiasSTARS/liegroups.git
cd liegroups
pip install .

Contributing

If you want to contribute a new feature to this package please read this brief section.

Code Standards

Any necessary coding standards are enforced through pre-commit. This will run a series of hooks when attempting to commit code to this repo. Additionally, we run a pre-commit hook to auto-generate the documentation of this library to make sure it is always up to date.

To set up pre-commit

cd ~/manhattan-world-sim
pip3 install pre-commit
pre-commit install

Testing

If you want to develop this package and test it from an external package you can also install via

cd ~/manhattan-world-sim
pip3 install -e .

The -e flag will make sure that any changes you make here are automatically translated to the external library you are working in.