ОбобщённыйИтеративныйБлижайшийТочка — это вариант ICP, реализующий алгоритм обобщённой итеративной ближайшей точки, как описано Алексом Сегалом и др. Подробнее...
#include <pcl/registration/gicp.h>
Вложенные классы | |
| 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 | AngleAxis = typename Eigen::AngleAxis< Scalar > |
|
| |
| 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 |
|
| |
| 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 &) |
| Подпись обратного вызова для функции, обновляющей положение промежуточной облака точек источника во время его регистрации с облаком точек целевого. Подробнее... |
|
|
| |
| using | PointCloud = pcl::PointCloud< PointSource > |
| using | PointCloudPtr = typename PointCloud::Ptr |
| using | PointCloudConstPtr = typename PointCloud::ConstPtr |
| using | PointIndicesPtr = PointIndices::Ptr |
| using | PointIndicesConstPtr = PointIndices::ConstPtr |
Публичные члены-функции | |
| 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. Подробнее... |
|
| 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) |
| Установить значение epsilon для поворота (максимальное допустимое различие между двумя последовательными поворотами) для того, чтобы оптимизация считалась сходящейся к окончательному решению. Подробнее... |
|
| double | getRotationEpsilon () const |
| Получить значение epsilon для поворота (максимальное допустимое различие между двумя последовательными поворотами), установленное пользователем. Подробнее... |
|
| void | setCorrespondenceRandomness (int k) |
| Установить количество соседей, используемых при выборе окрестности точки для вычисления ковариаций. Подробнее... |
|
| int | getCorrespondenceRandomness () const |
| Получить количество соседей, используемых при вычислении ковариаций, установленное пользователем. Подробнее... |
|
| void | setMaximumOptimizerIterations (int max) |
| Установить максимальное количество итераций на шаге оптимизации. Подробнее... |
|
| int | getMaximumOptimizerIterations () const |
| Возвращает максимальное количество итераций на шаге оптимизации. Подробнее... |
|
| void | setTranslationGradientTolerance (double tolerance) |
| Установите минимальный порог градиента перевода для ранней остановки оптимизации. Подробнее... |
|
| double | getTranslationGradientTolerance () const |
| Возвращает минимальный порог градиента смещения для ранней остановки оптимизации. Подробнее... |
|
| void | setRotationGradientTolerance (double tolerance) |
| Установите минимальный порог градиента поворота для ранней остановки оптимизации. Подробнее... |
|
| double | getRotationGradientTolerance () const |
| Возвращает минимальный порог градиента поворота для ранней остановки оптимизации. Подробнее... |
|
|
| |
| 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 |
| Получить, используются ли взаимные соответствия или нет. Подробнее... |
|
|
| |
| 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 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 |
| Возвращает состояние сходимости после последнего вызова align. Подробнее... |
|
| 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 |
| Переопределяет PointCloud оператор[] для сокращения кода. Подробнее... |
|
Защищенные члены-функции | |
| шаблон<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 |
| вычисление матрицы преобразования из матрицы преобразования Подробнее... |
|
|
| |
| virtual void | transformCloud (const PointCloudSource &input, PointCloudSource &output, const Matrix4 &transform) |
| Применить жесткое преобразование к заданному набору данных. Подробнее... |
|
| void | computeTransformation (PointCloudSource &output, const Matrix4 &guess) override |
| Метод вычисления жесткого преобразования с начальным приближением. Подробнее... |
|
| virtual void | determineRequiredBlobData () |
| Определяет, нужно ли вызывать методы установки blob у оценщиков и отбрасывателей. Подробнее... |
|
|
| |
| 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 () |
| Этот метод должен вызываться после завершения фактического вычисления. Подробнее... |
|
Защищённые атрибуты | |
| int | k_correspondences_ |
| Количество соседей, используемых для вычисления ковариаций. Подробнее... |
|
| double | gicp_epsilon_ |
| Константа epsilon для статьи по GICP; это НЕ значение толерантности сходимости, по умолчанию: 0.001. Подробнее... |
|
| double | rotation_epsilon_ |
| Константа epsilon для ошибки вращения. Подробнее... |
|
| 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_ |
| максимальное количество оптимизаций Подробнее... |
|
| double | translation_gradient_tolerance_ |
| минимальный градиент смещения для ранней остановки оптимизации Подробнее... |
|
| double | rotation_gradient_tolerance_ |
| минимальный градиент вращения для ранней остановки оптимизации Подробнее... |
|
| 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_ |
|
| |
| 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_ |
|
| |
| 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_ |
| Функция обратного вызова для обновления положения промежуточного облака исходных точек во время его регистрации с облаком целевых точек. Подробнее... |
|
|
| |
| PointCloudConstPtr | input_ |
| Набор входных точек. Подробнее... |
|
| IndicesPtr | indices_ |
| Указатель на вектор индексов точек для использования. Подробнее... |
|
| bool | use_indices_ |
| Устанавливается в значение true, если используются индексы точек. Подробнее... |
|
| bool | fake_indices_ |
| Если набор индексов не задан, мы создаём набор фиктивных индексов, имитирующих входной PointCloud. Подробнее... |
|
Дополнительные унаследованные члены | |
|
| |
| pcl::registration::DefaultConvergenceCriteria< float >::Ptr | convergence_criteria_ |
Подробное описание
шаблон<typename PointSource, typename PointTarget, typename Scalar = float>
класс pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >
GeneralizedIterativeClosestPoint — это вариант ICP, который реализует обобщённый итеративный алгоритм ближайших точек, как описано Алексом Сегалом и др.
в http://www.robots.ox.ac.uk/~avsegal/resources/papers/Generalized_ICP.pdf Подход основан на использовании анизотропных функций стоимости для оптимизации выравнивания после того, как были назначены ближайшие точки. Исходный код использует GSL и ANN, а наш использует eigen-картированный BFGS и FLANN.
Документация по типам-переменным
AngleAxis
| using pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::AngleAxis = typename Eigen::AngleAxis<Scalar> |
ConstPtr
| using pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::ConstPtr = shared_ptr< const GeneralizedIterativeClosestPoint<PointSource, PointTarget, Scalar> > |
InputKdTree
| using pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::InputKdTree = typename Registration<PointSource, PointTarget, Scalar>::KdTree |
InputKdTreePtr
| using pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::InputKdTreePtr = typename Registration<PointSource, PointTarget, Scalar>::KdTreePtr |
MatricesVector
| using pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::MatricesVector = std::vector<Eigen::Matrix3d, Eigen::aligned_allocator<Eigen::Matrix3d> > |
MatricesVectorConstPtr
| using pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::MatricesVectorConstPtr = shared_ptr<const MatricesVector> |
MatricesVectorPtr
| using pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::MatricesVectorPtr = shared_ptr<MatricesVector> |
Matrix3
| using pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::Matrix3 = typename Eigen::Matrix<Scalar, 3, 3> |
Matrix4
| using pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::Matrix4 = typename IterativeClosestPoint<PointSource, PointTarget, Scalar>::Matrix4 |
PointCloudSource
| using pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::PointCloudSource = pcl::PointCloud<PointSource> |
PointCloudSourceConstPtr
| using pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::PointCloudSourceConstPtr = typename PointCloudSource::ConstPtr |
PointCloudSourcePtr
| using pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::PointCloudSourcePtr = typename PointCloudSource::Ptr |
PointCloudTarget
| using pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::PointCloudTarget = pcl::PointCloud<PointTarget> |
PointCloudTargetConstPtr
| using pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::PointCloudTargetConstPtr = typename PointCloudTarget::ConstPtr |
PointCloudTargetPtr
| using pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::PointCloudTargetPtr = typename PointCloudTarget::Ptr |
PointIndicesConstPtr
| using pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::PointIndicesConstPtr = PointIndices::ConstPtr |
PointIndicesPtr
| using pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::PointIndicesPtr = PointIndices::Ptr |
Ptr
| using pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::Ptr = shared_ptr<GeneralizedIterativeClosestPoint<PointSource, PointTarget, Scalar> > |
Vector3
| using pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::Vector3 = typename Eigen::Matrix<Scalar, 3, 1> |
Vector4
| using pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::Vector4 = typename Eigen::Matrix<Scalar, 4, 1> |
Vector6d
| using pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::Vector6d = Eigen::Matrix<double, 6, 1> |
Конструктор и Деструктор
GeneralizedIterativeClosestPoint()
| inline |
Пустой конструктор.
Определение в строке 117 файла gicp.h.
Ссылки на pcl::Registration< PointSource, PointTarget, float >::corr_dist_threshold_, pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::estimateRigidTransformationBFGS(), 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::Registration< PointSource, PointTarget, float >::transformation_epsilon_.
Документация по членам функции
applyState()
| protected |
computeCovariances()
| protected |
Вычисляет ковариационные матрицы точек в соответствии с K ближайшими соседями.
Значение K задаётся методом setCorrespondenceRandomness().
- Параметры
-
cloud указатель на облако точек tree дерево KD для поиска ближайших соседей [out] cloud_covariances ковариационные матрицы для каждой точки в облаке
Определение в строке 51 файла gicp.hpp.
Ссылается на pcl::PointCloud< PointT >::begin(), pcl::PointCloud< PointT >::end(), pcl::search::KdTree< PointT, Tree >::nearestKSearch() и pcl::PointCloud< PointT >::size().
computeRDerivative()
| 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 вектор градиента
computeTransformation()
| inlineoverrideprotected |
Метод вычисления ригидной трансформации с начальным предположением.
- Параметры
-
output преобразованное входное облако точек, используя найденную ригидную трансформацию guess начальное предположение о трансформации для вычисления
Определение в строке 404 файла gicp.hpp.
Ссылается на pcl::Registration< PointSource, PointTarget, float >::initComputeReciprocal().
estimateRigidTransformationBFGS()
| 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 результирующая матрица трансформации
Определение в строке 187 файла gicp.hpp.
Используется в pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::GeneralizedIterativeClosestPoint().
getCorrespondenceRandomness()
| inline |
Получить количество соседей, используемых при вычислении ковариаций, заданное пользователем.
Определение в строке 272 файла gicp.h.
Ссылки на pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::k_correspondences_.
getMaximumOptimizerIterations()
| inline |
Возвращает максимальное количество итераций на шаге оптимизации.
Определение в строке 289 файла gicp.h.
Ссылки на pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::max_inner_iterations_.
getRotationEpsilon()
| inline |
Получить эпсилон вращения (максимальное допустимое различие между двумя последовательными вращениями), заданное пользователем.
Определение в строке 251 файла gicp.h.
Ссылки на pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::rotation_epsilon_.
getRotationGradientTolerance()
| inline |
getTranslationGradientTolerance()
| inline |
mahalanobis()
| inline |
- Возвращает
- Матрицу расстояния Махаланобиса для данного индекса точки
Определение в строке 217 файла gicp.h.
Ссылки на pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::mahalanobis_.
matricesInnerProd()
| inlineprotected |
searchForNeighbors()
| inlineprotected |
Поиск ближайшего соседа заданной точки.
- Параметры
-
query точка, для которой ищется ближайший сосед index вектор размера 1 для хранения индекса найденного ближайшего соседа distance вектор размера 1 для хранения расстояния до ближайшего найденного соседа
Определение в строке 423 файла gicp.h.
Ссылки на pcl::geometry::distance(), и pcl::Registration< PointSource, PointTarget, float >::tree_.
setCorrespondenceRandomness()
| inline |
Устанавливает количество соседей, используемых при выборе окрестности точки для вычисления ковариаций.
Более высокое значение обеспечит более точную матрицу ковариаций, но замедлит вычисление ковариаций.
- Параметры
-
k количество соседей, используемых при вычислении ковариаций
Определение в строке 263 файла gicp.h.
Ссылки на pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::k_correspondences_.
setInputSource()
| inlineoverride |
Предоставьте указатель на входные данные.
- Параметры
-
cloud постоянный указатель boost shared на сообщение PointCloud
Определение в строке 145 файла 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()
| inlineoverride |
Предоставьте указатель на входной целевой объект (например, облако точек, к которому мы хотим выровнять входной источник).
- Параметры
-
[in] target целевое входное облако точек
Определение в строке 179 файла gicp.h.
Ссылки на pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::setInputTarget() и pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::target_covariances_.
setMaximumOptimizerIterations()
| inline |
Установите максимальное количество итераций на этапе оптимизации.
- Параметры
-
[in] max максимальное количество итераций для оптимизатора
Определение в строке 281 файла gicp.h.
Ссылки на pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::max_inner_iterations_.
setRotationEpsilon()
| inline |
Установите значение epsilon вращения (максимально допустимое различие между двумя последовательными вращениями), чтобы оптимизация считалась сходившейся к конечному решению.
- Parameters
-
epsilon значение epsilon вращения
Определение в строке 242 файла gicp.h.
Ссылки на pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::rotation_epsilon_.
setRotationGradientTolerance()
| inline |
setSourceCovariances()
| inline |
Предоставьте указатель на ковариации входного источника (если они рассчитаны внешне!).
Если не установлено, GeneralizedIterativeClosestPoint вычислит ковариации самостоятельно. Убедитесь, что ковариации установлены ПОСЛЕ установки входного облака точек источника (установка входного облака точек источника сбросит ковариации).
- Parameters
-
[in] covariances входные ковариации источника
Определение в строке 170 файла gicp.h.
Ссылки на pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::input_covariances_.
setTargetCovariances()
| inline |
Предоставьте указатель на ковариации входного целевого объекта (если они вычисляются внешним образом!).
Если не заданы, GeneralizedIterativeClosestPoint вычислит ковариации самостоятельно. Убедитесь, что ковариации заданы ПОСЛЕ задания входного облака точек источника (задание входного облака точек источника сбросит ковариации).
- Параметры
-
[in] covariances входные ковариации целевого объекта
Определение в строке 193 файла gicp.h.
Ссылки на pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::target_covariances_.
setTranslationGradientTolerance()
| inline |
Документация по данным членам
base_transformation_
| protected |
gicp_epsilon_
| protected |
input_covariances_
| protected |
Ковариации входных облаков точек.
Определение в строке 363 файла gicp.h.
Используется в pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::setInputSource() и pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::setSourceCovariances().
k_correspondences_
| protected |
Количество соседей, используемых для вычисления ковариаций.
Значение по умолчанию: 20
Определение в строке 333 файла gicp.h.
Используется в pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::getCorrespondenceRandomness() и pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::setCorrespondenceRandomness().
mahalanobis_
| protected |
Хранилище матриц Махаланобиса.
Определение в строке 369 файла gicp.h.
Используется в pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::mahalanobis().
max_inner_iterations_
| protected |
Максимальное количество оптимизаций.
Определение в строке 372 файла gicp.h.
Используется в pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::getMaximumOptimizerIterations() и pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::setMaximumOptimizerIterations().
rigid_transformation_estimation_
| protected |
Определение в строке 459 файла gicp.h.
Используется в pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::GeneralizedIterativeClosestPoint().
rotation_epsilon_
| protected |
Постоянная epsilon для ошибки вращения.
(В GICP ошибка преобразования разделена на части вращения и сдвига). По умолчанию: 2e-3
Определение в строке 345 файла gicp.h.
Используется в pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::getRotationEpsilon() и pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::setRotationEpsilon().
rotation_gradient_tolerance_
| protected |
Минимальный градиент вращения для ранней остановки оптимизации
Определение в строке 378 файла gicp.h.
Используется в pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::getRotationGradientTolerance() и pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::setRotationGradientTolerance().
target_covariances_
| protected |
Ковариации точек целевого облака.
Определение в строке 366 файла gicp.h.
Используется в pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::setInputTarget() и pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::setTargetCovariances().
tmp_idx_src_
| protected |
tmp_idx_tgt_
| protected |
tmp_src_
| protected |
tmp_tgt_
| protected |
translation_gradient_tolerance_
| protected |
минимальный градиент смещения для ранней остановки оптимизации
Определение в строке 375 файла gicp.h.
Используется в pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::getTranslationGradientTolerance() и pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::setTranslationGradientTolerance().
The documentation for this class was generated from the following files:
© 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