Install Caesar.jl

Caesar.jl is one of the packages within the JuliaRobotics community, and adheres to the code-of-conduct.

New to Julia

Installing the Julia Binary

Although Julia (or JuliaPro) can be installed on a Linux/Mac/Windows via a package manager, we prefer a highly reproducible and self contained (local environment) install.

The easiest method is–-via the terminal–-as described on the downloads page.


Feel free to modify this setup as you see fit.

VSCode IDE Environment

VSCode IDE allows for interactive development of Julia code using the Julia Extension. After installing and running VSCode, install the Julia Language Support Extension:

In VSCode, open the command pallette by pressing Ctrl + Shift + p. There are a wealth of tips and tricks on how to use VSCode. See this JuliaCon presentation for as a general introduction into 'piece-by-piece' code execution and much much more. Working in one of the Julia IDEs like VS Code or Juno should feel something like this (Gif borrowed from DiffEqFlux.jl):

There are a variety of useful packages in VSCode, such as GitLens, LiveShare, and Todo Browser as just a few highlights. These VSCode Extensions are independent of the already vast JuliaLang Package Ecosystem (see


For users, see at least one usage example at the ROS Direct page.

Installing Julia Packages

Vanilla Install

The philosophy around Julia packages are discussed at length in the Julia core documentation, where each Julia package relates to a git repository likely found on Also see for dashboard-style representation of the broader Julia package ecosystem. To install a Julia package, simply start a julia REPL (equally the Julia REPL in VSCode) and then type:

julia> ] # activate Pkg manager
(v___) pkg> add Caesar

Version Control, Branches

These are registered packages maintained by JuliaRegistries/General. Unregistered latest packages can also be installed with using only the Pkg.develop function:

# Caesar is registered on JuliaRegistries/General
julia> ]
(v___) pkg> add Caesar
(v___) pkg> add Caesar#janes-awesome-fix-branch
(v___) pkg> add Caesar@v0.16

# or alternatively your own local fork (just using old link as example)
(v___) pkg> add

Virtual Environments


Julia has native support for virtual environments and exact package manifests. See Pkg.jl Docs for more info. More details and features regarding package management, development, version control, virtual environments are available there.

Next Steps

The sections hereafter describe Building, [Interacting], and Solving factor graphs. We also recommend reviewing the various examples available in the Examples section.

Possible System Dependencies

The following (Linux) system packages have been required on some systems in the past, but likely does not have to be installed system wide on newer versions of Julia:

# Likely dependencies
sudo apt-get install hdf5-tools imagemagick

# optional packages
sudo apt-get install graphviz xdot