Class MergedTsdfIntegrator

Inheritance Relationships

Base Type

Class Documentation

class MergedTsdfIntegrator : public voxblox::TsdfIntegratorBase

Uses ray bundling to improve integration speed, points which lie in the same voxel are “merged” into a single point.

Raycasting and updating then proceeds as normal. Fast for large voxels, with minimal loss of information.

Public Functions

MergedTsdfIntegrator(const Config &config, Layer<TsdfVoxel> *layer)
void integratePointCloud(const Transformation &T_G_C, const Pointcloud &points_C, const Colors &colors, const bool freespace_points = false)

Integrates the given point infomation into the TSDF.

NOT thread safe.

Parameters
  • freespace_points: if true points will only be integrated up to the truncation distance. Used when we are given a minimum distance to a point, rather then exact distance. This is useful for clearing out free space.

Protected Functions

void bundleRays(const Transformation &T_G_C, const Pointcloud &points_C, const bool freespace_points, ThreadSafeIndex *index_getter, LongIndexHashMapType<AlignedVector<size_t>>::type *voxel_map, LongIndexHashMapType<AlignedVector<size_t>>::type *clear_map)
void integrateVoxel(const Transformation &T_G_C, const Pointcloud &points_C, const Colors &colors, bool enable_anti_grazing, bool clearing_ray, const std::pair<GlobalIndex, AlignedVector<size_t>> &kv, const LongIndexHashMapType<AlignedVector<size_t>>::type &voxel_map)
void integrateVoxels(const Transformation &T_G_C, const Pointcloud &points_C, const Colors &colors, bool enable_anti_grazing, bool clearing_ray, const LongIndexHashMapType<AlignedVector<size_t>>::type &voxel_map, const LongIndexHashMapType<AlignedVector<size_t>>::type &clear_map, size_t thread_idx)
void integrateRays(const Transformation &T_G_C, const Pointcloud &points_C, const Colors &colors, bool enable_anti_grazing, bool clearing_ray, const LongIndexHashMapType<AlignedVector<size_t>>::type &voxel_map, const LongIndexHashMapType<AlignedVector<size_t>>::type &clear_map)