Spec-Zone.ru › PointCloudLibrary

IterativeClosestPointNonLinear является вариантом ICP, использующим оптимизацию Levenberg-Marquardt.Подробнее...

#include <pcl/registration/icp_nl.h>

Inheritance graph
[легенда]
Collaboration graph
[легенда]

Общедоступные типы

using Ptr = shared_ptr< IterativeClosestPointNonLinear< PointSource, PointTarget, Scalar > >
using ConstPtr = shared_ptr< const IterativeClosestPointNonLinear< PointSource, PointTarget, Scalar > >
using Matrix4 = typename Registration< PointSource, PointTarget, Scalar >::Matrix4
- Общедоступные типы, унаследованные от pcl::IterativeClosestPoint< PointSource, PointTarget, float >
using PointCloudSource = typename Registration< PointSource, PointTarget, float >::PointCloudSource
using PointCloudSourcePtr = typename PointCloudSource::Ptr
using PointCloudSourceConstPtr = typename PointCloudSource::ConstPtr
using KdTreeReciprocal = pcl::search::KdTree< PointSource >
using KdTreeReciprocalPtr = typename KdTreeReciprocal::Ptr
using PointCloudSource = pcl::PointCloud< PointSource >
using PointCloudSourcePtr = typename PointCloudSource::Ptr
using PointCloudSourceConstPtr = typename PointCloudSource::ConstPtr
using PointCloudTarget = pcl::PointCloud< PointTarget >
using PointCloudTargetPtr = typename PointCloudTarget::Ptr
using PointCloudTargetConstPtr = typename PointCloudTarget::ConstPtr
using PointRepresentationConstPtr = typename KdTree::PointRepresentationConstPtr
using TransformationEstimation = typename pcl::registration::TransformationEstimation< PointSource, PointTarget, float >
using TransformationEstimationPtr = typename TransformationEstimation::Ptr
using TransformationEstimationConstPtr = typename TransformationEstimation::ConstPtr
using CorrespondenceEstimation = pcl::registration::CorrespondenceEstimationBase< PointSource, PointTarget, float >
using CorrespondenceEstimationPtr = typename CorrespondenceEstimation::Ptr
using CorrespondenceEstimationConstPtr = typename CorrespondenceEstimation::ConstPtr
using UpdateVisualizerCallbackSignature = void(const pcl::PointCloud< PointSource > &, const pcl::Indices &, const pcl::PointCloud< PointTarget > &, const pcl::Indices &)
The callback signature to the function updating intermediate source point cloud position during it's registration to the target point cloud. More...
- Public Types inherited from pcl::PCLBase< PointSource >
using PointCloud = pcl::PointCloud< PointSource >
using PointCloudPtr = typename PointCloud::Ptr
using PointCloudConstPtr = typename PointCloud::ConstPtr
using PointIndicesPtr = PointIndices::Ptr
using PointIndicesConstPtr = PointIndices::ConstPtr

Публичные члены-функции

IterativeClosestPointNonLinear ()
Пустой конструктор. Подробнее...
- Публичные члены-функции, унаследованные от pcl::IterativeClosestPoint< PointSource, PointTarget, float >
IterativeClosestPoint ()
Пустой конструктор. Подробнее...
IterativeClosestPoint (const IterativeClosestPoint &)=delete
Из-за convergence_criteria_ хранения ссылок на члены класса, сложно правильно реализовать операции копирования и перемещения. Подробнее...
IterativeClosestPoint (IterativeClosestPoint &&)=delete
IterativeClosestPoint & operator= (const IterativeClosestPoint &)=delete
IterativeClosestPoint & operator= (IterativeClosestPoint &&)=delete
~IterativeClosestPoint () override=default
Пустой деструктор. Подробнее...
pcl::registration::DefaultConvergenceCriteria< float >::Ptr getConvergeCriteria ()
Возвращает указатель на DefaultConvergenceCriteria, используемый классом IterativeClosestPoint. Подробнее...
void setInputSource (const PointCloudSourceConstPtr &cloud) override
Предоставляет указатель на входной источник (например, облако точек, которое мы хотим выровнять с целевым облаком) Подробнее...
void setInputTarget (const PointCloudTargetConstPtr &cloud) override
Предоставляет указатель на входную цель (например, облако точек, к которому мы хотим выровнять входной источник) Подробнее...
void setUseReciprocalCorrespondences (bool use_reciprocal_correspondence)
Устанавливает, использовать ли взаимное соответствие. Подробнее...
bool getUseReciprocalCorrespondences () const
Получить, используется ли взаимное соответствие. Подробнее...
- Публичные члены-функции, унаследованные от pcl::Registration< PointSource, PointTarget, float >
Registration ()
Пустой конструктор. Подробнее...
~Registration () override=default
деструктор. Подробнее...
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)
Получить оценку эвклидовой пригодности (например, среднее значение квадратов расстояний от источника до целевого) из двух наборов расстояний соответствия (расстояния между источником и целевыми точками) Подробнее...
bool hasConverged () const
Возвращает состояние сходимости после последнего запуска выравнивания. Подробнее...
void align (PointCloudSource &output)
Вызвать алгоритм регистрации, который оценивает преобразование и возвращает преобразованный источник (вход) как output. Подробнее...
void align (PointCloudSource &output, const Matrix4 &guess)
Вызвать алгоритм регистрации, который оценивает преобразование и возвращает преобразованный источник (вход) как output. Подробнее...
const std::string & getClassName () const
Метод получения имени абстрактного класса. Подробнее...
bool initCompute ()
Инициализация внутренней вычислительной операции. Подробнее...
bool initComputeReciprocal ()
Внутренняя вычислительная операция, когда требуется обратный поиск. Подробнее...
void addCorrespondenceRejector (const CorrespondenceRejectorPtr &rejector)
Добавить новый отбрасыватель соответствий в список. Подробнее...
std::vector< CorrespondenceRejectorPtr > getCorrespondenceRejectors ()
Получить список отбрасывателей соответствий. Подробнее...
bool removeCorrespondenceRejector (unsigned int i)
Удалить i-й отбрасыватель соответствий в списке. Подробнее...
void clearCorrespondenceRejectors ()
Очистить список отбрасывателей соответствий. Подробнее...
- Публичные члены-функции, унаследованные от pcl::PCLBase< PointSource >
PCLBase ()
Пустой конструктор. Подробнее...
PCLBase (const PCLBase &base)
Конструктор копирования. Подробнее...
virtual ~PCLBase ()=default
Деструктор. Подробнее...
virtual void setInputCloud (const PointCloudConstPtr &cloud)
Предоставьте указатель на входной набор данных. Подробнее...
PointCloudConstPtr const getInputCloud () const
Получить указатель на набор данных входного облака точек. Подробнее...
virtual void setIndices (const IndicesPtr &indices)
Предоставить указатель на вектор индексов, представляющих входные данные. Подробнее...
virtual void setIndices (const IndicesConstPtr &indices)
Предоставить указатель на вектор индексов, представляющих входные данные. Подробнее...
virtual void setIndices (const PointIndicesConstPtr &indices)
Предоставить указатель на вектор индексов, представляющих входные данные. Подробнее...
virtual void setIndices (std::size_t row_start, std::size_t col_start, std::size_t nb_rows, std::size_t nb_cols)
Установить индексы для точек, находящихся в области интереса облака точек. Подробнее...
IndicesPtr getIndices ()
Получить указатель на вектор индексов. Подробнее...
IndicesConstPtr const getIndices () const
Получить указатель на вектор индексов. Подробнее...
const PointSource & operator[] (std::size_t pos) const
Переопределить PointCloud operator[] для сокращения кода. Подробнее...

Дополнительные унаследованные члены

- Публичные атрибуты, унаследованные от pcl::IterativeClosestPoint< PointSource, PointTarget, float >
pcl::registration::DefaultConvergenceCriteria< float >::Ptr convergence_criteria_
- Защищенные методы-члены, унаследованные от pcl::IterativeClosestPoint< PointSource, PointTarget, float >
virtual void transformCloud (const PointCloudSource &input, PointCloudSource &output, const Matrix4 &transform)
Применение жесткого преобразования к заданному набору данных. Подробнее...
void computeTransformation (PointCloudSource &output, const Matrix4 &guess) override
Метод вычисления жесткого преобразования с начальным предположением. Подробнее...
virtual void determineRequiredBlobData ()
Определяет, нужно ли вызывать методы blob-установщика для оценщиков и отбрасывателей. Подробнее...
std::size_t ny_idx_offset_
std::size_t nz_idx_offset_
bool use_reciprocal_correspondence_
Тип соответствия, используемого для оценки соответствия. Подробнее...
bool source_has_normals_
Внутренняя проверка наличия нормалей в наборе исходных данных. Подробнее...
bool target_has_normals_
Внутренняя проверка наличия нормалей в целевом наборе данных. Подробнее...
bool need_source_blob_
Проверка необходимости различных данных для оценщиков и отбрасывателей. Подробнее...
bool need_target_blob_
- Защищенные атрибуты, унаследованные от pcl::Registration< PointSource, PointTarget, float >
std::string reg_name_
Название метода регистрации. Подробнее...
KdTreePtr tree_
Указатель на объект пространственного поиска. Подробнее...
KdTreeReciprocalPtr tree_reciprocal_
Указатель на объект пространственного поиска для источника. Подробнее...
int nr_iterations_
Количество итераций, выполненных внутренней оптимизацией (используется внутри). Подробнее...
int max_iterations_
Максимальное количество итераций, которое должна выполнить внутренняя оптимизация. Подробнее...
int ransac_iterations_
Количество итераций, которое должен выполнить RANSAC. Подробнее...
PointCloudTargetConstPtr target_
Целевой набор входных точек. Подробнее...
Matrix4 final_transformation_
Матрица окончательного преобразования, оцененная методом регистрации после N итераций. Подробнее...
Matrix4 transformation_
Матрица преобразования, оцененная методом регистрации. Подробнее...
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_
Функция обратного вызова для обновления промежуточного положения облака исходных точек во время его регистрации с целевым облаком точек. Подробнее...
- Защищённые атрибуты, унаследованные от pcl::PCLBase< PointSource >
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.

Результирующее преобразование оптимизируется как кватернион.

У алгоритма есть несколько критериев завершения:

  1. Количество итераций достигло максимального значения, заданного пользователем (через setMaximumIterations)
  2. Разница (epsilon) между предыдущим преобразованием и текущим оценённым преобразованием меньше, чем значение, заданное пользователем (через setTransformationEpsilon)
  3. Сумма квадратов ошибок Евклида меньше, чем заданный пользователем порог (через setEuclideanFitnessEpsilon)
Автор
Radu B. Rusu, Michael Dixon

Определено в строке 67 файла icp_nl.h.

Документация по псевдонимам типов

ConstPtr

шаблон<typename PointSource , typename PointTarget , typename Scalar = float>
используется pcl::IterativeClosestPointNonLinear< PointSource, PointTarget, Scalar >::ConstPtr = shared_ptr< const IterativeClosestPointNonLinear<PointSource, PointTarget, Scalar> >

Определено в строке 79 файла icp_nl.h.

Matrix4

шаблон<typename PointSource , typename PointTarget , typename Scalar = float>
используется pcl::IterativeClosestPointNonLinear< PointSource, PointTarget, Scalar >::Matrix4 = typename Registration<PointSource, PointTarget, Scalar>::Matrix4

Определено в строке 82 файла icp_nl.h.

Ptr

шаблон<typename PointSource , typename PointTarget , typename Scalar = float>
используется pcl::IterativeClosestPointNonLinear< PointSource, PointTarget, Scalar >::Ptr = shared_ptr<IterativeClosestPointNonLinear<PointSource, PointTarget, Scalar> >

Определено в строке 77 файла icp_nl.h.

Документация по конструктору и деструктору

IterativeClosestPointNonLinear()

template<typename PointSource , typename PointTarget , typename Scalar = float>
pcl::IterativeClosestPointNonLinear< PointSource, PointTarget, Scalar >::IterativeClosestPointNonLinear ( )
inline

Пустой конструктор.

Определено в строке 85 файла icp_nl.h.

Обращения к pcl::Registration< PointSource, PointTarget, float >::min_number_correspondences_, pcl::Registration< PointSource, PointTarget, float >::reg_name_ и pcl::Registration< PointSource, PointTarget, float >::transformation_estimation_.


Документация для данного класса была сгенерирована из следующего файла:
  • pcl/registration/icp_nl.h

© 2009–2012, Willow Garage, Inc.
© 2012–, Open Perception, Inc.
Licensed under the BSD License.
https://pointclouds.org/documentation/classpcl_1_1_iterative_closest_point_non_linear.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API