open3d.t.pipelines.registration.TransformationEstimation#

class open3d.t.pipelines.registration.TransformationEstimation#

Base class that estimates a transformation between two point clouds. The virtual function ComputeTransformation() must be implemented in subclasses.

__init__(*args, **kwargs)#
compute_rmse(self, source, target, correspondences)#

Compute RMSE between source and target points cloud given correspondences.

Parameters:
  • source (open3d.t.geometry.PointCloud) – Source point cloud.

  • target (open3d.t.geometry.PointCloud) – Target point cloud.

  • correspondences (open3d.core.Tensor) – Tensor of type Int64 containing indices of corresponding target points, where the value is the target index and the index of the value itself is the source index. It contains -1 as value at index with no correspondence.

Returns:

float

compute_transformation(self, source, target, correspondences, current_transform=[[1 0 0 0], [0 1 0 0], [0 0 1 0], [0 0 0 1]] Tensor[shape={4, 4}, stride={4, 1}, Float64, , iteration=0)#

Compute transformation from source to target point cloud given correspondences.

Parameters:
  • source (open3d.t.geometry.PointCloud) – Source point cloud.

  • target (open3d.t.geometry.PointCloud) – Target point cloud.

  • correspondences (open3d.core.Tensor) – Tensor of type Int64 containing indices of corresponding target points, where the value is the target index and the index of the value itself is the source index. It contains -1 as value at index with no correspondence.

  • current_transform (open3d.core.Tensor, optional, default=[[1 0 0 0], [0 1 0 0], [0 0 1 0], [0 0 0 1]] Tensor[shape={4, 4}, stride={4, 1}, Float64) – The current pose estimate of ICP. ()

  • iteration (int, optional, default=0) – The current iteration number of the ICP algorithm.

Returns:

open3d.core.Tensor