NormalDistributionsTransform2D предоставляет реализацию алгоритма преобразования нормальных распределений для сопоставления сканов. Подробнее...
#include <pcl/registration/ndt_2d.h>
Общедоступные функции-члены | |
| NormalDistributionsTransform2D () | |
| Пустой конструктор. Подробнее... |
|
| ~NormalDistributionsTransform2D () override=default | |
| Пустой деструктор. Подробнее... |
|
| virtual void | setGridCentre (const Eigen::Vector2f ¢re) |
| центр сетки NDT (система координат целевого облака) Подробнее... |
|
| virtual void | setGridStep (const Eigen::Vector2f &step) |
|
Сетка расстояние между ячейками (шаг) сетки NDT. Подробнее... |
|
| virtual void | setGridExtent (const Eigen::Vector2f &extent) |
| Размер сетки NDT (в каждом направлении от центра сетки) Подробнее... |
|
| virtual void | setOptimizationStepSize (const double &lambda) |
| Параметр размера шага метода Ньютона при оптимизации NDT. Подробнее... |
|
| virtual void | setOptimizationStepSize (const Eigen::Vector3d &lambda) |
| Параметр размера шага метода Ньютона при оптимизации NDT. Подробнее... |
|
|
| |
| Registration () | |
| Пустой конструктор. Подробнее... |
|
| ~Registration () override=default | |
| деструктор. Подробнее... |
|
| void | setTransformationEstimation (const TransformationEstimationPtr &te) |
| Передать указатель на объект оценки преобразования. Подробнее... |
|
| void | setCorrespondenceEstimation (const CorrespondenceEstimationPtr &ce) |
| Передать указатель на объект оценки соответствий. Подробнее... |
|
| virtual void | setInputSource (const PointCloudSourceConstPtr &cloud) |
| Передать указатель на входной источник (например, облако точек, которое требуется совместить с целевым облаком). Подробнее... |
|
| PointCloudSourceConstPtr const | getInputSource () |
| Получить указатель на набор данных входного облака точек — целевого облака. Подробнее... |
|
| virtual void | setInputTarget (const PointCloudTargetConstPtr &cloud) |
| Передать указатель на входное целевое облако (например, облако точек, с которым требуется совместить входной источник). Подробнее... |
|
| 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) |
| Задать эпсилон преобразования (максимально допустимую разность квадратов перемещений между двумя последовательными преобразованиями), при которой оптимизация считается сошедшейся к итоговому решению. Подробнее... |
|
| double | getTransformationEpsilon () |
| Получить заданное пользователем значение эпсилона преобразования (максимально допустимую разность квадратов перемещений между двумя последовательными преобразованиями). Подробнее... |
|
| void | setTransformationRotationEpsilon (double epsilon) |
| Задать эпсилон вращения преобразования (максимально допустимую разность углов поворота между двумя последовательными преобразованиями), при которой оптимизация считается сошедшейся к итоговому решению. Подробнее... |
|
| double | getTransformationRotationEpsilon () |
| Получить заданное пользователем значение эпсилона вращения преобразования (максимально допустимую разность между двумя последовательными преобразованиями; эпсилон — это cos(угла) в представлении «ось — угол»). Подробнее... |
|
| void | setEuclideanFitnessEpsilon (double epsilon) |
| Задать максимально допустимую евклидову ошибку между двумя последовательными шагами цикла ICP, при достижении которой алгоритм считается сошедшимся. Подробнее... |
|
| double | getEuclideanFitnessEpsilon () |
| Получить заданное пользователем максимально допустимое расстояние ошибки, при достижении которого алгоритм считается сошедшимся. Подробнее... |
|
| void | setPointRepresentation (const PointRepresentationConstPtr &point_representation) |
| Передать указатель boost shared на объект 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 () |
| Очистить список фильтров соответствий. Подробнее... |
|
|
| |
| 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 |
| Переопределить operator[] класса PointCloud для сокращения кода. Подробнее... |
|
Защищённые функции-члены | |
| void | computeTransformation (PointCloudSource &output, const Eigen::Matrix4f &guess) override |
| Метод вычисления жёсткого преобразования с начальным приближением. Подробнее... |
|
|
| |
| bool | searchForNeighbors (const PointCloudSource &cloud, int index, pcl::Indices &indices, std::vector< float > &distances) |
| Найти ближайшего соседа для заданной точки. Подробнее... |
|
| virtual void | computeTransformation (PointCloudSource &output, const Matrix4 &guess)=0 |
| Абстрактный метод вычисления преобразования с начальным приближением. Подробнее... |
|
|
| |
| bool | initCompute () |
| Этот метод следует вызвать перед началом фактических вычислений. Подробнее... |
|
| bool | deinitCompute () |
| Этот метод следует вызвать после завершения фактических вычислений. Подробнее... |
|
Защищённые атрибуты | |
| Eigen::Vector2f | grid_centre_ |
| Eigen::Vector2f | grid_step_ |
| Eigen::Vector2f | grid_extent_ |
| Eigen::Vector3d | newton_lambda_ |
|
| |
| std::string | reg_name_ |
| Название метода регистрации. Подробнее... |
|
| KdTreePtr | tree_ |
| Указатель на объект пространственного поиска. Подробнее... |
|
| KdTreeReciprocalPtr | tree_reciprocal_ |
| Указатель на объект пространственного поиска для исходных данных. Подробнее... |
|
| int | nr_iterations_ {0} |
| Количество итераций, выполненных внутренней оптимизацией (используется внутри класса). Подробнее... |
|
| int | max_iterations_ {10} |
| Максимальное количество итераций внутренней оптимизации. Подробнее... |
|
| int | ransac_iterations_ {0} |
| Количество итераций алгоритма RANSAC. Подробнее... |
|
| PointCloudTargetConstPtr | target_ |
| Входной набор данных облака точек-цели. Подробнее... |
|
| Matrix4 | final_transformation_ |
| Итоговая матрица преобразования, вычисленная методом регистрации после N итераций. Подробнее... |
|
| Matrix4 | transformation_ |
| Матрица преобразования, вычисленная методом регистрации. Подробнее... |
|
| Matrix4 | previous_transformation_ |
| Предыдущая матрица преобразования, вычисленная методом регистрации (используется внутри класса). Подробнее... |
|
| double | transformation_epsilon_ {0.0} |
| Максимальная разница между двумя последовательными преобразованиями, при которой считается, что алгоритм сошёлся (задаётся пользователем). Подробнее... |
|
| double | transformation_rotation_epsilon_ {0.0} |
| Максимальная разница углов поворота между двумя последовательными преобразованиями, при которой считается, что алгоритм сошёлся (задаётся пользователем). Подробнее... |
|
| double | euclidean_fitness_epsilon_ |
| Максимально допустимая евклидова ошибка между двумя последовательными шагами цикла ICP, при достижении которой алгоритм считается сошедшимся. Подробнее... |
|
| double | corr_dist_threshold_ |
| Максимальный порог расстояния между двумя соответствующими точками исходного облака и облака-цели. Подробнее... |
|
| double | inlier_threshold_ {0.05} |
| Порог расстояния для внутренних точек во внутреннем цикле RANSAC по отбрасыванию выбросов. Подробнее... |
|
| bool | converged_ {false} |
| Хранит внутреннее состояние сходимости с учётом параметров, заданных пользователем. Подробнее... |
|
| unsigned int | min_number_correspondences_ {3} |
| Минимальное количество соответствий, необходимое алгоритму для оценки преобразования. Подробнее... |
|
| CorrespondencesPtr | correspondences_ |
| Набор соответствий, определённых на этом шаге ICP. Подробнее... |
|
| TransformationEstimationPtr | transformation_estimation_ |
| Объект TransformationEstimation, используемый для вычисления жёсткого преобразования 4x4. Подробнее... |
|
| CorrespondenceEstimationPtr | correspondence_estimation_ |
| Объект CorrespondenceEstimation, используемый для определения соответствий между исходным и целевым облаками. Подробнее... |
|
| std::vector< CorrespondenceRejectorPtr > | correspondence_rejectors_ |
| Список используемых средств отбрасывания соответствий. Подробнее... |
|
| bool | target_cloud_updated_ {true} |
| Переменная, указывающая, появилось ли новое целевое облако и нужно ли повторно выполнить его предварительную обработку. Подробнее... |
|
| bool | source_cloud_updated_ {true} |
| Переменная, указывающая, появилось ли новое исходное облако и нужно ли повторно выполнить его предварительную обработку. Подробнее... |
|
| bool | force_no_recompute_ {false} |
| Флаг, который при включении запрещает повторное вычисление дерева для целевого облака. Подробнее... |
|
| bool | force_no_recompute_reciprocal_ {false} |
| Флаг, который при включении запрещает повторное вычисление дерева для исходного облака. Подробнее... |
|
| std::function< UpdateVisualizerCallbackSignature > | update_visualizer_ |
| Функция обратного вызова для обновления положения исходного облака точек на промежуточных этапах его регистрации относительно целевого облака точек. Подробнее... |
|
|
| |
| PointCloudConstPtr | input_ |
| Входной набор данных облака точек. Подробнее... |
|
| IndicesPtr | indices_ |
| Указатель на вектор используемых индексов точек. Подробнее... |
|
| bool | use_indices_ |
| Установите значение true, если используются индексы точек. Подробнее... |
|
| bool | fake_indices_ |
| Если набор индексов не задан, создаётся набор фиктивных индексов, соответствующий входному облаку точек. Подробнее... |
|
Подробное описание
template<typename PointSource, typename PointTarget>
class pcl::NormalDistributionsTransform2D< PointSource, PointTarget >
NormalDistributionsTransform2D реализует алгоритм преобразования нормальных распределений для сопоставления сканов.
Данная реализация предназначена для соответствия определению: Peter Biber и Wolfgang Straßer. The normal distributions transform: A new approach to laser scan matching. В материалах Международной конференции IEEE по интеллектуальным роботам и системам (IROS), стр. 2743–2748, Лас-Вегас, США, октябрь 2003 г.
Документация псевдонимов типов-членов
ConstPtr
| using pcl::NormalDistributionsTransform2D< PointSource, PointTarget >::ConstPtr = shared_ptr<const NormalDistributionsTransform2D<PointSource, PointTarget> > |
Ptr
| using pcl::NormalDistributionsTransform2D< PointSource, PointTarget >::Ptr = shared_ptr<NormalDistributionsTransform2D<PointSource, PointTarget> > |
Документация конструктора и деструктора
NormalDistributionsTransform2D()
| inline |
Пустой конструктор.
Определение в строке 78 файла ndt_2d.h.
Ссылки на pcl::Registration< PointSource, PointTarget, Scalar >::reg_name_.
~NormalDistributionsTransform2D()
| overridedefault |
Пустой деструктор.
Описание функций-членов
computeTransformation()
| overrideprotected |
Метод вычисления жёсткого преобразования с начальным приближением.
- Параметры
-
[out] output преобразованный набор входного облака точек с использованием найденного жёсткого преобразования [in] guess начальное приближение преобразования, которое требуется вычислить
Определение в строке 392 файла ndt_2d.hpp.
Ссылки на pcl::ndt2d::ValueAndDerivatives< N, T >::grad, pcl::ndt2d::ValueAndDerivatives< N, T >::hessian, pcl::ndt2d::NDT2D< PointT >::test(), pcl::transformPointCloud(), pcl::ndt2d::ValueAndDerivatives< N, T >::value и pcl::ndt2d::ValueAndDerivatives< N, T >::Zero().
setGridCentre()
| inlinevirtual |
центр сетки NDT (система координат целевого облака)
- Параметры
-
centre устанавливаемое значение
Определение в строке 95 файла ndt_2d.h.
Ссылки на pcl::NormalDistributionsTransform2D< PointSource, PointTarget >::grid_centre_.
setGridExtent()
| inlinevirtual |
Размер сетки NDT (в каждом направлении от центра сетки)
- Параметры
-
[in] extent устанавливаемое значение
Определение в строке 113 файла ndt_2d.h.
Ссылки на pcl::NormalDistributionsTransform2D< PointSource, PointTarget >::grid_extent_.
setGridStep()
| inlinevirtual |
Шаг сетки NDT.
- Параметры
-
[in] step устанавливаемое значение
Определение в строке 104 файла ndt_2d.h.
Ссылки на pcl::NormalDistributionsTransform2D< PointSource, PointTarget >::grid_step_.
setOptimizationStepSize() [1/2]
| inlinevirtual |
Параметр размера шага метода Ньютона для оптимизации NDT.
- Параметры
-
[in] lambda размер шага: значение 1 соответствует обычной оптимизации методом Ньютона, меньшие значения могут улучшить сходимость
Определение в строке 123 файла ndt_2d.h.
Ссылки на pcl::NormalDistributionsTransform2D< PointSource, PointTarget >::newton_lambda_.
setOptimizationStepSize() [2/2]
| inlinevirtual |
Параметр размера шага метода Ньютона для оптимизации NDT.
- Параметры
-
[in] lambda размер шага: значение (1,1,1) соответствует обычной оптимизации методом Ньютона, меньшие значения могут улучшить сходимость; также можно задать нулевые значения для отключения оптимизации некоторых параметров
Эта перегруженная версия позволяет управлять обновлением отдельных свободных параметров (x, y, theta) в процессе оптимизации. Например, если предполагается, что theta близко к правильному значению, следует использовать малое значение lambda[2].
Определение в строке 139 файла ndt_2d.h.
Ссылки на pcl::NormalDistributionsTransform2D< PointSource, PointTarget >::newton_lambda_.
Описание данных-членов
grid_centre_
| protected |
Определение в строке 167 файла ndt_2d.h.
Используется в pcl::NormalDistributionsTransform2D< PointSource, PointTarget >::setGridCentre().
grid_extent_
| protected |
Определение в строке 169 файла ndt_2d.h.
Используется в pcl::NormalDistributionsTransform2D< PointSource, PointTarget >::setGridExtent().
grid_step_
| protected |
Определение в строке 168 файла ndt_2d.h.
Используется в pcl::NormalDistributionsTransform2D< PointSource, PointTarget >::setGridStep().
newton_lambda_
| protected |
Определение в строке 170 файла ndt_2d.h.
Используется в pcl::NormalDistributionsTransform2D< PointSource, PointTarget >::setOptimizationStepSize().
Документация этого класса создана по следующим файлам:
- pcl/registration/ndt_2d.h
- pcl/registration/impl/ndt_2d.hpp
© 2009–2012, Willow Garage, Inc.
© 2012–, Open Perception, Inc.
Licensed under the BSD License.
https://pointclouds.org/documentation/classpcl_1_1_normal_distributions_transform2_d.html