A ROS voxel layer using OpenVDB for efficient 3D environment representation with temporal decay, replacing voxel_grid for navigation.
Spatio-Temporal Voxel Layer (STVL) is a ROS package that provides a high-performance 3D voxel-based environment representation for robot navigation. It replaces the standard voxel_grid layer by leveraging OpenVDB for sparse volumetric storage and introducing temporal decay to handle dynamic scenes efficiently. This allows robots to use multiple depth cameras or 3D lidars with significantly lower CPU overhead while maintaining accurate costmaps.
ROS developers and robotics engineers building navigation systems for robots operating in dynamic, large-scale environments like warehouses, retail stores, or factories, especially those using RGBD cameras or 3D lidars.
Developers choose STVL for its dramatic performance improvements over the standard voxel layer, its ability to handle dense 3D sensor data in real-time, and its intelligent temporal decay mechanism that adapts costmaps to changing environments without manual tuning.
A new voxel layer leveraging modern 3D graphics tools to modernize navigation environmental representations
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Reduces CPU usage from 80-110% to 20-50% when processing dense sensor streams, as shown in trials with six 7Hz stereo RGBD cameras on an i7 processor.
Uses OpenVDB for hierarchical data structures, enabling memory-efficient representation of large environments (e.g., a 60,000 sq.ft. store at 6.45MB with 0.05m resolution).
Offers configurable decay models (linear, exponential, persistent) with frustum-based acceleration to clear stale voxels adaptively, avoiding costly raytracing in dynamic scenes.
Supports simultaneous input from multiple depth cameras or 3D lidars, with built-in filters (voxel, passthrough) to manage computational overhead in real-time navigation.
The mapping mode lacks probabilistic marking, recording sensor data directly without noise modeling, which limits its use for robust 3D localization as admitted in the README.
Requires manual dependency management (OpenVDB, TBB) and has known issues on Ubuntu 20.04, needing LD_PRELOAD workarounds that complicate deployment and add setup complexity.
Tightly coupled with ROS and the navigation stack, making it unsuitable for non-ROS frameworks and adding integration overhead for custom or lightweight robotic setups.