ethz-asl / wavemap

Fast, efficient and accurate multi-resolution, multi-sensor 3D occupancy mapping
https://ethz-asl.github.io/wavemap/
BSD 3-Clause "New" or "Revised" License
457 stars 41 forks source link

Optimize integrators, Rviz plugin and add usage examples #37

Closed victorreijgwart closed 1 year ago

victorreijgwart commented 1 year ago

Description

This PR significantly improves the performance of wavemap's measurement integrators and the Rviz plugin. It also introduces several new features, such as utility functions for accelerated map queries and trilinear interpolation in the wavemap library, the option to set the logging verbosity through ROS params in wavemap's ROS server, and options to load and display maps directly from files in the Rviz plugin. Finally, the documentation has been extended with code usage examples.

Type of change

Detailed summary

New features

Improvements

Documentation

Bug fixes

The code optimizations were mostly performed by analyzing the assembly code of the most runtime critical functions, as identified through frame and sampling-based profiling.

Testing

Correctness

Performance

All the changes were validated on an AMD laptop (Ryzen 7 PRO 6850U CPU with integrated graphics) and an Intel desktop (i9-9900K CPU and Nvidia RTX 2080 Ti GPU). The changes speed up:

Checklist:

victorreijgwart commented 1 year ago

/prepare-release minor

victorreijgwart commented 1 year ago

Thanks for reviewing @LionelOtt!