MarineRoboticsGroup / dcsam

Factored inference for discrete-continuous smoothing and mapping.
https://arxiv.org/abs/2204.11936
MIT License
144 stars 18 forks source link

Fix max-mixture weights and cache solves #22

Closed keevindoherty closed 2 years ago

keevindoherty commented 2 years ago

This PR fixes an issue with max-mixture weights (not being included in error computations properly) and caches solves.

We added a heuristic to determine whether re-solves are needed for discrete variables. Essentially we try to determine when the added factor graph consists only of odometry measurements and don't bother updating in this case. This is a bit of a hack as, in principle, new continuous factors could come in that influence the DC states and shift discrete hypotheses, but this isn't so in our experiments. Consequently, this isn't strictly correct in the general case, so I'm really not sure it should be in the main instantiation of this solver. I think I might instead revert this commit and add affordances to the front-end so a user can determine whether a fresh discrete solve is needed. What do you think @520xyxyzq ?

520xyxyzq commented 2 years ago

I think the formal way to do this is, like you said, make this a modifiable feature that users can turn on and off. But for now, since the heuristic is good enough for our current applications, I guess we can leave it here and add a TODO to param it out later. Does that make sense?

keevindoherty commented 2 years ago

That seems fair to me!