|
23 | 23 | from diagnostic_msgs.msg import DiagnosticStatus
|
24 | 24 | from geometry_msgs.msg import PoseStamped
|
25 | 25 | from geometry_msgs.msg import TransformStamped
|
| 26 | +import lanelet2 # noqa |
| 27 | +from lanelet2_extension_python.utility.query import getLaneletsWithinRange |
26 | 28 | import numpy as np
|
27 | 29 | from perception_eval.config import SensingEvaluationConfig
|
28 | 30 | from perception_eval.manager import SensingEvaluationManager
|
|
48 | 50 | from driving_log_replayer.obstacle_segmentation import get_sensing_frame_config
|
49 | 51 | from driving_log_replayer.obstacle_segmentation import ObstacleSegmentationResult
|
50 | 52 | from driving_log_replayer.obstacle_segmentation import ObstacleSegmentationScenario
|
| 53 | +from driving_log_replayer.obstacle_segmentation import set_ego_point |
51 | 54 | from driving_log_replayer.obstacle_segmentation import transform_proposed_area
|
52 | 55 | import driving_log_replayer.perception_eval_conversions as eval_conversions
|
53 | 56 | from driving_log_replayer_analyzer.data import convert_str_to_dist_type
|
@@ -80,7 +83,12 @@ def __init__(self, name: str) -> None:
|
80 | 83 | "lanelet2_map.osm",
|
81 | 84 | ).as_posix()
|
82 | 85 | self.__road_lanelets = road_lanelets_from_file(map_path)
|
83 |
| - |
| 86 | + if self._scenario.Evaluation.Conditions.NonDetection is not None: |
| 87 | + self.__search_range = ( |
| 88 | + self._scenario.Evaluation.Conditions.NonDetection.ProposedArea.search_range() |
| 89 | + ) |
| 90 | + else: |
| 91 | + self.__search_range = 0.0 |
84 | 92 | self.declare_parameter("vehicle_model", "")
|
85 | 93 | self.__vehicle_model = (
|
86 | 94 | self.get_parameter("vehicle_model").get_parameter_value().string_value
|
@@ -320,7 +328,13 @@ def get_non_detection_area(
|
320 | 328 | )
|
321 | 329 | # get intersection
|
322 | 330 | marker_id = 0
|
323 |
| - for road in self.__road_lanelets: |
| 331 | + ego_point = set_ego_point(map_to_baselink) |
| 332 | + near_road_lanelets = getLaneletsWithinRange( |
| 333 | + self.__road_lanelets, |
| 334 | + ego_point, |
| 335 | + self.__search_range, |
| 336 | + ) |
| 337 | + for road in near_road_lanelets: |
324 | 338 | poly_lanelet = to_shapely_polygon(road)
|
325 | 339 | i_area = poly_lanelet.intersection(proposed_area_in_map)
|
326 | 340 | if not i_area.is_empty:
|
|
0 commit comments