Skip to content

Speed up the ray_ground_classifier

Yoan Picchi requested to merge y.picchi/AutowareAuto:master into master

Description

This batch of patches intends to speed up the execution of the ray_ground_classifier node as mentioned in issue #593 (closed).

The first patch ignore the points that are too close (less than a millimetre) to the lidar. If a pointcloud had too many of them it would make the node fail (overflowing some internal container).

The next three patches makes a few sequential improvements. It shaves 15% off of the execution time.

The final three patches add parallelisation to the node. It can be disabled in the CMakeList.txt. Added to the previous optimisations, it reduce the execution time to 35% of its base value on an octocore

Notes for Reviewer

Making the node run in parallel forced me to duplicate the exception handling at several places as OMP require the thrower and catcher to be the same thread in the same instruction block. I feel like this hurt the code readability but I couldn't find a cleaner way to do it. If the code is not clear enough, please give out suggestion on how to change it.

Checklist

  • Documentation was updated
Edited by Yoan Picchi

Merge request reports