Skip to content

jgsimard/RustRobotics

Repository files navigation

RustRobotics

This package is a rust implementation of robotics algorithms. So far, the main source is the book Probabilistic Robotics. I plan to have algorithms implementations in the src folder and the algorithms use cases in the examples folder. I plan to have python bindings using pyo3/maturin. I am also implementing the algorithms in python using JAX in this repo.

Table of Contents

Localization

Extended Kalman Filter + Unscented Kalman Filter + Particle Filter

EKF, UKF, PF, Example

cargo run --example localization

EKF/PF With Landmarks

Example

cargo run --example localization_landmarks

Mapping

Pose Graph Optimization

This algorithm uses the sparse solver in Russel which wraps SuiteSparse so follow the installation instructions. Algorithm, Example, Source

cargo run --example pose_graph_optimization

Todo

  • Bayesian Filters
    • Information filter
    • Histogram filter
  • Pose Graph Optimization
    • PGO on manifold (3D)
    • Robust Kernels / Adaptive Kernels
  • Mapping
    • Occupancy Grid
    • Iterative Closest Point
    • EKF-SLAM
    • FastSLAM 1.0
    • FastSLAM 2.0
  • Camera Calibration
    • Direct Linear Transform (DLT)
    • Zhang’s Method
    • Projective 3-Point (P3P)
  • Bundle Adjustement
  • Triangulation
  • Optimal Control
    • LQR
    • LQG
  • etc

Sources

Compilation issues

For plotters

sudo apt install fontconfig libfontconfig libfontconfig1-dev

For Russel

sudo apt install liblapacke-dev libmumps-seq-dev libopenblas-dev libsuitesparse-dev