Open3D (C++ API)  0.17.0
Data Structures | Typedefs | Functions
open3d::t::pipelines::slac Namespace Reference

Data Structures

class  ControlGrid
 
struct  SLACOptimizerParams
 
struct  SLACDebugOption
 

Typedefs

using PoseGraph = open3d::pipelines::registration::PoseGraph
 

Functions

void FillInRigidAlignmentTerm (Tensor &AtA, Tensor &Atb, Tensor &residual, const std::vector< std::string > &fnames, const PoseGraph &pose_graph, const SLACOptimizerParams &params, const SLACDebugOption &debug_option)
 
void FillInSLACAlignmentTerm (Tensor &AtA, Tensor &Atb, Tensor &residual, ControlGrid &ctr_grid, const std::vector< std::string > &fnames, const PoseGraph &pose_graph, const SLACOptimizerParams &params, const SLACDebugOption &debug_option)
 
void FillInSLACRegularizerTerm (Tensor &AtA, Tensor &Atb, Tensor &residual, ControlGrid &ctr_grid, int n_frags, const SLACOptimizerParams &params, const SLACDebugOption &debug_option)
 
void SaveCorrespondencesForPointClouds (const std::vector< std::string > &fnames_processed, const PoseGraph &fragment_pose_graph, const SLACOptimizerParams &params=SLACOptimizerParams(), const SLACDebugOption &debug_option=SLACDebugOption())
 Read pose graph containing loop closures and odometry to compute putative correspondences between pairs of pointclouds. More...
 
std::pair< PoseGraph, ControlGridRunSLACOptimizerForFragments (const std::vector< std::string > &fragment_filenames, const PoseGraph &fragment_pose_graph, const SLACOptimizerParams &params=SLACOptimizerParams(), const SLACDebugOption &debug_option=SLACDebugOption())
 Simultaneous Localization and Calibration: Self-Calibration of Consumer Depth Cameras, CVPR 2014 Qian-Yi Zhou and Vladlen Koltun Estimate a shared control grid for all fragments for scene reconstruction, implemented in https://github.com/qianyizh/ElasticReconstruction. More...
 
PoseGraph RunRigidOptimizerForFragments (const std::vector< std::string > &fragment_filenames, const PoseGraph &fragment_pose_graph, const SLACOptimizerParams &params=SLACOptimizerParams(), const SLACDebugOption &debug_option=SLACDebugOption())
 Extended ICP to simultaneously align multiple point clouds with dense pairwise point-to-plane distances. More...
 
void VisualizePointCloudCorrespondences (const t::geometry::PointCloud &tpcd_i, const t::geometry::PointCloud &tpcd_j, const core::Tensor correspondences, const core::Tensor &T_ij)
 Visualize pairs with correspondences. More...
 
void VisualizePointCloudEmbedding (t::geometry::PointCloud &tpcd_param, ControlGrid &ctr_grid, bool show_lines)
 
void VisualizePointCloudDeformation (const geometry::PointCloud &tpcd_param, ControlGrid &ctr_grid)
 
void VisualizeGridDeformation (ControlGrid &cgrid)
 

Typedef Documentation

◆ PoseGraph

Function Documentation

◆ FillInRigidAlignmentTerm()

void open3d::t::pipelines::slac::FillInRigidAlignmentTerm ( Tensor AtA,
Tensor Atb,
Tensor residual,
const std::vector< std::string > &  fnames,
const PoseGraph pose_graph,
const SLACOptimizerParams params,
const SLACDebugOption debug_option 
)

◆ FillInSLACAlignmentTerm()

void open3d::t::pipelines::slac::FillInSLACAlignmentTerm ( Tensor AtA,
Tensor Atb,
Tensor residual,
ControlGrid ctr_grid,
const std::vector< std::string > &  fnames,
const PoseGraph pose_graph,
const SLACOptimizerParams params,
const SLACDebugOption debug_option 
)

◆ FillInSLACRegularizerTerm()

void open3d::t::pipelines::slac::FillInSLACRegularizerTerm ( Tensor AtA,
Tensor Atb,
Tensor residual,
ControlGrid ctr_grid,
int  n_frags,
const SLACOptimizerParams params,
const SLACDebugOption debug_option 
)

◆ RunRigidOptimizerForFragments()

PoseGraph open3d::t::pipelines::slac::RunRigidOptimizerForFragments ( const std::vector< std::string > &  fragment_filenames,
const PoseGraph fragment_pose_graph,
const SLACOptimizerParams params = SLACOptimizerParams(),
const SLACDebugOption debug_option = SLACDebugOption() 
)

Extended ICP to simultaneously align multiple point clouds with dense pairwise point-to-plane distances.

Parameters
fragment_fnamesVector of filenames for pointcloud fragments.
fragment_pose_graphLegacy PoseGraph for pointcloud fragments.
paramsParameters to tune in rigid optimization.
debug_optionDebug options.
Returns
Updated pose graph.

◆ RunSLACOptimizerForFragments()

std::pair< PoseGraph, ControlGrid > open3d::t::pipelines::slac::RunSLACOptimizerForFragments ( const std::vector< std::string > &  fragment_filenames,
const PoseGraph fragment_pose_graph,
const SLACOptimizerParams params = SLACOptimizerParams(),
const SLACDebugOption debug_option = SLACDebugOption() 
)

Simultaneous Localization and Calibration: Self-Calibration of Consumer Depth Cameras, CVPR 2014 Qian-Yi Zhou and Vladlen Koltun Estimate a shared control grid for all fragments for scene reconstruction, implemented in https://github.com/qianyizh/ElasticReconstruction.

Parameters
fragment_filenamesVector of filenames for pointcloud fragments.
fragment_pose_graphLegacy PoseGraph for pointcloud fragments.
paramsParameters to tune in SLAC.
debug_optionDebug options.
Returns
pair of optimized registration::PoseGraph and slac::ControlGrid.

◆ SaveCorrespondencesForPointClouds()

void open3d::t::pipelines::slac::SaveCorrespondencesForPointClouds ( const std::vector< std::string > &  fnames_processed,
const PoseGraph fragment_pose_graph,
const SLACOptimizerParams params = SLACOptimizerParams(),
const SLACDebugOption debug_option = SLACDebugOption() 
)

Read pose graph containing loop closures and odometry to compute putative correspondences between pairs of pointclouds.

Parameters
fnames_processedVector of filenames for processed pointcloud fragments.
fragment_pose_graphLegacy PoseGraph for pointcloud fragments.
paramsParameters to tune in finding correspondences.
debug_optionSLACDebugOption containing the debug options.

◆ VisualizeGridDeformation()

void open3d::t::pipelines::slac::VisualizeGridDeformation ( ControlGrid cgrid)

◆ VisualizePointCloudCorrespondences()

void open3d::t::pipelines::slac::VisualizePointCloudCorrespondences ( const t::geometry::PointCloud tpcd_i,
const t::geometry::PointCloud tpcd_j,
const core::Tensor  correspondences,
const core::Tensor T_ij 
)

Visualize pairs with correspondences.

Parameters
tpcd_i,sourcepoint cloud.
tpcd_j,targetpoint cloud.
correspondencesPutative correspondence between tcpd_i and tpcd_j.
T_ijTransformation from tpcd_i to tpcd_j. Use T_j.Inverse() @ T_i (node transformation in a pose graph) to check global correspondences , and T_ij (edge transformation) to check pairwise correspondences.

◆ VisualizePointCloudDeformation()

void open3d::t::pipelines::slac::VisualizePointCloudDeformation ( const geometry::PointCloud tpcd_param,
ControlGrid ctr_grid 
)

◆ VisualizePointCloudEmbedding()

void open3d::t::pipelines::slac::VisualizePointCloudEmbedding ( t::geometry::PointCloud tpcd_param,
ControlGrid ctr_grid,
bool  show_lines 
)