SteveMacenski/spatio_temporal_voxel_layer
A new voxel layer leveraging modern 3D graphics tools to modernize navigation environmental representations
What it solves
This project provides a highly efficient 3D voxel representation of a robot's environment, serving as a drop-in replacement for the standard voxel_grid in ROS. It solves the problem of high CPU overhead when processing dense 3D sensor data (like from multiple depth cameras or LiDAR) and the difficulty of managing dynamic environments where obstacles appear and disappear over time.
How it works
STVL leverages the OpenVDB library to maintain a sparse volumetric data structure, which allows it to store and search 3D world space more efficiently than traditional grids. It introduces a temporal decay mechanism where voxels expire based on configurable functions (linear or exponential). To prevent the need for costly raytracing, it uses sensor-specific frustum geometry (cubical for depth cameras, hourglass for 3D LiDAR) to accelerate the decay of voxels that are no longer being observed but should be.
Who it’s for
It is designed for robotics developers using the ROS navigation stack who need to integrate 3D perception into local and global costmaps, particularly for robots operating in dynamic environments like warehouses, hospitals, and retail stores.
Highlights
- Low Compute Overhead: Significantly reduces CPU usage compared to standard voxel layers, enabling the use of multiple dense sensors (e.g., 7 depth cameras) with minimal core usage.
- Temporal Decay: Configurable voxel expiration to handle dynamic obstacles without naive clearing.
- Frustum-Based Clearing: Accelerates voxel decay based on the sensor's field of view to maintain map accuracy.
- Sparse Storage: Uses OpenVDB to maintain large-scale maps (e.g., 60,000 sq.ft.) with very low memory footprints.
- Flexible Mapping: Supports real-time 3D mapping and saving maps in
.vdbformat.
Related
- Project
- Project
- Project
- Project
- Project