IncrementalInference.jl
IncrementalInference.jl copied to clipboard
Standarize partials definition and behavior
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
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.