nav2_voxel_grid
voxel_grid provides an implementation of an efficient 3D voxel grid. The occupancy grid can support 3 different representations for the state of a cell: marked, free, or unknown. Due to the underlying implementation relying on bitwise and and or integer operations, the voxel grid only supports 16 different levels per voxel column. However, this limitation yields raytracing and cell marking performance in the grid comparable to standard 2D structures making it quite fast compared to most 3D structures.
Links
README
Nav2 Voxel Grid
The nav2_voxel_grid
package contains the VoxelGrid used by the Voxel Layer
inside of nav2_costmap_2d
. The voxel grid itself is simply a 2D char pointer array of the map size with bit locations corresponding to voxel values (free, unknown, occupied , etc).
It is branched out as a separate package for use in other applications where a dense voxel grid representation may be useful. It also contains implementations of 3D raycasting.
ROS1 Comparison
This package is a direct port to ROS2 for use in the voxel layer.