-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rb 1639 #4
Rb 1639 #4
Conversation
- Adds TSDF2D Grid - Adds tests for TSDF2D Grid - Introduces Grid2D::GrowLimits(...) for multiple grids to reduce code duplication between TSDF2D and Grid2D
* update TrajectoryState of trajectories that got 'trimmed' away to be deleted in the PureLocalizationTrimmer * update serialization to only serialize 'undeleted' trajectories and corresponding options. cartographer-project#1111
Adds Normal Estimation needed for TSDF RangeDataInserter.
…#1215) 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.
…efault. (cartographer-project#1217) 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.
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.
Adds tests for MapById for the cases: empty MapById, invalid trajectory_id, deleting all entries for a trajectory.
…t#1141) 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 cartographer-project#1116
Before, the metric was in integer seconds and since measurements are usually quite small, it was mostly outputting 0.
Separate raycast and grid update logic. Rename raycast to ray_to_pixel_mask.
…rapher-project#1239) 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.
…bmaps2D) (cartographer-project#1238) Removed the unused member matching_submap_index of ActiveSubmaps3D and ActiveSubmaps2D. Adjusted the test accordingly.
…t#1237) As discussed and requested in cartographer-project#1218, this PR removes the substring "_internal" from all the metric family names.
Adds TSDF RangeDataInserter, tests and integrates the configuration files.
Fixes a crash if a client initializes with an initial pose inside a frozen map that isn't known to the server.
…artographer-project#1244) Introduce a new overload of ToSeconds for std::chrono::steady_clock and use it for the work queue delay metric.
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.
to measure fraction of sensor time that is taken up by voxel filter, scan matcher, and inserting into submap.
…project#1245) Extracted the ScanMatch method in the LocalTrajectoryBuilder3D. This is a short refactoring. With that change, the code of LocalTrajectoryBuilder3D resembles LocalTrajectoryBuilder2D more. (see LocalTrajectoryBuilder2D::ScanMatch)
…ject#1247) This was called fast_correlative before, but the metric was about the score of the real-time correlative scan matcher in local SLAM.
…artographer-project#1248) use the new overload of ToSeconds (introduced in [PR1244](https://github.com/googlecartographer/cartographer/pull/1244/files)) in local_trajectory_builder.
…ct#1531) Done to avoid unnecessary reallocation.
…oject#1529) On Ubuntu 16.04, we have to install Protobuf 3. Unfortunately, `find_package()`ing Protobuf using native installed CMake `CONFIG` is problematic in case if there is a system Protobuf 2 installed, while the bundled CMake module works correctly and manages to avoid interference with system-installed Protobuf 2.
Done as it reads a bit better.
…ct#1334) This commit add support of specifying the option to collate data by trajectory introduced in cartographer-project#828 in the lua configuration files. The value is set to false as when a boolean option is not specified it is initialized to false.
…1537) This removes the hardcoded value of `collate_by_trajectory` in the cloud map builder server and permits to configure `collate_by_trajectory` option with lua.
Remove GenericPoseGraph implementation not to confuse the users. It will come back one day.
* Update dependencies Update protobuf grpc and bazel-rules and added bazel-skylib (required by protobuf 3.7.1). Closes cartographer-project#1519
…ct#1558) An empty basename would mean a directory path is returned by GetFullPathOrDie(), which then leads to a cryptic exception when trying to read from it using the istreambuf_iterator: "basic_filebuf::underflow error reading the file: iostream error"
…tographer-project#1556) Add saturation_factor to scale the saturation of the point color to get darker XRay for sparse point cloud.
Apparently the format bot uses a bleeding edge clang-format that uses the new Google style and reformats a bunch of files in every PR. This is an empty commit to trigger this in a separate commit. See llvm-mirror/clang@62e3198
…ct#1563) `absl::StrCat/StrAppend` convert numeric values to strings with inconsistent decimal precision, which can lead to ugly formatting of the histogram. This can be fixed by using `StrAppendFormat` with `%f`, which uses 6 decimals (printf default and as it was when we had `std::to_string`).
…mon/histogram.cc (cartographer-project#1576) Also updates com_github_jupp0r_prometheus_cpp and bazel_skylib to fix compatibility issues with bazel 0.25
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some minor requests
CHANGELOG.rst
Outdated
@@ -2,9 +2,21 @@ | |||
Changelog for package cartographer | |||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | |||
|
|||
<<<<<<< 7c531d49368090ee50c84499a299440e1f5af36f |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
? Rebase problem?
@@ -279,7 +279,11 @@ void PoseGraph2D::ComputeConstraint(const NodeId& node_id, | |||
// local search window. | |||
maybe_add_local_constraint = true; | |||
} else if (global_localization_samplers_[node_id.trajectory_id]->Pulse()) { | |||
maybe_add_global_constraint = true; | |||
if(options_.reduce_global_constraint_search_area()){ | |||
maybe_add_local_constraint = true; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Both cases set it to true?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The difference between add_local_constraint and add_global_constraint is the area that is searched to find a constraint.
add_local_constraint calls FastCorrelativeScanMatcher2D::MatchWithSearchParameters() function.
Here the current pose of the scan is transformed relative to the submap and then optimized within a search area in the submap to find a loop closure constraint.
add_global_constraint calls FastCorrelativeScanMatcher2D::MatchFullSubmap() functions.
Here the current scan pose is randomly initialized at the center of the submap and then the entire submap is searched to find a loop closure constraint.
If you have prior information about the start of a new trajectory then you can add a local_constraint and restrict the search area. It is better because for global search to work the submaps should have a lot of unique features.
If you are trying to solve robot kidnap problem or any other problem with no prior then it makes sense to add a global_constraint.
options_.reduce_global_constraint_search_area() parameter will give us the flexibility to reduce the global search area if we have prior.
In lines 254 and 255 add_local_constraint and add_global_constraint is set to false.
bool maybe_add_local_constraint = false; |
2cbaad2
to
5f63a60
Compare
Also can we run the existing tests? |
1 similar comment
Also can we run the existing tests? |
ninja: warning: multiple rules generate abseil/src/abseil-build/absl/synchronization/libabsl_synchronization.a. builds involving this target will not be correct; continuing anyway [-w dupbuild=warn] 100% tests passed, 0 tests failed out of 80 Total Test time (real) = 18.20 sec |
Want to contribute? Great! Make sure you've read, understood and considered all
the points below before creating your PR:
ninja test
orcatkin_make_isolated --install --use-ninja --pkg cartographer --make-args test
as appropriate.runs for every update which blocks merging of other changes. Our merge bot
will rebase your branch, reformat your source code and merge as the last step
in the review process.
PR. You and/or the reviewer should keep it updated during the course of the
review using the GitHub edit feature.