// Copyright 2016 The Cartographer Authors // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. syntax = "proto2"; package cartographer.mapping.sparse_pose_graph.proto; import "cartographer/sensor/proto/adaptive_voxel_filter_options.proto"; import "cartographer/mapping_2d/scan_matching/proto/ceres_scan_matcher_options.proto"; import "cartographer/mapping_2d/scan_matching/proto/fast_correlative_scan_matcher_options.proto"; import "cartographer/mapping_3d/scan_matching/proto/ceres_scan_matcher_options.proto"; import "cartographer/mapping_3d/scan_matching/proto/fast_correlative_scan_matcher_options.proto"; message ConstraintBuilderOptions { // A constraint will be added if the proportion of added constraints to // potential constraints drops below this number. optional double sampling_ratio = 1; // Threshold for poses to be considered near a submap. optional double max_constraint_distance = 2; // This is only used for 2D. // Voxel filter used to compute a sparser point cloud for matching. optional sensor.proto.AdaptiveVoxelFilterOptions adaptive_voxel_filter_options = 3; // Threshold for the scan match score below which a match is not considered. // Low scores indicate that the scan and map do not look similar. optional double min_score = 4; // Threshold below which global localizations are not trusted. optional double global_localization_min_score = 5; // Weight used in the optimization problem for the translational component of // loop closure constraints. optional double loop_closure_translation_weight = 13; // Weight used in the optimization problem for the rotational component of // loop closure constraints. optional double loop_closure_rotation_weight = 14; // If enabled, logs information of loop-closing constraints for debugging. optional bool log_matches = 8; // Options for the internally used scan matchers. optional mapping_2d.scan_matching.proto.FastCorrelativeScanMatcherOptions fast_correlative_scan_matcher_options = 9; optional mapping_2d.scan_matching.proto.CeresScanMatcherOptions ceres_scan_matcher_options = 11; optional mapping_3d.scan_matching.proto.FastCorrelativeScanMatcherOptions fast_correlative_scan_matcher_options_3d = 10; // Voxel filter used for high resolution, only used for 3D loop closure. optional sensor.proto.AdaptiveVoxelFilterOptions high_resolution_adaptive_voxel_filter_options = 15; // Voxel filter used for low resolution, 3D loop closure refinement. optional sensor.proto.AdaptiveVoxelFilterOptions low_resolution_adaptive_voxel_filter_options = 16; optional mapping_3d.scan_matching.proto.CeresScanMatcherOptions ceres_scan_matcher_options_3d = 12; }