open3d.t.pipelines.slam.Model#

class open3d.t.pipelines.slam.Model#

Volumetric model for Dense SLAM.

__init__(*args, **kwargs)#

Overloaded function.

  1. __init__(self, arg0)

    Copy constructor

Parameters:

arg0 (open3d.t.pipelines.slam.Model) –

  1. __init__(self)

  2. __init__(self, voxel_size, block_resolution=16, block_count: int = 10000, transformation=[[1 0 0 0], [0 1 0 0], [0 0 1 0], [0 0 0 1]] Tensor[shape={4, 4}, stride={4, 1}, Float64, , device=CUDA:0)

    Constructor of a VoxelBlockGrid

Parameters:
  • voxel_size (float) – The voxel size of the volume in meters.

  • (int (block_resolution) – int = 10000): Resolution of local dense voxel blocks. By default 16 is used to create 16^3 voxel blocks.

  • optional – int = 10000): Resolution of local dense voxel blocks. By default 16 is used to create 16^3 voxel blocks.

  • default=16 – int = 10000): Resolution of local dense voxel blocks. By default 16 is used to create 16^3 voxel blocks.

  • block_count – int = 10000): Resolution of local dense voxel blocks. By default 16 is used to create 16^3 voxel blocks.

  • transformation (open3d.core.Tensor, optional, default=[[1 0 0 0], [0 1 0 0], [0 0 1 0], [0 0 0 1]] Tensor[shape={4, 4}, stride={4, 1}, Float64) – A 4x4 3D transformation matrix. ()

  • (open3d.core.Device (device) – 0): The CPU or CUDA device used for the object.

  • optional – 0): The CPU or CUDA device used for the object.

  • default=CUDA – 0): The CPU or CUDA device used for the object.

extract_pointcloud(self, weight_threshold=3.0, estimated_number=-1)#

Extract point cloud from the volumetric model.

Parameters:
  • weight_threshold (float, optional, default=3.0) – Weight threshold to filter outlier voxel blocks.

  • estimated_number (int, optional, default=-1) – Estimated number of surface points. Use -1 if no estimation is available.

Returns:

open3d.t.geometry.PointCloud

extract_trianglemesh(self, weight_threshold=3.0, estimated_number=-1)#

Extract triangle mesh from the volumetric model.

Parameters:
  • weight_threshold (float, optional, default=3.0) – Weight threshold to filter outlier voxel blocks.

  • estimated_number (int, optional, default=-1) – Estimated number of surface points. Use -1 if no estimation is available.

Returns:

open3d.t.geometry.TriangleMesh

get_current_frame_pose(self: open3d.cpu.pybind.t.pipelines.slam.Model) open3d.cpu.pybind.core.Tensor#
get_hashmap(self: open3d.cpu.pybind.t.pipelines.slam.Model) open3d.cpu.pybind.core.HashMap#

Get the underlying hash map from 3D coordinates to voxel blocks.

integrate(self, input_frame, depth_scale=1000.0, depth_max=3.0, trunc_voxel_multiplier=8.0)#

Integrate an input frame to a volume.

Parameters:
  • input_frame (open3d.t.pipelines.slam.Frame) – The frame that contains raw depth and optionally images with the same size from the input.

  • depth_scale (float, optional, default=1000.0) – The scale factor to convert raw depth into meters.

  • depth_max (float, optional, default=3.0) – The max clipping depth to filter noisy observations too far.

  • trunc_voxel_multiplier (float, optional, default=8.0) – 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).

Returns:

None

synthesize_model_frame(self, model_frame, depth_scale=1000.0, depth_min=0.1, depth_max=3.0, trunc_voxel_multiplier=8.0, enable_color=False, weight_threshold=-1.0)#

Synthesize frame from the volumetric model using ray casting.

Parameters:
  • model_frame (open3d.t.pipelines.slam.Frame) – The frame that contains ray casted depth and optionally color from the volumetric model.

  • depth_scale (float, optional, default=1000.0) – The scale factor to convert raw depth into meters.

  • depth_min (float, optional, default=0.1) – The min clipping depth.

  • depth_max (float, optional, default=3.0) – The max clipping depth to filter noisy observations too far.

  • trunc_voxel_multiplier (float, optional, default=8.0) – 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 (bool, optional, default=False) –

  • weight_threshold (float, optional, default=-1.0) – Weight threshold to filter outlier voxel blocks.

Returns:

None

track_frame_to_model(self, input_frame, model_frame, depth_scale=1000.0, depth_max=3.0, depth_diff=0.07, method=<Method.PointToPlane: 0>, criteria=[OdometryConvergenceCriteria[max_iteration=6, relative_rmse=1.000000e-06, relative_fitness=1.000000e-06]., OdometryConvergenceCriteria[max_iteration=3, relative_rmse=1.000000e-06, relative_fitness=1.000000e-06]., OdometryConvergenceCriteria[max_iteration=1, relative_rmse=1.000000e-06, relative_fitness=1.000000e-06].])#

Track input frame against raycasted frame from model.

Parameters:
  • input_frame (open3d.t.pipelines.slam.Frame) – The frame that contains raw depth and optionally images with the same size from the input.

  • model_frame (open3d.t.pipelines.slam.Frame) – The frame that contains ray casted depth and optionally color from the volumetric model.

  • depth_scale (float, optional, default=1000.0) – The scale factor to convert raw depth into meters.

  • depth_max (float, optional, default=3.0) – The max clipping depth to filter noisy observations too far.

  • depth_diff (float, optional, default=0.07) –

  • (open3d.t.pipelines.odometry.Method (method) – 0>)

  • optional – 0>)

  • default=<Method.PointToPlane – 0>)

  • criteria (list[open3d.t.pipelines.odometry.OdometryConvergenceCriteria], optional, default=[OdometryConvergenceCriteria[max_iteration=6, relative_rmse=1.000000e-06, relative_fitness=1.000000e-06]., OdometryConvergenceCriteria[max_iteration=3, relative_rmse=1.000000e-06, relative_fitness=1.000000e-06]., OdometryConvergenceCriteria[max_iteration=1, relative_rmse=1.000000e-06, relative_fitness=1.000000e-06].]) –

Returns:

open3d.t.pipelines.odometry.OdometryResult

update_frame_pose(self: open3d.cpu.pybind.t.pipelines.slam.Model, arg0: int, arg1: open3d.cpu.pybind.core.Tensor) None#
property frame_id#

Get the current frame index in a sequence.

property frustum_block_coords#

Active block coordinates from prior integration

property transformation_frame_to_world#

Get the 4x4 transformation matrix from the current frame to the world frame.

property voxel_grid#

Get the maintained VoxelBlockGrid.