Open3D (C++ API)
0.18.0
|
#include <Model.h>
Public Member Functions | |
Model () | |
Model (float voxel_size, int block_resolution=16, int block_count=1000, 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 () const |
void | UpdateFramePose (int frame_id, const core::Tensor &T_frame_to_world) |
void | SynthesizeModelFrame (Frame &raycast_frame, float depth_scale=1000.0, float depth_min=0.1, float depth_max=3.0, float trunc_voxel_multiplier=8.0, bool enable_color=true, float weight_threshold=-1.0) |
odometry::OdometryResult | TrackFrameToModel (const Frame &input_frame, const Frame &raycast_frame, float depth_scale=1000.0, float depth_max=3.0, float depth_diff=0.07, odometry::Method method=odometry::Method::PointToPlane, const std::vector< odometry::OdometryConvergenceCriteria > &criteria={6, 3, 1}) |
void | Integrate (const Frame &input_frame, float depth_scale=1000.0, float depth_max=3.0, float trunc_voxel_multiplier=8.0f) |
t::geometry::PointCloud | ExtractPointCloud (float weight_threshold=3.0f, int estimated_number=-1) |
t::geometry::TriangleMesh | ExtractTriangleMesh (float weight_threshold=3.0f, int estimated_number=-1) |
core::HashMap | GetHashMap () |
Get block hashmap int the VoxelBlockGrid. More... | |
Data Fields | |
t::geometry::VoxelBlockGrid | voxel_grid_ |
Maintained volumetric map. More... | |
core::Tensor | frustum_block_coords_ |
Active block coordinates from prior integration. More... | |
core::Tensor | T_frame_to_world_ |
int | frame_id_ = -1 |
Model class maintaining a volumetric grid and the current active frame's pose. Wraps functionalities including integration, ray casting, and surface reconstruction.
|
inline |
open3d::t::pipelines::slam::Model::Model | ( | float | voxel_size, |
int | block_resolution = 16 , |
||
int | block_count = 1000 , |
||
const core::Tensor & | T_init = core::Tensor::Eye(4, core::Float64, core::Device("CPU:0")) , |
||
const core::Device & | device = core::Device("CUDA:0") |
||
) |
t::geometry::PointCloud open3d::t::pipelines::slam::Model::ExtractPointCloud | ( | float | weight_threshold = 3.0f , |
int | estimated_number = -1 |
||
) |
Extract surface point cloud for visualization / model saving.
weight_threshold | Weight threshold of the TSDF voxels to prune noise. |
estimated_number | Estimation of the point cloud size, helpful for real-time visualization. |
t::geometry::TriangleMesh open3d::t::pipelines::slam::Model::ExtractTriangleMesh | ( | float | weight_threshold = 3.0f , |
int | estimated_number = -1 |
||
) |
Extract surface triangle mesh for visualization / model saving.
weight_threshold | Weight threshold of the TSDF voxels to prune noise. |
estimated_number | Estimation of the point cloud size, helpful for real-time visualization. |
|
inline |
core::HashMap open3d::t::pipelines::slam::Model::GetHashMap | ( | ) |
Get block hashmap int the VoxelBlockGrid.
void open3d::t::pipelines::slam::Model::Integrate | ( | const Frame & | input_frame, |
float | depth_scale = 1000.0 , |
||
float | depth_max = 3.0 , |
||
float | trunc_voxel_multiplier = 8.0f |
||
) |
Integrate RGBD frame into the volumetric voxel grid.
input_frame | Input RGBD frame. |
depth_scale | Scale factor to convert raw data into meter metric. |
depth_max | Depth truncation to discard points far away from the camera. |
trunc_voxel_multiplier | Truncation distance multiplier in voxel size for signed distance. For instance, –trunc_voxel_multiplier=8 with –voxel_size=0.006(m) creates a truncation distance of 0.048(m). |
void open3d::t::pipelines::slam::Model::SynthesizeModelFrame | ( | Frame & | raycast_frame, |
float | depth_scale = 1000.0 , |
||
float | depth_min = 0.1 , |
||
float | depth_max = 3.0 , |
||
float | trunc_voxel_multiplier = 8.0 , |
||
bool | enable_color = true , |
||
float | weight_threshold = -1.0 |
||
) |
Apply ray casting to obtain a synthesized model frame at the down sampled resolution.
raycast_frame | RGBD frame to fill the raycasting results. |
depth_scale | Scale factor to convert raw data into meter metric. |
depth_min | Depth where ray casting starts from. |
depth_max | Depth where ray casting stops at. |
trunc_voxel_multiplier | Truncation distance multiplier in voxel size for signed distance. For instance, –trunc_voxel_multiplier=8 with –voxel_size=0.006(m) creates a truncation distance of 0.048(m). |
enable_color | Enable color in the raycasting results. |
weight_threshold | Weight threshold of the TSDF voxels to prune noise. Use -1 to apply default logic: min(frame_id_ * 1.0f, 3.0f). |
odometry::OdometryResult open3d::t::pipelines::slam::Model::TrackFrameToModel | ( | const Frame & | input_frame, |
const Frame & | raycast_frame, | ||
float | depth_scale = 1000.0 , |
||
float | depth_max = 3.0 , |
||
float | depth_diff = 0.07 , |
||
odometry::Method | method = odometry::Method::PointToPlane , |
||
const std::vector< odometry::OdometryConvergenceCriteria > & | criteria = {6, 3, 1} |
||
) |
Track using depth odometry.
input_frame | Input RGBD frame. |
raycast_frame | RGBD frame generated by raycasting. |
depth_scale | Scale factor to convert raw data into meter metric. |
depth_max | Depth truncation to discard points far away from the camera |
method | Method used to apply RGBD odometry. |
criteria | Criteria used to define and terminate iterations. In multiscale odometry the order is from coarse to fine. Inputting a vector of iterations by default triggers the implicit conversion. |
|
inline |
int open3d::t::pipelines::slam::Model::frame_id_ = -1 |
core::Tensor open3d::t::pipelines::slam::Model::frustum_block_coords_ |
Active block coordinates from prior integration.
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.
t::geometry::VoxelBlockGrid open3d::t::pipelines::slam::Model::voxel_grid_ |
Maintained volumetric map.