code: def ransac_registration(
      xyz, xyz_target, distance_threshold=0.05, num_iterations=80000
  ):
      """
      use Open3D version of RANSAC
      """
      pcd = open3d.geometry.PointCloud()
      pcd.points = open3d.utility.Vector3dVector(
          xyz.detach().cpu().numpy()
      )
  
      pcd_t = open3d.geometry.PointCloud()
      pcd_t.points = open3d.utility.Vector3dVector(
          xyz_target.detach().cpu().numpy()
      )
      rang = np.arange(len(xyz))
      corres = np.stack((rang, rang), axis=1)
      corres = open3d.utility.Vector2iVector(corres)
      result = open3d.pipelines.registration.registration_ransac_based_on_correspondence(
          pcd,
          pcd_t,
          corres,
          distance_threshold,
          estimation_method=open3d.pipelines.registration.TransformationEstimationPointToPoint(
              False
          ),
          ransac_n=4,
          criteria=open3d.pipelines.registration.RANSACConvergenceCriteria(
              4000000, num_iterations
          ),
      )
  
      return torch.from_numpy(result.transformation).float()
  
file_path: torch-points3d/torch_points3d/utils/registration.py
imports: import open3d
  import numpy
  import torch
  from torch_points3d.utils.geometry import get_trans
  from torch_geometric.nn import knn
label_desc: Use image node_id 7 for calling a global function with example usage: ransac_registration(xyz, xyz_target, distance_threshold, num_iterations) and returns: torch