Spatio-Temporal Voxel Layer

Hi!

I’m proud to announce the first beta of a working new replacement for the ROS voxel_layer and voxel_grid. It uses a number of new technologies and techniques that I think prove effective for a number of indoor and outdoor robotics solutions.

We use OpenVDB as the efficient data structure and access of the voxel grid and use “frustum acceleration” to clear points within the depth camera measurement frustum of a depth sensor rather than raycasting (in development, current support for immediate clearing, recommended use at 1-3hz. Will be released soon and would be effective around 20hz.) and global voxel decay allowing for decaying old information in highly dynamic environments (outdoors, retail, warehouse, etc).

Check out the project below with full configuration guides. I have benchmarked this on my robot at being 1/3 the CPU usage of the traditional voxel_layer. I have also used it for generating 3D maps of 60,000 sq.ft. environments with ease. Videos are in the readme.

As always, looking for collaborators to make this awesome! Feel free to shoot me an email, my address is in the package.xml. I hope to support 3D lidars and optional raycasting solutions for sensors that it makes computational sense for (i.e. planar lidars).

1 Like

This is awesome!

I recently started using voxel_grid and I am looking forward for testing your alternative implementation.

Davide

Awesome! Let me know if you have any issues. A colleague PRed the acceleration work and I’m working on independently evaluating before landing it. For now, instantaneous decay is configured out of the box and due to its nature, it’s most effective at lower rates.

Steve