Class EsdfOccIntegrator¶
- Defined in File esdf_occ_integrator.h
Class Documentation¶
-
class
EsdfOccIntegrator
¶ Builds an ESDF layer out of a given occupancy layer.
Public Functions
-
EsdfOccIntegrator
(const Config &config, Layer<OccupancyVoxel> *occ_layer, Layer<EsdfVoxel> *esdf_layer)¶
-
void
updateFromOccLayerBatch
()¶ Fixed is overloaded as occupied in this case.
Only batch operations are currently supported for the occupancy map.
-
void
updateFromOccBlocks
(const BlockIndexList &occ_blocks)¶
-
void
processOpenSet
()¶
-
void
getNeighborsAndDistances
(const BlockIndex &block_index, const VoxelIndex &voxel_index, AlignedVector<VoxelKey> *neighbors, AlignedVector<float> *distances, AlignedVector<Eigen::Vector3i> *directions) const¶ Uses 26-connectivity and quasi-Euclidean distances.
Directions is the direction that the neighbor voxel lives in. If you need the direction FROM the neighbor voxel TO the current voxel, take negative of the given direction.
-
void
getNeighbor
(const BlockIndex &block_index, const VoxelIndex &voxel_index, const Eigen::Vector3i &direction, BlockIndex *neighbor_block_index, VoxelIndex *neighbor_voxel_index) const¶
Protected Attributes
-
Layer<OccupancyVoxel> *
occ_layer_
¶
-
BucketQueue<VoxelKey>
open_
¶ Open Queue for incremental updates.
Contains global voxel indices for the ESDF layer.
-
AlignedQueue<VoxelKey>
raise_
¶ Raise set for updates; these are values that used to be in the fixed frontier and now have a higher value, or their children which need to have their values invalidated.
-
size_t
esdf_voxels_per_side_
¶
-
FloatingPoint
esdf_voxel_size_
¶
-
struct
Config
¶ Public Members
-
FloatingPoint
max_distance_m
= 2.0¶ Maximum distance to calculate the actual distance to.
Any values above this will be set to default_distance_m.
-
FloatingPoint
default_distance_m
= 2.0¶ Default distance set for unknown values and values > max_distance_m.
-
int
num_buckets
= 20¶ Number of buckets for the bucketed priority queue.
-
FloatingPoint
-