Spec-Zone.ru › PointCloudLibrary

GeneralizedIterativeClosestPoint — вариант ICP, реализующий алгоритм обобщённого итеративного поиска ближайших точек, описанный Алексом Сегалом и др. Подробнее...

#include <pcl/registration/gicp.h>

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

Классы

struct OptimizationFunctorWithIndices
Структура функтора оптимизации Подробнее...

Публичные типы

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 PointIndicesPtr = PointIndices::Ptr
using PointIndicesConstPtr = PointIndices::ConstPtr
using MatricesVector = std::vector< Eigen::Matrix3d, Eigen::aligned_allocator< Eigen::Matrix3d > >
using MatricesVectorPtr = shared_ptr< MatricesVector >
using MatricesVectorConstPtr = shared_ptr< const MatricesVector >
using InputKdTree = typename Registration< PointSource, PointTarget, Scalar >::KdTree
using InputKdTreePtr = typename Registration< PointSource, PointTarget, Scalar >::KdTreePtr
using Ptr = shared_ptr< GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar > >
using ConstPtr = shared_ptr< const GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar > >
using Vector3 = typename Eigen::Matrix< Scalar, 3, 1 >
using Vector4 = typename Eigen::Matrix< Scalar, 4, 1 >
using Vector6d = Eigen::Matrix< double, 6, 1 >
using Matrix3 = typename Eigen::Matrix< Scalar, 3, 3 >
using Matrix4 = typename IterativeClosestPoint< PointSource, PointTarget, Scalar >::Matrix4
using Matrix6d = Eigen::Matrix< double, 6, 6 >
using AngleAxis = typename Eigen::AngleAxis< Scalar >
- Публичные типы, унаследованные от pcl::IterativeClosestPoint< PointSource, PointTarget, float >
using PointCloudSource = typename Registration< PointSource, PointTarget, float >::PointCloudSource
using PointCloudSourcePtr = typename PointCloudSource::Ptr
using PointCloudSourceConstPtr = typename PointCloudSource::ConstPtr
using PointCloudTarget = typename Registration< PointSource, PointTarget, float >::PointCloudTarget
using PointCloudTargetPtr = typename PointCloudTarget::Ptr
using PointCloudTargetConstPtr = typename PointCloudTarget::ConstPtr
using PointIndicesPtr = PointIndices::Ptr
using PointIndicesConstPtr = PointIndices::ConstPtr
using Ptr = shared_ptr< IterativeClosestPoint< PointSource, PointTarget, float > >
using ConstPtr = shared_ptr< const IterativeClosestPoint< PointSource, PointTarget, float > >
using Matrix4 = typename Registration< PointSource, PointTarget, float >::Matrix4
- Публичные типы, унаследованные от pcl::Registration< PointSource, PointTarget, float >
using Matrix4 = Eigen::Matrix< float, 4, 4 >
using Ptr = shared_ptr< Registration< PointSource, PointTarget, float > >
using ConstPtr = shared_ptr< const Registration< PointSource, PointTarget, float > >
using CorrespondenceRejectorPtr = pcl::registration::CorrespondenceRejector::Ptr
using KdTree = pcl::search::KdTree< PointTarget >
using KdTreePtr = typename KdTree::Ptr
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 &)
Сигнатура обратного вызова функции, обновляющей промежуточное положение исходного облака точек во время его совмещения с целевым облаком точек. Подробнее...
- Публичные типы, унаследованные от 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
tr>

Общедоступные функции-члены

PCL_MAKE_ALIGNED_OPERATOR_NEW GeneralizedIterativeClosestPoint ()
Пустой конструктор. Подробнее...
void setInputSource (const PointCloudSourceConstPtr &cloud) override
Предоставляет указатель на входной набор данных. Подробнее...
void setSourceCovariances (const MatricesVectorPtr &covariances)
Предоставляет указатель на ковариации входного источника (если они вычислены внешним способом!). Подробнее...
void setInputTarget (const PointCloudTargetConstPtr &target) override
Предоставляет указатель на входную цель (например, облако точек, с которым нужно совместить входной источник). Подробнее...
void setTargetCovariances (const MatricesVectorPtr &covariances)
Предоставляет указатель на ковариации входной цели (если они вычислены внешним способом!). Подробнее...
void estimateRigidTransformationBFGS (const PointCloudSource &cloud_src, const pcl::Indices &indices_src, const PointCloudTarget &cloud_tgt, const pcl::Indices &indices_tgt, Matrix4 &transformation_matrix)
Оценивает жесткое вращательное преобразование между исходным и целевым облаками точек с помощью итеративного нелинейного метода BFGS. Подробнее...
void estimateRigidTransformationNewton (const PointCloudSource &cloud_src, const pcl::Indices &indices_src, const PointCloudTarget &cloud_tgt, const pcl::Indices &indices_tgt, Matrix4 &transformation_matrix)
Оценивает жесткое вращательное преобразование между исходным и целевым облаками точек с помощью итеративного нелинейного метода Ньютона. Подробнее...
const Eigen::Matrix3d & mahalanobis (std::size_t index) const
void computeRDerivative (const Vector6d &x, const Eigen::Matrix3d &dCost_dR_T, Vector6d &g) const
Вычисляет производную целевой функции по углам вращения. Подробнее...
void setRotationEpsilon (double epsilon)
Задает допуск вращения (максимально допустимую разницу между двумя последовательными вращениями), при котором оптимизация считается сошедшейся к окончательному решению. Подробнее...
double getRotationEpsilon () const
Возвращает заданный пользователем допуск вращения (максимально допустимую разницу между двумя последовательными вращениями). Подробнее...
void setCorrespondenceRandomness (int k)
Задает количество соседей, используемых при выборе окрестности точки для вычисления ковариаций. Подробнее...
int getCorrespondenceRandomness () const
Возвращает заданное пользователем количество соседей, используемых при вычислении ковариаций. Подробнее...
void useBFGS ()
Использует оптимизатор BFGS вместо оптимизатора Ньютона, используемого по умолчанию. Подробнее...
void setMaximumOptimizerIterations (int max)
Задает максимальное количество итераций на этапе оптимизации. Подробнее...
int getMaximumOptimizerIterations () const
Возвращает максимальное количество итераций на этапе оптимизации. Подробнее...
void setTranslationGradientTolerance (double tolerance)
Задает минимальный порог градиента переноса для досрочного прекращения оптимизации. Подробнее...
double getTranslationGradientTolerance () const
Возвращает минимальный порог градиента переноса для досрочного прекращения оптимизации. Подробнее...
void setRotationGradientTolerance (double tolerance)
Задает минимальный порог градиента вращения для досрочного прекращения оптимизации. Подробнее...
double getRotationGradientTolerance () const
Возвращает минимальный порог градиента вращения для досрочного прекращения оптимизации. Подробнее...
void setNumberOfThreads (unsigned int nr_threads=0)
Инициализирует планировщик и задает количество используемых потоков. Подробнее...
- Общедоступные функции-члены, унаследованные от 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
Возвращает информацию о том, используются ли взаимные соответствия. Подробнее...
void setNumberOfThreads (unsigned int nr_threads)
Задает количество используемых потоков. Подробнее...
- Общедоступные функции-члены, унаследованные от 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)
Задать эпсилон преобразования (максимально допустимую разность квадратов перемещений между двумя последовательными преобразованиями), при которой оптимизация считается сошедшейся к окончательному решению. Подробнее...
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 ()
Очистить список фильтров соответствий. Подробнее...
- Открытые функции-члены, унаследованные от 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
Переопределяет operator[] класса PointCloud для сокращения кода. Подробнее...
tr>

Защищённые функции-члены

template<typename PointT >
void computeCovariances (typename pcl::PointCloud< PointT >::ConstPtr cloud, const typename pcl::search::KdTree< PointT >::Ptr tree, MatricesVector &cloud_covariances)
вычисляет матрицы ковариации точек на основе K ближайших соседей. Подробнее...
double matricesInnerProd (const Eigen::MatrixXd &mat1, const Eigen::MatrixXd &mat2) const
void computeTransformation (PointCloudSource &output, const Matrix4 &guess) override
Метод вычисления жёсткого преобразования с начальным приближением. Подробнее...
bool searchForNeighbors (const PointSource &query, pcl::Indices &index, std::vector< float > &distance)
Выполняет поиск ближайшего соседа для заданной точки. Подробнее...
void applyState (Matrix4 &t, const Vector6d &x) const
вычисляет матрицу преобразования на основе матрицы преобразования Подробнее...
- Защищённые функции-члены, унаследованные от 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-данных. Подробнее...
- Защищённые функции-члены, унаследованные от pcl::Registration< PointSource, PointTarget, float >
bool searchForNeighbors (const PointCloudSource &cloud, int index, pcl::Indices &indices, std::vector< float > &distances)
Выполняет поиск ближайшего соседа для заданной точки. Подробнее...
virtual void computeTransformation (PointCloudSource &output, const Matrix4 &guess)=0
Абстрактный метод вычисления преобразования с начальным приближением. Подробнее...
- Защищённые функции-члены, унаследованные от pcl::PCLBase< PointSource >
bool initCompute ()
Этот метод следует вызывать перед началом фактических вычислений. Подробнее...
bool deinitCompute ()
Этот метод следует вызывать после завершения фактических вычислений. Подробнее...

Защищённые атрибуты

int k_correspondences_ {20}
Количество соседей, используемых для вычисления ковариаций. Подробнее...
double gicp_epsilon_ {0.001}
Константа эпсилон для статьи о GICP; это НЕ допуск сходимости. Значение по умолчанию: 0.001. Подробнее...
double rotation_epsilon_ {2e-3}
Константа эпсилон для ошибки вращения. Подробнее...
Matrix4 base_transformation_
Базовое преобразование Подробнее...
const PointCloudSource * tmp_src_
Временный указатель на исходный набор данных. Подробнее...
const PointCloudTarget * tmp_tgt_
Временный указатель на целевой набор данных. Подробнее...
const pcl::Indices * tmp_idx_src_
Временный указатель на индексы исходного набора данных. Подробнее...
const pcl::Indices * tmp_idx_tgt_
Временный указатель на индексы целевого набора данных. Подробнее...
MatricesVectorPtr input_covariances_
Ковариации точек входного облака. Подробнее...
MatricesVectorPtr target_covariances_
Ковариации точек целевого облака. Подробнее...
std::vector< Eigen::Matrix3d > mahalanobis_
Хранилище матриц Махаланобиса. Подробнее...
int max_inner_iterations_ {20}
Максимальное количество оптимизаций Подробнее...
double translation_gradient_tolerance_ {1e-2}
Минимальный градиент перемещения для досрочной остановки оптимизации Подробнее...
double rotation_gradient_tolerance_ {1e-2}
Минимальный градиент вращения для досрочной остановки оптимизации Подробнее...
std::function< void(const pcl::PointCloud< PointSource > &cloud_src, const pcl::Indices &src_indices, const pcl::PointCloud< PointTarget > &cloud_tgt, const pcl::Indices &tgt_indices, Matrix4 &transformation_matrix)> rigid_transformation_estimation_
- Защищённые атрибуты, унаследованные от pcl::IterativeClosestPoint< PointSource, PointTarget, float >
std::size_t x_idx_offset_
Смещение поля XYZ. Подробнее...
std::size_t y_idx_offset_
std::size_t z_idx_offset_
std::size_t nx_idx_offset_
Смещение полей нормалей. Подробнее...
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_
Если набор индексов не задан, создаётся набор фиктивных индексов, соответствующий входному облаку точек. Подробнее...

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

- Открытые атрибуты, унаследованные от pcl::IterativeClosestPoint< PointSource, PointTarget, float >
pcl::registration::DefaultConvergenceCriteria< float >::Ptr convergence_criteria_

Подробное описание

template<typename PointSource, typename PointTarget, typename Scalar = float>
class pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >

GeneralizedIterativeClosestPoint — это вариант ICP, реализующий алгоритм generalized iterative closest point, описанный Alex Segal и соавторами.

в http://www.robots.ox.ac.uk/~avsegal/resources/papers/Generalized_ICP.pdf Подход основан на использовании анизотропных целевых функций для оптимизации совмещения после определения соответствий ближайших точек. В оригинальном коде используются GSL и ANN, а в нашей реализации — FLANN и метод Ньютона для оптимизации (вызов useBFGS переключает оптимизатор на BFGS, однако метод Ньютона обычно быстрее и точнее). Пример базового использования:

pcl::GeneralizedIterativeClosestPoint<pcl::PointXYZ, pcl::PointXYZ> reg;
reg.setInputSource(src);
reg.setInputTarget(tgt);
// use default parameters or set them yourself, for example:
// reg.setMaximumIterations(...);
// reg.setTransformationEpsilon(...);
// reg.setRotationEpsilon(...);
// reg.setCorrespondenceRandomness(...);
pcl::PointCloud<pcl::PointXYZ>::Ptr output(new pcl::PointCloud<pcl::PointXYZ>);
// supply a better guess, if possible:
Eigen::Matrix4f guess = Eigen::Matrix4f::Identity();
reg.align(*output, guess);
std::cout << reg.getFinalTransformation() << std::endl;
pcl::GeneralizedIterativeClosestPointGeneralizedIterativeClosestPoint is an ICP variant that implements the generalized iterative closest ...Definition: gicp.h:76
pcl::GeneralizedIterativeClosestPoint
GeneralizedIterativeClosestPoint is an ICP variant that implements the generalized iterative closest ...
Definition: gicp.h:76
pcl::GeneralizedIterativeClosestPoint::setInputSourcevoid setInputSource(const PointCloudSourceConstPtr &cloud) overrideProvide a pointer to the input dataset.Definition: gicp.h:159
pcl::GeneralizedIterativeClosestPoint::setInputSource
void setInputSource(const PointCloudSourceConstPtr &cloud) override
Provide a pointer to the input dataset.
Definition: gicp.h:159
pcl::GeneralizedIterativeClosestPoint::setInputTargetvoid setInputTarget(const PointCloudTargetConstPtr &target) overrideProvide a pointer to the input target (e.g., the point cloud that we want to align the input source t...Definition: gicp.h:193
pcl::GeneralizedIterativeClosestPoint::setInputTarget
void setInputTarget(const PointCloudTargetConstPtr &target) override
Provide a pointer to the input target (e.g., the point cloud that we want to align the input source t...
Definition: gicp.h:193
pcl::PointCloud< pcl::PointXYZ >
pcl::PointCloud< pcl::PointXYZ >
pcl::PointCloud::Ptrshared_ptr< PointCloud< PointT > > PtrDefinition: point_cloud.h:413
pcl::PointCloud::Ptr
shared_ptr< PointCloud< PointT > > Ptr
Definition: point_cloud.h:413
pcl::Registration::getFinalTransformationMatrix4 getFinalTransformation()Get the final transformation matrix estimated by the registration method.Definition: registration.h:259
pcl::Registration::getFinalTransformation
Matrix4 getFinalTransformation()
Get the final transformation matrix estimated by the registration method.
Definition: registration.h:259
pcl::Registration::alignvoid align(PointCloudSource &output)Call the registration algorithm which estimates the transformation and returns the transformed source...Definition: registration.hpp:168
pcl::Registration::align
void align(PointCloudSource &output)
Call the registration algorithm which estimates the transformation and returns the transformed source...
Definition: registration.hpp:168
Автор
Nizar Sallem

Определение в строке 75 файла gicp.h.

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

AngleAxis

template<typename PointSource , typename PointTarget , typename Scalar = float>
using pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::AngleAxis = typename Eigen::AngleAxis<Scalar>

Определение в строке 132 файла gicp.h.

ConstPtr

template<typename PointSource , typename PointTarget , typename Scalar = float>
using pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::ConstPtr = shared_ptr< const GeneralizedIterativeClosestPoint<PointSource, PointTarget, Scalar> >

Определение в строке 122 файла gicp.h.

InputKdTree

template<typename PointSource , typename PointTarget , typename Scalar = float>
using pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::InputKdTree = typename Registration<PointSource, PointTarget, Scalar>::KdTree

Определение в строке 116 файла gicp.h.

InputKdTreePtr

template<typename PointSource , typename PointTarget , typename Scalar = float>
using pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::InputKdTreePtr = typename Registration<PointSource, PointTarget, Scalar>::KdTreePtr

Определение в строке 117 файла gicp.h.

MatricesVector

template<typename PointSource , typename PointTarget , typename Scalar = float>
using pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::MatricesVector = std::vector<Eigen::Matrix3d, Eigen::aligned_allocator<Eigen::Matrix3d> >

Определение в строке 111 файла gicp.h.

MatricesVectorConstPtr

template<typename PointSource , typename PointTarget , typename Scalar = float>
using pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::MatricesVectorConstPtr = shared_ptr<const MatricesVector>

Определение в строке 114 файла gicp.h.

MatricesVectorPtr

template<typename PointSource , typename PointTarget , typename Scalar = float>
using pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::MatricesVectorPtr = shared_ptr<MatricesVector>

Определение в строке 113 файла gicp.h.

Matrix3

template<typename PointSource , typename PointTarget , typename Scalar = float>
using pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::Matrix3 = typename Eigen::Matrix<Scalar, 3, 3>

Определение в строке 128 файла gicp.h.

Matrix4

template<typename PointSource , typename PointTarget , typename Scalar = float>
using pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::Matrix4 = typename IterativeClosestPoint<PointSource, PointTarget, Scalar>::Matrix4

Определение в строке 129 файла gicp.h.

Matrix6d

template<typename PointSource , typename PointTarget , typename Scalar = float>
using pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::Matrix6d = Eigen::Matrix<double, 6, 6>

Определение в строке 131 файла gicp.h.

PointCloudSource

template<typename PointSource , typename PointTarget , typename Scalar = float>
using pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::PointCloudSource = pcl::PointCloud<PointSource>

Определение в строке 100 файла gicp.h.

PointCloudSourceConstPtr

template<typename PointSource , typename PointTarget , typename Scalar = float>
using pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::PointCloudSourceConstPtr = typename PointCloudSource::ConstPtr

Определение в строке 102 файла gicp.h.

PointCloudSourcePtr

template<typename PointSource , typename PointTarget , typename Scalar = float>
using pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::PointCloudSourcePtr = typename PointCloudSource::Ptr

Определение в строке 101 файла gicp.h.

PointCloudTarget

template<typename PointSource , typename PointTarget , typename Scalar = float>
using pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::PointCloudTarget = pcl::PointCloud<PointTarget>

Определение в строке 104 файла gicp.h.

PointCloudTargetConstPtr

template<typename PointSource , typename PointTarget , typename Scalar = float>
using pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::PointCloudTargetConstPtr = typename PointCloudTarget::ConstPtr

Определение в строке 106 файла gicp.h.

PointCloudTargetPtr

template<typename PointSource , typename PointTarget , typename Scalar = float>
using pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::PointCloudTargetPtr = typename PointCloudTarget::Ptr

Определение в строке 105 файла gicp.h.

PointIndicesConstPtr

template<typename PointSource , typename PointTarget , typename Scalar = float>
using pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::PointIndicesConstPtr = PointIndices::ConstPtr

Определение в строке 109 файла gicp.h.

PointIndicesPtr

template<typename PointSource , typename PointTarget , typename Scalar = float>
using pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::PointIndicesPtr = PointIndices::Ptr

Определение в строке 108 файла gicp.h.

Ptr

template<typename PointSource , typename PointTarget , typename Scalar = float>
using pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::Ptr = shared_ptr<GeneralizedIterativeClosestPoint<PointSource, PointTarget, Scalar> >

Определение в строке 120 файла gicp.h.

Vector3

template<typename PointSource , typename PointTarget , typename Scalar = float>
using pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::Vector3 = typename Eigen::Matrix<Scalar, 3, 1>

Определение в строке 125 файла gicp.h.

Vector4

template<typename PointSource , typename PointTarget , typename Scalar = float>
using pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::Vector4 = typename Eigen::Matrix<Scalar, 4, 1>

Определение в строке 126 файла gicp.h.

Vector6d

template<typename PointSource , typename PointTarget , typename Scalar = float>
using pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::Vector6d = Eigen::Matrix<double, 6, 1>

Определение в строке 127 файла gicp.h.

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

GeneralizedIterativeClosestPoint()

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

Конструктор без параметров.

Определение в строке 137 файла gicp.h.

Ссылки: pcl::Registration< PointSource, PointTarget, float >::corr_dist_threshold_, pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::estimateRigidTransformationNewton(), pcl::Registration< PointSource, PointTarget, float >::max_iterations_, pcl::Registration< PointSource, PointTarget, float >::min_number_correspondences_, pcl::Registration< PointSource, PointTarget, float >::reg_name_, pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::rigid_transformation_estimation_, pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::setNumberOfThreads() и pcl::Registration< PointSource, PointTarget, float >::transformation_epsilon_.

Документация функций-членов

applyState()

template<typename PointSource , typename PointTarget , typename Scalar >
void pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::applyState ( Matrix4 & t,
const Vector6d & x
) const
protected

вычисляет матрицу преобразования из матрицы преобразования

Определение в строке 918 файла gicp.hpp.

computeCovariances()

template<typename PointSource , typename PointTarget , typename Scalar >
template<typename PointT >
void pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::computeCovariances ( typename pcl::PointCloud< PointT >::ConstPtr cloud,
const typename pcl::search::KdTree< PointT >::Ptr tree,
MatricesVector & cloud_covariances
)
protected

вычисляет ковариационные матрицы точек на основе K ближайших соседей.

Значение K задаётся методом setCorrespondenceRandomness().

Параметры
[in] cloud указатель на облако точек
[in] tree KD-дерево для поиска ближайших соседей
[out] cloud_covariances ковариационные матрицы для каждой точки облака

Определение в строке 73 файла gicp.hpp.

Ссылки: pcl::search::KdTree< PointT, Tree >::nearestKSearch() и pcl::PointCloud< PointT >::size().

computeRDerivative()

template<typename PointSource , typename PointTarget , typename Scalar >
void pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::computeRDerivative ( const Vector6d & x,
const Eigen::Matrix3d & dCost_dR_T,
Vector6d & g
) const

Вычисляет производную целевой функции по углам поворота.

Матрица поворота получается из углов поворота x[3], x[4] и x[5]

Возвращает
d/d_Phi, d/d_Theta, d/d_Psi соответственно в g[3], g[4] и g[5]
Параметры
[in] x массив, представляющий 3D-преобразование
[in] dCost_dR_T транспонированная производная целевой функции по матрице поворота
[out] g вектор градиента

Определение в строке 205 файла gicp.hpp.

computeTransformation()

template<typename PointSource , typename PointTarget , typename Scalar >
void pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::computeTransformation ( PointCloudSource & output,
const Matrix4 & guess
)
inlineoverrideprotected

Метод вычисления жёсткого преобразования с начальным приближением.

Параметры
output набор входных точек, преобразованный найденным жёстким преобразованием
guess начальное приближение преобразования, которое требуется вычислить

Определение в строке 769 файла gicp.hpp.

Ссылки: pcl::registration::CorrespondenceEstimation< PointSource, PointTarget, Scalar >::determineCorrespondences(), pcl::Registration< PointSource, PointTarget, float >::initComputeReciprocal(), pcl::registration::CorrespondenceEstimationBase< PointSource, PointTarget, Scalar >::setInputSource(), pcl::registration::CorrespondenceEstimationBase< PointSource, PointTarget, Scalar >::setInputTarget(), pcl::registration::CorrespondenceEstimationBase< PointSource, PointTarget, Scalar >::setNumberOfThreads(), pcl::registration::CorrespondenceEstimationBase< PointSource, PointTarget, Scalar >::setSearchMethodTarget(), pcl::PointCloud< PointT >::size() и pcl::transformPointCloud().

estimateRigidTransformationBFGS()

template<typename PointSource , typename PointTarget , typename Scalar >
void pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::estimateRigidTransformationBFGS ( const PointCloudSource & cloud_src,
const pcl::Indices & indices_src,
const PointCloudTarget & cloud_tgt,
const pcl::Indices & indices_tgt,
Matrix4 & transformation_matrix
)

Оценивает жёсткое вращательное преобразование между исходным и целевым облаками точек с помощью итеративного нелинейного метода BFGS.

Параметры
[in] cloud_src исходный набор точек
[in] indices_src вектор индексов, задающий интересующие точки в cloud_src
[in] cloud_tgt целевой набор точек
[in] indices_tgt вектор индексов, задающий соответствия интересующих точек из indices_src
[in,out] transformation_matrix итоговая матрица преобразования

Определение в строке 296 файла gicp.hpp.

Ссылки: BFGS< FunctorType >::minimizeInit(), BFGS< FunctorType >::minimizeOneStep(), BFGSSpace::NoProgress, BFGS< FunctorType >::Parameters::order, BFGS< FunctorType >::parameters, BFGS< FunctorType >::Parameters::rho, BFGSSpace::Running, BFGS< FunctorType >::Parameters::sigma, BFGSSpace::Success, BFGS< FunctorType >::Parameters::tau1, BFGS< FunctorType >::Parameters::tau2, BFGS< FunctorType >::Parameters::tau3 и BFGS< FunctorType >::testGradient().

На эту функцию ссылается pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::useBFGS().

estimateRigidTransformationNewton()

template<typename PointSource , typename PointTarget , typename Scalar >
void pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::estimateRigidTransformationNewton ( const PointCloudSource & cloud_src,
const pcl::Indices & indices_src,
const PointCloudTarget & cloud_tgt,
const pcl::Indices & indices_tgt,
Matrix4 & transformation_matrix
)

Оценивает жёсткое вращательное преобразование между исходным и целевым облаками точек с помощью итеративного нелинейного метода Ньютона.

Параметры
[in] cloud_src исходный набор точек
[in] indices_src вектор индексов, задающий интересующие точки в cloud_src
[in] cloud_tgt целевой набор точек
[in] indices_tgt вектор индексов, задающий соответствия интересующих точек из indices_src
[in,out] transformation_matrix итоговая матрица преобразования

Определение в строке 372 файла gicp.hpp.

На эту функцию ссылается pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::GeneralizedIterativeClosestPoint().

getCorrespondenceRandomness()

template<typename PointSource , typename PointTarget , typename Scalar = float>
int pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::getCorrespondenceRandomness ( ) const
inline

Возвращает заданное пользователем число соседей, используемых при вычислении ковариаций.

Определение в строке 303 файла gicp.h.

Ссылка: pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::k_correspondences_.

getMaximumOptimizerIterations()

template<typename PointSource , typename PointTarget , typename Scalar = float>
int pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::getMaximumOptimizerIterations ( ) const
inline

Возвращает максимальное число итераций на этапе оптимизации.

Определение в строке 335 файла gicp.h.

Ссылка: pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::max_inner_iterations_.

getRotationEpsilon()

template<typename PointSource , typename PointTarget , typename Scalar = float>
double pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::getRotationEpsilon ( ) const
inline

Возвращает заданную пользователем погрешность поворота (максимально допустимую разницу между двумя последовательными поворотами).

Определение в строке 282 файла gicp.h.

Ссылка: pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::rotation_epsilon_.

getRotationGradientTolerance()

template<typename PointSource , typename PointTarget , typename Scalar = float>
double pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::getRotationGradientTolerance ( ) const
inline

Возвращает минимальный порог градиента вращения для досрочной остановки оптимизации.

Определение в строке 370 файла gicp.h.

См. также pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::rotation_gradient_tolerance_.

getTranslationGradientTolerance()

template<typename PointSource , typename PointTarget , typename Scalar = float>
double pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::getTranslationGradientTolerance ( ) const
inline

Возвращает минимальный порог градиента переноса для досрочной остановки оптимизации.

Определение в строке 353 файла gicp.h.

См. также pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::translation_gradient_tolerance_.

mahalanobis()

template<typename PointSource , typename PointTarget , typename Scalar = float>
const Eigen::Matrix3d& pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::mahalanobis ( std::size_t index ) const
inline
Возвращает
Матрица расстояний Махаланобиса для указанного индекса точки

Определение в строке 248 файла gicp.h.

См. также pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::mahalanobis_.

matricesInnerProd()

template<typename PointSource , typename PointTarget , typename Scalar = float>
double pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::matricesInnerProd ( const Eigen::MatrixXd & mat1,
const Eigen::MatrixXd & mat2
) const
inlineprotected
Возвращает
след матрицы mat1 . mat2
Параметры
mat1 матрица размерности nxm
mat2 матрица размерности mxp

Определение в строке 450 файла gicp.h.

searchForNeighbors()

template<typename PointSource , typename PointTarget , typename Scalar = float>
bool pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::searchForNeighbors ( const PointSource & query,
pcl::Indices & index,
std::vector< float > & distance
)
inlineprotected

Выполняет поиск ближайшего соседа для заданной точки.

Параметры
query точка, для которой выполняется поиск ближайшего соседа
index вектор размера 1 для хранения индекса найденного ближайшего соседа
distance вектор размера 1 для хранения расстояния до найденного ближайшего соседа

Определение в строке 476 файла gicp.h.

См. также pcl::geometry::distance() и pcl::Registration< PointSource, PointTarget, float >::tree_.

setCorrespondenceRandomness()

template<typename PointSource , typename PointTarget , typename Scalar = float>
void pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::setCorrespondenceRandomness ( int k )
inline

Задаёт количество соседей, используемых при выборе окрестности точки для вычисления ковариаций.

Большее значение повысит точность матрицы ковариации, но замедлит вычисление ковариаций.

Параметры
k количество соседей, используемых при вычислении ковариаций

Определение в строке 294 файла gicp.h.

См. также pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::k_correspondences_.

setInputSource()

template<typename PointSource , typename PointTarget , typename Scalar = float>
void pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::setInputSource ( const PointCloudSourceConstPtr & cloud )
inlineoverride

Передаёт указатель на входной набор данных.

Параметры
cloud константный общий указатель boost на сообщение PointCloud

Определение в строке 159 файла gicp.h.

См. также pcl::Registration< PointSource, PointTarget, float >::getClassName(), pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::input_covariances_, pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::setInputSource() и pcl::PointCloud< PointT >::size().

setInputTarget()

template<typename PointSource , typename PointTarget , typename Scalar = float>
void pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::setInputTarget ( const PointCloudTargetConstPtr & target )
inlineoverride

Передаёт указатель на входную целевую точку (например, облако точек, к которому требуется привязать исходное входное облако).

Параметры
[in] target входное целевое облако точек

Определение в строке 193 файла gicp.h.

См. также pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::setInputTarget() и pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::target_covariances_.

setMaximumOptimizerIterations()

template<typename PointSource , typename PointTarget , typename Scalar = float>
void pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::setMaximumOptimizerIterations ( int max )
inline

Задаёт максимальное количество итераций на этапе оптимизации.

Параметры
[in] max максимальное количество итераций оптимизатора

Определение в строке 327 файла gicp.h.

См. также pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::max_inner_iterations_.

setNumberOfThreads()

template<typename PointSource , typename PointTarget , typename Scalar >
void pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::setNumberOfThreads ( unsigned int nr_threads = 0 )

Инициализирует планировщик и задаёт количество используемых потоков.

Параметры
nr_threads количество используемых аппаратных потоков (0 возвращает значение в автоматический режим)

Определение в строке 50 файла gicp.hpp.

Используется в pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::GeneralizedIterativeClosestPoint().

setRotationEpsilon()

template<typename PointSource , typename PointTarget , typename Scalar = float>
void pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::setRotationEpsilon ( double epsilon )
inline

Задаёт эпсилон вращения (максимально допустимую разницу между двумя последовательными вращениями), при котором оптимизация считается сошедшейся к окончательному решению.

Параметры
epsilon эпсилон вращения

Определение в строке 273 файла gicp.h.

См. также pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::rotation_epsilon_.

setRotationGradientTolerance()

template<typename PointSource , typename PointTarget , typename Scalar = float>
void pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::setRotationGradientTolerance ( double tolerance )
inline

Задаёт минимальный порог градиента вращения для досрочной остановки оптимизации.

Параметры
[in] tolerance порог градиента вращения в радианах

Определение в строке 362 файла gicp.h.

См. также pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::rotation_gradient_tolerance_.

setSourceCovariances()

template<typename PointSource , typename PointTarget , typename Scalar = float>
void pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::setSourceCovariances ( const MatricesVectorPtr & covariances )
inline

Передаёт указатель на ковариации входного исходного облака (если они вычислены отдельно!).

Если значение не задано, GeneralizedIterativeClosestPoint вычислит ковариации самостоятельно. Задавайте ковариации ПОСЛЕ задания входного исходного облака точек (при задании входного исходного облака точек ковариации сбрасываются).

Параметры
[in] covariances ковариации входного исходного облака

Определение в строке 184 файла gicp.h.

См. также pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::input_covariances_.

setTargetCovariances()

template<typename PointSource , typename PointTarget , typename Scalar = float>
void pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::setTargetCovariances ( const MatricesVectorPtr & covariances )
inline

Передаёт указатель на ковариации входного целевого облака (если они вычислены отдельно!).

Если значение не задано, GeneralizedIterativeClosestPoint вычислит ковариации самостоятельно. Задавайте ковариации ПОСЛЕ задания входного исходного облака точек (при задании входного исходного облака точек ковариации сбрасываются).

Параметры
[in] covariances ковариации входного целевого облака

Определение в строке 207 файла gicp.h.

См. также pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::target_covariances_.

setTranslationGradientTolerance()

template<typename PointSource , typename PointTarget , typename Scalar = float>
void pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::setTranslationGradientTolerance ( double tolerance )
inline

Задаёт минимальный порог градиента переноса для досрочной остановки оптимизации.

Параметры
[in] tolerance порог градиента переноса в метрах

Определение в строке 344 файла gicp.h.

См. также pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::translation_gradient_tolerance_.

useBFGS()

template<typename PointSource , typename PointTarget , typename Scalar = float>
void pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::useBFGS ( )
inline

Использует оптимизатор BFGS вместо используемого по умолчанию оптимизатора Ньютона.

Определение в строке 311 файла gicp.h.

См. также pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::estimateRigidTransformationBFGS() и pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::rigid_transformation_estimation_.

Описание данных-членов

base_transformation_

template<typename PointSource , typename PointTarget , typename Scalar = float>
Matrix4 pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::base_transformation_
protected

базовое преобразование

Определение в строке 401 файла gicp.h.

gicp_epsilon_

template<typename PointSource , typename PointTarget , typename Scalar = float>
double pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::gicp_epsilon_ {0.001}
protected

Константа эпсилон из статьи о GICP; это НЕ допуск сходимости. Значение по умолчанию: 0.001.

Определение в строке 392 файла gicp.h.

input_covariances_

template<typename PointSource , typename PointTarget , typename Scalar = float>
MatricesVectorPtr pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::input_covariances_
protected

Ковариации точек входного облака.

Определение в строке 416 файла gicp.h.

Используется в pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::setInputSource() и pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::setSourceCovariances().

k_correspondences_

template<typename PointSource , typename PointTarget , typename Scalar = float>
int pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::k_correspondences_ {20}
защищённый

Количество соседей, используемых для вычисления ковариаций.

по умолчанию: 20

Определение в строке 386 файла gicp.h.

Используется в pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::getCorrespondenceRandomness() и pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::setCorrespondenceRandomness().

mahalanobis_

template<typename PointSource , typename PointTarget , typename Scalar = float>
std::vector<Eigen::Matrix3d> pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::mahalanobis_
защищённый

Хранилище матриц Махаланобиса.

Определение в строке 422 файла gicp.h.

Используется в pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::mahalanobis().

max_inner_iterations_

template<typename PointSource , typename PointTarget , typename Scalar = float>
int pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::max_inner_iterations_ {20}
защищённый

максимальное количество оптимизаций

Определение в строке 425 файла gicp.h.

Используется в pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::getMaximumOptimizerIterations() и pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::setMaximumOptimizerIterations().

rigid_transformation_estimation_

template<typename PointSource , typename PointTarget , typename Scalar = float>
std::function<void(const pcl::PointCloud<PointSource>& cloud_src, const pcl::Indices& src_indices, const pcl::PointCloud<PointTarget>& cloud_tgt, const pcl::Indices& tgt_indices, Matrix4& transformation_matrix)> pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::rigid_transformation_estimation_
защищённый

Определение в строке 514 файла gicp.h.

Используется в pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::GeneralizedIterativeClosestPoint() и pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::useBFGS().

rotation_epsilon_

template<typename PointSource , typename PointTarget , typename Scalar = float>
double pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::rotation_epsilon_ {2e-3}
защищённый

Константа эпсилон для ошибки вращения.

(В GICP эпсилон преобразования разделён на составляющую вращения и составляющую переноса). значение по умолчанию: 2e-3

Определение в строке 398 файла gicp.h.

Используется в pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::getRotationEpsilon() и pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::setRotationEpsilon().

rotation_gradient_tolerance_

template<typename PointSource , typename PointTarget , typename Scalar = float>
double pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::rotation_gradient_tolerance_ {1e-2}
защищённый

минимальный градиент вращения для досрочного прекращения оптимизации

Определение в строке 431 файла gicp.h.

Используется в pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::getRotationGradientTolerance() и pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::setRotationGradientTolerance().

target_covariances_

template<typename PointSource , typename PointTarget , typename Scalar = float>
MatricesVectorPtr pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::target_covariances_
защищённый

Ковариации точек целевого облака.

Определение в строке 419 файла gicp.h.

Используется в pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::setInputTarget() и pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::setTargetCovariances().

tmp_idx_src_

template<typename PointSource , typename PointTarget , typename Scalar = float>
const pcl::Indices* pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::tmp_idx_src_
защищённый

Временный указатель на индексы исходного набора данных.

Определение в строке 410 файла gicp.h.

tmp_idx_tgt_

template<typename PointSource , typename PointTarget , typename Scalar = float>
const pcl::Indices* pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::tmp_idx_tgt_
защищённый

Временный указатель на индексы целевого набора данных.

Определение в строке 413 файла gicp.h.

tmp_src_

template<typename PointSource , typename PointTarget , typename Scalar = float>
const PointCloudSource* pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::tmp_src_
защищённый

Временный указатель на исходный набор данных.

Определение в строке 404 файла gicp.h.

tmp_tgt_

template<typename PointSource , typename PointTarget , typename Scalar = float>
const PointCloudTarget* pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::tmp_tgt_
защищённый

Временный указатель на целевой набор данных.

Определение в строке 407 файла gicp.h.

translation_gradient_tolerance_

template<typename PointSource , typename PointTarget , typename Scalar = float>
double pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::translation_gradient_tolerance_ {1e-2}
защищённый

минимальный градиент переноса для досрочного прекращения оптимизации

Определение в строке 428 файла gicp.h.

Используется в pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::getTranslationGradientTolerance() и pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::setTranslationGradientTolerance().


Документация для этого класса создана на основе следующих файлов:
  • pcl/registration/gicp.h
  • pcl/registration/impl/gicp.hpp

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

Spec-Zone.ru

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