Loading...
Searching...
No Matches
pcl::gpu::TsdfVolume Class Reference

TsdfVolume class. More...

`#include </build/pcl-uIWyNl/pcl-1.15.1+dfsg/gpu/kinfu/include/pcl/gpu/kinfu/tsdf_volume.h>`

## Public Types

enum | { DEFAULT_CLOUD_BUFFER_SIZE = 10 * 1000 * 1000 }
| Default buffer size for fetching cloud. More...
using | Ptr = shared_ptr<TsdfVolume>
using | ConstPtr = shared_ptr<const TsdfVolume>
using | PointType = PointXYZ
| Supported Point Types.
using | NormalType = Normal

## Public Member Functions

| TsdfVolume (const Eigen::Vector3i &resolution)
| Constructor.
void | setSize (const Eigen::Vector3f &size)
| Sets Tsdf volume size for each dimension.
void | setTsdfTruncDist (float distance)
| Sets Tsdf truncation distance.
DeviceArray2D< int > | data () const
| Returns tsdf volume container that point to data in GPU memory.
const Eigen::Vector3f & | getSize () const
| Returns volume size in meters.
const Eigen::Vector3i & | getResolution () const
| Returns volume resolution.
const Eigen::Vector3f | getVoxelSize () const
| Returns volume voxel size in meters.
float | getTsdfTruncDist () const
| Returns tsdf truncation distance in meters.
void | reset ()
| Resets tsdf volume data to uninitialized state.
void | fetchCloudHost (PointCloud< PointType > &cloud, bool connected26=false) const
| Generates cloud using CPU (downloads volumetric representation to CPU memory).
DeviceArray< PointType > | fetchCloud (DeviceArray< PointType > &cloud_buffer) const
| Generates cloud using GPU in connected6 mode only.
void | fetchNormals (const DeviceArray< PointType > &cloud, DeviceArray< PointType > &normals) const
| Computes normals as gradient of tsdf for given points.
void | fetchNormals (const DeviceArray< PointType > &cloud, DeviceArray< NormalType > &normals) const
| Computes normals as gradient of tsdf for given points.
void | downloadTsdf (std::vector< float > &tsdf) const
| Downloads tsdf volume from GPU memory.
void | downloadTsdfAndWeighs (std::vector< float > &tsdf, std::vector< short > &weights) const
| Downloads TSDF volume and according voxel weights from GPU memory.

## Detailed Description

TsdfVolume class.

Author
  Anatoly Baskeheev, Itseez Ltd, (mynam.nosp@m.e.my.nosp@m.surna.nosp@m.me@m.nosp@m.ycomp.nosp@m.any..nosp@m.com)

Definition at line 55 of file tsdf_volume.h.

## Member Typedef Documentation

## ConstPtr

using pcl::gpu::TsdfVolume::ConstPtr = shared_ptr<const TsdfVolume>

Definition at line 59 of file tsdf_volume.h.

## NormalType

using pcl::gpu::TsdfVolume::NormalType = Normal

Definition at line 63 of file tsdf_volume.h.

## PointType

using pcl::gpu::TsdfVolume::PointType = PointXYZ

Supported Point Types.

Definition at line 62 of file tsdf_volume.h.

## Ptr

using pcl::gpu::TsdfVolume::Ptr = shared_ptr<TsdfVolume>

Definition at line 58 of file tsdf_volume.h.

## Member Enumeration Documentation

## anonymous enum

anonymous enum

Default buffer size for fetching cloud.

It limits max number of points that can be extracted

Enumerator
DEFAULT_CLOUD_BUFFER_SIZE |

Definition at line 66 of file tsdf_volume.h.

## Constructor & Destructor Documentation

## TsdfVolume()

pcl::gpu::TsdfVolume::TsdfVolume | ( | const Eigen::Vector3i & | resolution | ) |

Constructor.

Parameters

  [in] | resolution | volume resolution

## Member Function Documentation

## data()

DeviceArray2D< int > pcl::gpu::TsdfVolume::data | ( |  | ) | const

Returns tsdf volume container that point to data in GPU memory.

## downloadTsdf()

void pcl::gpu::TsdfVolume::downloadTsdf | ( | std::vector< float > & | tsdf | ) | const

Downloads tsdf volume from GPU memory.

Parameters

  [out] | tsdf | Array with tsdf values. if volume resolution is 512x512x512, so for voxel (x,y,z) tsdf value can be retrieved as volume[512*512*z + 512*y + x];

## downloadTsdfAndWeighs()

void pcl::gpu::TsdfVolume::downloadTsdfAndWeighs | ( | std::vector< float > & | tsdf,
|  | std::vector< short > & | weights ) const

Downloads TSDF volume and according voxel weights from GPU memory.

Parameters

  [out] | tsdf | Array with tsdf values. if volume resolution is 512x512x512, so for voxel (x,y,z) tsdf value can be retrieved as volume[512*512*z + 512*y + x];
  [out] | weights | Array with tsdf voxel weights. Same size and access index as for tsdf. A weight of 0 indicates the voxel was never used.

References PCL_MAKE_ALIGNED_OPERATOR_NEW.

## fetchCloud()

DeviceArray< PointType > pcl::gpu::TsdfVolume::fetchCloud | ( | DeviceArray< PointType > & | cloud_buffer | ) | const

Generates cloud using GPU in connected6 mode only.

Parameters

  [out] | cloud_buffer | buffer to store point cloud

Returns
  DeviceArray with disabled reference counting that points to filled part of cloud_buffer.

## fetchCloudHost()

void pcl::gpu::TsdfVolume::fetchCloudHost | ( | PointCloud< PointType > & | cloud,
|  | bool | connected26 = false ) const

Generates cloud using CPU (downloads volumetric representation to CPU memory).

Parameters

  [out] | cloud | output array for cloud
  [in] | connected26 | If false point cloud is extracted using 6 neighbor, otherwise 26.

## fetchNormals() [1/2]

void pcl::gpu::TsdfVolume::fetchNormals | ( | const DeviceArray< PointType > & | cloud,
|  | DeviceArray< NormalType > & | normals ) const

Computes normals as gradient of tsdf for given points.

Parameters

  [in] | cloud | Points where normals are computed.
  [out] | normals | array for normals

## fetchNormals() [2/2]

void pcl::gpu::TsdfVolume::fetchNormals | ( | const DeviceArray< PointType > & | cloud,
|  | DeviceArray< PointType > & | normals ) const

Computes normals as gradient of tsdf for given points.

Parameters

  [in] | cloud | Points where normals are computed.
  [out] | normals | array for normals

## getResolution()

const Eigen::Vector3i & pcl::gpu::TsdfVolume::getResolution | ( |  | ) | const

Returns volume resolution.

## getSize()

const Eigen::Vector3f & pcl::gpu::TsdfVolume::getSize | ( |  | ) | const

Returns volume size in meters.

## getTsdfTruncDist()

float pcl::gpu::TsdfVolume::getTsdfTruncDist | ( |  | ) | const

Returns tsdf truncation distance in meters.

## getVoxelSize()

const Eigen::Vector3f pcl::gpu::TsdfVolume::getVoxelSize | ( |  | ) | const

Returns volume voxel size in meters.

## reset()

void pcl::gpu::TsdfVolume::reset | ( |  | ) |

Resets tsdf volume data to uninitialized state.

## setSize()

void pcl::gpu::TsdfVolume::setSize | ( | const Eigen::Vector3f & | size | ) |

Sets Tsdf volume size for each dimension.

Parameters

  [in] | size | size of tsdf volume in meters

## setTsdfTruncDist()

void pcl::gpu::TsdfVolume::setTsdfTruncDist | ( | float | distance | ) |

Sets Tsdf truncation distance.

Must be greater than 2 * volume_voxel_size

Parameters

  [in] | distance | TSDF truncation distance

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

- /build/pcl-uIWyNl/pcl-1.15.1+dfsg/gpu/kinfu/include/pcl/gpu/kinfu/tsdf_volume.h