Skip to content

Commit b64aacb

Browse files
authored
Merge pull request #1757 from JuliaRobotics/23Q3/docs/solverparams
type docs on SolverParams
2 parents 13a5a3b + 59ca9ca commit b64aacb

File tree

1 file changed

+56
-28
lines changed

1 file changed

+56
-28
lines changed

src/entities/SolverParams.jl

Lines changed: 56 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -13,36 +13,64 @@ Base.@kwdef mutable struct SolverParams <: DFG.AbstractParams
1313
dimID::Int = 0
1414
reference::NothingUnion{Dict{Symbol, Tuple{Symbol, Vector{Float64}}}} = nothing
1515
stateless::Bool = false
16-
qfl::Int = (2^(Sys.WORD_SIZE - 1) - 1)# Quasi fixed length
17-
isfixedlag::Bool = false # true when adhering to qfl window size for solves
18-
limitfixeddown::Bool = false # if true, then fixed lag will not update marginalized during down pass on tree
19-
incremental::Bool = true # use incremental tree updates, TODO consolidate with recycling
20-
useMsgLikelihoods::Bool = false # Experimental, insert differential factors from upward joints
21-
upsolve::Bool = true # do tree upsolve
22-
downsolve::Bool = true # do tree downsolve
23-
drawtree::Bool = false # draw tree during solve
24-
drawCSMIters::Bool = true # show CSM iteration count on tree visualization
16+
""" Quasi fixed length """
17+
qfl::Int = (2^(Sys.WORD_SIZE - 1) - 1)
18+
""" true when adhering to qfl window size for solves """
19+
isfixedlag::Bool = false
20+
""" if true, then fixed lag will not update marginalized during down pass on tree """
21+
limitfixeddown::Bool = false
22+
""" use incremental tree updates, TODO consolidate with recycling """
23+
incremental::Bool = true
24+
""" Experimental, insert differential factors from upward joints """
25+
useMsgLikelihoods::Bool = false
26+
""" do tree upsolve """
27+
upsolve::Bool = true
28+
""" do tree downsolve """
29+
downsolve::Bool = true
30+
""" draw tree during solve """
31+
drawtree::Bool = false
32+
""" show CSM iteration count on tree visualization """
33+
drawCSMIters::Bool = true
2534
showtree::Bool = false
26-
drawtreerate::Float64 = 0.5 # how fast should the tree vis file be redrawn
27-
dbg::Bool = false # Experimental, enable additional tier debug features
28-
async::Bool = false # do not block on CSM tasks
29-
limititers::Int = 500 # limit number of steps CSMs can take
30-
N::Int = 100 # default number of particles
31-
multiproc::Bool = 1 < nprocs() # should Distributed.jl tree solve compute features be used
32-
logpath::String = "/tmp/caesar/$(now())" # unique temporary file storage location for a solve
33-
graphinit::Bool = true # default to graph-based initialization of variables
34-
treeinit::Bool = false # init variables on the tree
35+
""" how fast should the tree vis file be redrawn """
36+
drawtreerate::Float64 = 0.5
37+
""" Experimental, enable additional tier debug features """
38+
dbg::Bool = false
39+
""" do not block on CSM tasks """
40+
async::Bool = false
41+
""" limit number of steps CSMs can take """
42+
limititers::Int = 500
43+
""" default number of particles """
44+
N::Int = 100
45+
""" should Distributed.jl tree solve compute features be used """
46+
multiproc::Bool = 1 < nprocs()
47+
""" "/tmp/caesar/logs/$(now())" # unique temporary file storage location for a solve """
48+
logpath::String = joinpath(tempdir(),"caesar","logs","$(now(UTC))")
49+
""" default to graph-based initialization of variables """
50+
graphinit::Bool = true
51+
""" init variables on the tree """
52+
treeinit::Bool = false
3553
limittreeinit_iters::Int = 10
36-
algorithms::Vector{Symbol} = [:default, :parametric] # list of algorithms to run [:default] is mmisam
37-
spreadNH::Float64 = 3.0 # entropy spread adjustment used for both null hypo cases.
38-
inflation::Float64 = 5.0 # how much to disperse particles before convolution solves, #1051
39-
nullSurplusAdd::Float64 = 0.3 # minimum nullhypo for relative factors sibling to multihypo factors onto a specific variable.
40-
inflateCycles::Int = 3 # repeat convolutions for inflation to occur
41-
gibbsIters::Int = 3 # number of Gibbs cycles to take per clique iteration variables
42-
maxincidence::Int = 500 # maximum incidence to a variable in an effort to enhance sparsity
43-
alwaysFreshMeasurements::Bool = true # Development feature on whether new samples should be sampled at each Gibbs cycle convolution
44-
attemptGradients::Bool = false # should factor gradients be calculated or attempted (UNDER DEVELOPMENT, 21Q3)
45-
devParams::Dict{Symbol, String} = Dict{Symbol, String}() # empty container for new features, allowing workaround for breaking changes and legacy
54+
""" list of algorithms to run [:default] is mmisam """
55+
algorithms::Vector{Symbol} = [:default, :parametric]
56+
""" entropy spread adjustment used for both null hypo cases. """
57+
spreadNH::Float64 = 3.0
58+
""" how much to disperse particles before convolution solves, #1051 """
59+
inflation::Float64 = 5.0
60+
""" minimum nullhypo for relative factors sibling to multihypo factors onto a specific variable. """
61+
nullSurplusAdd::Float64 = 0.3
62+
""" repeat convolutions for inflation to occur """
63+
inflateCycles::Int = 3
64+
""" number of Gibbs cycles to take per clique iteration variables """
65+
gibbsIters::Int = 3
66+
""" maximum incidence to a variable in an effort to enhance sparsity """
67+
maxincidence::Int = 500
68+
""" Development feature on whether new samples should be sampled at each Gibbs cycle convolution """
69+
alwaysFreshMeasurements::Bool = true
70+
""" should factor gradients be calculated or attempted (UNDER DEVELOPMENT, 21Q3) """
71+
attemptGradients::Bool = false
72+
""" empty container for new features, allowing workaround for breaking changes and legacy """
73+
devParams::Dict{Symbol, String} = Dict{Symbol, String}()
4674
#
4775
end
4876

0 commit comments

Comments
 (0)