![]() |
ACloudViewer
3.9.4
A Modern Library for 3D Data Processing
|
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, const utility::optional< core::Tensor > &mask, const utility::optional< core::Tensor > &map_info_idx_to_point_idx) |
| 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, const utility::optional< core::Tensor > &mask=utility::nullopt, const utility::optional< core::Tensor > &map_batch_info_idx_to_point_idx=utility::nullopt) |
| template<typename scalar_t > | |
| CLOUDVIEWER_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 > | |
| CLOUDVIEWER_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 ¤t_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::Tensor > | 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. 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... | |
| template<typename scalar_t , typename func_t > | |
| static void | ComputePosePointToPlaneKernelCPU (const scalar_t *source_points_ptr, const scalar_t *target_points_ptr, const scalar_t *target_normals_ptr, const int64_t *correspondence_indices, const int n, scalar_t *global_sum, func_t GetWeightFromRobustKernel) |
| 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) |
| template<typename scalar_t , typename funct_t > | |
| static void | ComputePoseColoredICPKernelCPU (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, const int n, scalar_t *global_sum, funct_t GetWeightFromRobustKernel) |
| 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 , typename funct1_t , typename funct2_t > | |
| static void | ComputePoseDopplerICPKernelCPU (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, const int n, scalar_t *global_sum, funct1_t GetWeightFromRobustKernelFirst, funct2_t GetWeightFromRobustKernelSecond) |
| 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) |
| template<typename scalar_t > | |
| static void | Get3x3SxyLinearSystem (const scalar_t *source_points_ptr, const scalar_t *target_points_ptr, const int64_t *correspondence_indices, const int &n, const core::Dtype &dtype, const core::Device &device, core::Tensor &Sxy, core::Tensor &target_mean, core::Tensor &source_mean, int &inlier_count) |
| 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 > | |
| CLOUDVIEWER_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 > | |
| CLOUDVIEWER_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 > | |
| CLOUDVIEWER_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 > | |
| CLOUDVIEWER_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 > | |
| CLOUDVIEWER_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... | |
| template<typename scalar_t > | |
| static void | PoseToTransformationDevice (core::Tensor &transformation, const core::Tensor &pose, const core::Device::DeviceType &device_type) |
| core::Tensor | PoseToTransformation (const core::Tensor &pose) |
| Convert pose to the transformation matrix. More... | |
| template<typename scalar_t > | |
| static void | TransformationToPoseDevice (core::Tensor &pose, const core::Tensor &transformation, const core::Device::DeviceType &device_type) |
| 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 > | |
| CLOUDVIEWER_HOST_DEVICE void | PoseToTransformationImpl (scalar_t *transformation_ptr, const scalar_t *pose_ptr) |
| Shared implementation for PoseToTransformation function. More... | |
| template<typename scalar_t > | |
| CLOUDVIEWER_HOST_DEVICE void | TransformationToPoseImpl (scalar_t *pose_ptr, const scalar_t *transformation_ptr) |
| void cloudViewer::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, | ||
| const utility::optional< core::Tensor > & | mask, | ||
| const utility::optional< core::Tensor > & | map_info_idx_to_point_idx | ||
| ) |
Definition at line 18 of file Feature.cpp.
References AssertTensorShape, ComputeFPFHFeatureCPU(), CUDA_CALL, cloudViewer::core::Tensor::GetLength(), cloudViewer::core::Tensor::GetShape(), cloudViewer::utility::optional< T >::has_value(), cloudViewer::core::Int32, cloudViewer::core::Int64, cloudViewer::core::IsDevice::IsCPU(), LogDebug, normals, points, cloudViewer::core::SmallVectorBase< Size_T >::size(), size, cloudViewer::core::Tensor::To(), and cloudViewer::utility::optional< T >::value().
Referenced by cloudViewer::t::pipelines::registration::ComputeFPFHFeature().
| void cloudViewer::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, | ||
| const utility::optional< core::Tensor > & | mask = utility::nullopt, |
||
| const utility::optional< core::Tensor > & | map_batch_info_idx_to_point_idx = utility::nullopt |
||
| ) |
Definition at line 110 of file FeatureImpl.h.
References cloudViewer::core::Tensor::Arange(), CLOUDVIEWER_DEVICE, DISPATCH_FLOAT_DTYPE_TO_TEMPLATE, cloudViewer::core::Tensor::Empty(), cloudViewer::core::Tensor::Full(), cloudViewer::core::Tensor::GetDataPtr(), cloudViewer::core::Tensor::GetItem(), cloudViewer::core::Tensor::GetLength(), cloudViewer::core::TensorKey::Index(), cloudViewer::core::Tensor::IndexSet(), cloudViewer::core::Int64, LogError, cloudViewer::core::Tensor::NonZero(), normal, normals, cloudViewer::core::ParallelFor(), points, and cloudViewer::core::Tensor::Zeros().
Referenced by ComputeFPFHFeature().
| core::Tensor cloudViewer::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.
| target_positions | The target point positions. |
| correspondence_indices | Tensor 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. |
Definition at line 280 of file Registration.cpp.
References ComputeInformationMatrixCPU(), cloudViewer::core::Tensor::Contiguous(), CUDA_CALL, cloudViewer::core::Tensor::Empty(), cloudViewer::core::Float64, cloudViewer::core::Tensor::GetDevice(), cloudViewer::core::Tensor::GetDtype(), cloudViewer::core::IsDevice::IsCPU(), cloudViewer::core::IsDevice::IsCUDA(), and LogError.
Referenced by cloudViewer::t::pipelines::registration::GetInformationMatrix().
| void cloudViewer::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 | ||
| ) |
Definition at line 640 of file RegistrationCPU.cpp.
References ComputeInformationMatrixKernelCPU(), DISPATCH_FLOAT_DTYPE_TO_TEMPLATE, cloudViewer::core::Float64, cloudViewer::core::Tensor::GetDataPtr(), cloudViewer::core::Tensor::GetLength(), cloudViewer::core::Tensor::To(), and cloudViewer::core::Tensor::Zeros().
Referenced by ComputeInformationMatrix().
| void cloudViewer::t::pipelines::kernel::ComputeInformationMatrixKernelCPU | ( | const scalar_t * | target_points_ptr, |
| const int64_t * | correspondence_indices, | ||
| const int | n, | ||
| scalar_t * | global_sum | ||
| ) |
Definition at line 584 of file RegistrationCPU.cpp.
References result.
Referenced by ComputeInformationMatrixCPU().
| CLOUDVIEWER_HOST_DEVICE void cloudViewer::t::pipelines::kernel::ComputePairFeature | ( | const scalar_t * | p1, |
| const scalar_t * | n1, | ||
| const scalar_t * | p2, | ||
| const scalar_t * | n2, | ||
| scalar_t * | feature | ||
| ) |
Definition at line 25 of file FeatureImpl.h.
References cloudViewer::core::linalg::kernel::cross_3x1(), cloudViewer::core::linalg::kernel::dot_3x1(), and fabs().
| core::Tensor cloudViewer::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.
| source_positions | source point positions of Float32 or Float64 dtype. |
| source_colors | source point colors of same dtype as source point positions. |
| target_positions | target point positions of same dtype as source point positions. |
| target_normals | target point normals of same dtype as source point positions. |
| target_colors | target point colors of same dtype as source point positions. |
| target_color_gradients | targets point color gradients of same dtype as source point positions. |
| correspondence_indices | Tensor 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. |
| kernel | statistical 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. |
Definition at line 54 of file Registration.cpp.
References ComputePoseColoredICPCPU(), cloudViewer::core::Tensor::Contiguous(), CUDA_CALL, cloudViewer::core::Tensor::Empty(), cloudViewer::core::Dtype::Float64, cloudViewer::core::Tensor::GetDevice(), cloudViewer::core::Tensor::GetDtype(), cloudViewer::core::IsDevice::IsCPU(), cloudViewer::core::IsDevice::IsCUDA(), LogDebug, and LogError.
Referenced by cloudViewer::t::pipelines::registration::TransformationEstimationForColoredICP::ComputeTransformation().
| void cloudViewer::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 | ||
| ) |
Definition at line 211 of file RegistrationCPU.cpp.
References DecodeAndSolve6x6(), DISPATCH_FLOAT_DTYPE_TO_TEMPLATE, DISPATCH_ROBUST_KERNEL_FUNCTION, cloudViewer::core::Tensor::GetLength(), cloudViewer::t::pipelines::registration::RobustKernel::scaling_parameter_, cloudViewer::t::pipelines::registration::RobustKernel::shape_parameter_, cloudViewer::t::pipelines::registration::RobustKernel::type_, and cloudViewer::core::Tensor::Zeros().
Referenced by ComputePoseColoredICP().
|
static |
Definition at line 132 of file RegistrationCPU.cpp.
References result.
| core::Tensor cloudViewer::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.
| source_points | source point positions of Float32 or Float64 dtype. |
| source_dopplers | source point Dopplers of same dtype as source point positions. |
| source_directions | source point direction of same dtype as source point positions. |
| target_points | target point positions of same dtype as source point positions. |
| target_normals | target point normals of same dtype as source point positions. |
| correspondence_indices | Tensor 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_transform | The current pose estimate of ICP. |
| transform_vehicle_to_sensor | The 4x4 extrinsic transformation matrix between the vehicle and the sensor frames. |
| iteration | current iteration number of the ICP algorithm. |
| period | Time period (in seconds) between the source and the target point clouds. |
| lambda_doppler | weight for the Doppler objective. |
| reject_dynamic_outliers | Whether or not to prune dynamic point outlier correspondences. |
| doppler_outlier_threshold | Correspondences with Doppler error greater than this threshold are rejected from optimization. |
| outlier_rejection_min_iteration | Number of iterations of ICP after which outlier rejection is enabled. |
| geometric_robust_loss_min_iteration | Number of iterations of ICP after which robust loss for geometric term kicks in. |
| doppler_robust_loss_min_iteration | Number of iterations of ICP after which robust loss for Doppler term kicks in. |
| geometric_kernel | statistical robust kernel for outlier rejection. |
| doppler_kernel | statistical robust kernel for outlier rejection. |
Definition at line 98 of file Registration.cpp.
References ComputePoseDopplerICPCPU(), cloudViewer::core::Tensor::Contiguous(), cloudViewer::core::Device::CPU, cloudViewer::core::Device::CUDA, CUDA_CALL, cloudViewer::core::Tensor::Empty(), cloudViewer::core::Dtype::Float64, cloudViewer::core::Tensor::GetDevice(), cloudViewer::core::Tensor::GetDtype(), cloudViewer::core::Tensor::GetItem(), cloudViewer::core::Device::GetType(), cloudViewer::core::Inverse(), cloudViewer::t::pipelines::registration::L2Loss, LogDebug, LogError, cloudViewer::core::Tensor::Neg(), cloudViewer::core::TensorKey::Slice(), cloudViewer::t::geometry::kernel::image::To(), cloudViewer::core::Tensor::To(), and TransformationToPose().
Referenced by cloudViewer::t::pipelines::registration::TransformationEstimationForDopplerICP::ComputeTransformation().
| void cloudViewer::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 | ||
| ) |
Definition at line 354 of file RegistrationCPU.cpp.
References DecodeAndSolve6x6(), DISPATCH_DUAL_ROBUST_KERNEL_FUNCTION, DISPATCH_FLOAT_DTYPE_TO_TEMPLATE, cloudViewer::core::Tensor::GetDataPtr(), cloudViewer::core::Tensor::GetLength(), cloudViewer::t::pipelines::registration::RobustKernel::scaling_parameter_, cloudViewer::t::pipelines::registration::RobustKernel::type_, and cloudViewer::core::Tensor::Zeros().
Referenced by ComputePoseDopplerICP().
|
static |
Definition at line 255 of file RegistrationCPU.cpp.
References result.
| core::Tensor cloudViewer::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.
| source_positions | source point positions of Float32 or Float64 dtype. |
| target_positions | target point positions of same dtype as source point positions. |
| target_normals | target point normals of same dtype as source point positions. |
| correspondence_indices | Tensor 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. |
| kernel | statistical robust kernel for outlier rejection. |
Definition at line 19 of file Registration.cpp.
References ComputePosePointToPlaneCPU(), cloudViewer::core::Tensor::Contiguous(), CUDA_CALL, cloudViewer::core::Tensor::Empty(), cloudViewer::core::Float64, cloudViewer::core::Tensor::GetDevice(), cloudViewer::core::Tensor::GetDtype(), cloudViewer::core::IsDevice::IsCPU(), cloudViewer::core::IsDevice::IsCUDA(), LogDebug, and LogError.
Referenced by cloudViewer::t::pipelines::registration::TransformationEstimationPointToPlane::ComputeTransformation().
| void cloudViewer::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 | ||
| ) |
Definition at line 99 of file RegistrationCPU.cpp.
References DecodeAndSolve6x6(), DISPATCH_FLOAT_DTYPE_TO_TEMPLATE, DISPATCH_ROBUST_KERNEL_FUNCTION, cloudViewer::core::Tensor::GetDataPtr(), cloudViewer::core::Tensor::GetLength(), cloudViewer::t::pipelines::registration::RobustKernel::scaling_parameter_, cloudViewer::t::pipelines::registration::RobustKernel::shape_parameter_, cloudViewer::t::pipelines::registration::RobustKernel::type_, and cloudViewer::core::Tensor::Zeros().
Referenced by ComputePosePointToPlane().
|
static |
Definition at line 30 of file RegistrationCPU.cpp.
References result.
| std::tuple< core::Tensor, core::Tensor > cloudViewer::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.
| source_positions | source point positions of Float32 or Float64 dtype. |
| target_positions | target point positions of same dtype as source point positions. |
| correspondence_indices | Tensor 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. |
Definition at line 205 of file Registration.cpp.
References cloudViewer::core::Tensor::Arange(), ComputeRtPointToPointCPU(), cloudViewer::core::Tensor::Contiguous(), cloudViewer::core::Tensor::Det(), cloudViewer::core::Tensor::Div_(), cloudViewer::core::Tensor::Eye(), cloudViewer::core::Float64, cloudViewer::core::Tensor::GetDevice(), cloudViewer::core::Tensor::GetDtype(), cloudViewer::core::Tensor::GetLength(), cloudViewer::core::Tensor::GetShape(), cloudViewer::core::Tensor::IndexGet(), cloudViewer::core::Int64, cloudViewer::core::IsDevice::IsCPU(), cloudViewer::core::IsDevice::IsCUDA(), LogError, cloudViewer::core::Tensor::Matmul(), cloudViewer::core::Tensor::Mean(), cloudViewer::core::Tensor::Ne(), cloudViewer::core::Tensor::Reshape(), cloudViewer::core::Tensor::SVD(), cloudViewer::core::Tensor::T(), cloudViewer::t::geometry::kernel::image::To(), and cloudViewer::core::Tensor::To().
Referenced by cloudViewer::t::pipelines::registration::TransformationEstimationPointToPoint::ComputeTransformation().
| void cloudViewer::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 | ||
| ) |
Definition at line 547 of file RegistrationCPU.cpp.
References DISPATCH_FLOAT_DTYPE_TO_TEMPLATE, cloudViewer::core::Tensor::Eye(), Get3x3SxyLinearSystem(), cloudViewer::core::Tensor::GetDataPtr(), cloudViewer::core::Tensor::GetLength(), cloudViewer::core::Tensor::Matmul(), cloudViewer::core::Tensor::Reshape(), cloudViewer::core::Tensor::SVD(), cloudViewer::core::Tensor::T(), and cloudViewer::core::Tensor::To().
Referenced by ComputeRtPointToPoint().
| void cloudViewer::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.
| A_reduction | 1x29 tensor storing a linear system, (21 for matrix, 6 for , 1 for residual, 1 for inlier count). |
| delta | 6d tensor for a se3 tangent vector. |
| inlier_residual | Float residual for the inliers. |
| inlier_count | Int number of inliers. |
Definition at line 145 of file TransformationConverter.cpp.
References AssertTensorShape, cloudViewer::core::Tensor::Empty(), cloudViewer::core::Tensor::Fill(), cloudViewer::core::Float64, cloudViewer::core::Tensor::GetDataPtr(), LogError, cloudViewer::core::Tensor::Solve(), and cloudViewer::core::Tensor::To().
Referenced by cloudViewer::t::pipelines::kernel::odometry::ComputeOdometryResultHybridCPU(), cloudViewer::t::pipelines::kernel::odometry::ComputeOdometryResultIntensityCPU(), cloudViewer::t::pipelines::kernel::odometry::ComputeOdometryResultPointToPlaneCPU(), ComputePoseColoredICPCPU(), ComputePoseDopplerICPCPU(), and ComputePosePointToPlaneCPU().
| void cloudViewer::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 | ||
| ) |
Definition at line 18 of file FillInLinearSystem.cpp.
References AssertTensorDtype, FillInRigidAlignmentTermCPU(), cloudViewer::core::Float32, cloudViewer::core::Tensor::GetDevice(), cloudViewer::core::IsDevice::IsCPU(), cloudViewer::core::IsDevice::IsCUDA(), and LogError.
Referenced by cloudViewer::t::pipelines::slac::FillInRigidAlignmentTerm().
| void cloudViewer::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 | ||
| ) |
Definition at line 19 of file FillInLinearSystemImpl.h.
References abs(), CLOUDVIEWER_DEVICE, cloudViewer::core::Float32, cloudViewer::core::Tensor::GetDataPtr(), cloudViewer::core::Tensor::IndexGet(), cloudViewer::core::Tensor::IndexSet(), cloudViewer::core::Int64, LogError, cloudViewer::core::ParallelFor(), cloudViewer::core::Tensor::View(), and cloudViewer::core::Tensor::Zeros().
Referenced by FillInRigidAlignmentTerm().
| void cloudViewer::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 | ||
| ) |
Definition at line 69 of file FillInLinearSystem.cpp.
References AssertTensorDtype, FillInSLACAlignmentTermCPU(), cloudViewer::core::Float32, cloudViewer::core::Tensor::GetDevice(), cloudViewer::core::IsDevice::IsCPU(), cloudViewer::core::IsDevice::IsCUDA(), and LogError.
Referenced by cloudViewer::t::pipelines::slac::FillInSLACAlignmentTerm().
| void cloudViewer::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 | ||
| ) |
Definition at line 133 of file FillInLinearSystemImpl.h.
References abs(), CLOUDVIEWER_DEVICE, LogError, and cloudViewer::core::ParallelFor().
Referenced by FillInSLACAlignmentTerm().
| void cloudViewer::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 | ||
| ) |
Definition at line 133 of file FillInLinearSystem.cpp.
References AssertTensorDtype, FillInSLACRegularizerTermCPU(), cloudViewer::core::Float32, cloudViewer::core::Tensor::GetDevice(), cloudViewer::core::IsDevice::IsCPU(), cloudViewer::core::IsDevice::IsCUDA(), and LogError.
Referenced by cloudViewer::t::pipelines::slac::FillInSLACRegularizerTerm().
| void cloudViewer::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 | ||
| ) |
Definition at line 280 of file FillInLinearSystemImpl.h.
References CLOUDVIEWER_DEVICE, cloudViewer::core::linalg::kernel::det3x3(), cloudViewer::core::linalg::kernel::matmul3x3_3x1(), cloudViewer::core::linalg::kernel::matmul3x3_3x3(), cloudViewer::core::ParallelFor(), cloudViewer::core::linalg::kernel::svd3x3(), and cloudViewer::core::linalg::kernel::transpose3x3_().
Referenced by FillInSLACRegularizerTerm().
|
static |
Definition at line 424 of file RegistrationCPU.cpp.
Referenced by ComputeRtPointToPointCPU().
| template bool cloudViewer::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 | ||
| ) |
| template bool cloudViewer::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 | ||
| ) |
|
inline |
Definition at line 479 of file RegistrationImpl.h.
| template bool cloudViewer::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 | ||
| ) |
| template bool cloudViewer::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 | ||
| ) |
|
inline |
Definition at line 207 of file RegistrationImpl.h.
| template bool cloudViewer::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 | ||
| ) |
| template bool cloudViewer::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 | ||
| ) |
|
inline |
Definition at line 349 of file RegistrationImpl.h.
References abs(), cloudViewer::core::linalg::kernel::cross_3x1(), cloudViewer::core::linalg::kernel::dot_3x1(), and cloudViewer::core::linalg::kernel::matmul3x3_3x1().
| template bool cloudViewer::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 | ||
| ) |
| template bool cloudViewer::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 | ||
| ) |
|
inline |
Definition at line 153 of file RegistrationImpl.h.
| core::Tensor cloudViewer::t::pipelines::kernel::PoseToTransformation | ( | const core::Tensor & | pose | ) |
Convert pose to the transformation matrix.
| pose | Pose [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. |
Definition at line 73 of file TransformationConverter.cpp.
References AssertTensorDtypes, AssertTensorShape, cloudViewer::core::Tensor::Contiguous(), DISPATCH_FLOAT_DTYPE_TO_TEMPLATE, cloudViewer::core::Float32, cloudViewer::core::Float64, cloudViewer::core::Tensor::GetDevice(), cloudViewer::core::Tensor::GetDtype(), cloudViewer::core::Tensor::GetItem(), cloudViewer::core::Tensor::SetItem(), cloudViewer::core::TensorKey::Slice(), and cloudViewer::core::Tensor::Zeros().
Referenced by cloudViewer::t::pipelines::odometry::ComputeOdometryResultHybrid(), cloudViewer::t::pipelines::odometry::ComputeOdometryResultIntensity(), cloudViewer::t::pipelines::odometry::ComputeOdometryResultPointToPlane(), cloudViewer::t::pipelines::registration::TransformationEstimationPointToPlane::ComputeTransformation(), cloudViewer::t::pipelines::registration::TransformationEstimationForColoredICP::ComputeTransformation(), cloudViewer::t::pipelines::registration::TransformationEstimationForDopplerICP::ComputeTransformation(), and cloudViewer::t::pipelines::slac::UpdatePoses().
|
static |
Definition at line 52 of file TransformationConverter.cpp.
References cloudViewer::core::Device::CPU, cloudViewer::core::Device::CUDA, cloudViewer::core::Tensor::GetDataPtr(), cloudViewer::core::Tensor::GetDevice(), and LogError.
|
inline |
Shared implementation for PoseToTransformation function.
Definition at line 23 of file TransformationConverterImpl.h.
| template void cloudViewer::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 | ||
| ) |
| template void cloudViewer::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 | ||
| ) |
|
inline |
Definition at line 319 of file RegistrationImpl.h.
References cloudViewer::core::linalg::kernel::cross_3x1(), and cloudViewer::core::linalg::kernel::matmul3x3_3x1().
Referenced by PreComputeForDopplerICPKernelCPU().
| void cloudViewer::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 | ||
| ) |
Definition at line 345 of file RegistrationCPU.cpp.
References PreComputeForDopplerICP().
| core::Tensor cloudViewer::t::pipelines::kernel::RtToTransformation | ( | const core::Tensor & | R, |
| const core::Tensor & | t | ||
| ) |
Convert rotation and translation to the transformation matrix.
| R | Rotation, a tensor of shape {3, 3}. |
| t | Translation, a tensor of shape {3,}. |
Definition at line 25 of file TransformationConverter.cpp.
References AssertTensorDevice, AssertTensorDtype, AssertTensorDtypes, AssertTensorShape, cloudViewer::core::Float32, cloudViewer::core::Float64, cloudViewer::core::Tensor::GetDevice(), cloudViewer::core::Tensor::GetDtype(), cloudViewer::core::Tensor::Reshape(), cloudViewer::core::Tensor::SetItem(), cloudViewer::core::TensorKey::Slice(), and cloudViewer::core::Tensor::Zeros().
Referenced by cloudViewer::t::pipelines::registration::TransformationEstimationPointToPoint::ComputeTransformation().
| core::Tensor cloudViewer::t::pipelines::kernel::TransformationToPose | ( | const core::Tensor & | transformation | ) |
Convert transformation matrix to pose.
| transformation,a | tensor of shape {4, 4}, of dtype Float32 |
Definition at line 119 of file TransformationConverter.cpp.
References AssertTensorDtypes, AssertTensorShape, cloudViewer::core::Tensor::Contiguous(), DISPATCH_FLOAT_DTYPE_TO_TEMPLATE, cloudViewer::core::Float32, cloudViewer::core::Float64, cloudViewer::core::Tensor::GetDevice(), cloudViewer::core::Tensor::GetDtype(), cloudViewer::core::Tensor::GetItem(), cloudViewer::core::Tensor::SetItem(), cloudViewer::core::TensorKey::Slice(), and cloudViewer::core::Tensor::Zeros().
Referenced by ComputePoseDopplerICP().
|
static |
Definition at line 99 of file TransformationConverter.cpp.
References cloudViewer::core::Device::CPU, cloudViewer::core::Device::CUDA, cloudViewer::core::Tensor::GetDataPtr(), and LogError.
|
inline |
Shared implementation for TransformationToPose function. Reference method: utility::TransformMatrix4dToVector6d.
Definition at line 47 of file TransformationConverterImpl.h.
| CLOUDVIEWER_HOST_DEVICE void cloudViewer::t::pipelines::kernel::UpdateSPFHFeature | ( | const scalar_t * | feature, |
| int64_t | idx, | ||
| scalar_t | hist_incr, | ||
| scalar_t * | spfh | ||
| ) |
Definition at line 88 of file FeatureImpl.h.
References cloudViewer::utility::floor(), M_PI, and max().