diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 20f846e8b..d23864fd8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -10,6 +10,8 @@ jobs: test: name: Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} runs-on: ${{ matrix.os }} + env: + JULIA_PKG_SERVER: "" strategy: fail-fast: false matrix: @@ -49,8 +51,10 @@ jobs: test-masters: #if: github.ref != 'refs/heads/release**' - name: This and Masters + name: Upstream Dev runs-on: ubuntu-latest + env: + JULIA_PKG_SERVER: "" steps: - uses: actions/checkout@v2 @@ -74,7 +78,7 @@ jobs: git config --global user.name Tester git config --global user.email te@st.er - - name: Run tests on masters + - name: Run tests on Upstream Dev run: | julia --project=@. --check-bounds=yes -e 'using Pkg; Pkg.add(PackageSpec(name="RoME",rev="master"));' julia --project=@. --check-bounds=yes -e 'using Pkg; Pkg.add(PackageSpec(name="IncrementalInference",rev="master"));' diff --git a/.travis.yml b/.travis.yml index 4057e0d3a..6241f670a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,6 +7,9 @@ arch: os: - linux +env: + - JULIA_PKG_SERVER="" + addons: apt: packages: @@ -16,10 +19,9 @@ julia: - 1.6 - nightly - jobs: include: - - name: "DEV MASTERS" + - name: "Upstream Dev" if: NOT branch =~ ^release.*$ julia: 1.6 script: diff --git a/Project.toml b/Project.toml index 66dacf537..961cc8387 100644 --- a/Project.toml +++ b/Project.toml @@ -2,7 +2,7 @@ name = "Caesar" uuid = "62eebf14-49bc-5f46-9df9-f7b7ef379406" keywords = ["SLAM", "state-estimation", "MM-iSAM", "MM-iSAMv2", "inference", "robotics", "ROS"] desc = "Non-Gaussian simultaneous localization and mapping" -version = "0.10.1" +version = "0.10.2" [deps] ApproxManifoldProducts = "9bbbb610-88a1-53cd-9763-118ce10c1f89" @@ -47,14 +47,14 @@ AprilTags = "0.8, 0.9" Combinatorics = "0.7, 0.8, 0.9, 1" CoordinateTransformations = "0.5, 0.6" DataStructures = "0.16, 0.17, 0.18" -DistributedFactorGraphs = "0.12, 0.13" -Distributions = "0.19, 0.20, 0.21, 0.22, 0.23, 0.24" +DistributedFactorGraphs = "0.13, 0.14" +Distributions = "0.19, 0.20, 0.21, 0.22, 0.23, 0.24, 0.25" DocStringExtensions = "0.7, 0.8" FFTW = "1" FileIO = "1" ImageCore = "0.7, 0.8, 0.9" ImageMagick = "0.7, 1.0, 1.1" -IncrementalInference = "0.22, 0.23" +IncrementalInference = "0.23, 0.24" JLD2 = "0.1, 0.2, 0.3, 0.4" JSON = "0.18, 0.19, 0.20, 0.21, 0.22, 0.23" JSON2 = "0.3, 0.4" diff --git a/README.md b/README.md index 8520b9533..71fe035d2 100644 --- a/README.md +++ b/README.md @@ -29,10 +29,10 @@ Code changes are currently tracked via Github's integrated Milestone/Issues/PR s | [KernelDensityEstimate.jl][kde-url] | [![][kde-stable]][kde-releases] | [![Build Status][kde-build-img]][kde-build-url] | [![codecov.io][kde-cov-img]][kde-cov-url] | [![][mst-shield]][kde-milestones] | | [FunctionalStateMachine.jl][fsm-url] | [![][fsm-stable]][fsm-releases] | [![Build Status][fsm-build-img]][fsm-build-url] | [![codecov.io][fsm-cov-img]][fsm-cov-url] | [![][mst-shield]][fsm-milestones] | | [DistributedFactorGraphs.jl][dfg-url] | [![][dfg-stable]][dfg-releases] | [![Build Status][dfg-build-img]][dfg-build-url] | [![codecov.io][dfg-cov-img]][dfg-cov-url] | [![][mst-shield]][dfg-milestones] | -| [RoMEPlotting.jl][rp-url] | [![][rp-stable]][rp-releases] | [![Build Status][rp-build-img]][rp-build-url] | [![codecov.io][rp-cov-img]][rp-cov-url] | [![][mst-shield]][rp-milestones] | | [LightGraphs.jl][lgraphs-url] | [![][lgjl-stable]][lgjl-releases] | [![Build Status][lgraphs-build-img]][lgraphs-build-url] | [![codecov.io][lgraphs-cov-img]][lgraphs-cov-url] | n/a | +| [Manifolds.jl][mani-url] | [![][mani-stable]][mani-releases] | [![Build Status][mani-build-img]][mani-build-url] | [![codecov.io][mani-cov-img]][mani-cov-url] | -- | | [TransformUtils.jl][tf-url] | [![][tf-stable]][tf-releases] | [![Build Status][tf-build-img]][tf-build-url] | [![codecov.io][tf-cov-img]][tf-cov-url] | -- | -| [~~Graphs.jl~~][graphs-url] | [![][gjl-stable]][gjl-releases] | [![Build Status][graphs-build-img]][graphs-build-url] | [![codecov.io][graphs-cov-img]][graphs-cov-url] | n/a | +| [RoMEPlotting.jl][rp-url] | [![][rp-stable]][rp-releases] | [![Build Status][rp-build-img]][rp-build-url] | [![codecov.io][rp-cov-img]][rp-cov-url] | [![][mst-shield]][rp-milestones] | # Contributors @@ -69,7 +69,7 @@ Administration of the Caesar.jl ecosystem is done by [NavAbility](http://www.nav [build-v0.10]: https://travis-ci.org/JuliaRobotics/Caesar.jl.svg?branch=release/v0.10 [build-v0.9]: https://travis-ci.org/JuliaRobotics/Caesar.jl.svg?branch=release/v0.9 [build-url]: https://travis-ci.org/JuliaRobotics/Caesar.jl -[caesar-stable]: https://img.shields.io/badge/2021Q1-v0.10.x-green.svg +[caesar-stable]: https://img.shields.io/badge/2021Q2-v0.10.x-green.svg [caesar-slack-badge]: https://img.shields.io/badge/Caesarjl-Slack-green.svg?style=popout [caesar-slack]: https://caesarjl.slack.com [caesar-milestones]: https://github.com/JuliaRobotics/Caesar.jl/milestones @@ -81,7 +81,7 @@ Administration of the Caesar.jl ecosystem is done by [NavAbility](http://www.nav [r-build-img]: https://travis-ci.org/JuliaRobotics/RoME.jl.svg?branch=master [r-build-v05]: https://travis-ci.org/JuliaRobotics/RoME.jl.svg?branch=release%2Fv0.15 [r-build-url]: https://travis-ci.org/JuliaRobotics/RoME.jl -[r-stable]: https://img.shields.io/badge/2021Q1-v0.15.x-green.svg +[r-stable]: https://img.shields.io/badge/2021Q2-v0.15.x-green.svg [r-milestones]: https://github.com/JuliaRobotics/RoME.jl/milestones [r-releases]: https://github.com/JuliaRobotics/RoME.jl/releases @@ -91,7 +91,7 @@ Administration of the Caesar.jl ecosystem is done by [NavAbility](http://www.nav [iif-build-v020]: https://travis-ci.org/JuliaRobotics/IncrementalInference.jl.svg?branch=release/v0.23 [iif-build-url]: https://travis-ci.org/JuliaRobotics/IncrementalInference.jl [iif-url]: http://www.github.com/JuliaRobotics/IncrementalInference.jl -[iif-stable]: https://img.shields.io/badge/2021Q1-v0.23.x-green.svg +[iif-stable]: https://img.shields.io/badge/2021Q2-v0.24.x-green.svg [iif-milestones]: https://github.com/JuliaRobotics/IncrementalInference.jl/milestones [iif-releases]: https://github.com/JuliaRobotics/IncrementalInference.jl/releases @@ -109,7 +109,7 @@ Administration of the Caesar.jl ecosystem is done by [NavAbility](http://www.nav [tf-build-img]: https://travis-ci.org/dehann/TransformUtils.jl.svg?branch=master [tf-build-url]: https://travis-ci.org/dehann/TransformUtils.jl [tf-url]: http://www.github.com/dehann/TransformUtils.jl -[tf-stable]: https://img.shields.io/badge/2018Q4-v0.2.x-green.svg +[tf-stable]: https://img.shields.io/badge/2021Q2-v0.2.x-green.svg [tf-milestones]: https://github.com/JuliaRobotics/TransformUtils.jl/milestones [tf-releases]: https://github.com/JuliaRobotics/TransformUtils.jl/releases @@ -120,13 +120,13 @@ Administration of the Caesar.jl ecosystem is done by [NavAbility](http://www.nav [dvis-build-url]: https://travis-ci.org/rdeits/DrakeVisualizer.jl [dvis-url]: http://www.github.com/rdeits/DrakeVisualizer.jl --> -[graphs-cov-img]: https://codecov.io/github/JuliaAttic/Graphs.jl/coverage.svg?branch=master -[graphs-cov-url]: https://codecov.io/github/JuliaAttic/Graphs.jl?branch=master -[graphs-build-img]: https://travis-ci.org/JuliaAttic/Graphs.jl.svg?branch=master -[graphs-build-url]: https://travis-ci.org/JuliaAttic/Graphs.jl -[graphs-url]: http://www.github.com/JuliaAttic/Graphs.jl -[gjl-stable]: https://img.shields.io/badge/2019Q2-v0.10.x-green.svg -[gjl-releases]: https://github.com/JuliaAttic/Graphs.jl/releases +[mani-cov-img]: http://codecov.io/github/JuliaManifolds/Manifolds.jl/coverage.svg?branch=master +[mani-cov-url]: https://codecov.io/gh/JuliaManifolds/Manifolds.jl/ +[mani-build-img]: https://github.com/JuliaManifolds/Manifolds.jl/workflows/CI/badge.svg +[mani-build-url]: https://github.com/JuliaManifolds/Manifolds.jl/actions?query=workflow%3ACI+branch%3Amaster +[mani-url]: http://www.github.com/JuliaManifolds/Manifolds.jl +[mani-stable]: https://img.shields.io/badge/2021Q2-v0.5.x-green.svg +[mani-releases]: https://github.com/JuliaManifolds/Manifolds.jl/releases [lgraphs-cov-img]: https://codecov.io/github/JuliaGraphs/LightGraphs.jl/coverage.svg?branch=master [lgraphs-cov-url]: https://codecov.io/github/JuliaGraphs/LightGraphs.jl?branch=master @@ -141,7 +141,7 @@ Administration of the Caesar.jl ecosystem is done by [NavAbility](http://www.nav [dfg-build-img]: https://travis-ci.org/JuliaRobotics/DistributedFactorGraphs.jl.svg?branch=master [dfg-build-url]: https://travis-ci.org/JuliaRobotics/DistributedFactorGraphs.jl [dfg-url]: http://www.github.com/JuliaRobotics/DistributedFactorGraphs.jl -[dfg-stable]: https://img.shields.io/badge/2021Q1-v0.13.x-green.svg +[dfg-stable]: https://img.shields.io/badge/2021Q2-v0.14.x-green.svg [dfg-milestones]: https://github.com/JuliaRobotics/DistributedFactorGraphs.jl/milestones [dfg-releases]: https://github.com/JuliaRobotics/DistributedFactorGraphs.jl/releases @@ -150,7 +150,7 @@ Administration of the Caesar.jl ecosystem is done by [NavAbility](http://www.nav [amp-build-img]: https://travis-ci.org/JuliaRobotics/ApproxManifoldProducts.jl.svg?branch=master [amp-build-url]: https://travis-ci.org/JuliaRobotics/ApproxManifoldProducts.jl [amp-url]: http://www.github.com/JuliaRobotics/ApproxManifoldProducts.jl -[amp-stable]: https://img.shields.io/badge/2021Q1-v0.3.x-green.svg +[amp-stable]: https://img.shields.io/badge/2021Q2-v0.3.x-green.svg [amp-milestones]: https://github.com/JuliaRobotics/ApproxManifoldProducts.jl/milestones [amp-releases]: https://github.com/JuliaRobotics/ApproxManifoldProducts.jl/releases @@ -168,6 +168,6 @@ Administration of the Caesar.jl ecosystem is done by [NavAbility](http://www.nav [rp-cov-url]: https://codecov.io/github/JuliaRobotics/RoMEPlotting.jl?branch=master [rp-build-img]: https://travis-ci.org/JuliaRobotics/RoMEPlotting.jl.svg?branch=master [rp-build-url]: https://travis-ci.org/JuliaRobotics/RoMEPlotting.jl -[rp-stable]: https://img.shields.io/badge/2021Q1-v0.7.x-green.svg +[rp-stable]: https://img.shields.io/badge/2021Q2-v0.7.x-green.svg [rp-milestones]: https://github.com/JuliaRobotics/RoMEPlotting.jl/milestones [rp-releases]: https://github.com/JuliaRobotics/RoMEPlotting.jl/releases diff --git a/docs/src/examples/parametric_solve.md b/docs/src/examples/parametric_solve.md index 46ddeb6c8..c3f36668d 100644 --- a/docs/src/examples/parametric_solve.md +++ b/docs/src/examples/parametric_solve.md @@ -10,6 +10,12 @@ solveGraphParametric IncrementalInference.solveGraphParametric! ``` +Initializing the parametric solve from existing values can be done with the help of: + +```@docs +initParametricFrom! +``` + ## [Defining Factors to Support a Parametric Solution (Experimental)](@id parametric_factors) Factor that supports a parametric solution, with supported distributions (such as `Normal` and `MvNormal`), can be used in a parametric batch solver `solveGraphParametric`. diff --git a/docs/src/installation_environment.md b/docs/src/installation_environment.md index 72f8aa8e3..85609ab6b 100644 --- a/docs/src/installation_environment.md +++ b/docs/src/installation_environment.md @@ -25,11 +25,11 @@ The easiest method is---via the terminal---to [download the desired](https://jul cd ~ mkdir -p .julia cd .julia -wget https://julialang-s3.julialang.org/bin/linux/x64/1.5/julia-1.5.2-linux-x86_64.tar.gz -tar -xvf julia-1.5.2-linux-x86_64.tar.gz -rm julia-1.5.2-linux-x86_64.tar.gz +wget https://julialang-s3.julialang.org/bin/linux/x64/1.6/julia-1.6.1-linux-x86_64.tar.gz +tar -xvf julia-1.6.1-linux-x86_64.tar.gz +rm julia-1.6.1-linux-x86_64.tar.gz cd /usr/local/bin -sudo ln -s ~/.julia/julia-1.5.2/bin/julia julia +sudo ln -s ~/.julia/julia-1.6.1/bin/julia julia ``` !!! note Feel free to modify this setup as you see fit. @@ -86,11 +86,11 @@ There are a variety of useful packages in VSCode, such as `GitLens`, `LiveShare` ## Julia Packages The philosophy around Julia packages are discussed at length in the [Julia core documentation](https://docs.julialang.org/en/stable/manual/packages/), where each Julia package relates to a git repository likely found on [Github.com](http://www.github.com). -To install a Julia package, simply open a `julia` REPL (equally the julia REPL in Atom/Juno) and type: +To install a Julia package, simply open a `julia` REPL (equally the Julia REPL in VSCode) and type: ```julia ] # activate Pkg manager -(v1.5) pkg> add Caesar +(v1.6) pkg> add Caesar ``` These are [registered packages](https://pkg.julialang.org/) maintained by [JuliaRegistries/General](http://github.com/JuliaRegistries/General). @@ -99,55 +99,28 @@ Unregistered latest packages can also be installed with using only the `Pkg.deve ```julia # Caesar is registered on JuliaRegistries/General julia> ] -(v1.5) pkg> add Caesar -``` - -See [Pkg.jl](https://github.com/JuliaLang/Pkg.jl) for details and features regarding package management, development, version control, virtual environments and much more. +(v1.6) pkg> add Caesar +(v1.6) pkg> add Caesar#some-branch +(v1.6) pkg> add Caesar@v0.10.0 -## Install Visualization Tools - -### RoMEPlotting.jl for 2D plots - -RoMEPlotting.jl (2D) and Arena.jl (3D) as optional visualization packages: -```julia -(v1.5) pkg> add RoMEPlotting +# or alternatively your own local fork (just using old link as example) +(v1.6) pkg> add https://github.com/dehann/Caesar.jl ``` -!!! note - As of 1Q2020 it is likely that most systems won’t require a system install of libpango or even libcairo. - Previous versions of libraries required the following Linux system packages be installed: - ```bash - 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 - ``` - -### Install 3D Visualization Utils (e.g. Arena.jl) - -3D Visualizations are provided by [Arena.jl](https://github.com/JuliaRobotics/Arena.jl) as well as development package Amphitheater.jl. -Please follow instructions on the [Visualizations page](concepts/arena_visualizations.md) for a variety of 3D utilities. - -!!! note - Arena.jl and Amphitheater.jl are currently being refactored as part of the broader DistributedFactorGraph migration, the features are are in beta stage (1Q2020). - -Install the latest `master` branch version with -```julia -(v1.5) pkg> add Arena#master -``` +See [Pkg.jl](https://github.com/JuliaLang/Pkg.jl) for details and features regarding package management, development, version control, virtual environments and much more. ## Running Unit Tests Locally 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. ```julia # the multimodal incremental smoothing and mapping solver -(v1.5) pkg> test IncrementalInference +(v1.6) pkg> test IncrementalInference ... # robotics related variables and factors to work with IncrementalInference -- can be used standalone SLAM system -(v1.5) pkg> test RoME +(v1.6) pkg> test RoME ... # umbrella framework with interaction tools and more -- allows stand alone and server based solving -(v1.5) pkg> test Caesar +(v1.6) pkg> test Caesar ... ``` @@ -155,7 +128,7 @@ Unit tests can further be performed for the upstream packages as follows -- **NO Alternatively, the `dev` command: ```julia -(v1.5) pkg> dev https://github.com/JuliaRobotics/Caesar.jl +(v1.6) pkg> dev https://github.com/JuliaRobotics/Caesar.jl ``` !!! warn @@ -175,11 +148,35 @@ To use RoME with the newly created sysimage, start julia with: julia -O3 -J ~/.julia/dev/RoME/compileRoME/RoMESysimage.so ``` -## Install "Just the ZMQ/ROS Runtime Solver" (Linux) -Work in progress (see issue [#278](https://github.com/JuliaRobotics/Caesar.jl/issues/278)). +## 2D Plotting, RoMEPlotting.jl + +RoMEPlotting.jl (2D) and Arena.jl (3D) as optional visualization packages: +```julia +(v1.6) pkg> add RoMEPlotting +``` ## Contributing, Issues, or Comments Please feel free to open [issues with Caesar.jl](https://github.com/JuliaRobotics/Caesar.jl/issues) or even Fork and Pull Request as required. General conversations or comments can be made in the [Caesar Gist](https://gist.github.com/dehann/537f8a2eb9cc24d8bbd35ae92cb4d2d2). + + +## Features To Be Restored In Future + +### Install 3D Visualization Utils (e.g. Arena.jl) + +3D Visualizations are provided by [Arena.jl](https://github.com/JuliaRobotics/Arena.jl) as well as development package Amphitheater.jl. +Please follow instructions on the [Visualizations page](concepts/arena_visualizations.md) for a variety of 3D utilities. + +!!! note + Arena.jl and Amphitheater.jl are currently being refactored as part of the broader DistributedFactorGraph migration, the features are are in beta stage (1Q2020). + +Install the latest `master` branch version with +```julia +(v1.5) pkg> add Arena#master +``` + +## Install "Just the ZMQ/ROS Runtime Solver" (Linux) + +Work in progress (see issue [#278](https://github.com/JuliaRobotics/Caesar.jl/issues/278)).