20 #ifndef CARTOGRAPHER_MAPPING_3D_SCAN_MATCHING_FAST_CORRELATIVE_SCAN_MATCHER_H_ 21 #define CARTOGRAPHER_MAPPING_3D_SCAN_MATCHING_FAST_CORRELATIVE_SCAN_MATCHER_H_ 31 #include "cartographer/mapping_3d/scan_matching/proto/fast_correlative_scan_matcher_options.pb.h" 36 namespace mapping_3d {
37 namespace scan_matching {
39 proto::FastCorrelativeScanMatcherOptions
41 common::LuaParameterDictionary* parameter_dictionary);
43 class PrecomputationGridStack;
52 Candidate(
const int scan_index,
const Eigen::Array3i& offset)
53 : scan_index(scan_index), offset(offset) {}
74 const std::vector<mapping::TrajectoryNode>& nodes,
75 const proto::FastCorrelativeScanMatcherOptions& options);
97 bool MatchFullSubmap(
const Eigen::Quaterniond& gravity_alignment,
100 float min_score,
float* score,
110 bool MatchWithSearchParameters(
119 std::vector<DiscreteScan> GenerateDiscreteScans(
124 std::vector<Candidate> GenerateLowestResolutionCandidates(
126 void ScoreCandidates(
int depth,
127 const std::vector<DiscreteScan>& discrete_scans,
128 std::vector<Candidate>*
const candidates)
const;
129 std::vector<Candidate> ComputeLowestResolutionCandidates(
131 const std::vector<DiscreteScan>& discrete_scans)
const;
133 const std::vector<DiscreteScan>& discrete_scans,
134 const std::vector<Candidate>& candidates,
135 int candidate_depth,
float min_score)
const;
137 const proto::FastCorrelativeScanMatcherOptions
options_;
148 #endif // CARTOGRAPHER_MAPPING_3D_SCAN_MATCHING_FAST_CORRELATIVE_SCAN_MATCHER_H_ Candidate(const int scan_index, const Eigen::Array3i &offset)
proto::FastCorrelativeScanMatcherOptions CreateFastCorrelativeScanMatcherOptions(common::LuaParameterDictionary *const parameter_dictionary)
std::unique_ptr< PrecomputationGridStack > precomputation_grid_stack_
bool operator<(const Candidate &other) const
const double angular_search_window
const int linear_xy_window_size
const proto::FastCorrelativeScanMatcherOptions options_
std::vector< Eigen::Vector3f > PointCloud
bool operator>(const Candidate &other) const
const int linear_z_window_size
std::vector< std::vector< Eigen::Array3i > > cell_indices_per_depth
const int width_in_voxels_
RotationalScanMatcher rotational_scan_matcher_