Skip to content

JuliaRobotics/DistributedFactorGraphs.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DistributedFactorGraphs.jl

Click on badges to follow links:

Release v0.25 Dev Coverage Documentation
CI CI
Average time to resolve an issue
codecov.io
Percentage of issues still open
docs
docs

DistributedFactorGraphs.jl provides a flexible factor graph API for use in the Caesar.jl ecosystem. The package supplies:

  • A standardized API for interacting with factor graphs
  • Implementations of the API for in-memory and database-driven operation
  • Visualization extensions to validate the underlying graph

Note this package is still under initial development, and will adopt parts of the functionality currently contained in IncrementalInference.jl.

Documentation

Please see the documentation and the unit tests for examples on using DistributedFactorGraphs.jl.

Installation

DistributedFactorGraphs can be installed from Julia packages using:

add DistributedFactorGraphs

Usage

The in-memory implementation is the default, using Graphs.jl.

It is recommended to use IncrementalInference to create factor graphs as they will be solvable.

using DistributedFactorGraphs
using IncrementalInference

Both drivers support the same functions, so choose which you want to use when creating your initial DFG. For example:

# In-memory DFG
# Initialize the default in-memory factor graph with default solver parameters.
dfg = initfg()
# add 2 ContinuousScalar variable types to the new factor graph
addVariable!(dfg, :a, ContinuousScalar)
addVariable!(dfg, :b, ContinuousScalar)
# add a LinearRelative factor
addFactor!(dfg, [:a, :b], LinearRelative(Normal(10.0,1.0)))