Removed redundant adaptive voxel fitering in trajectory builder 2d.
Adaptive voxel filtering of the lidar point cloud was performed in InsertIntoSubmap and ScanMatch. Both methods are called from AddAccumulatedRangeData. Now, adaptive voxel filtering is done only once in AddAccumulatedRangeData and the filtered point cloud is then forwarded to InsertIntoSubmap and ScanMatch.
Fixed unintentional casting of high_resolution_max_range from double to int, to float
In SubmapsOptions3D the parameter "high_resolution_max_range" is defined as double. In the code it gets casted to int when calling Submap3D::InsertRangeData and to float when calling FilterRangeDataByMaxRange.
Adds a parameter for the currently hard coded `kSubmapsToKeep` in `pure_localization` mode.
The new parameter `max_submaps_with_pure_localization` allows to specify the history size of submaps in `pure_localization` mode.
Closes#1116
Previously, NodeId and SubmapId could be (partially) uninitialized,
for instance like this:
```
NodeId node_id;
SubmapId submap{0}; // uninitialized submap_index
```
This introduces constructors to prevent this.
Add the parameter `OptimizationProblemOptions.use_online_imu_extrinsincs_in_3d`. Set it to true by default to not change existing behavior.
Using online IMU extrinsics is not always desirable, and particularly during localization, we have determined that it is preferable to turn this feature off.
Extract ground truth generation from `autogenerate_ground_truth_main.cc` into a library function in `ground_truth.h/cc`, so it can be reused outside that binary.
Tested with Cartographer ROS.
`cartographer_autogenerate_ground_truth -pose_graph_filename=/home/afleck/Downloads/b3-2016-04-05-15-51-36.bag.pbstream -output_filename=/home/afleck/Downloads/ground_truth.pb`
still runs as before.
* update TrajectoryState of trajectories that got 'trimmed' away to be
deleted in the PureLocalizationTrimmer
* update serialization to only serialize 'undeleted' trajectories and
corresponding options.
#1111
- Adds TSDF2D Grid
- Adds tests for TSDF2D Grid
- Introduces Grid2D::GrowLimits(...) for multiple grids to reduce code duplication between TSDF2D and Grid2D
The probability grid points processor can now be configured to write the probability grid as pbstream. Before it was only possible to write the probability grid as png.
Fixing "Optimizing: -nan%... #846" https://github.com/googlecartographer/cartographer/issues/846.
The issue was triggered in a multithreaded execution, when all nodes were processed, but the working queue was still non empty (having other kind of jobs).
Unfortunately I failed to reproduce the bug in tests, so no new tests were added.