IncrementalInference.jl icon indicating copy to clipboard operation
IncrementalInference.jl copied to clipboard

Standarize partials definition and behavior

Open dehann opened this issue 2 years ago • 1 comments

We should do better than define partials as coordinate dimension positions -- i.e.

  • [ ] get away from say a Yaw factor partial currently using coordinates (3,). Rather use a projection function or better.
  • [ ] Should it be a dispatch function to indicate a factor is partial, rather than field .partial?
  • [ ] Should factor manifolds be full dimension, or that of the "projected sub-manifold"?
  • [ ] heavily influences #1010
  • [ ] update #680
  • [ ] automatically try partial projections for "wrong factor reductions": https://github.com/JuliaRobotics/IncrementalInference.jl/issues/1507#issuecomment-1081087381

See legacy workaround: 976a010

dehann avatar Feb 13 '22 23:02 dehann

Going for partial factors' getManifold to only return the partial manifold definition; as well as getSample to return tangents or points on that partial factor. The rest of the IIF logic should then cater for which variables those factors are connected to and update the numerics accordingly. Currently that is done via factors having .partials::Vector{Int} which strictly specifies the partial dimensions (in coordinates of the variable being updated). This is not perfect and has a bunch of limitations in the near term, but good enough for transition to Manifolds proper so that partial manifolds can be broadly advanced as necessary.

dehann avatar Dec 29 '22 04:12 dehann