Filter output of euclidean cluster node based on drivable area
Description
Create a standalone node drivable_area_object_filter
under perception/filter
that will filter out objects clustered by the euclidean cluster node depending on how much they intersect the drivable area.
Purpose
Currently the parking planner is unable to do a proper head-in park due to obstacles being clustered in close proximity to the parking space. As these clusters are not on the drivable area, the clusters can be filtered out using the drivable area generated in the parking planner.
Desired Behavior
Node will be able to determine what percentage of the object overlaps with the determined drivable area. Objects will be segregated depending on the percentage overlap to the drivable area. Those with lower percentages will be discarded and will not be an object considered by the collision estimator.
- Subscribe to the
/planning/global_route
topics and query the lanelet2_map_provider for the map - Get primitive ID for each section of the route and get the polygon from the lanelet2_map_provider
- Convert the clusters from the euclidean cluster algorithm into objects which can be used by CGAL to determine the percentage overlap
- Segregate the objects depending on some percentage overlap threshold
- Publish the two subsets of clusters
Definition of Done
-
Method for calculating the drivable area ( parking_planner::coalesce_drivable_areas
) can be moved to a more common location such asHAD_map_utils
-
Create the node cluster_filter
-
Ensure downstream processes subscribe to the correct cluster output