Skip to content

Commit de91786

Browse files
authored
Merge pull request #892 from JuliaRobotics/master
v0.13.3-rc2
2 parents 53d843a + 78c37a3 commit de91786

File tree

5 files changed

+36
-4
lines changed

5 files changed

+36
-4
lines changed

Project.toml

+3-1
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ JSON2 = "2535ab7d-5cd8-5a07-80ac-9b1792aadce3"
2626
KernelDensityEstimate = "2472808a-b354-52ea-a80e-1658a3c6056d"
2727
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
2828
Manifolds = "1cead3c2-87b3-11e9-0ccd-23c62b72b94e"
29-
NearestNeighbors = "b8a86587-4115-5ab1-83bc-aa920d37bbce"
3029
NLsolve = "2774e3e8-f4cf-5e23-947b-6d7e65073b56"
30+
NearestNeighbors = "b8a86587-4115-5ab1-83bc-aa920d37bbce"
3131
Optim = "429524aa-4258-5aef-a3af-852621145aeb"
3232
Pkg = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f"
3333
Printf = "de0858da-6303-5e67-8744-51eddeeeb8d7"
@@ -66,13 +66,15 @@ JSON2 = "0.3, 0.4"
6666
KernelDensityEstimate = "0.5"
6767
Manifolds = "0.8"
6868
NLsolve = "4"
69+
NearestNeighbors = "0.4"
6970
Optim = "1"
7071
ProgressMeter = "1"
7172
Reexport = "1"
7273
Requires = "1"
7374
RoME = "0.20"
7475
Rotations = "1.1"
7576
StaticArrays = "1"
77+
StatsBase = "0.33"
7678
TensorCast = "0.4"
7779
TimeZones = "1.3.1, 1.4"
7880
TransformUtils = "0.2.14"

docs/src/concepts/solving_graphs.md

+22-1
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
# [Solving Graphs](@id solving_graphs)
2+
## Non-parametric Batch Solve
23

34
When you have built the graph, you can call the solver to perform inference with the following:
45

56
```julia
67
# Perform inference
7-
tree = solveTree!(fg)
8+
tree = solveTree!(fg) # or solveGraph!
89
```
910

1011
The returned Bayes (Junction) `tree` object is described in more detail on [a dedicated documentation page](https://juliarobotics.org/Caesar.jl/latest/principles/bayestreePrinciples/), while `smt` and `hist` return values most closely relate to development and debug outputs which can be ignored during general use. Should an error occur during, the exception information is easily accessible in the `smt` object (as well as file logs which default to `/tmp/caesar/`).
@@ -13,6 +14,26 @@ The returned Bayes (Junction) `tree` object is described in more detail on [a de
1314
solveTree!
1415
```
1516

17+
## Automatic vs Manual Init
18+
19+
Currently the main automatic initialization technique used by IncrementalInference.jl by delayed propagation of belief on the factor graph. This can be globally or locally controlled via:
20+
```julia
21+
getSolverParams(fg).graphinit = false
22+
23+
# or locally at each addFactor
24+
addFactor!(fg, [:x0;:x1], LinearRelative(Normal()); graphinit=false)
25+
```
26+
27+
Use [`initVariable!`](@ref) if you'd like to force a particular numerical initialization of some or all the variables.
28+
```@docs
29+
initVariable!
30+
```
31+
32+
All the variables can be initialized without solving with:
33+
```@docs
34+
initAll!
35+
```
36+
1637
## Using Incremental Updates (Clique Recycling I)
1738

1839
One of the major features of the MM-iSAMv2 algorithm (implemented by [IncrementalInference.jl](http://www.github.com/JuliaRobotics/IncrementalInference.jl)) is reducing computational load by recycling and marginalizing different (usually older) parts of the factor graph. In order to utilize the benefits of recycing, the previous Bayes (Junction) tree should also be provided as input (see fixed-lag examples for more details):

src/3rdParty/_PCL/services/ICP_Simple.jl

+1-1
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@ Notes
231231
- See here for a brief example on [Visualizing Point Clouds](@ref viz_pointcloud_makie).
232232
233233
DevNotes
234-
- TODO switch rigid transfrom to `Caesar._PCL.apply` along with performance considerations, instead of curent `transform!`.
234+
- TODO switch rigid transfrom to `Caesar._PCL.apply` along with performance considerations, instead of current `transform!`.
235235
236236
See also: [`PointCloud`](@ref)
237237
"""

src/images/ScatterAlignPose2.jl

+3-1
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,9 @@ struct ScatterAlignPose2 <: IIF.AbstractManifoldMinimize
9292
end
9393

9494
"""
95-
ScatterAlignPose3(; mkd1::ManifoldKernelDensity, mkd2::ManifoldKernelDensity, moreoptions...)
95+
ScatterAlignPose3(; cloud1=mkd1::ManifoldKernelDensity,
96+
cloud2=mkd2::ManifoldKernelDensity,
97+
moreoptions...)
9698
9799
Specialization of [`ScatterAlign`](@ref) for [`Pose3`](@ref).
98100

test/pcl/testPointCloud2.jl

+7
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,8 @@ pc_ = Caesar._PCL.apply(M, rPc, pc)
135135
end
136136

137137

138+
if v"1.7" <= VERSION
139+
138140
@testset "PandarXT test point cloud conversion test" begin
139141
##
140142

@@ -220,6 +222,11 @@ pc_3D = Caesar._PCL.apply(M, rPc, pc)
220222
##
221223
end
222224

225+
else
226+
@error "Skip PointCloud testdata serialization owning to Julia version."
227+
@test_broken false
228+
end
229+
223230

224231

225232
@testset "Test PointCloud on Terrestrial Lidar and ICP_Simple alignment" begin

0 commit comments

Comments
 (0)