Point Cloud Library (PCL)
1.10.0
|
TsdfVolume class. More...
#include </build/pcl-CF1sPy/pcl-1.10.0+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. More... | |
using | NormalType = Normal |
Public Member Functions | |
TsdfVolume (const Eigen::Vector3i &resolution) | |
Constructor. More... | |
void | setSize (const Eigen::Vector3f &size) |
Sets Tsdf volume size for each dimension. More... | |
void | setTsdfTruncDist (float distance) |
Sets Tsdf truncation distance. More... | |
DeviceArray2D< int > | data () const |
Returns tsdf volume container that point to data in GPU memory. More... | |
const Eigen::Vector3f & | getSize () const |
Returns volume size in meters. More... | |
const Eigen::Vector3i & | getResolution () const |
Returns volume resolution. More... | |
const Eigen::Vector3f | getVoxelSize () const |
Returns volume voxel size in meters. More... | |
float | getTsdfTruncDist () const |
Returns tsdf truncation distance in meters. More... | |
void | reset () |
Resets tsdf volume data to uninitialized state. More... | |
void | fetchCloudHost (PointCloud< PointType > &cloud, bool connected26=false) const |
Generates cloud using CPU (downloads volumetric representation to CPU memory) More... | |
DeviceArray< PointType > | fetchCloud (DeviceArray< PointType > &cloud_buffer) const |
Generates cloud using GPU in connected6 mode only. More... | |
void | fetchNormals (const DeviceArray< PointType > &cloud, DeviceArray< PointType > &normals) const |
Computes normals as gradient of tsdf for given points. More... | |
void | fetchNormals (const DeviceArray< PointType > &cloud, DeviceArray< NormalType > &normals) const |
Computes normals as gradient of tsdf for given points. More... | |
void | downloadTsdf (std::vector< float > &tsdf) const |
Downloads tsdf volume from GPU memory. More... | |
void | downloadTsdfAndWeighs (std::vector< float > &tsdf, std::vector< short > &weights) const |
Downloads TSDF volume and according voxel weights from GPU memory. More... | |
TsdfVolume class.
Definition at line 54 of file tsdf_volume.h.
using pcl::gpu::TsdfVolume::ConstPtr = shared_ptr<const TsdfVolume> |
Definition at line 58 of file tsdf_volume.h.
Definition at line 62 of file tsdf_volume.h.
Supported Point Types.
Definition at line 61 of file tsdf_volume.h.
Definition at line 57 of file tsdf_volume.h.
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 65 of file tsdf_volume.h.
pcl::gpu::TsdfVolume::TsdfVolume | ( | const Eigen::Vector3i & | resolution | ) |
Constructor.
[in] | resolution | volume resolution |
DeviceArray2D<int> pcl::gpu::TsdfVolume::data | ( | ) | const |
Returns tsdf volume container that point to data in GPU memory.
void pcl::gpu::TsdfVolume::downloadTsdf | ( | std::vector< float > & | tsdf | ) | const |
Downloads tsdf volume from GPU memory.
[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]; |
void pcl::gpu::TsdfVolume::downloadTsdfAndWeighs | ( | std::vector< float > & | tsdf, |
std::vector< short > & | weights | ||
) | const |
Downloads TSDF volume and according voxel weights from GPU memory.
[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. |
DeviceArray<PointType> pcl::gpu::TsdfVolume::fetchCloud | ( | DeviceArray< PointType > & | cloud_buffer | ) | const |
Generates cloud using GPU in connected6 mode only.
[out] | cloud_buffer | buffer to store point cloud |
void pcl::gpu::TsdfVolume::fetchCloudHost | ( | PointCloud< PointType > & | cloud, |
bool | connected26 = false |
||
) | const |
Generates cloud using CPU (downloads volumetric representation to CPU memory)
[out] | cloud | output array for cloud |
[in] | connected26 | If false point cloud is extracted using 6 neighbor, otherwise 26. |
void pcl::gpu::TsdfVolume::fetchNormals | ( | const DeviceArray< PointType > & | cloud, |
DeviceArray< NormalType > & | normals | ||
) | const |
Computes normals as gradient of tsdf for given points.
[in] | cloud | Points where normals are computed. |
[out] | normals | array for normals |
void pcl::gpu::TsdfVolume::fetchNormals | ( | const DeviceArray< PointType > & | cloud, |
DeviceArray< PointType > & | normals | ||
) | const |
Computes normals as gradient of tsdf for given points.
[in] | cloud | Points where normals are computed. |
[out] | normals | array for normals |
const Eigen::Vector3i& pcl::gpu::TsdfVolume::getResolution | ( | ) | const |
Returns volume resolution.
const Eigen::Vector3f& pcl::gpu::TsdfVolume::getSize | ( | ) | const |
Returns volume size in meters.
float pcl::gpu::TsdfVolume::getTsdfTruncDist | ( | ) | const |
Returns tsdf truncation distance in meters.
const Eigen::Vector3f pcl::gpu::TsdfVolume::getVoxelSize | ( | ) | const |
Returns volume voxel size in meters.
void pcl::gpu::TsdfVolume::reset | ( | ) |
Resets tsdf volume data to uninitialized state.
void pcl::gpu::TsdfVolume::setSize | ( | const Eigen::Vector3f & | size | ) |
Sets Tsdf volume size for each dimension.
[in] | size | size of tsdf volume in meters |
void pcl::gpu::TsdfVolume::setTsdfTruncDist | ( | float | distance | ) |
Sets Tsdf truncation distance.
Must be greater than 2 * volume_voxel_size
[in] | distance | TSDF truncation distance |