The following system packages are used by Caesar.jl:
# required packages sudo apt-get install hdf5-tools imagemagick # optional packages sudo apt-get install graphviz
Although Julia (or JuliaPro) can be installed on a Linux computer using the
apt package manager, we are striving for a fully local installation environment which is highly reproducible on a variety of platforms.
The easiest method is–-via the terminal–-to download the desired version of Julia as a binary, extract, setup a symbolic link, and run:
cd ~ mkdir -p .julia cd .julia wget https://julialang-s3.julialang.org/bin/linux/x64/1.3/julia-1.3.1-linux-x86_64.tar.gz tar -xvf julia-1.3.1-linux-x86_64.tar.gz rm julia-1.3.1-linux-x86_64.tar.gz cd /usr/local/bin sudo ln -s ~/.julia/julia-1.3.1/bin/julia julia
Feel free to modify this setup as you see fit.
This should allow any terminal or process on the computer to run the Julia REPL by type
julia and testing with:
Run Julia in REPL (console) mode:
$ julia julia> println("hello world") "hello world"
Maybe a script, or command:
user@...$ echo "println(\"hello again\")" > myscript.jl user@...$ julia myscript.jl hello again user@...$ rm myscript.jl user@...$ julia -e "println(\"one more time.\")" one more time. user@...$ julia -e "println(\"...testing...\")" ...testing...
When searching for Julia related help online, use the phrase 'julialang' instead of just 'julia'. For example, search for 'julialang workflow tips' or 'julialang performance tips'. Also, see FAQ - Why are first runs slow?, which is due to Just-In-Time/Pre compiling and caching.
mkdir -p ~/Downloads/atom cd ~/Downloads/atom wget https://atom.io/download/deb -q --show-progress sudo dpkg -i deb
After installing and running Atom, you can choose to either install
uber-juno package in one go or install the three associated packages individually. In Atom, open the command pallette by pressing
Ctrl + Shft + p and typing
settings. Go to the
install tab, search for and install either
or the individual packages directly:
ink julia-client julia-language latex-completions
Some situations have required the user separately installing the
Atom.jl Julia package via command line (if Juno does not automatically install Atom.jl for you). Atom.jl can then be installed with Julia's package manager and
add Atom — see below.
There are a variety of useful packages in Atom, such as
minimap-git. Julia packages are independent of the Atom packages and installed via the Julia
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 Github.com. To install a Julia package, simply open a
julia REPL (equally the julia REPL in Atom/Juno) and type:
] # activate Pkg manager (v1.3) pkg> add Caesar
# Just using Caesar URL as an example -- Caesar is already on JuliaRegistries/General using Pkg Pkg.develop(PackageSpec(url="https://github.com/JuliaRobotics/Caesar.jl.git"))
Unless you change the default environment variable
JULIA_PKG_DIR, all packages (git repos) are cloned/installed to
~/.julia. You can work with the packages as regular git repositories there.
RoMEPlotting.jl (2D) and Arena.jl (3D) as optional visualization packages:
(v1.2) pkg> add RoMEPlotting # separately (v1.2) pkg> add Arena#master
Arena.jl and Amphitheater.jl are currently being refactored as part of the broader DistributedFactorGraph migration, the features are are in beta stage (1Q2020).
Arena.jl can be installed with the following steps:
] add Arena
of the latest development version:
(v1.0) pkg> add Arena#master
Previous versions of libraries required the following Linux system packages be installed:
sudo apt-get install libfontconfig1 sudo apt-get install gettext sudo apt-get install libcairo2 sudo apt-get install libpango1.0-0 # or libpango1.0-1
As of 1Q2020 it is likely that most systems won’t require a system install of libpango or even libcairo.
Please install the latest RoMEPlotting using Package manager as follows:
$ julia julia> ] # to get package manager (v1.2) pkg> add RoMEPlotting
dev command –- i.e.
(v1.2) pkg> dev RoMEPlotting –- will clone the RoMEPlotting.jl git repository to your local
Add Caesar to your Julia packages, you can install the metadata registered package 'Caesar' in Julia 1.0 with:
julia> ] # to enable package manager (v1.0) pkg> add Caesar
Unit tests can further be performed for the upstream packages as follows – NOTE first time runs are slow since each new function call or package must first be precompiled.
# the multimodal incremental smoothing and mapping solver (v1.2) pkg> test IncrementalInference ... # robotics related variables and factors to work with IncrementalInference -- can be used standalone SLAM system (v1.2) pkg> test RoME ... # umbrella framework with interaction tools and more -- allows stand alone and server based solving (v1.2) pkg> test Caesar ...
In RoME, run the
To use RoME with the newly created sysimage, start julia with:
julia -O3 -J ~/.julia/dev/RoME/compileRoME/RoMESysimage.so
Work in progress (see issue #278).