109 std::optional<ConvergenceState> last_state);
111 std::unique_ptr<ICP> icp_;
113 std::optional<uint64_t> min_iterations_;
114 std::optional<uint64_t> max_iterations_;
115 std::optional<double> stop_cost_;
116 std::optional<double> relative_cost_tolerance_;
117 std::optional<double> absolute_cost_tolerance_;
118 std::optional<double> angle_tolerance_rad_;
119 std::optional<double> translation_tolerance_;
120 std::optional<std::chrono::duration<double>> time_limit_;
122 std::chrono::time_point<std::chrono::steady_clock> start_time_;
Driver for running ICP to convergence.
void set_min_iterations(uint64_t min_iterations)
Sets the minimum number of iterations to run.
void set_transform_tolerance(double angle_tolerance, double translation_tolerance)
Set the transform tolerance.
void set_absolute_cost_tolerance(double absolute_cost_tolerance)
Set the absolute cost tolerance.
void set_relative_cost_tolerance(double relative_cost_tolerance)
Sets the relative cost tolerance.
void set_time_limit(std::chrono::duration< double > time_limit)
Set the time limit for converge.
void set_stop_cost(double stop_cost)
Sets the cost at which to stop ICP.
void set_max_iterations(uint64_t max_iterations)
Sets the maximum number of iterations to run.
ConvergenceState converge(const std::vector< Vector > &a, const std::vector< Vector > &b, RBTransform t)
Runs ICP to convergence based on the termination conditions set.
The result of running ICPDriver::converge.
double cost
The cost achieved.
size_t iteration_count
The number of iterations performed.
RBTransform transform
The transform.