21 : mEgoVehicleMap(egoVehicleMap)
37 bool leftBorderIsDangerous =
false;
38 bool rightBorderIsDangerous =
false;
39 bool vehicleTriggeredLeftResponse =
false;
40 bool vehicleTriggeredRightResponse =
false;
41 bool vehicleTriggeredLongitudinalResponse =
false;
44 if (::ad::rss::state::isDangerous(state))
47 auto dangerousSitationIter
50 [&state](::ad::rss::core::RelativeConstellation
const &constellation) {
51 return constellation.constellation_id == state.constellation_id;
55 if (dangerousSitationIter->object_id == ::ad::rss::structured::getRightBorderObjectId())
57 rightBorderIsDangerous =
true;
58 if (state.lateral_state_right.rss_state_information.current_distance == ::ad::physics::Distance(0.))
60 getLogger()->debug(
"RssRouteChecker::analyseResultOfRoute[{}:{}] right border is crossed",
66 else if (dangerousSitationIter->object_id == ::ad::rss::structured::getLeftBorderObjectId())
68 leftBorderIsDangerous =
true;
69 if (state.lateral_state_left.rss_state_information.current_distance == ::ad::physics::Distance(0.))
71 getLogger()->debug(
"RssRouteChecker::analyseResultOfRoute[{}:{}] left border is crossed",
80 if (state.longitudinal_state.response != ::ad::rss::state::LongitudinalResponse::None)
82 vehicleTriggeredLongitudinalResponse =
true;
84 if (state.lateral_state_left.response != ::ad::rss::state::LateralResponse::None)
86 vehicleTriggeredLeftResponse =
true;
88 if (state.lateral_state_right.response != ::ad::rss::state::LateralResponse::None)
90 vehicleTriggeredRightResponse =
true;
93 if (dangerousSitationIter->constellation_type == ::ad::rss::world::ConstellationType::OppositeDirection)
102 if (!vehicleTriggeredLongitudinalResponse
104 != ::ad::rss::state::LongitudinalResponse::None))
107 "RssRouteChecker::analyseResultOfRoute[{}:{}] longitudinal_response only triggered by borders: ignore",
110 situationCheckResult.
proper_response.longitudinal_response = ::ad::rss::state::LongitudinalResponse::None;
111 situationCheckResult.
proper_response.acceleration_restrictions.longitudinal_range.maximum
114 if (!vehicleTriggeredLeftResponse && !leftBorderIsDangerous
115 && (situationCheckResult.
proper_response.lateral_response_left != ::ad::rss::state::LateralResponse::None))
118 "RssRouteChecker::analyseResultOfRoute[{}:{}] lateral_response_left only triggered by right border: ignore",
121 situationCheckResult.
proper_response.lateral_response_left = ::ad::rss::state::LateralResponse::None;
122 situationCheckResult.
proper_response.acceleration_restrictions.lateral_left_range.maximum
126 if (!vehicleTriggeredRightResponse && !rightBorderIsDangerous
127 && (situationCheckResult.
proper_response.lateral_response_right != ::ad::rss::state::LateralResponse::None))
130 "RssRouteChecker::analyseResultOfRoute[{}:{}] lateral_response_right only triggered by left border: ignore",
133 situationCheckResult.
proper_response.lateral_response_right = ::ad::rss::state::LateralResponse::None;
134 situationCheckResult.
proper_response.acceleration_restrictions.lateral_right_range.maximum
141 getLogger()->debug(
"RssRouteChecker::analyseResultOfRoute[{}:{}] Unsafe route: {}\n {}",
145 situationCheckResult);
149 getLogger()->trace(
"RssRouteChecker::analyseResults[{}:{}] RouteResponse: {}\n {}",
153 situationCheckResult);
160 auto egoVehicleFindResult = mEgoVehicleMap.find(objectResult.
object_data.
id);
161 if (egoVehicleFindResult == mEgoVehicleMap.end())
163 getLogger()->error(
"RssRouteChecker::ParallelChecker[{}] unexpectedly did not find checker for object",
167 auto &egoVehicleData = egoVehicleFindResult->second;
171 auto rssCheckFindResult = egoVehicleData.mRssRouteCheckMap.find(situationCheckResult.
rss_route.
route_id);
172 if (rssCheckFindResult == egoVehicleData.mRssRouteCheckMap.end())
174 getLogger()->error(
"RssRouteChecker::ParallelChecker[{}:{}] unexpectedly did not find checker for route",
179 auto &rssCheck = rssCheckFindResult->second;
181 situationCheckResult.
is_valid = rssCheck->mSituationExtraction.extractSituation(
185 getLogger()->warn(
"RssRouteChecker::ParallelChecker[{}:{}] extractSituation failed {}!",
193 situationCheckResult.
is_valid = rssCheck->mSituationChecking.checkSituation(
197 getLogger()->warn(
"RssRouteChecker::ParallelChecker[{}:{}] checkSituation failed {}!",
206 situationCheckResult.
is_valid = rssCheck->mResponseResolving.provideProperResponse(
210 getLogger()->warn(
"RssRouteChecker::ParallelChecker[{}:{}] provideProperResponse failed {}!",
217 analyseResultOfRoute(egoVehicleData, situationCheckResult);
namespace ad
Definition: RouteAccelerations.hpp:33