• Stars
    star
    143
  • Rank 255,491 (Top 6 %)
  • Language
    C++
  • License
    MIT License
  • Created over 3 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Factored inference for discrete-continuous smoothing and mapping.

dcsam

Build Status docs

This library, built using GTSAM, provides factor type definitions and a new solver to perform approximate inference on discrete-continuous (hybrid) factor graph models typically encountered in robotics applications.

NOTE: As of 1/30/2023 the latest version of DC-SAM on main depends on GTSAM release 4.2a8. If you are using GTSAM 4.1.1, check out our pre-4.2 release tag. This is the version of DC-SAM you would have used if you cloned the repository prior to 1/30/2023. Many thanks to Parker Lusk for bringing us into the future.

References

A technical report describing this library and our solver can be found here. If you found this code useful, please cite it as:

@article{doherty2022discrete,
  author={Doherty, Kevin J. and Lu, Ziqi and Singh, Kurran and Leonard, John J.},
  journal={IEEE Robotics and Automation Letters},
  title={Discrete-{C}ontinuous {S}moothing and {M}apping},
  year={2022},
  volume={7},
  number={4},
  pages={12395-12402},
  doi={10.1109/LRA.2022.3216938}
}

Prerequisites

To retrieve the appropriate version of GTSAM:

~ $ git clone https://github.com/borglab/gtsam
~ $ cd gtsam
~/gtsam $ git checkout 4.2a8

Follow instructions in the GTSAM repository to build and install with your desired configuration.

Optional

  • gtest for building tests.

Building

Building the project

To build using cmake:

~/dcsam $ mkdir build
~/dcsam $ cd build
~/dcsam/build $ cmake ..
~/dcsam/build $ make -j

Run tests

To run unit tests, first build with testing enabled:

~/dcsam $ mkdir build
~/dcsam $ cd build
~/dcsam/build $ cmake .. -DDCSAM_ENABLE_TESTS=ON
~/dcsam/build $ make -j

Now you can run the tests as follows:

~/dcsam/build $ make test

Examples

For example usage, check out the DC-SAM examples repo or take a look through testDCSAM.cpp.

Developing

We're using pre-commit for automatic linting. To install pre-commit run:

pip3 install pre-commit

You can verify your installation went through by running pre-commit --version and you should see something like pre-commit 2.7.1.

To get started using pre-commit with this codebase, from the project repo run:

pre-commit install

Now, each time you git add new files and try to git commit your code will automatically be run through a variety of linters. You won't be able to commit anything until the linters are happy with your code.

More Repositories

1

mixtures_semantic_slam

Probabilistic Data Association via Mixture Models for Robust Semantic SLAM
60
star
2

mac

Maximizing algebraic connectivity for graph sparsification
Python
36
star
3

score

Official implementation of "SCORE: Second Order Conic Initialization for RA-SLAM"
Python
26
star
4

NF-iSAM

The codebase of normalizing flows for incremental soomthing and mapping (NF-iSAM). The datasets used for performance evaluation are provided as well.
Python
18
star
5

dcsam-examples

Tutorial examples and sample applications for DC-SAM.
C++
17
star
6

cora

Official implementation of "Certifiably Correct Range-Aided SLAM"
MATLAB
13
star
7

graff_cpp

A C++ interface to the Caesar.jl framework using JSON over ZeroMQ.
C++
5
star
8

PyFactorGraph

A python factor graph object for SLAM problems
Python
5
star
9

SwarmRobot

Documentation and code for The Thoroughbreds, the Marine Robotics Group's custom made robot swarm for range-based SLAM experiments.
Python
4
star
10

underwater-experiments

CMake
3
star
11

cora-experiments

Experiments from "Certifiably Correct Range-Aided SLAM"
Python
3
star
12

lcgp

Planning for multi-robot networks localizing via range measurements.
Python
3
star
13

tonioviz

Finally, a nice C++ visualization tool.
C++
2
star
14

nsfg

Python
2
star
15

dcsam2022tr

Technical report on Discrete-Continuous Smoothing and Mapping
1
star
16

gtsam-range-aided-slam

A GTSAM-based solver for range-aided SLAM problems
Python
1
star
17

manhattan-world-sim

Python
1
star
18

LatexUtils

TeX
1
star
19

sparse2022tr

Supplement to Spectral Measurement Sparsification for Pose-Graph SLAM, submitted to IROS 2022
1
star