Spec-Zone.ru › PointCloudLibrary
IterativeClosestPointNonLinear является вариантом ICP, использующим оптимизацию Levenberg-Marquardt.Подробнее...
#include <pcl/registration/icp_nl.h >
void
setTransformationEstimation (const TransformationEstimationPtr &te)
Укажите указатель на объект оценки преобразования. Подробнее...
void
setCorrespondenceEstimation (const CorrespondenceEstimationPtr &ce)
Укажите указатель на объект оценки соответствий. Подробнее...
PointCloudSourceConstPtr const
getInputSource ()
Получить указатель на целевой набор данных входных точечных облаков. Подробнее...
PointCloudTargetConstPtr const
getInputTarget ()
Получить указатель на целевой набор данных входных точечных облаков. Подробнее...
void
setSearchMethodTarget (const KdTreePtr &tree, bool force_no_recompute=false)
Укажите указатель на объект поиска, используемый для поиска соответствий в целевом облаке. Подробнее...
KdTreePtr
getSearchMethodTarget () const
Получить указатель на метод поиска, используемый для поиска соответствий в целевом облаке. Подробнее...
void
setSearchMethodSource (const KdTreeReciprocalPtr &tree, bool force_no_recompute=false)
Укажите указатель на объект поиска, используемый для поиска соответствий в исходном облаке (обычно используется для поиска взаимных соответствий). Подробнее...
KdTreeReciprocalPtr
getSearchMethodSource () const
Получить указатель на метод поиска, используемый для поиска соответствий в исходном облаке. Подробнее...
Matrix4
getFinalTransformation ()
Получить итоговую матрицу преобразования, оценённую методом регистрации. Подробнее...
Matrix4
getLastIncrementalTransformation ()
Получить последнюю матрицу инкрементного преобразования, оценённую методом регистрации. Подробнее...
void
setMaximumIterations (int nr_iterations)
Установите максимальное количество итераций для внутренней оптимизации. Подробнее...
int
getMaximumIterations ()
Получить максимальное количество итераций для внутренней оптимизации, установленное пользователем. Подробнее...
void
setRANSACIterations (int ransac_iterations)
Установите количество итераций RANSAC. Подробнее...
double
getRANSACIterations ()
Получить количество итераций RANSAC, установленное пользователем. Подробнее...
void
setRANSACOutlierRejectionThreshold (double inlier_threshold)
Установите порог расстояния для внутренних точек в цикле RANSAC по отклоняющимся точкам. Подробнее...
double
getRANSACOutlierRejectionThreshold ()
Получить порог расстояния для внутренних точек во внутреннем цикле удаления выбросов, заданный пользователем. Подробнее...
void
setMaxCorrespondenceDistance (double distance_threshold)
Установить максимальный порог расстояния между двумя соответствующими точками в источнике <-> целевом. Подробнее...
double
getMaxCorrespondenceDistance ()
Получить максимальный порог расстояния между двумя соответствующими точками в источнике <-> целевом. Подробнее...
void
setTransformationEpsilon (double epsilon)
Установите epsilon преобразования (максимальное допустимое квадратичное различие в смещении между двумя последовательными преобразованиями), чтобы оптимизация считалась сошедшей к окончательному решению. Подробнее...
double
getTransformationEpsilon ()
Получить epsilon преобразования (максимальное допустимое квадратичное различие в смещении между двумя последовательными преобразованиями), заданный пользователем. Подробнее...
void
setTransformationRotationEpsilon (double epsilon)
Установить epsilon вращения преобразования (максимальное допустимое различие в угле поворота между двумя последовательными преобразованиями), чтобы оптимизация считалась сошедшей к окончательному решению. Подробнее...
double
getTransformationRotationEpsilon ()
Получить epsilon вращения преобразования (максимальное допустимое различие между двумя последовательными преобразованиями), заданный пользователем (epsilon - cos(угол) в представлении с осью-углом). Подробнее...
void
setEuclideanFitnessEpsilon (double epsilon)
Установить максимальную допустимую евклидову ошибку между двумя последовательными шагами в цикле ICP, прежде чем алгоритм сочтут сошедшимся. Подробнее...
double
getEuclideanFitnessEpsilon ()
Получить максимальную допустимую ошибку расстояния, прежде чем алгоритм сочтут сошедшимся, заданную пользователем. Подробнее...
void
setPointRepresentation (const PointRepresentationConstPtr &point_representation)
Предоставьте boost shared pointer к PointRepresentation для использования при сравнении точек. Подробнее...
bool
registerVisualizationCallback (std::function< UpdateVisualizerCallbackSignature > &visualizerCallback)
Зарегистрировать пользовательскую функцию обратного вызова, которая будет вызываться из потока регистрации для обновления облака точек, полученного после каждой итерации. Подробнее...
double
getFitnessScore (double max_range=std::numeric_limits< double >::max())
Получить евклидовую оценку соответствия (например, среднее квадратичных расстояний от источника до целевого объекта) Подробнее...
double
getFitnessScore (const std::vector< float > &distances_a, const std::vector< float > &distances_b)
Matrix4
previous_transformation_
Предыдущая матрица преобразования, оцененная методом регистрации (используется внутри). Подробнее...
double
transformation_epsilon_
Максимальная разница между двумя последовательными преобразованиями для определения сходимости (определяется пользователем). Подробнее...
double
transformation_rotation_epsilon_
Максимальная разница вращения между двумя последовательными преобразованиями для определения сходимости (определяется пользователем). Подробнее...
double
euclidean_fitness_epsilon_
Максимальная разрешённая евклидова ошибка между двумя последовательными шагами в цикле ICP, прежде чем алгоритм считается сошедшимся. Подробнее...
double
corr_dist_threshold_
Максимальный порог расстояния между двумя соответствующими точками в источнике <-> целе. Подробнее...
double
inlier_threshold_
Порог расстояния для внутренних точек для внутреннего цикла подавления выбросов RANSAC. Подробнее...
bool
converged_
Содержит внутреннее состояние сходимости, заданное параметрами пользователя. Подробнее...
unsigned int
min_number_correspondences_
Минимальное количество соответствий, необходимое алгоритму перед попыткой оценить преобразование. Подробнее...
CorrespondencesPtr
correspondences_
Множество соответствий, определенных на этом шаге ICP. Подробнее...
TransformationEstimationPtr
transformation_estimation_
Объект TransformationEstimation, используемый для расчёта 4x4 ригидного преобразования. Подробнее...
CorrespondenceEstimationPtr
correspondence_estimation_
Объект CorrespondenceEstimation, используемый для оценки соответствий между облаками исходных и целевых точек. Подробнее...
std::vector< CorrespondenceRejectorPtr >
correspondence_rejectors_
Список корректоров соответствий для использования. Подробнее...
bool
target_cloud_updated_
Переменная, хранящая информацию о том, есть ли новое облако целевых точек, что означает, что его нужно обработать заново. Подробнее...
bool
source_cloud_updated_
Переменная, хранящая информацию о том, есть ли новое облако исходных точек, что означает, что его нужно обработать заново. Подробнее...
bool
force_no_recompute_
Флаг, который, если установлен, означает, что дерево, работающее с целевым облаком, никогда не будет пересчитано. Подробнее...
bool
force_no_recompute_reciprocal_
Флаг, который, если установлен, означает, что дерево, работающее с исходным облаком, никогда не будет пересчитано. Подробнее...
std::function< UpdateVisualizerCallbackSignature >
update_visualizer_
Функция обратного вызова для обновления промежуточного положения облака исходных точек во время его регистрации с целевым облаком точек. Подробнее...
PointCloudConstPtr
input_
Набор данных входного облака точек. Подробнее...
IndicesPtr
indices_
Указатель на вектор индексов точек для использования. Подробнее...
bool
use_indices_
Устанавливается в значение true, если используются индексы точек. Подробнее...
bool
fake_indices_
Если набор индексов не задан, мы создаём набор фиктивных индексов, имитирующих входное PointCloud. Подробнее...
шаблон<typename PointSource, typename PointTarget, typename Scalar = float> класс pcl::IterativeClosestPointNonLinear< PointSource, PointTarget, Scalar > IterativeClosestPointNonLinear — это разновидность ICP, использующая оптимизацию Levenberg-Marquardt.
Результирующее преобразование оптимизируется как кватернион.
У алгоритма есть несколько критериев завершения:
Количество итераций достигло максимального значения, заданного пользователем (через setMaximumIterations ) Разница (epsilon) между предыдущим преобразованием и текущим оценённым преобразованием меньше, чем значение, заданное пользователем (через setTransformationEpsilon ) Сумма квадратов ошибок Евклида меньше, чем заданный пользователем порог (через setEuclideanFitnessEpsilon )
Автор
Radu B. Rusu, Michael Dixon
Определено в строке 67 файла icp_nl.h .
ConstPtr шаблон<typename PointSource , typename PointTarget , typename Scalar = float>
Matrix4 шаблон<typename PointSource , typename PointTarget , typename Scalar = float>
Ptr шаблон<typename PointSource , typename PointTarget , typename Scalar = float>
IterativeClosestPointNonLinear() template<typename PointSource , typename PointTarget , typename Scalar = float>
Документация для данного класса была сгенерирована из следующего файла: