Open3D (C++ API)
0.13.0
|
Namespaces | |
odometry | |
Functions | |
core::Tensor | ComputePosePointToPlane (const core::Tensor &source_points, const core::Tensor &target_points, const core::Tensor &target_normals, const pipelines::registration::CorrespondenceSet &correspondences) |
Computes pose for point to plane registration method. More... | |
std::tuple< core::Tensor, core::Tensor > | ComputeRtPointToPoint (const core::Tensor &source_points, const core::Tensor &target_points, const pipelines::registration::CorrespondenceSet &correspondences) |
Computes (R) Rotation {3,3} and (t) translation {3,} for point to point registration method. More... | |
void | ComputePosePointToPlaneCPU (const float *source_points_ptr, const float *target_points_ptr, const float *target_normals_ptr, const int64_t *correspondences_first, const int64_t *correspondences_second, const int n, core::Tensor &pose, const core::Dtype &dtype, const core::Device &device) |
void | ComputeRtPointToPointCPU (const float *source_points_ptr, const float *target_points_ptr, const int64_t *correspondences_first, const int64_t *correspondences_second, const int n, core::Tensor &R, core::Tensor &t, const core::Dtype dtype, const core::Device device) |
OPEN3D_HOST_DEVICE 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_first, const int64_t *correspondence_second, float *J_ij, float &r) |
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) |
OPEN3D_HOST_DEVICE void | matmul3x3_3x1 (float m00, float m01, float m02, float m10, float m11, float m12, float m20, float m21, float m22, float v0, float v1, float v2, float &o0, float &o1, float &o2) |
OPEN3D_HOST_DEVICE void | matmul3x3_3x3 (float a00, float a01, float a02, float a10, float a11, float a12, float a20, float a21, float a22, float b00, float b01, float b02, float b10, float b11, float b12, float b20, float b21, float b22, float &c00, float &c01, float &c02, float &c10, float &c11, float &c12, float &c20, float &c21, float &c22) |
OPEN3D_HOST_DEVICE float | det3x3 (float m00, float m01, float m02, float m10, float m11, float m12, float m20, float m21, float m22) |
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... | |
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... | |
core::Tensor open3d::t::pipelines::kernel::ComputePosePointToPlane | ( | const core::Tensor & | source_points, |
const core::Tensor & | target_points, | ||
const core::Tensor & | target_normals, | ||
const pipelines::registration::CorrespondenceSet & | correspondences | ||
) |
Computes pose for point to plane registration method.
source_points | source points indexed according to correspondences. |
target_points | target points indexed according to correspondences. |
target_normals | target normals indexed according to correspondences. |
correspondences | CorrespondenceSet. [refer to definition in /cpp/open3d/t/pipelines/registration/TransformationEstimation.h ]. |
void open3d::t::pipelines::kernel::ComputePosePointToPlaneCPU | ( | const float * | source_points_ptr, |
const float * | target_points_ptr, | ||
const float * | target_normals_ptr, | ||
const int64_t * | correspondences_first, | ||
const int64_t * | correspondences_second, | ||
const int | n, | ||
core::Tensor & | pose, | ||
const core::Dtype & | dtype, | ||
const core::Device & | device | ||
) |
std::tuple< core::Tensor, core::Tensor > open3d::t::pipelines::kernel::ComputeRtPointToPoint | ( | const core::Tensor & | source_points, |
const core::Tensor & | target_points, | ||
const pipelines::registration::CorrespondenceSet & | correspondences | ||
) |
Computes (R) Rotation {3,3} and (t) translation {3,} for point to point registration method.
source_points | source points indexed according to correspondences. |
target_points | target points indexed according to correspondences. |
correspondences | CorrespondenceSet. [refer to definition in /cpp/open3d/t/pipelines/registration/TransformationEstimation.h ]. |
void open3d::t::pipelines::kernel::ComputeRtPointToPointCPU | ( | const float * | source_points_ptr, |
const float * | target_points_ptr, | ||
const int64_t * | correspondences_first, | ||
const int64_t * | correspondences_second, | ||
const int | n, | ||
core::Tensor & | R, | ||
core::Tensor & | t, | ||
const core::Dtype | dtype, | ||
const core::Device | device | ||
) |
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.
A_reduction | 1x29 tensor storing a linear system, (21 for ![]() ![]() |
delta | 6d tensor for a se3 tangent vector. |
inlier_residual | Float residual for the inliers. |
inlier_count | Int number of inliers. |
|
inline |
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 | ||
) |
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 | ||
) |
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 | ||
) |
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 | ||
) |
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 | ||
) |
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 | ||
) |
|
inline |
|
inline |
|
inline |
core::Tensor open3d::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. |
|
inline |
Shared implementation for PoseToTransformation function.
core::Tensor open3d::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,}. |