Loading [MathJax]/extensions/TeX/AMSsymbols.js
Open3D (C++ API)  0.14.1
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Public Member Functions | Data Fields
open3d::t::pipelines::slam::Model Class Reference

#include <Model.h>

Public Member Functions

 Model ()
 
 Model (float voxel_size, int block_resolution, int block_count, const core::Tensor &T_init=core::Tensor::Eye(4, core::Float64, core::Device("CPU:0")), const core::Device &device=core::Device("CUDA:0"))
 
core::Tensor GetCurrentFramePose ()
 
void UpdateFramePose (int frame_id, const core::Tensor &T_frame_to_world)
 
void SynthesizeModelFrame (Frame &raycast_frame, float depth_scale, float depth_min, float depth_max, bool enable_color=true)
 
odometry::OdometryResult TrackFrameToModel (const Frame &input_frame, const Frame &raycast_frame, float depth_scale, float depth_max, float depth_diff)
 
void Integrate (const Frame &input_frame, float depth_scale, float depth_max)
 
t::geometry::PointCloud ExtractPointCloud (int estimated_number=-1, float weight_threshold=3.0f)
 
t::geometry::TriangleMesh ExtractTriangleMesh (int estimated_number=-1, float weight_threshold=3.0f)
 
core::HashMap GetHashMap ()
 Get block hashmap int the TSDFVoxelGrid. More...
 

Data Fields

t::geometry::VoxelBlockGrid voxel_grid_
 Maintained volumetric map. More...
 
core::Tensor frustum_block_coords_
 
core::Tensor T_frame_to_world_
 
int frame_id_ = -1
 

Detailed Description

Model class maintaining a volumetric grid and the current active frame's pose. Wraps functionalities including integration, ray casting, and surface reconstruction.

Constructor & Destructor Documentation

◆ Model() [1/2]

open3d::t::pipelines::slam::Model::Model ( )
inline

◆ Model() [2/2]

open3d::t::pipelines::slam::Model::Model ( float  voxel_size,
int  block_resolution,
int  block_count,
const core::Tensor T_init = core::Tensor::Eye(4,                                                         core::Float64,                                                         core::Device("CPU:0")),
const core::Device device = core::Device("CUDA:0") 
)

Member Function Documentation

◆ ExtractPointCloud()

t::geometry::PointCloud open3d::t::pipelines::slam::Model::ExtractPointCloud ( int  estimated_number = -1,
float  weight_threshold = 3.0f 
)

Extract surface point cloud for visualization / model saving.

Parameters
estimated_numberEstimation of the point cloud size, helpful for real-time visualization.
weight_thresholdWeight threshold of the TSDF voxels to prune noise.
Returns
Extracted point cloud.

◆ ExtractTriangleMesh()

t::geometry::TriangleMesh open3d::t::pipelines::slam::Model::ExtractTriangleMesh ( int  estimated_number = -1,
float  weight_threshold = 3.0f 
)

Extract surface triangle mesh for visualization / model saving.

Parameters
estimated_numberEstimation of the point cloud size, helpful for real-time visualization.
weight_thresholdWeight threshold of the TSDF voxels to prune noise.
Returns
Extracted point cloud.

◆ GetCurrentFramePose()

core::Tensor open3d::t::pipelines::slam::Model::GetCurrentFramePose ( )
inline

◆ GetHashMap()

core::HashMap open3d::t::pipelines::slam::Model::GetHashMap ( )

Get block hashmap int the TSDFVoxelGrid.

◆ Integrate()

void open3d::t::pipelines::slam::Model::Integrate ( const Frame input_frame,
float  depth_scale,
float  depth_max 
)

Integrate RGBD frame into the volumetric voxel grid.

Parameters
input_frameInput RGBD frame.
depth_scaleScale factor to convert raw data into meter metric.
depth_maxDepth truncation to discard points far away from the camera.

◆ SynthesizeModelFrame()

void open3d::t::pipelines::slam::Model::SynthesizeModelFrame ( Frame raycast_frame,
float  depth_scale,
float  depth_min,
float  depth_max,
bool  enable_color = true 
)

Apply ray casting to obtain a synthesized model frame at the down sampled resolution.

Parameters
raycast_frameRGBD frame to fill the raycasting results.
depth_scaleScale factor to convert raw data into meter metric.
depth_minDepth where ray casting starts from.
depth_maxDepth where ray casting stops at.

◆ TrackFrameToModel()

odometry::OdometryResult open3d::t::pipelines::slam::Model::TrackFrameToModel ( const Frame input_frame,
const Frame raycast_frame,
float  depth_scale,
float  depth_max,
float  depth_diff 
)

Track using PointToPlane depth odometry. TODO(wei): support hybrid or intensity methods.

Parameters
input_frameInput RGBD frame.
raycast_frameRGBD frame generated by raycasting.
depth_scaleScale factor to convert raw data into meter metric.
depth_maxDepth truncation to discard points far away from the camera.

◆ UpdateFramePose()

void open3d::t::pipelines::slam::Model::UpdateFramePose ( int  frame_id,
const core::Tensor T_frame_to_world 
)
inline

Field Documentation

◆ frame_id_

int open3d::t::pipelines::slam::Model::frame_id_ = -1

◆ frustum_block_coords_

core::Tensor open3d::t::pipelines::slam::Model::frustum_block_coords_

◆ T_frame_to_world_

core::Tensor open3d::t::pipelines::slam::Model::T_frame_to_world_

T_frame_to_model, maintained tracking state in a (4, 4), Float64 Tensor on CPU.

◆ voxel_grid_

t::geometry::VoxelBlockGrid open3d::t::pipelines::slam::Model::voxel_grid_

Maintained volumetric map.


The documentation for this class was generated from the following files: