JuliaRobotics / IncrementalInference.jl

@@ -354,7 +354,7 @@
Loading
354 354
                                          firvert::DFGVariable,
355 355
                                          Sj=getSolverData(firvert).separator)::DFGVariable
356 356
  #
357 -
  firstelim = 99999999999
357 +
  firstelim = (2^(Sys.WORD_SIZE-1)-1)
358 358
  for s in Sj
359 359
    temp = something(findfirst(isequal(s), elimorder), 0) # findfirst(p, s)
360 360
    if (temp < firstelim)

@@ -211,12 +211,13 @@
Loading
211 211
                                    destType::Type{<:InferenceVariable},
212 212
                                    factor::AbstractRelative;
213 213
                                    srcType::Type{<:InferenceVariable} = getVariableType(fg, srcLabel) |> typeof,
214 +
                                    doRef::Bool = true,
214 215
                                    refKey::Symbol=:simulated,
215 -
                                    prior = DFG._getPriorType(srcType)( MvNormal(getPPE(fg[srcLabel], refKey).suggested, diagm(ones(getDimension(srcType)))) ),
216 +
                                    prior = !doRef ? nothing : DFG._getPriorType(srcType)( MvNormal(getPPE(fg[srcLabel], refKey).suggested, diagm(ones(getDimension(srcType)))) ),
216 217
                                    atol::Real = 1e-2,
217 218
                                    destPrefix::Symbol = match(r"[a-zA-Z_]+", destRegex.pattern).match |> Symbol,
218 219
                                    srcNumber = match(r"\d+", string(srcLabel)).match |> x->parse(Int,x),
219 -
                                    overridePPE=nothing  )
220 +
                                    overridePPE = doRef ? nothing : zeros(getDimension(destType))  )
220 221
  #
221 222
  
222 223
  refVal = if overridePPE !== nothing
@@ -238,9 +239,13 @@
Loading
238 239
239 240
  # now check if we already have a landmark at this location
240 241
  varLms = ls(fg, destRegex) |> sortDFG
241 -
  ppeLms = getPPE.(getVariable.(fg, varLms), refKey) .|> x->x.suggested
242 -
  errmask = ppeLms .|> ( x -> isapprox(x, refVal; atol=atol) )
243 -
  already = any(errmask)
242 +
  already = if doRef
243 +
    ppeLms = getPPE.(getVariable.(fg, varLms), refKey) .|> x->x.suggested
244 +
    errmask = ppeLms .|> ( x -> isapprox(x, refVal; atol=atol) )
245 +
    any(errmask)
246 +
  else
247 +
    false
248 +
  end
244 249
245 250
  if already
246 251
    # does exist, ppe, variableLabel
@@ -260,12 +265,13 @@
Loading
260 265
                                    destType::Type{<:InferenceVariable},
261 266
                                    factor::AbstractPrior;
262 267
                                    srcType::Type{<:InferenceVariable} = getVariableType(fg, srcLabel) |> typeof,
268 +
                                    doRef::Bool = true,
263 269
                                    refKey::Symbol=:simulated,
264 270
                                    prior = typeof(factor)( MvNormal(getMeasurementParametric(factor)...) ),
265 271
                                    atol::Real = 1e-3,
266 272
                                    destPrefix::Symbol = match(r"[a-zA-Z_]+", destRegex.pattern).match |> Symbol,
267 273
                                    srcNumber = match(r"\d+", string(srcLabel)).match |> x->parse(Int,x),
268 -
                                    overridePPE=nothing  )
274 +
                                    overridePPE = doRef ? nothing : zeros(getDimension(destType))  )
269 275
  #
270 276
271 277
  refVal = if overridePPE !== nothing

@@ -484,7 +484,7 @@
Loading
484 484
  if :ut in fieldnames(T)	
485 485
    Base.depwarn("Field `ut` (microseconds) for variable type ($T) has been deprecated please use DFGVariable.nstime, kwarg: nanosecondtime", :addVariable!)	
486 486
    if isnothing(nanosecondtime)
487 -
      varType.ut == -9999999999 && error("please define a time for type $(T), use FGVariable.nstime, kwarg: nanosecondtime")
487 +
      varType.ut == -(2^(Sys.WORD_SIZE-1)-1) && error("please define a time for type $(T), use FGVariable.nstime, kwarg: nanosecondtime")
488 488
      nanosecondtime = Nanosecond(varType.ut*1000)	
489 489
    else 	
490 490
      @warn "Nanosecond time has been specified as $nanosecondtime, ignoring `ut` field value: $(varType.ut)."	

@@ -88,7 +88,7 @@
Loading
88 88
    Z = s.z
89 89
    @info "getMeasurementParametric falls back to using field `.z` by default. Extend it for more complex factors." maxlog=1
90 90
  else
91 -
    error("$(typeof(s)) not supported, please use non-parametric or open an issue if it should be")
91 +
    error("getMeasurementParametric(::$(typeof(s))) not defined, please add it, or use non-parametric, or open an issue for help.")
92 92
  end
93 93
  
94 94
  return getMeasurementParametric(Z)

@@ -37,6 +37,7 @@
Loading
37 37
DevNotes:
38 38
- Generalize to scalar fields on any Manifold.
39 39
- Generalize to vector fields if interpolation is sensible.
40 +
- TODO standardize with AliasingScalarSampler see IIF #1341
40 41
"""
41 42
struct HeatmapGridDensity{T <: Real, H <: Union{<:Function, Nothing}, B <: Union{ManifoldKernelDensity, BallTreeDensity}}
42 43
  """intensity data, on regular grid"""

@@ -14,7 +14,7 @@
Loading
14 14
  dimID::Int = 0
15 15
  reference::NothingUnion{Dict{Symbol, Tuple{Symbol, Vector{Float64}}}} = nothing
16 16
  stateless::Bool = false
17 -
  qfl::Int = 99999999999            # Quasi fixed length
17 +
  qfl::Int = (2^(Sys.WORD_SIZE-1)-1)# Quasi fixed length
18 18
  isfixedlag::Bool = false          # true when adhering to qfl window size for solves
19 19
  limitfixeddown::Bool = false      # if true, then fixed lag will also not update marginalized during down (default false)
20 20
  incremental::Bool = true          # use incremental tree updates, TODO consolidate with recycling

@@ -21,7 +21,7 @@
Loading
21 21
Get the grid positions at the specified height (within the provided spreads)
22 22
23 23
DevNotes
24 -
- TODO Should this be consolidated with AliasingScalarSampler?
24 +
- TODO Should this be consolidated with AliasingScalarSampler? See IIF #1341
25 25
"""
26 26
function sampleHeatmap( roi::AbstractMatrix{<:Real},
27 27
                        x_grid::AbstractVector{<:Real}, 

@@ -352,7 +352,7 @@
Loading
352 352
"""
353 353
function dontMarginalizeVariablesAll!(fgl::AbstractDFG)
354 354
  fgl.solverParams.isfixedlag = false
355 -
  fgl.solverParams.qfl = 9999999999
355 +
  fgl.solverParams.qfl = (2^(Sys.WORD_SIZE-1)-1)
356 356
  fgl.solverParams.limitfixeddown = false
357 357
  for sym in ls(fgl)
358 358
    setMarginalized!(fgl, sym, false)
Files Coverage
src 77.20%
Project Totals (67 files) 77.20%

No yaml found.

Create your codecov.yml to customize your Codecov experience

Sunburst
The inner-most circle is the entire project, moving away from the center are folders then, finally, a single file. The size and color of each slice is representing the number of statements and the coverage, respectively.
Icicle
The top section represents the entire project. Proceeding with folders and finally individual files. The size and color of each slice is representing the number of statements and the coverage, respectively.
Grid
Each block represents a single file in the project. The size and color of each block is represented by the number of statements and the coverage, respectively.
Loading