SAFER-Splat: A Control Barrier Function for Safe Navigation with Online Gaussian Splatting Maps
<|reference_start|>SAFER-Splat: A Control Barrier Function for Safe Navigation with Online Gaussian Splatting Maps: SAFER-Splat (Simultaneous Action Filtering and Environment Reconstruction) is a real-time, scalable, and minimally invasive action filter, based on control barrier functions, for safe robotic navigation in a detailed map constructed at runtime using Gaussian Splatting (GSplat). We propose a novel Control Barrier Function (CBF) that not only induces safety with respect to all Gaussian primitives in the scene, but when synthesized into a controller, is capable of processing hundreds of thousands of Gaussians while maintaining a minimal memory footprint and operating at 15 Hz during online Splat training. Of the total compute time, a small fraction of it consumes GPU resources, enabling uninterrupted training. The safety layer is minimally invasive, correcting robot actions only when they are unsafe. To showcase the safety filter, we also introduce SplatBridge, an open-source software package built with ROS for real-time GSplat mapping for robots. We demonstrate the safety and robustness of our pipeline first in simulation, where our method is 20-50x faster, safer, and less conservative than competing methods based on neural radiance fields. Further, we demonstrate simultaneous GSplat mapping and safety filtering on a drone hardware platform using only on-board perception. We verify that under teleoperation a human pilot cannot invoke a collision. Our videos and codebase can be found at https://chengine.github.io/safer-splat.<|reference_end|>
@article{chen2024safer-splat:,
    title={SAFER-Splat: A Control Barrier Function for Safe Navigation with Online
  Gaussian Splatting Maps},
    author={Timothy Chen, Aiden Swann, Javier Yu, Ola Shorinwa, Riku Murai, Monroe
  Kennedy III, Mac Schwager},
    journal={arXiv preprint arXiv:2409.09868},
    year={2024},
    archivePrefix={arXiv},
    eprint={2409.09868},
    primaryClass={cs.RO}
}