-
Notifications
You must be signed in to change notification settings - Fork 0
beam_matching
This module contains objects for registering 2 pointclouds.
This class has functionality similar to the PCL IterativeClosestPoint that can be found here: http://docs.pointclouds.org/trunk/classpcl_1_1_iterative_closest_point.html
This class registers two pointclouds using ICP registration method.
IcpMatcher was implemented as a wrapper of PCL's IterativeClosestPoint to simplify the usage as well as supporting down sampling of reference and target pointclouds before matching and estimating information matrix.
Example usage:
#include "beam_filtering/IcpMatcher.h"
PointCloud::Ptr ref_cloud = boost::make_shared<PointCloud>();
PointCloud::Ptr target_cloud = boost::make_shared<PointCloud>();
std::string config_path = "icp_config.json";
IcpMatcherParams params(config_path);
IcpMatcher matcher(params);
matcher.SetRef(ref_cloud);
matcher.SetTarget(target_cloud);
matcher.Match();
matcher.EstimateInfo();
Eigen::Matrix<double, 6, 6> information_matrix = matcher.GetInfo();
This structure contains parameters used for IcpMatcher. These parameters can be configured in a config JSON file.
max_corr: Maximum distance to correspond points for ICP. [default: 3]
max_iter: Maximum iterations of ICP. [default: 100]
t_eps: Transformation epsilon (maximum allowable translation squared difference between
two consecutive transformations) [default:1e-8]
fit_eps: Euclidean fitness epsilon (maximum allowed Euclidean error between
two consecutive steps in the ICP loop) [default:1e-2]
lidar_ang_covar: Angular variance for lidar sensor model.
Used if Censi covariance estimation is set. [default: 7.78e-9]
lidar_lin_covar: Linear variance for lidar sensor model.
Used if Censi covariance estimation is set. [default: 2.5e-4]
int multiscale_steps: When set to more than 0, each match is performed multiple times
from a coarse to fine scale (in terms of voxel downsampling).
Each step doubles the resolution. [default: 3]
float res: Voxel side length for downsampling. If set to 0, downsampling is not performed.
If multiscale matching is set, this is the resolution of the final, fine-scale match. [default: 0.1]
covar_estimator: Enumerator of covariance method. [default: LUM] [options: LUM, CENSI, LUMold]
This class has functionality similar to the PCL NormalDistributionsTransform that can be found here: http://docs.pointclouds.org/trunk/classpcl_1_1_normal_distributions_transform.html
This class registers two pointclouds using NDT registration method.
NdtMatcher was implemented as a wrapper of PCL's NormalDistributionsTransform to simplify the usage.
Example usage:
#include "beam_filtering/NdtMatcher.h"
PointCloud::Ptr ref_cloud = boost::make_shared<PointCloud>();
PointCloud::Ptr target_cloud = boost::make_shared<PointCloud>();
std::string config_path = "ndt_config.json";
NdtMatcherParams params(config_path);
NdtMatcher matcher(params);
matcher.SetRef(ref_cloud);
matcher.SetTarget(target_cloud);
matcher.Match();
This structure contains parameters used for NdtMatcher. These parameters can be configured in a config JSON file.
step_size: The newton line search maximum step length. [default: 3]
max_iter: The maximum number of iterations the internal optimization should run for. [default: 100]
t_eps: The maximum difference between two consecutive transformations in order to consider convergence. [default: 1e-8]
res: The side length of voxels. [default: 5]
This class has functionality similar to the PCL GeneralizedIterativeClosestPoint that can be found here: http://docs.pointclouds.org/trunk/classpcl_1_1_generalized_iterative_closest_point.html
This class registers two pointclouds using GICP registration method.
NdtMatcher was implemented as a wrapper of PCL's GeneralizedIterativeClosestPoint to simplify the usage.
Example usage:
#include "beam_filtering/GicpMatcher.h"
PointCloud::Ptr ref_cloud = boost::make_shared<PointCloud>();
PointCloud::Ptr target_cloud = boost::make_shared<PointCloud>();
std::string config_path = "gicp_config.json";
GicpMatcherParams params(config_path);
GicpMatcher matcher(params);
matcher.SetRef(ref_cloud);
matcher.SetTarget(target_cloud);
matcher.Match();
This structure contains parameters used for GicpMatcher. These parameters can be configured in a config JSON file.
corr_rand: The number of neighbors used for covariances computation. [default: 10]
max_iter: The maximum number of iterations the internal optimization should run for. [default: 100]
r_eps: The rotation epsilon (maximum allowable difference between two consecutive rotations) in order for an
optimization to be considered as having converged to the final solution. [default: 1e-8]
fit_eps: Euclidean fitness epsilon (maximum allowed Euclidean error between
two consecutive steps in the ICP loop) [default:1e-2]
res: The side length of voxels. [default: 5]
- Home
- Onboarding
- Installation Guide
- Libbeam
- Mapping
- Calibration
- Hardware Instructions
- Deep Learning
- Formatting
- PoTree Maps
- Supported Hardware
- Additional Resources