|
| using |
PointCloudSource = typename IterativeClosestPoint< PointSource, PointTarget, Scalar >::PointCloudSource
|
| using |
PointCloudTarget = typename IterativeClosestPoint< PointSource, PointTarget, Scalar >::PointCloudTarget
|
| using |
Matrix4 = typename IterativeClosestPoint< PointSource, PointTarget, Scalar >::Matrix4
|
| using |
Ptr = shared_ptr< IterativeClosestPointWithNormals< PointSource, PointTarget, Scalar > > |
| using |
ConstPtr = shared_ptr< const IterativeClosestPointWithNormals< PointSource, PointTarget, 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 > > |
|
| |
IterativeClosestPointWithNormals () |
| |
Пустой конструктор. Подробнее...
|
| |
~IterativeClosestPointWithNormals () override=default |
| |
Пустой деструктор. Подробнее...
|
| void |
setUseSymmetricObjective (bool use_symmetric_objective) |
| |
Установить, использовать ли симметричную функцию цели или нет. Подробнее...
|
| bool |
getUseSymmetricObjective () const |
| |
Получить, используется ли симметричная цель или нет. Подробнее...
|
| void |
setEnforceSameDirectionNormals (bool enforce_same_direction_normals) |
| |
Установить, ли необходимо отрицание нормалей источника или целевого объекта для каждого отдельного пункта, чтобы они указывали в одном направлении. Подробнее...
|
| bool |
getEnforceSameDirectionNormals () 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 |
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 |
| |
Возвращает состояние сходимости после последнего вызова 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 () |
| |
Очистить список отбрасывателей соответствий. Подробнее...
|
|
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_ |
| |
Если набор индексов не задан, мы создаём набор фиктивных индексов, имитирующих входное облако точек. Подробнее...
|
template<typename PointSource, typename PointTarget, typename Scalar = float>
class pcl::IterativeClosestPointWithNormals< PointSource, PointTarget, Scalar >
IterativeClosestPointWithNormals — это частный случай IterativeClosestPoint, который по умолчанию использует преобразование, оцениваемое на основе расстояний от точки до плоскости.
По умолчанию эта реализация использует традиционный критерий «точка-плоскость» и вычисляет расстояния «точка-плоскость» с использованием нормалей целевого облака точек. Она также предоставляет возможность (через setUseSymmetricObjective) использования симметричной целевой функции из [Rusinkiewicz 2019]. Эта целевая функция использует нормали как исходного, так и целевого облака точек и имеет аналогичную вычислительную сложность, что и традиционная целевая функция «точка-плоскость», одновременно обеспечивая улучшенную скорость сходимости и более широкую область сходимости.
Обратите внимание, что эта реализация не вычитает среднее значение из облаков точек, что может привести к увеличению числовой погрешности. Если необходимо, пользователь может вычесть среднее значение из облака точек, выполнить итеративный метод ближайших точек и составить полученное преобразование ICP с трансляциями, полученными из вычитания среднего значения, чтобы получить преобразование между исходными облаками точек.
- Автор
- Раду Б. Русу, Мэттью Конг
Определение в строке 338 файла icp.h.
template<typename PointSource , typename PointTarget , typename Scalar = float>
Установить, требуется ли изменение направления нормалей источника или целевого облака точек на основе каждого пункта, чтобы они указывали в одном направлении.
Применимо только к симметричной целевой функции.
- Параметры
-
| [in] |
enforce_same_direction_normals |
необходимо ли изменять направление нормалей источника или целевого облака точек на основе каждого пункта, чтобы они указывали в одном направлении. |
Определение в строке 415 файла icp.h.
Ссылки на pcl::IterativeClosestPointWithNormals< PointSource, PointTarget, Scalar >::enforce_same_direction_normals_, а также pcl::Registration< PointSource, PointTarget, float >::transformation_estimation_.
Используется в pcl::IterativeClosestPointWithNormals< PointSource, PointTarget, Scalar >::IterativeClosestPointWithNormals().