Open3D (C++ API)  0.18.0+fcc396e
Namespaces | Functions
open3d::t::pipelines::kernel Namespace Reference

Namespaces

 odometry
 

Functions

void ComputeFPFHFeature (const core::Tensor &points, const core::Tensor &normals, const core::Tensor &indices, const core::Tensor &distance2, const core::Tensor &counts, core::Tensor &fpfhs)
 
void ComputeFPFHFeatureCPU (const core::Tensor &points, const core::Tensor &normals, const core::Tensor &indices, const core::Tensor &distance2, const core::Tensor &counts, core::Tensor &fpfhs)
 
template<typename scalar_t >
OPEN3D_HOST_DEVICE void ComputePairFeature (const scalar_t *p1, const scalar_t *n1, const scalar_t *p2, const scalar_t *n2, scalar_t *feature)
 
template<typename scalar_t >
OPEN3D_HOST_DEVICE void UpdateSPFHFeature (const scalar_t *feature, int64_t idx, scalar_t hist_incr, scalar_t *spfh)
 
void FillInRigidAlignmentTerm (core::Tensor &AtA, core::Tensor &Atb, core::Tensor &residual, const core::Tensor &Ti_ps, const core::Tensor &Tj_qs, const core::Tensor &Ri_normal_ps, int i, int j, float threshold)
 
void FillInSLACAlignmentTerm (core::Tensor &AtA, core::Tensor &Atb, core::Tensor &residual, const core::Tensor &Ti_ps, const core::Tensor &Tj_qs, const core::Tensor &normal_ps, const core::Tensor &Ri_normal_ps, const core::Tensor &RjT_Ri_normal_ps, const core::Tensor &cgrid_idx_ps, const core::Tensor &cgrid_idx_qs, const core::Tensor &cgrid_ratio_qs, const core::Tensor &cgrid_ratio_ps, int i, int j, int n, float threshold)
 
void FillInSLACRegularizerTerm (core::Tensor &AtA, core::Tensor &Atb, core::Tensor &residual, const core::Tensor &grid_idx, const core::Tensor &grid_nbs_idx, const core::Tensor &grid_nbs_mask, const core::Tensor &positions_init, const core::Tensor &positions_curr, float weight, int n, int anchor_idx)
 
void FillInRigidAlignmentTermCPU (core::Tensor &AtA, core::Tensor &Atb, core::Tensor &residual, const core::Tensor &Ti_qs, const core::Tensor &Tj_qs, const core::Tensor &Ri_normal_ps, int i, int j, float threshold)
 
void FillInSLACAlignmentTermCPU (core::Tensor &AtA, core::Tensor &Atb, core::Tensor &residual, const core::Tensor &Ti_qs, const core::Tensor &Tj_qs, const core::Tensor &normal_ps, const core::Tensor &Ri_normal_ps, const core::Tensor &RjT_Ri_normal_ps, const core::Tensor &cgrid_idx_ps, const core::Tensor &cgrid_idx_qs, const core::Tensor &cgrid_ratio_qs, const core::Tensor &cgrid_ratio_ps, int i, int j, int n, float threshold)
 
void FillInSLACRegularizerTermCPU (core::Tensor &AtA, core::Tensor &Atb, core::Tensor &residual, const core::Tensor &grid_idx, const core::Tensor &grid_nbs_idx, const core::Tensor &grid_nbs_mask, const core::Tensor &positions_init, const core::Tensor &positions_curr, float weight, int n, int anchor_idx)
 
core::Tensor ComputePosePointToPlane (const core::Tensor &source_positions, const core::Tensor &target_positions, const core::Tensor &target_normals, const core::Tensor &correspondence_indices, const registration::RobustKernel &kernel)
 Computes pose for point to plane registration method. More...
 
core::Tensor ComputePoseColoredICP (const core::Tensor &source_positions, const core::Tensor &source_colors, const core::Tensor &target_positions, const core::Tensor &target_normals, const core::Tensor &target_colors, const core::Tensor &target_color_gradients, const core::Tensor &correspondence_indices, const registration::RobustKernel &kernel, const double &lambda_geometric)
 Computes pose for colored-icp registration method. More...
 
core::Tensor ComputePoseDopplerICP (const core::Tensor &source_points, const core::Tensor &source_dopplers, const core::Tensor &source_directions, const core::Tensor &target_points, const core::Tensor &target_normals, const core::Tensor &correspondence_indices, const core::Tensor &current_transform, const core::Tensor &transform_vehicle_to_sensor, const std::size_t iteration, const double period, const double lambda_doppler, const bool reject_dynamic_outliers, const double doppler_outlier_threshold, const std::size_t outlier_rejection_min_iteration, const std::size_t geometric_robust_loss_min_iteration, const std::size_t doppler_robust_loss_min_iteration, const registration::RobustKernel &geometric_kernel, const registration::RobustKernel &doppler_kernel)
 Computes pose for DopplerICP registration method. More...
 
std::tuple< core::Tensor, core::TensorComputeRtPointToPoint (const core::Tensor &source_positions, const core::Tensor &target_positions, const core::Tensor &correspondence_indices)
 Computes (R) Rotation {3,3} and (t) translation {3,} for point to point registration method. More...
 
core::Tensor ComputeInformationMatrix (const core::Tensor &target_positions, const core::Tensor &correspondence_indices)
 Computes Information Matrix of shape {6, 6}, of dtype Float64 on device CPU:0, from the target point cloud and correspondence indices w.r.t. target point cloud. Only target positions and correspondence indices are required. More...
 
void ComputePosePointToPlaneCPU (const core::Tensor &source_points, const core::Tensor &target_points, const core::Tensor &target_normals, const core::Tensor &correspondence_indices, core::Tensor &pose, float &residual, int &inlier_count, const core::Dtype &dtype, const core::Device &device, const registration::RobustKernel &kernel)
 
void ComputePoseColoredICPCPU (const core::Tensor &source_points, const core::Tensor &source_colors, const core::Tensor &target_points, const core::Tensor &target_normals, const core::Tensor &target_colors, const core::Tensor &target_color_gradients, const core::Tensor &correspondence_indices, core::Tensor &pose, float &residual, int &inlier_count, const core::Dtype &dtype, const core::Device &device, const registration::RobustKernel &kernel, const double &lambda_geometric)
 
template<typename scalar_t >
void PreComputeForDopplerICPKernelCPU (const scalar_t *R_S_to_V, const scalar_t *r_v_to_s_in_V, const scalar_t *w_v_in_V, const scalar_t *v_v_in_V, scalar_t *v_s_in_S)
 
void ComputePoseDopplerICPCPU (const core::Tensor &source_points, const core::Tensor &source_dopplers, const core::Tensor &source_directions, const core::Tensor &target_points, const core::Tensor &target_normals, const core::Tensor &correspondence_indices, core::Tensor &output_pose, float &residual, int &inlier_count, const core::Dtype &dtype, const core::Device &device, const core::Tensor &R_S_to_V, const core::Tensor &r_v_to_s_in_V, const core::Tensor &w_v_in_V, const core::Tensor &v_v_in_V, const double period, const bool reject_dynamic_outliers, const double doppler_outlier_threshold, const registration::RobustKernel &kernel_geometric, const registration::RobustKernel &kernel_doppler, const double lambda_doppler)
 
void ComputeRtPointToPointCPU (const core::Tensor &source_points, const core::Tensor &target_points, const core::Tensor &corres, core::Tensor &R, core::Tensor &t, int &inlier_count, const core::Dtype &dtype, const core::Device &device)
 
template<typename scalar_t >
void ComputeInformationMatrixKernelCPU (const scalar_t *target_points_ptr, const int64_t *correspondence_indices, const int n, scalar_t *global_sum)
 
void ComputeInformationMatrixCPU (const core::Tensor &target_points, const core::Tensor &correspondence_indices, core::Tensor &information_matrix, const core::Dtype &dtype, const core::Device &device)
 
template<typename scalar_t >
OPEN3D_HOST_DEVICE bool GetJacobianPointToPlane (int64_t workload_idx, const scalar_t *source_points_ptr, const scalar_t *target_points_ptr, const scalar_t *target_normals_ptr, const int64_t *correspondence_indices, scalar_t *J_ij, scalar_t &r)
 
template bool GetJacobianPointToPlane (int64_t workload_idx, const float *source_points_ptr, const float *target_points_ptr, const float *target_normals_ptr, const int64_t *correspondence_indices, float *J_ij, float &r)
 
template bool GetJacobianPointToPlane (int64_t workload_idx, const double *source_points_ptr, const double *target_points_ptr, const double *target_normals_ptr, const int64_t *correspondence_indices, double *J_ij, double &r)
 
template<typename scalar_t >
OPEN3D_HOST_DEVICE bool GetJacobianColoredICP (const int64_t workload_idx, const scalar_t *source_points_ptr, const scalar_t *source_colors_ptr, const scalar_t *target_points_ptr, const scalar_t *target_normals_ptr, const scalar_t *target_colors_ptr, const scalar_t *target_color_gradients_ptr, const int64_t *correspondence_indices, const scalar_t &sqrt_lambda_geometric, const scalar_t &sqrt_lambda_photometric, scalar_t *J_G, scalar_t *J_I, scalar_t &r_G, scalar_t &r_I)
 
template bool GetJacobianColoredICP (const int64_t workload_idx, const float *source_points_ptr, const float *source_colors_ptr, const float *target_points_ptr, const float *target_normals_ptr, const float *target_colors_ptr, const float *target_color_gradients_ptr, const int64_t *correspondence_indices, const float &sqrt_lambda_geometric, const float &sqrt_lambda_photometric, float *J_G, float *J_I, float &r_G, float &r_I)
 
template bool GetJacobianColoredICP (const int64_t workload_idx, const double *source_points_ptr, const double *source_colors_ptr, const double *target_points_ptr, const double *target_normals_ptr, const double *target_colors_ptr, const double *target_color_gradients_ptr, const int64_t *correspondence_indices, const double &sqrt_lambda_geometric, const double &sqrt_lambda_photometric, double *J_G, double *J_I, double &r_G, double &r_I)
 
template<typename scalar_t >
OPEN3D_HOST_DEVICE void PreComputeForDopplerICP (const scalar_t *R_S_to_V, const scalar_t *r_v_to_s_in_V, const scalar_t *w_v_in_V, const scalar_t *v_v_in_V, scalar_t *v_s_in_S)
 
template void PreComputeForDopplerICP (const float *R_S_to_V, const float *r_v_to_s_in_V, const float *w_v_in_V, const float *v_v_in_V, float *v_s_in_S)
 
template void PreComputeForDopplerICP (const double *R_S_to_V, const double *r_v_to_s_in_V, const double *w_v_in_V, const double *v_v_in_V, double *v_s_in_S)
 
template<typename scalar_t >
OPEN3D_HOST_DEVICE bool GetJacobianDopplerICP (const int64_t workload_idx, const scalar_t *source_points_ptr, const scalar_t *source_dopplers_ptr, const scalar_t *source_directions_ptr, const scalar_t *target_points_ptr, const scalar_t *target_normals_ptr, const int64_t *correspondence_indices, const scalar_t *R_S_to_V, const scalar_t *r_v_to_s_in_V, const scalar_t *v_s_in_S, const bool reject_dynamic_outliers, const scalar_t doppler_outlier_threshold, const scalar_t &sqrt_lambda_geometric, const scalar_t &sqrt_lambda_doppler, const scalar_t &sqrt_lambda_doppler_by_dt, scalar_t *J_G, scalar_t *J_D, scalar_t &r_G, scalar_t &r_D)
 
template bool GetJacobianDopplerICP (const int64_t workload_idx, const float *source_points_ptr, const float *source_dopplers_ptr, const float *source_directions_ptr, const float *target_points_ptr, const float *target_normals_ptr, const int64_t *correspondence_indices, const float *R_S_to_V, const float *r_v_to_s_in_V, const float *v_s_in_S, const bool reject_dynamic_outliers, const float doppler_outlier_threshold, const float &sqrt_lambda_geometric, const float &sqrt_lambda_doppler, const float &sqrt_lambda_doppler_by_dt, float *J_G, float *J_D, float &r_G, float &r_D)
 
template bool GetJacobianDopplerICP (const int64_t workload_idx, const double *source_points_ptr, const double *source_dopplers_ptr, const double *source_directions_ptr, const double *target_points_ptr, const double *target_normals_ptr, const int64_t *correspondence_indices, const double *R_S_to_V, const double *r_v_to_s_in_V, const double *v_s_in_S, const bool reject_dynamic_outliers, const double doppler_outlier_threshold, const double &sqrt_lambda_geometric, const double &sqrt_lambda_doppler, const double &sqrt_lambda_doppler_by_dt, double *J_G, double *J_D, double &r_G, double &r_D)
 
template<typename scalar_t >
OPEN3D_HOST_DEVICE bool GetInformationJacobians (int64_t workload_idx, const scalar_t *target_points_ptr, const int64_t *correspondence_indices, scalar_t *jacobian_x, scalar_t *jacobian_y, scalar_t *jacobian_z)
 
template bool GetInformationJacobians (int64_t workload_idx, const float *target_points_ptr, const int64_t *correspondence_indices, float *jacobian_x, float *jacobian_y, float *jacobian_z)
 
template bool GetInformationJacobians (int64_t workload_idx, const double *target_points_ptr, const int64_t *correspondence_indices, double *jacobian_x, double *jacobian_y, double *jacobian_z)
 
core::Tensor RtToTransformation (const core::Tensor &R, const core::Tensor &t)
 Convert rotation and translation to the transformation matrix. More...
 
core::Tensor PoseToTransformation (const core::Tensor &pose)
 Convert pose to the transformation matrix. More...
 
core::Tensor TransformationToPose (const core::Tensor &transformation)
 Convert transformation matrix to pose. More...
 
void DecodeAndSolve6x6 (const core::Tensor &A_reduction, core::Tensor &delta, float &inlier_residual, int &inlier_count)
 Decodes a 6x6 linear system from a compressed 29x1 tensor. More...
 
template<typename scalar_t >
OPEN3D_HOST_DEVICE void PoseToTransformationImpl (scalar_t *transformation_ptr, const scalar_t *pose_ptr)
 Shared implementation for PoseToTransformation function. More...
 
template<typename scalar_t >
OPEN3D_HOST_DEVICE void TransformationToPoseImpl (scalar_t *pose_ptr, const scalar_t *transformation_ptr)
 

Function Documentation

◆ ComputeFPFHFeature()

void open3d::t::pipelines::kernel::ComputeFPFHFeature ( const core::Tensor points,
const core::Tensor normals,
const core::Tensor indices,
const core::Tensor distance2,
const core::Tensor counts,
core::Tensor fpfhs 
)

◆ ComputeFPFHFeatureCPU()

void open3d::t::pipelines::kernel::ComputeFPFHFeatureCPU ( const core::Tensor points,
const core::Tensor normals,
const core::Tensor indices,
const core::Tensor distance2,
const core::Tensor counts,
core::Tensor fpfhs 
)

◆ ComputeInformationMatrix()

core::Tensor open3d::t::pipelines::kernel::ComputeInformationMatrix ( const core::Tensor target_positions,
const core::Tensor correspondence_indices 
)

Computes Information Matrix of shape {6, 6}, of dtype Float64 on device CPU:0, from the target point cloud and correspondence indices w.r.t. target point cloud. Only target positions and correspondence indices are required.

Parameters
target_positionsThe target point positions.
correspondence_indicesTensor of type Int64 containing indices of corresponding target positions, 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.

◆ ComputeInformationMatrixCPU()

void open3d::t::pipelines::kernel::ComputeInformationMatrixCPU ( const core::Tensor target_points,
const core::Tensor correspondence_indices,
core::Tensor information_matrix,
const core::Dtype dtype,
const core::Device device 
)

◆ ComputeInformationMatrixKernelCPU()

template<typename scalar_t >
void open3d::t::pipelines::kernel::ComputeInformationMatrixKernelCPU ( const scalar_t *  target_points_ptr,
const int64_t *  correspondence_indices,
const int  n,
scalar_t *  global_sum 
)

◆ ComputePairFeature()

template<typename scalar_t >
OPEN3D_HOST_DEVICE void open3d::t::pipelines::kernel::ComputePairFeature ( const scalar_t *  p1,
const scalar_t *  n1,
const scalar_t *  p2,
const scalar_t *  n2,
scalar_t *  feature 
)

◆ ComputePoseColoredICP()

core::Tensor open3d::t::pipelines::kernel::ComputePoseColoredICP ( const core::Tensor source_positions,
const core::Tensor source_colors,
const core::Tensor target_positions,
const core::Tensor target_normals,
const core::Tensor target_colors,
const core::Tensor target_color_gradients,
const core::Tensor correspondence_indices,
const registration::RobustKernel kernel,
const double &  lambda_geometric 
)

Computes pose for colored-icp registration method.

Parameters
source_positionssource point positions of Float32 or Float64 dtype.
source_colorssource point colors of same dtype as source point positions.
target_positionstarget point positions of same dtype as source point positions.
target_normalstarget point normals of same dtype as source point positions.
target_colorstarget point colors of same dtype as source point positions.
target_color_gradientstargets point color gradients of same dtype as source point positions.
correspondence_indicesTensor of type Int64 containing indices of corresponding target positions, 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.
kernelstatistical robust kernel for outlier rejection.
lambda_geometricλ ∈ [0,1] in the overall energy λEG + (1−λ)EC. Refer the documentation of Colored-ICP for more information.
Returns
Pose [alpha beta gamma, tx, ty, tz], a shape {6} tensor of dtype Float64, where alpha, beta, gamma are the Euler angles in the ZYX order.

◆ ComputePoseColoredICPCPU()

void open3d::t::pipelines::kernel::ComputePoseColoredICPCPU ( const core::Tensor source_points,
const core::Tensor source_colors,
const core::Tensor target_points,
const core::Tensor target_normals,
const core::Tensor target_colors,
const core::Tensor target_color_gradients,
const core::Tensor correspondence_indices,
core::Tensor pose,
float &  residual,
int &  inlier_count,
const core::Dtype dtype,
const core::Device device,
const registration::RobustKernel kernel,
const double &  lambda_geometric 
)

◆ ComputePoseDopplerICP()

core::Tensor open3d::t::pipelines::kernel::ComputePoseDopplerICP ( const core::Tensor source_points,
const core::Tensor source_dopplers,
const core::Tensor source_directions,
const core::Tensor target_points,
const core::Tensor target_normals,
const core::Tensor correspondence_indices,
const core::Tensor current_transform,
const core::Tensor transform_vehicle_to_sensor,
const std::size_t  iteration,
const double  period,
const double  lambda_doppler,
const bool  reject_dynamic_outliers,
const double  doppler_outlier_threshold,
const std::size_t  outlier_rejection_min_iteration,
const std::size_t  geometric_robust_loss_min_iteration,
const std::size_t  doppler_robust_loss_min_iteration,
const registration::RobustKernel geometric_kernel,
const registration::RobustKernel doppler_kernel 
)

Computes pose for DopplerICP registration method.

Parameters
source_pointssource point positions of Float32 or Float64 dtype.
source_dopplerssource point Dopplers of same dtype as source point positions.
source_directionssource point direction of same dtype as source point positions.
target_pointstarget point positions of same dtype as source point positions.
target_normalstarget point normals of same dtype as source point positions.
correspondence_indicesTensor of type Int64 containing indices of corresponding target positions, 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_transformThe current pose estimate of ICP.
transform_vehicle_to_sensorThe 4x4 extrinsic transformation matrix between the vehicle and the sensor frames.
iterationcurrent iteration number of the ICP algorithm.
periodTime period (in seconds) between the source and the target point clouds.
lambda_dopplerweight for the Doppler objective.
reject_dynamic_outliersWhether or not to prune dynamic point outlier correspondences.
doppler_outlier_thresholdCorrespondences with Doppler error greater than this threshold are rejected from optimization.
outlier_rejection_min_iterationNumber of iterations of ICP after which outlier rejection is enabled.
geometric_robust_loss_min_iterationNumber of iterations of ICP after which robust loss for geometric term kicks in.
doppler_robust_loss_min_iterationNumber of iterations of ICP after which robust loss for Doppler term kicks in.
geometric_kernelstatistical robust kernel for outlier rejection.
doppler_kernelstatistical robust kernel for outlier rejection.
Returns
Pose [alpha beta gamma, tx, ty, tz], a shape {6} tensor of dtype Float64, where alpha, beta, gamma are the Euler angles in the ZYX order.

◆ ComputePoseDopplerICPCPU()

void open3d::t::pipelines::kernel::ComputePoseDopplerICPCPU ( const core::Tensor source_points,
const core::Tensor source_dopplers,
const core::Tensor source_directions,
const core::Tensor target_points,
const core::Tensor target_normals,
const core::Tensor correspondence_indices,
core::Tensor output_pose,
float &  residual,
int &  inlier_count,
const core::Dtype dtype,
const core::Device device,
const core::Tensor R_S_to_V,
const core::Tensor r_v_to_s_in_V,
const core::Tensor w_v_in_V,
const core::Tensor v_v_in_V,
const double  period,
const bool  reject_dynamic_outliers,
const double  doppler_outlier_threshold,
const registration::RobustKernel kernel_geometric,
const registration::RobustKernel kernel_doppler,
const double  lambda_doppler 
)

◆ ComputePosePointToPlane()

core::Tensor open3d::t::pipelines::kernel::ComputePosePointToPlane ( const core::Tensor source_positions,
const core::Tensor target_positions,
const core::Tensor target_normals,
const core::Tensor correspondence_indices,
const registration::RobustKernel kernel 
)

Computes pose for point to plane registration method.

Parameters
source_positionssource point positions of Float32 or Float64 dtype.
target_positionstarget point positions of same dtype as source point positions.
target_normalstarget point normals of same dtype as source point positions.
correspondence_indicesTensor of type Int64 containing indices of corresponding target positions, 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.
kernelstatistical robust kernel for outlier rejection.
Returns
Pose [alpha beta gamma, tx, ty, tz], a shape {6} tensor of dtype Float64, where alpha, beta, gamma are the Euler angles in the ZYX order.

◆ ComputePosePointToPlaneCPU()

void open3d::t::pipelines::kernel::ComputePosePointToPlaneCPU ( const core::Tensor source_points,
const core::Tensor target_points,
const core::Tensor target_normals,
const core::Tensor correspondence_indices,
core::Tensor pose,
float &  residual,
int &  inlier_count,
const core::Dtype dtype,
const core::Device device,
const registration::RobustKernel kernel 
)

◆ ComputeRtPointToPoint()

std::tuple< core::Tensor, core::Tensor > open3d::t::pipelines::kernel::ComputeRtPointToPoint ( const core::Tensor source_positions,
const core::Tensor target_positions,
const core::Tensor correspondence_indices 
)

Computes (R) Rotation {3,3} and (t) translation {3,} for point to point registration method.

Parameters
source_positionssource point positions of Float32 or Float64 dtype.
target_positionstarget point positions of same dtype as source point positions.
correspondence_indicesTensor of type Int64 containing indices of corresponding target positions, 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
tuple of (R, t). [Dtype: Float64].

◆ ComputeRtPointToPointCPU()

void open3d::t::pipelines::kernel::ComputeRtPointToPointCPU ( const core::Tensor source_points,
const core::Tensor target_points,
const core::Tensor corres,
core::Tensor R,
core::Tensor t,
int &  inlier_count,
const core::Dtype dtype,
const core::Device device 
)

◆ DecodeAndSolve6x6()

void open3d::t::pipelines::kernel::DecodeAndSolve6x6 ( const core::Tensor A_reduction,
core::Tensor delta,
float &  inlier_residual,
int &  inlier_count 
)

Decodes a 6x6 linear system from a compressed 29x1 tensor.

Parameters
A_reduction1x29 tensor storing a linear system, (21 for \(J^T J\) matrix, 6 for \(J^T r\), 1 for residual, 1 for inlier count).
delta6d tensor for a se3 tangent vector.
inlier_residualFloat residual for the inliers.
inlier_countInt number of inliers.

◆ FillInRigidAlignmentTerm()

void open3d::t::pipelines::kernel::FillInRigidAlignmentTerm ( core::Tensor AtA,
core::Tensor Atb,
core::Tensor residual,
const core::Tensor Ti_ps,
const core::Tensor Tj_qs,
const core::Tensor Ri_normal_ps,
int  i,
int  j,
float  threshold 
)

◆ FillInRigidAlignmentTermCPU()

void open3d::t::pipelines::kernel::FillInRigidAlignmentTermCPU ( core::Tensor AtA,
core::Tensor Atb,
core::Tensor residual,
const core::Tensor Ti_qs,
const core::Tensor Tj_qs,
const core::Tensor Ri_normal_ps,
int  i,
int  j,
float  threshold 
)

◆ FillInSLACAlignmentTerm()

void open3d::t::pipelines::kernel::FillInSLACAlignmentTerm ( core::Tensor AtA,
core::Tensor Atb,
core::Tensor residual,
const core::Tensor Ti_ps,
const core::Tensor Tj_qs,
const core::Tensor normal_ps,
const core::Tensor Ri_normal_ps,
const core::Tensor RjT_Ri_normal_ps,
const core::Tensor cgrid_idx_ps,
const core::Tensor cgrid_idx_qs,
const core::Tensor cgrid_ratio_qs,
const core::Tensor cgrid_ratio_ps,
int  i,
int  j,
int  n,
float  threshold 
)

◆ FillInSLACAlignmentTermCPU()

void open3d::t::pipelines::kernel::FillInSLACAlignmentTermCPU ( core::Tensor AtA,
core::Tensor Atb,
core::Tensor residual,
const core::Tensor Ti_qs,
const core::Tensor Tj_qs,
const core::Tensor normal_ps,
const core::Tensor Ri_normal_ps,
const core::Tensor RjT_Ri_normal_ps,
const core::Tensor cgrid_idx_ps,
const core::Tensor cgrid_idx_qs,
const core::Tensor cgrid_ratio_qs,
const core::Tensor cgrid_ratio_ps,
int  i,
int  j,
int  n,
float  threshold 
)

◆ FillInSLACRegularizerTerm()

void open3d::t::pipelines::kernel::FillInSLACRegularizerTerm ( core::Tensor AtA,
core::Tensor Atb,
core::Tensor residual,
const core::Tensor grid_idx,
const core::Tensor grid_nbs_idx,
const core::Tensor grid_nbs_mask,
const core::Tensor positions_init,
const core::Tensor positions_curr,
float  weight,
int  n,
int  anchor_idx 
)

◆ FillInSLACRegularizerTermCPU()

void open3d::t::pipelines::kernel::FillInSLACRegularizerTermCPU ( core::Tensor AtA,
core::Tensor Atb,
core::Tensor residual,
const core::Tensor grid_idx,
const core::Tensor grid_nbs_idx,
const core::Tensor grid_nbs_mask,
const core::Tensor positions_init,
const core::Tensor positions_curr,
float  weight,
int  n,
int  anchor_idx 
)

◆ GetInformationJacobians() [1/3]

template bool open3d::t::pipelines::kernel::GetInformationJacobians ( int64_t  workload_idx,
const double *  target_points_ptr,
const int64_t *  correspondence_indices,
double *  jacobian_x,
double *  jacobian_y,
double *  jacobian_z 
)

◆ GetInformationJacobians() [2/3]

template bool open3d::t::pipelines::kernel::GetInformationJacobians ( int64_t  workload_idx,
const float *  target_points_ptr,
const int64_t *  correspondence_indices,
float *  jacobian_x,
float *  jacobian_y,
float *  jacobian_z 
)

◆ GetInformationJacobians() [3/3]

template<typename scalar_t >
OPEN3D_HOST_DEVICE bool open3d::t::pipelines::kernel::GetInformationJacobians ( int64_t  workload_idx,
const scalar_t *  target_points_ptr,
const int64_t *  correspondence_indices,
scalar_t *  jacobian_x,
scalar_t *  jacobian_y,
scalar_t *  jacobian_z 
)
inline

◆ GetJacobianColoredICP() [1/3]

template bool open3d::t::pipelines::kernel::GetJacobianColoredICP ( const int64_t  workload_idx,
const double *  source_points_ptr,
const double *  source_colors_ptr,
const double *  target_points_ptr,
const double *  target_normals_ptr,
const double *  target_colors_ptr,
const double *  target_color_gradients_ptr,
const int64_t *  correspondence_indices,
const double &  sqrt_lambda_geometric,
const double &  sqrt_lambda_photometric,
double *  J_G,
double *  J_I,
double &  r_G,
double &  r_I 
)

◆ GetJacobianColoredICP() [2/3]

template bool open3d::t::pipelines::kernel::GetJacobianColoredICP ( const int64_t  workload_idx,
const float *  source_points_ptr,
const float *  source_colors_ptr,
const float *  target_points_ptr,
const float *  target_normals_ptr,
const float *  target_colors_ptr,
const float *  target_color_gradients_ptr,
const int64_t *  correspondence_indices,
const float &  sqrt_lambda_geometric,
const float &  sqrt_lambda_photometric,
float *  J_G,
float *  J_I,
float &  r_G,
float &  r_I 
)

◆ GetJacobianColoredICP() [3/3]

template<typename scalar_t >
OPEN3D_HOST_DEVICE bool open3d::t::pipelines::kernel::GetJacobianColoredICP ( const int64_t  workload_idx,
const scalar_t *  source_points_ptr,
const scalar_t *  source_colors_ptr,
const scalar_t *  target_points_ptr,
const scalar_t *  target_normals_ptr,
const scalar_t *  target_colors_ptr,
const scalar_t *  target_color_gradients_ptr,
const int64_t *  correspondence_indices,
const scalar_t &  sqrt_lambda_geometric,
const scalar_t &  sqrt_lambda_photometric,
scalar_t *  J_G,
scalar_t *  J_I,
scalar_t &  r_G,
scalar_t &  r_I 
)
inline

◆ GetJacobianDopplerICP() [1/3]

template bool open3d::t::pipelines::kernel::GetJacobianDopplerICP ( const int64_t  workload_idx,
const double *  source_points_ptr,
const double *  source_dopplers_ptr,
const double *  source_directions_ptr,
const double *  target_points_ptr,
const double *  target_normals_ptr,
const int64_t *  correspondence_indices,
const double *  R_S_to_V,
const double *  r_v_to_s_in_V,
const double *  v_s_in_S,
const bool  reject_dynamic_outliers,
const double  doppler_outlier_threshold,
const double &  sqrt_lambda_geometric,
const double &  sqrt_lambda_doppler,
const double &  sqrt_lambda_doppler_by_dt,
double *  J_G,
double *  J_D,
double &  r_G,
double &  r_D 
)

◆ GetJacobianDopplerICP() [2/3]

template bool open3d::t::pipelines::kernel::GetJacobianDopplerICP ( const int64_t  workload_idx,
const float *  source_points_ptr,
const float *  source_dopplers_ptr,
const float *  source_directions_ptr,
const float *  target_points_ptr,
const float *  target_normals_ptr,
const int64_t *  correspondence_indices,
const float *  R_S_to_V,
const float *  r_v_to_s_in_V,
const float *  v_s_in_S,
const bool  reject_dynamic_outliers,
const float  doppler_outlier_threshold,
const float &  sqrt_lambda_geometric,
const float &  sqrt_lambda_doppler,
const float &  sqrt_lambda_doppler_by_dt,
float *  J_G,
float *  J_D,
float &  r_G,
float &  r_D 
)

◆ GetJacobianDopplerICP() [3/3]

template<typename scalar_t >
OPEN3D_HOST_DEVICE bool open3d::t::pipelines::kernel::GetJacobianDopplerICP ( const int64_t  workload_idx,
const scalar_t *  source_points_ptr,
const scalar_t *  source_dopplers_ptr,
const scalar_t *  source_directions_ptr,
const scalar_t *  target_points_ptr,
const scalar_t *  target_normals_ptr,
const int64_t *  correspondence_indices,
const scalar_t *  R_S_to_V,
const scalar_t *  r_v_to_s_in_V,
const scalar_t *  v_s_in_S,
const bool  reject_dynamic_outliers,
const scalar_t  doppler_outlier_threshold,
const scalar_t &  sqrt_lambda_geometric,
const scalar_t &  sqrt_lambda_doppler,
const scalar_t &  sqrt_lambda_doppler_by_dt,
scalar_t *  J_G,
scalar_t *  J_D,
scalar_t &  r_G,
scalar_t &  r_D 
)
inline

◆ GetJacobianPointToPlane() [1/3]

template bool open3d::t::pipelines::kernel::GetJacobianPointToPlane ( int64_t  workload_idx,
const double *  source_points_ptr,
const double *  target_points_ptr,
const double *  target_normals_ptr,
const int64_t *  correspondence_indices,
double *  J_ij,
double &  r 
)

◆ GetJacobianPointToPlane() [2/3]

template bool open3d::t::pipelines::kernel::GetJacobianPointToPlane ( int64_t  workload_idx,
const float *  source_points_ptr,
const float *  target_points_ptr,
const float *  target_normals_ptr,
const int64_t *  correspondence_indices,
float *  J_ij,
float &  r 
)

◆ GetJacobianPointToPlane() [3/3]

template<typename scalar_t >
OPEN3D_HOST_DEVICE bool open3d::t::pipelines::kernel::GetJacobianPointToPlane ( int64_t  workload_idx,
const scalar_t *  source_points_ptr,
const scalar_t *  target_points_ptr,
const scalar_t *  target_normals_ptr,
const int64_t *  correspondence_indices,
scalar_t *  J_ij,
scalar_t &  r 
)
inline

◆ PoseToTransformation()

core::Tensor open3d::t::pipelines::kernel::PoseToTransformation ( const core::Tensor pose)

Convert pose to the transformation matrix.

Parameters
posePose [alpha beta gamma, tx, ty, tz], a shape {6} tensor of dtype Float32, where alpha, beta, gamma are the Euler angles in the ZYX order.
Returns
Transformation, a tensor of shape {4, 4}, dtype and device same as pose.

◆ PoseToTransformationImpl()

template<typename scalar_t >
OPEN3D_HOST_DEVICE void open3d::t::pipelines::kernel::PoseToTransformationImpl ( scalar_t *  transformation_ptr,
const scalar_t *  pose_ptr 
)
inline

Shared implementation for PoseToTransformation function.

◆ PreComputeForDopplerICP() [1/3]

template void open3d::t::pipelines::kernel::PreComputeForDopplerICP ( const double *  R_S_to_V,
const double *  r_v_to_s_in_V,
const double *  w_v_in_V,
const double *  v_v_in_V,
double *  v_s_in_S 
)

◆ PreComputeForDopplerICP() [2/3]

template void open3d::t::pipelines::kernel::PreComputeForDopplerICP ( const float *  R_S_to_V,
const float *  r_v_to_s_in_V,
const float *  w_v_in_V,
const float *  v_v_in_V,
float *  v_s_in_S 
)

◆ PreComputeForDopplerICP() [3/3]

template<typename scalar_t >
OPEN3D_HOST_DEVICE void open3d::t::pipelines::kernel::PreComputeForDopplerICP ( const scalar_t *  R_S_to_V,
const scalar_t *  r_v_to_s_in_V,
const scalar_t *  w_v_in_V,
const scalar_t *  v_v_in_V,
scalar_t *  v_s_in_S 
)
inline

◆ PreComputeForDopplerICPKernelCPU()

template<typename scalar_t >
void open3d::t::pipelines::kernel::PreComputeForDopplerICPKernelCPU ( const scalar_t *  R_S_to_V,
const scalar_t *  r_v_to_s_in_V,
const scalar_t *  w_v_in_V,
const scalar_t *  v_v_in_V,
scalar_t *  v_s_in_S 
)

◆ RtToTransformation()

core::Tensor open3d::t::pipelines::kernel::RtToTransformation ( const core::Tensor R,
const core::Tensor t 
)

Convert rotation and translation to the transformation matrix.

Parameters
RRotation, a tensor of shape {3, 3}.
tTranslation, a tensor of shape {3,}.
Returns
Transformation, a tensor of shape {4, 4}, dtype and device same as R and t.

◆ TransformationToPose()

core::Tensor open3d::t::pipelines::kernel::TransformationToPose ( const core::Tensor transformation)

Convert transformation matrix to pose.

Parameters
transformation,atensor of shape {4, 4}, of dtype Float32
Returns
pose [alpha beta gamma, tx, ty, tz], a shape {6} tensor of dtype and device same as transformation, where alpha, beta, gamma are the Euler angles in the ZYX order.

◆ TransformationToPoseImpl()

template<typename scalar_t >
OPEN3D_HOST_DEVICE void open3d::t::pipelines::kernel::TransformationToPoseImpl ( scalar_t *  pose_ptr,
const scalar_t *  transformation_ptr 
)
inline

Shared implementation for TransformationToPose function. Reference method: utility::TransformMatrix4dToVector6d.

◆ UpdateSPFHFeature()

template<typename scalar_t >
OPEN3D_HOST_DEVICE void open3d::t::pipelines::kernel::UpdateSPFHFeature ( const scalar_t *  feature,
int64_t  idx,
scalar_t  hist_incr,
scalar_t *  spfh 
)