Skip to content

Commit af02ca7

Browse files
authored
Merge pull request #872 from JuliaRobotics/master
v0.13.1-rc1
2 parents f10c0dc + eee1fcf commit af02ca7

5 files changed

Lines changed: 39 additions & 14 deletions

File tree

Project.toml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ name = "Caesar"
22
uuid = "62eebf14-49bc-5f46-9df9-f7b7ef379406"
33
keywords = ["SLAM", "state-estimation", "MM-iSAM", "MM-iSAMv2", "inference", "robotics", "ROS"]
44
desc = "Non-Gaussian simultaneous localization and mapping"
5-
version = "0.13.0"
5+
version = "0.13.1"
66

77
[deps]
88
ApproxManifoldProducts = "9bbbb610-88a1-53cd-9763-118ce10c1f89"
@@ -44,30 +44,30 @@ Unmarshal = "cbff2730-442d-58d7-89d1-8e530c41eb02"
4444
YAML = "ddb6d928-2868-570f-bddf-ab3f9cf99eb6"
4545

4646
[compat]
47-
ApproxManifoldProducts = "0.4.21"
47+
ApproxManifoldProducts = "0.4.21, 0.5"
4848
AprilTags = "0.8, 0.9"
4949
Combinatorics = "0.7, 0.8, 0.9, 1"
5050
CoordinateTransformations = "0.5, 0.6"
5151
DataStructures = "0.16, 0.17, 0.18"
5252
DistributedFactorGraphs = "0.17, 0.18"
5353
Distributions = "0.22, 0.23, 0.24, 0.25"
54-
DocStringExtensions = "0.7, 0.8"
54+
DocStringExtensions = "0.7, 0.8, 0.9"
5555
FFTW = "1"
5656
FileIO = "1"
5757
ImageCore = "0.7, 0.8, 0.9"
5858
ImageMagick = "0.7, 1.0, 1.1"
59-
IncrementalInference = "0.26, 0.27, 0.28"
59+
IncrementalInference = "0.26, 0.27, 0.28, 0.29"
6060
JLD2 = "0.3, 0.4"
6161
JSON = "0.19, 0.20, 0.21"
6262
JSON2 = "0.3, 0.4"
6363
KernelDensityEstimate = "0.5"
64-
Manifolds = "0.6.3, 0.7"
64+
Manifolds = "0.6.3, 0.7, 0.8"
6565
NLsolve = "3, 4"
6666
Optim = "1"
6767
ProgressMeter = "0.9, 1"
6868
Reexport = "0.2, 1"
6969
Requires = "0.5, 1"
70-
RoME = "0.17, 0.18"
70+
RoME = "0.17, 0.18, 0.19"
7171
Rotations = "1.1"
7272
StaticArrays = "1"
7373
TensorCast = "0.3, 0.4"

docs/make.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,10 @@ makedocs(
4848
],
4949
"Graph Library" => [
5050
"Canonical Generators" => "examples/canonical_graphs.md",
51-
"Entry=>Data Blob" => "concepts/entry_data.md",
5251
"Variables/Factors" => "concepts/available_varfacs.md",
53-
"Flux (NN) Factors" => "concepts/flux_factors.md",
52+
"Entry=>Data Blob" => "concepts/entry_data.md",
5453
"Images and AprilTags" => "examples/using_images.md",
54+
"Flux (NN) Factors" => "concepts/flux_factors.md",
5555
],
5656
"Visualization" => [
5757
"Installing Viz" => "install_viz.md",

docs/src/concepts/using_manifolds.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -93,14 +93,15 @@ The most popular Manifolds used in Caesar.jl related packages are:
9393

9494
### Creating a new Manifold
9595

96-
JuliaManifolds.jl is designed to make [it as easy as possible to define your own manifold and then get all the benefits of the Manifolds.jl ecosystem](https://juliamanifolds.github.io/Manifolds.jl/stable/examples/manifold.html). Follow the documentation there to make your own manifold, which can then readily be used with all the features of both JuliaManifolds as well as the Caesar.jl related packages.
96+
JuliaManifolds.jl is designed to make [it as easy as possible to define your own manifold and then get all the benefits of the Manifolds.jl ecosystem](https://juliamanifolds.github.io/ManifoldsBase.jl/stable/example.html). Follow the documentation there to make your own manifold, which can then readily be used with all the features of both JuliaManifolds as well as the Caesar.jl related packages.
9797

9898
## [Answers to 7 Questions](@id seven_mani_answers)
9999

100100
### Q1) What are Point, Tangents, Coordinates
101101

102102
A manifold ``\mathcal{M}`` is a collection of points that together create the given space. **Points** are like round sprinkles on the donut. The representation of points will vary from manifold to manifold. Sometimes it is even possible to have different representations for the same point on a manifold. These are usually denoted as ``p``.
103-
Tangent **vectors** (we prefer _tangents_ for clarity) is a vector ``X`` that emanates from a point on a manifold. A vector lives in the tangent space of the manifold, a locally flat region around a point ``X\in T_p \mathcal{M}``. On the donut, imagine a rod-shaped sprinkle stuck along the tangent of the surface at a particular point ``p``. The **tangent space** is the collection of all possible tangents at ``p``.
103+
104+
Tangent **vectors** (we prefer _tangents_ for clarity) is a vector ``X`` that emanates from a point on a manifold tangential to the manifold curvature. A vector lives in the tangent space of the manifold, a locally flat region around a point ``X\in T_p \mathcal{M}``. On the donut, imagine a rod-shaped sprinkle stuck along the tangent of the surface at a particular point ``p``. The **tangent space** is the collection of all possible tangents at ``p``.
104105

105106
**Coordinates** are a user defined property that uses the Euclidean nature of the tangent space at point ``p`` to operate as a regular linear space. Coordinates are just a list of the indepedent coordinate dimensions of the tangent space values collected together. Read this part carefully, as it can easily be confused with a conventional tangent vector in a regular Euclidean space.
106107

@@ -116,7 +117,7 @@ Multiple logmap interpretations exist, for example in the case of ``SpecialEucli
116117

117118
### Q3) What is the Exponential map
118119

119-
The exponential map does the opposite of the logarithm. Image a tangent vector ``X`` emanating from point ``p``. The length and direction of ``X`` can be wrapped onto the curvature of the manifold to form a line on the manifold surface.
120+
The exponential map does the opposite of the logarithm. Imagine a tangent vector ``X`` emanating from point ``p``. The length and direction of ``X`` can be wrapped onto the curvature of the manifold to form a line on the manifold surface.
120121
### Q4) What does `vee`/`hat` do
121122

122123
`vee` is an operation that converts a tangent vector representation into a coordinate representation. For example Lie algebra elements are tangent vector elements, so `vee([0 -w; w 0]) = w`. And visa versa for `hat(w) = [0 -w; w 0]`, which goes from coordinates to tangent vectors.

docs/src/examples/using_images.md

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
# Images and AprilTags
1+
# Images and Fiducials
2+
3+
## AprilTags
24

35
One common use in SLAM is [AprilTags.jl](https://github.com/JuliaRobotics/AprilTags.jl). Please see that repo for documentation on detecting tags in images. Note that Caesar.jl has a few built in tools for working with [Images.jl](https://github.com/JuliaImages/Images.jl) too.
46

@@ -12,5 +14,17 @@ Which immediately enables a new factor specifically developed for using AprilTag
1214
Caesar.Pose2AprilTag4Corners
1315
```
1416

17+
## Using Images.jl
18+
19+
The Caesar.jl ecosystem support use of the [JuliaImages/Images.jl](https://github.com/JuliaImages/Images.jl) suite of packages. Please see documentation there for the wealth of features implemented.
20+
21+
### Handy Notes
22+
23+
Converting between images and PNG format:
24+
25+
```julia
26+
bytes = Caesar.toFormat(format"PNG", img)
27+
```
28+
1529
!!! note
16-
More details to follow.
30+
More details to follow.

docs/src/refs/literature.md

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,17 @@ Newly created page to list related references and additional literature pertaini
5858

5959
[2.14] Arnborg, S., Corneil, D.G. and Proskurowski, A., 1987. ["Complexity of finding embeddings in a k-tree"](https://epubs.siam.org/doi/pdf/10.1137/0608024). SIAM Journal on Algebraic Discrete Methods, 8(2), pp.277-284.
6060

61-
[2.15] Sola, J., Deray, J. and Atchuthan, D., 2018. ["A micro Lie theory for state estimation in robotics". arXiv preprint arXiv:1812.01537](https://arxiv.org/pdf/1812.01537), and [tech report](https://upcommons.upc.edu/bitstream/handle/2117/179757/2089-A-micro-Lie-theory-for-state-estimation-in-robotics%20(3).pdf).
61+
[2.15a] Sola, J., Deray, J. and Atchuthan, D., 2018. ["A micro Lie theory for state estimation in robotics". arXiv preprint arXiv:1812.01537](https://arxiv.org/pdf/1812.01537), and [tech report](https://upcommons.upc.edu/bitstream/handle/2117/179757/2089-A-micro-Lie-theory-for-state-estimation-in-robotics%20(3).pdf).
62+
63+
[2.15b] Delleart F., 2012. [Lie Groups for Beginners](https://raw.githubusercontent.com/devbharat/gtsam/master/doc/LieGroups.pdf).
64+
65+
[2.15c] Eade E., 2017 [Lie Groups for 2D and 3D Transformations](https://ethaneade.com/lie.pdf).
66+
67+
[2.15d] Chirikjian, G.S., 2015. [Partial bi-invariance of SE(3) metrics](https://rpk.lcsr.jhu.edu/wp-content/uploads/2017/08/Partial-Bi-Invariance-of-SE3-Metrics1.pdf). Journal of Computing and Information Science in Engineering, 15(1).
68+
69+
[2.15e] Pennec, X. and Lorenzi, M., 2020. [Beyond Riemannian geometry: The affine connection setting for transformation groups](https://hal.inria.fr/hal-02342137/document). In Riemannian Geometric Statistics in Medical Image Analysis (pp. 169-229). Academic Press.
70+
71+
[2.15f] Žefran, M., Kumar, V. and Croke, C., 1996, August. [Choice of Riemannian metrics for rigid body kinematics](https://www.cis.upenn.edu/~cis610/SE3-Croke-Kumar.pdf). In International Design Engineering Technical Conferences and Computers and Information in Engineering Conference (Vol. 97584, p. V02BT02A030). American Society of Mechanical Engineers.
6272

6373
[2.16] Kaess, M. and Dellaert, F., 2009. [Covariance recovery from a square root information matrix for data association](https://apps.dtic.mil/dtic/tr/fulltext/u2/a537233.pdf). Robotics and autonomous systems, 57(12), pp.1198-1210.
6474

0 commit comments

Comments
 (0)