Commit fd60c10
committed
Don't throw when writing back a keyframe the fixed-lag smoother marginalized
process_pending_gtsam_updates()'s write-back loop iterated every keyframe in
state_.last_estimated_states and read its T/V/W variables out of the
optimizer's Values unconditionally. This is a fixed-lag smoother: once a
keyframe leaves the lag window it is marginalized out and its variables go
with it, so at() threw
Attempting to at the key "tNNN", which does not exist in the Values.
The caller treats that as fatal ("Discarding incoming observations: a fatal
error ocurred above"), so the run stopped mid-sequence and dropped every
later observation while still exiting 0 -- leaving a short trajectory whose
APE looked good because it covered only the easy opening.
Seen on two datasets, and it needs a sequence long enough to fill the lag
window, which is why no keyed CI dataset trips it:
- Newer College 2020 01_short_experiment: key t3478, ~14% in, 11% GT
coverage and a flattering 0.26 m APE.
- GEODE Offroad1_gamma: key t335, ~7.5% in, 295 of 4049 scans and a
flattering 0.383 m.
Skipping such an entry is the correct behavior rather than merely the safe
one: it already holds the last estimate the smoother produced before
marginalizing, which is that keyframe's final value. There is nothing newer
to write back.
Offroad1_gamma now runs to completion: 4039 poses instead of 295, 99.9% GT
coverage instead of 7%, est/gt path ratio 1.007, and an honest 1.303 m APE
against the beta arm's 1.282 m on the same trajectory.1 parent a88a01e commit fd60c10
1 file changed
Lines changed: 19 additions & 0 deletions
Lines changed: 19 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2184 | 2184 | | |
2185 | 2185 | | |
2186 | 2186 | | |
| 2187 | + | |
| 2188 | + | |
| 2189 | + | |
| 2190 | + | |
| 2191 | + | |
| 2192 | + | |
| 2193 | + | |
| 2194 | + | |
| 2195 | + | |
| 2196 | + | |
| 2197 | + | |
| 2198 | + | |
| 2199 | + | |
| 2200 | + | |
| 2201 | + | |
| 2202 | + | |
| 2203 | + | |
| 2204 | + | |
| 2205 | + | |
2187 | 2206 | | |
2188 | 2207 | | |
2189 | 2208 | | |
| |||
0 commit comments