3b511aa1ba
The histogram of a submap is now stored in the submap (class and proto) itself. This change allows to accumulate the histogram of a submap in local SLAM by adding up the histogram of each new scan. The main advantage is that the background thread doesn't have to loop over all `TrajectoryNode`s of a finished submap to compute the submap histogram for the `RotationalScanMatcher`. Instead this chunk of work is moved to the local SLAM thread but is split up into a few computations for each new scan. When running localization, the histogram of a submap can just be read from a map pbstream and does not have to be computed from the nodes. In summary: - This change improved the CPU time of offline SLAM by ~7%. - Increases the readability of the code and performance of the background thread. (see `PoseGraph3D::ComputeConstraint`) - No negative performance impacts on accuracy or finding loop-closures However: - With this change to the submap proto, old maps (pbstreams) are no longer supported and need to be re-created by running offline slam |
||
---|---|---|
.. | ||
cloud | ||
common | ||
ground_truth | ||
io | ||
mapping | ||
metrics | ||
pose_graph | ||
sensor | ||
testing | ||
transform | ||
.clang-format | ||
BUILD.bazel |