|
Autoware.Auto
|
|
The RayGroundClassifier operates on Rays individually. This presupposes that ray information is provided to the module. While this can be true for scanning LiDAR, in practice, this assumption is not always available depending on interface definitions, driver implementation and LiDAR scan patterns.
As such, a component that generates rays from an unstructured point clouds for use in ground classification is needed to allow the RayGroundClassifier to work more generally.
The ray aggregator generally has three operations:
The second and third operations were separated out from a single operation to generally make the API more concrete and immediately understandable.
This object in general operates in the following manner:
Finally, the criterion being used currently is the number of points in a given ray. This was for the sake of simplicity. When a full scan is received, all rays are considered ready, regardless of the number of points in a ray (if the number of points is positive).
See autoware::perception::filters::ray_ground_classifier::RayAggregator for more details.
In general, the RayAggregator is fairly straight forward.
However, there is one piece of complexity in its implementation:
Each ray internally has three states:
NOT_READYREADYRESETWhere the last state is set when a ray is seen, and is used to reset the state of a ray upon the next insertion to the ray.
TBD by security expert.
See original Autoware implementation, where the RayAggregator is implicitly defined: CPFL's Autoware
More exotic "scan ready" criterion may be added and/or evaluated, e.g.: