Robot toolkit: Towards non-parametric and parametric navigation solutions

README.md

A modern robotic toolkit for localization and mapping -- reducing the barrier of entry for Simultaneous Localization and Mapping (SLAM).

Build Status

Introduction

Towards non-parametric / parametric state estimation and navigation solutions [1]. Implemented in Julia (and JuliaPro) for a fast, flexible, dynamic and productive robot designer experience. This framework maintains good interoperability with other languages like C/C++ or Python, as listed in features below. Multi-modal (quasi-multi-hypothesis) navigation and mapping solutions, using various sensor data, is a corner stone of this package. Multi-sensor fusion is made possible via vertically integrated Multi-modal iSAM.

Critically, this package can operate in the conventional SLAM manner, using local dictionaries, or centralize around the FactorGraph through a graph database using CloudGraphs.jl, as discussed here[2]. A variety of plotting, 3D visualization, serialization, LCM middleware, and analysis tools come standard. Please see internal packages, Robot Motion Estimate RoME.jl and back-end solver IncrementalInference.jl.

Comments, questions and issues welcome.

Documentation

Please see the documentation:

docs

Visualization

Please see the Arena.jl package for the concentration of all 2D and 3D visualization utilities of the Caesar.jl robot navigation packages.

Installation

Caesar can be installed with:

julia> Pkg.add("Caesar")

Bleeding-edge Development Status

Major Dependencies Status Test Coverage
Caesar.jl Build Status codecov.io
RoME.jl Build Status codecov.io
IncrementalInference.jl Build Status codecov.io
KernelDensityEstimate.jl Build Status codecov.io
TransformUtils.jl Build Status codecov.io
Graphs.jl Build Status codecov.io
CloudGraphs.jl Build Status codecov.io

Contributors

Authors directly involved with this package are:

D. Fourie, S. Claassens, P. Vaz Teixeira, N. Rypkema, S. Pillai, R. Mata, M. Kaess, J. Leonard

We are grateful for many, many contributions within the Julia package ecosystem -- see the REQUIRE files of Caesar, Arena, RoME, RoMEPlotting, KernelDensityEstimate, IncrementalInference, NLsolve, DrakeVisualizer, Graphs, CloudGraphs and others for a far reaching list of contributions.

Cite

Consider citing our work:

@misc{caesarjl,
  author = "Dehann Fourie, John Leonard, Micheal Kaess, and contributors",
  title =  "Caesar.jl",
  year =   2017,
  url =    "https://github.com/JuliaRobotics/Caesar.jl"
}