mirror of https://github.com/koide3/small_gicp.git
expose termination criterion (#8)
This commit is contained in:
parent
42d86e2d7a
commit
3cc60c0187
|
|
@ -36,6 +36,8 @@ struct RegistrationSetting {
|
|||
double voxel_resolution = 1.0; ///< Voxel resolution for VGICP
|
||||
double downsampling_resolution = 0.25; ///< Downsample resolution (this will be used only in the Eigen-based interface)
|
||||
double max_correspondence_distance = 1.0; ///< Maximum correspondence distance
|
||||
double rotation_eps = 0.1 * M_PI / 180.0; ///< Rotation tolerance for convergence check [rad]
|
||||
double translation_eps = 1e-3; ///< Translation tolerance for convergence check
|
||||
int num_threads = 4; ///< Number of threads
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -88,18 +88,24 @@ align(const PointCloud& target, const PointCloud& source, const KdTree<PointClou
|
|||
Registration<ICPFactor, ParallelReductionOMP> registration;
|
||||
registration.reduction.num_threads = setting.num_threads;
|
||||
registration.rejector.max_dist_sq = setting.max_correspondence_distance * setting.max_correspondence_distance;
|
||||
registration.criteria.rotation_eps = setting.rotation_eps;
|
||||
registration.criteria.translation_eps = setting.translation_eps;
|
||||
return registration.align(target, source, target_tree, init_T);
|
||||
}
|
||||
case RegistrationSetting::PLANE_ICP: {
|
||||
Registration<PointToPlaneICPFactor, ParallelReductionOMP> registration;
|
||||
registration.reduction.num_threads = setting.num_threads;
|
||||
registration.rejector.max_dist_sq = setting.max_correspondence_distance * setting.max_correspondence_distance;
|
||||
registration.criteria.rotation_eps = setting.rotation_eps;
|
||||
registration.criteria.translation_eps = setting.translation_eps;
|
||||
return registration.align(target, source, target_tree, init_T);
|
||||
}
|
||||
case RegistrationSetting::GICP: {
|
||||
Registration<GICPFactor, ParallelReductionOMP> registration;
|
||||
registration.reduction.num_threads = setting.num_threads;
|
||||
registration.rejector.max_dist_sq = setting.max_correspondence_distance * setting.max_correspondence_distance;
|
||||
registration.criteria.rotation_eps = setting.rotation_eps;
|
||||
registration.criteria.translation_eps = setting.translation_eps;
|
||||
return registration.align(target, source, target_tree, init_T);
|
||||
}
|
||||
case RegistrationSetting::VGICP: {
|
||||
|
|
@ -117,6 +123,8 @@ RegistrationResult align(const GaussianVoxelMap& target, const PointCloud& sourc
|
|||
|
||||
Registration<GICPFactor, ParallelReductionOMP> registration;
|
||||
registration.reduction.num_threads = setting.num_threads;
|
||||
registration.criteria.rotation_eps = setting.rotation_eps;
|
||||
registration.criteria.translation_eps = setting.translation_eps;
|
||||
return registration.align(target, source, target, init_T);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue