Open3D (C++ API)  0.19.0
Loading...
Searching...
No Matches
open3d::t::pipelines::kernel Namespace Reference

Namespaces

namespace  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.
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.
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.
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.
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.
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.
core::Tensor PoseToTransformation (const core::Tensor &pose)
 Convert pose to the transformation matrix.
core::Tensor TransformationToPose (const core::Tensor &transformation)
 Convert transformation matrix to pose.
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.
template<typename scalar_t>
OPEN3D_HOST_DEVICE void PoseToTransformationImpl (scalar_t *transformation_ptr, const scalar_t *pose_ptr)
 Shared implementation for PoseToTransformation function.
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 )