CARLA
RssCheck.h
Go to the documentation of this file.
1 // Copyright (c) 2019-2020 Intel Corporation
2 //
3 // This work is licensed under the terms of the MIT license.
4 // For a copy, see <https://opensource.org/licenses/MIT>.
5 
6 #pragma once
7 
8 #include <spdlog/spdlog.h>
9 #include <ad/map/landmark/LandmarkIdSet.hpp>
10 #include <ad/map/match/Object.hpp>
11 #include <ad/map/route/FullRoute.hpp>
12 #include <ad/rss/core/RssCheck.hpp>
13 #include <ad/rss/map/RssSceneCreation.hpp>
14 #include <ad/rss/situation/SituationSnapshot.hpp>
15 #include <ad/rss/state/ProperResponse.hpp>
16 #include <ad/rss/state/RssStateSnapshot.hpp>
17 #include <iostream>
18 #include <memory>
19 #include <mutex>
20 #include "carla/client/ActorList.h"
21 #include "carla/client/Vehicle.h"
22 #include "carla/road/Map.h"
23 
24 namespace carla {
25 namespace rss {
26 
27 /// @brief struct defining the different supported handling of road boundaries
28 enum class RoadBoundariesMode {
29  Off, /// No road boundaries considered by RSS check
30  On /// The road boundaries of the current route are considered by RSS check
31 };
32 
33 /// @brief struct defining the ego vehicles current dynamics in respect to the
34 /// current route
35 ///
36 /// Especially the velocity of the vehicle is split into lateral and
37 /// longitudinal components
38 /// according to the current route
39 ///
41  /// @brief constructor
43 
44  /// @brief the carla timestamp of the last calculation
46  /// @brief the time since epoch in ms at start of the checkObjects call
48  /// @brief the time since epoch in ms at the end of the checkObjects call
50  /// @brief the ego speed
51  ::ad::physics::Speed ego_speed;
52  /// @brief the current minimum stopping distance
53  ::ad::physics::Distance min_stopping_distance;
54  /// @brief the considered enu position of the ego vehicle
55  ::ad::map::point::ENUPoint ego_center;
56  /// @brief the considered heading of the ego vehicle
57  ::ad::map::point::ENUHeading ego_heading;
58  /// @brief the considered heading change of the ego vehicle
59  ::ad::physics::AngularVelocity ego_heading_change;
60  /// @brief the considered steering angle of the ego vehicle
61  ::ad::physics::Angle ego_steering_angle;
62  /// @brief check if the ego center is within route
64  /// @brief flag indicating if the current state is already crossing one of the
65  /// borders
66  /// this is only evaluated if the border checks are active!
67  /// It is a hint to oversteer a bit on countersteering
69  /// @brief the considered heading of the route
70  ::ad::map::point::ENUHeading route_heading;
71  /// @brief the considered nominal center of the current route
72  ::ad::map::point::ENUPoint route_nominal_center;
73  /// @brief the considered heading diff towards the route
74  ::ad::map::point::ENUHeading heading_diff;
75  /// @brief the ego speed component lat in respect to a route
76  ::ad::physics::Speed route_speed_lat;
77  /// @brief the ego speed component lon in respect to a route
78  ::ad::physics::Speed route_speed_lon;
79  /// @brief the ego acceleration component lat in respect to a route
80  ::ad::physics::Acceleration route_accel_lat;
81  /// @brief the ego acceleration component lon in respect to a route
82  ::ad::physics::Acceleration route_accel_lon;
83  /// @brief the ego acceleration component lat in respect to a route
84  /// smoothened by an average filter
85  ::ad::physics::Acceleration avg_route_accel_lat;
86  /// @brief the ego acceleration component lon in respect to a route
87  /// smoothened by an average filter
88  ::ad::physics::Acceleration avg_route_accel_lon;
89 };
90 
91 /// @brief Struct defining the configuration for RSS processing of a given actor
92 ///
93 /// The RssSensor implementation allows to configure the actors individually
94 /// for every frame
95 ///
97  /// The calculation mode to be applied with the actor
98  ::ad::rss::map::RssMode rss_calculation_mode{::ad::rss::map::RssMode::NotRelevant};
99 
100  /// The mode for restricting speed limit
101  ::ad::rss::map::RssSceneCreation::RestrictSpeedLimitMode restrict_speed_limit_mode{
102  ::ad::rss::map::RssSceneCreation::RestrictSpeedLimitMode::None};
103 
104  /// The Rss dynamics to be applied for the ego vehicle
105  ::ad::rss::world::RssDynamics ego_vehicle_dynamics;
106 
107  /// The Rss object type to be used for the actor
108  ::ad::rss::world::ObjectType actor_object_type;
109 
110  /// The Rss dynamics to be applied for the actor
111  ::ad::rss::world::RssDynamics actor_dynamics;
112 };
113 
115  /// @brief the ego map matched information
116  ::ad::map::match::Object ego_match_object;
117 
118  /// @brief the ego route
119  ::ad::map::route::FullRoute ego_route;
120 
121  /// @brief the ego dynamics on the route
123 
124  /// @brief the other object's map matched information
125  ::ad::map::match::Object other_match_object;
126 
128 };
129 
130 /// @brief class implementing the actual RSS checks based on CARLA world
131 /// description
132 class RssCheck {
133 public:
135  std::function<::carla::rss::ActorConstellationResult(carla::SharedPtr<ActorConstellationData>)>;
136 
137  /// @brief default constructor with default internal default actor constellation callback
138  RssCheck(float max_steering_angle);
139 
140  /// @brief constructor with actor constellation callback
141  RssCheck(float max_steering_angle, ActorConstellationCallbackFunctionType rss_actor_constellation_callback,
142  carla::SharedPtr<carla::client::Actor> const &carla_ego_actor);
143 
144  /// @brief destructor
145  ~RssCheck();
146 
147  /// @brief main function to trigger the RSS check at a certain point in time
148  ///
149  /// This function has to be called cyclic with increasing timestamps to ensure
150  /// proper RSS evaluation.
151  ///
152  bool CheckObjects(carla::client::Timestamp const &timestamp, carla::SharedPtr<carla::client::ActorList> const &actors,
153  carla::SharedPtr<carla::client::Actor> const &carla_ego_actor,
154  ::ad::rss::state::ProperResponse &output_response,
155  ::ad::rss::state::RssStateSnapshot &output_rss_state_snapshot,
156  ::ad::rss::situation::SituationSnapshot &output_situation_snapshot,
157  ::ad::rss::world::WorldModel &output_world_model,
158  EgoDynamicsOnRoute &output_rss_ego_dynamics_on_route);
159 
160  /// @returns the used vehicle dynamics for ego vehicle
161  const ::ad::rss::world::RssDynamics &GetDefaultActorConstellationCallbackEgoVehicleDynamics() const;
162  /// @brief sets the vehicle dynamics to be used for the ego vehicle
163  void SetDefaultActorConstellationCallbackEgoVehicleDynamics(
164  const ::ad::rss::world::RssDynamics &ego_vehicle_dynamics);
165  /// @returns the used vehicle dynamics for other vehicles
166  const ::ad::rss::world::RssDynamics &GetDefaultActorConstellationCallbackOtherVehicleDynamics() const;
167  /// @brief sets the vehicle dynamics to be used for other vehicles
168  void SetDefaultActorConstellationCallbackOtherVehicleDynamics(
169  const ::ad::rss::world::RssDynamics &other_vehicle_dynamics);
170  /// @returns the used vehicle dynamics for pedestrians
171  const ::ad::rss::world::RssDynamics &GetDefaultActorConstellationCallbackPedestrianDynamics() const;
172  /// @brief sets the dynamics to be used for pedestrians
173  void SetDefaultActorConstellationCallbackPedestrianDynamics(const ::ad::rss::world::RssDynamics &pedestrian_dynamics);
174 
175  /// @brief sets the current log level
176  void SetLogLevel(const spdlog::level::level_enum &log_level);
177 
178  /// @brief sets the current log level
179  void SetMapLogLevel(const spdlog::level::level_enum &map_log_level);
180 
181  /// @returns the current mode for respecting the road boundaries (@see also
182  /// RssSensor::GetRoadBoundariesMode())
183  const ::carla::rss::RoadBoundariesMode &GetRoadBoundariesMode() const;
184  /// @brief sets the current mode for respecting the road boundaries (@see also
185  /// RssSensor::SetRoadBoundariesMode())
186  void SetRoadBoundariesMode(const ::carla::rss::RoadBoundariesMode &road_boundaries_mode);
187 
188  /// @returns the current routing targets (@see also
189  /// RssSensor::GetRoutingTargets())
190  const std::vector<::carla::geom::Transform> GetRoutingTargets() const;
191  /// @brief appends a routing target to the current routing target list (@see
192  /// also RssSensor::AppendRoutingTargets())
193  void AppendRoutingTarget(const ::carla::geom::Transform &routing_target);
194  /// @brief resets the current routing targets (@see also
195  /// RssSensor::ResetRoutingTargets())
196  void ResetRoutingTargets();
197 
198  /// @brief drop the current route
199  ///
200  /// Afterwards a new route is selected randomly (if multiple routes are
201  /// possible).
202  ///
203  void DropRoute();
204 
205  /// @returns the default vehicle dynamics
206  static ::ad::rss::world::RssDynamics GetDefaultVehicleDynamics();
207 
208  /// @returns the default pedestrian dynamics
209  static ::ad::rss::world::RssDynamics GetDefaultPedestrianDynamics();
210 
211  /// @returns the default road boundaries mode
214  }
215 
216 private:
217  /// @brief standard logger
218  std::shared_ptr<spdlog::logger> _logger;
219  /// @brief logger for timing log messages
220  std::shared_ptr<spdlog::logger> _timing_logger;
221 
222  /// @brief maximum steering angle
224 
225  /// @brief current used vehicle dynamics for ego vehicle by the default actor constellation callback
227  /// @brief current used vehicle dynamics for other vehicle by the default actor constellation callback
229  /// @brief current used vehicle dynamics for pedestrians by the default actor constellation callback
231 
232  /// @brief the current actor constellation callback
234 
235  /// @brief current used road boundaries mode
237  /// @brief current used routing targets
238  std::vector<::ad::map::point::ENUPoint> _routing_targets;
239  /// @brief routing targets to be appended next run
240  std::vector<::ad::map::point::ENUPoint> _routing_targets_to_append;
241 
242  /// @brief struct collecting the rss states required
243  struct CarlaRssState {
244  /// @brief the actual RSS checker object
245  ::ad::rss::core::RssCheck rss_check;
246 
247  /// @brief the ego map matched information
248  ::ad::map::match::Object ego_match_object;
249 
250  /// @brief the ego route
251  ::ad::map::route::FullRoute ego_route;
252 
253  /// @brief the ego dynamics on the route
255 
256  /// @brief current used default vehicle dynamics for ego vehicle
257  ::ad::rss::world::RssDynamics default_ego_vehicle_dynamics;
258 
259  /// @brief check input: the RSS world model
260  ::ad::rss::world::WorldModel world_model;
261 
262  /// @brief check result: the situation snapshot
263  ::ad::rss::situation::SituationSnapshot situation_snapshot;
264  /// @brief check result: the rss state snapshot
265  ::ad::rss::state::RssStateSnapshot rss_state_snapshot;
266  /// @brief check result: the proper response
267  ::ad::rss::state::ProperResponse proper_response;
268  /// @brief flag indicating if the current state is overall dangerous
270  /// @brief flag indicating if the current state is dangerous because of a
271  /// vehicle
273  /// @brief flag indicating if the current state is dangerous because of an
274  /// opposite vehicle
276  };
277 
279  public:
280  RssObjectChecker(RssCheck const &rss_check, ::ad::rss::map::RssSceneCreation &scene_creation,
281  carla::client::Vehicle const &carla_ego_vehicle, CarlaRssState const &carla_rss_state,
282  ::ad::map::landmark::LandmarkIdSet const &green_traffic_lights);
283  void operator()(const carla::SharedPtr<carla::client::Actor> other_traffic_participant) const;
284 
285  private:
287  ::ad::rss::map::RssSceneCreation &_scene_creation;
290  ::ad::map::landmark::LandmarkIdSet const &_green_traffic_lights;
291  };
292 
293  friend class RssObjectChecker;
294 
295  /// @brief the current state of the ego vehicle
297 
298  /// @brief calculate the map matched object from the actor
299  ::ad::map::match::Object GetMatchObject(carla::SharedPtr<carla::client::Actor> const &actor,
300  ::ad::physics::Distance const &sampling_distance) const;
301 
302  /// @brief calculate the speed from the actor
303  ::ad::physics::Speed GetSpeed(carla::client::Actor const &actor) const;
304 
305  /// @brief calculate the heading change from the actor
306  ::ad::physics::AngularVelocity GetHeadingChange(carla::client::Actor const &actor) const;
307 
308  /// @brief calculate the steering angle from the actor
309  ::ad::physics::Angle GetSteeringAngle(carla::client::Vehicle const &actor) const;
310 
311  /// @brief update the desired ego vehicle route
312  void UpdateRoute(CarlaRssState &carla_rss_state);
313 
314  /// @brief calculate ego vehicle dynamics on the route
315  EgoDynamicsOnRoute CalculateEgoDynamicsOnRoute(carla::client::Timestamp const &current_timestamp,
316  double const &time_since_epoch_check_start_ms,
317  carla::client::Vehicle const &carla_vehicle,
318  ::ad::map::match::Object match_object,
319  ::ad::map::route::FullRoute const &route,
320  ::ad::rss::world::RssDynamics const &default_ego_vehicle_dynamics,
321  EgoDynamicsOnRoute const &last_dynamics) const;
322 
323  void UpdateDefaultRssDynamics(CarlaRssState &carla_rss_state);
324 
325  /// @brief collect the green traffic lights on the current route
326  ::ad::map::landmark::LandmarkIdSet GetGreenTrafficLightsOnRoute(
327  std::vector<SharedPtr<carla::client::TrafficLight>> const &traffic_lights,
328  ::ad::map::route::FullRoute const &route) const;
329 
330  /// @brief Create the RSS world model
331  void CreateWorldModel(carla::client::Timestamp const &timestamp, carla::client::ActorList const &actors,
332  carla::client::Vehicle const &carla_ego_vehicle, CarlaRssState &carla_rss_state) const;
333 
334  /// @brief Perform the actual RSS check
335  bool PerformCheck(CarlaRssState &carla_rss_state) const;
336 
337  /// @brief Analyse the RSS check results
338  void AnalyseCheckResults(CarlaRssState &carla_rss_state) const;
339 };
340 
341 } // namespace rss
342 } // namespace carla
343 
344 namespace std {
345 /**
346  * \brief standard ostream operator
347  *
348  * \param[in/out] os The output stream to write to
349  * \param[in] ego_dynamics_on_route the ego dynamics on route to stream out
350  *
351  * \returns The stream object.
352  *
353  */
354 inline std::ostream &operator<<(std::ostream &out, const ::carla::rss::EgoDynamicsOnRoute &ego_dynamics_on_route) {
355  out << "EgoDynamicsOnRoute(timestamp=" << ego_dynamics_on_route.timestamp
356  << ", time_since_epoch_check_start_ms=" << ego_dynamics_on_route.time_since_epoch_check_start_ms
357  << ", time_since_epoch_check_end_ms=" << ego_dynamics_on_route.time_since_epoch_check_end_ms
358  << ", ego_speed=" << ego_dynamics_on_route.ego_speed
359  << ", min_stopping_distance=" << ego_dynamics_on_route.min_stopping_distance
360  << ", ego_center=" << ego_dynamics_on_route.ego_center << ", ego_heading=" << ego_dynamics_on_route.ego_heading
361  << ", ego_heading_change=" << ego_dynamics_on_route.ego_heading_change
362  << ", ego_steering_angle=" << ego_dynamics_on_route.ego_steering_angle
363  << ", ego_center_within_route=" << ego_dynamics_on_route.ego_center_within_route
364  << ", crossing_border=" << ego_dynamics_on_route.crossing_border
365  << ", route_heading=" << ego_dynamics_on_route.route_heading
366  << ", route_nominal_center=" << ego_dynamics_on_route.route_nominal_center
367  << ", heading_diff=" << ego_dynamics_on_route.heading_diff
368  << ", route_speed_lat=" << ego_dynamics_on_route.route_speed_lat
369  << ", route_speed_lon=" << ego_dynamics_on_route.route_speed_lon
370  << ", route_accel_lat=" << ego_dynamics_on_route.route_accel_lat
371  << ", route_accel_lon=" << ego_dynamics_on_route.route_accel_lon
372  << ", avg_route_accel_lat=" << ego_dynamics_on_route.avg_route_accel_lat
373  << ", avg_route_accel_lon=" << ego_dynamics_on_route.avg_route_accel_lon << ")";
374  return out;
375 }
376 
377 /**
378  * \brief standard ostream operator
379  *
380  * \param[in/out] os The output stream to write to
381  * \param[in] actor_constellation_result the actor constellation result to stream out
382  *
383  * \returns The stream object.
384  *
385  */
386 inline std::ostream &operator<<(std::ostream &out,
387  const ::carla::rss::ActorConstellationResult &actor_constellation_result) {
388  out << "ActorConstellationResult(rss_calculation_mode=" << actor_constellation_result.rss_calculation_mode
389  << ", restrict_speed_limit_mode=" << actor_constellation_result.restrict_speed_limit_mode
390  << ", ego_vehicle_dynamics=" << actor_constellation_result.ego_vehicle_dynamics
391  << ", actor_object_type=" << actor_constellation_result.actor_object_type
392  << ", actor_dynamics=" << actor_constellation_result.actor_dynamics << ")";
393  return out;
394 }
395 
396 /**
397  * \brief standard ostream operator
398  *
399  * \param[in/out] os The output stream to write to
400  * \param[in] actor_constellation_result the actor constellation result to stream out
401  *
402  * \returns The stream object.
403  *
404  */
405 inline std::ostream &operator<<(std::ostream &out,
406  const ::carla::rss::ActorConstellationData &actor_constellation_data) {
407  out << "ActorConstellationData(";
408  if (actor_constellation_data.other_actor != nullptr) {
409  out << "actor_id=" << actor_constellation_data.other_actor->GetId()
410  << ", actor_dynamics=" << actor_constellation_data.other_match_object << ", ";
411  }
412  out << "ego_match_object=" << actor_constellation_data.ego_match_object
413  << ", ego_route=" << actor_constellation_data.ego_route
414  << ", ego_dynamics_on_route=" << actor_constellation_data.ego_dynamics_on_route << ")";
415  return out;
416 }
417 
418 } // namespace std
double time_since_epoch_check_start_ms
the time since epoch in ms at start of the checkObjects call
Definition: RssCheck.h:47
double time_since_epoch_check_end_ms
the time since epoch in ms at the end of the checkObjects call
Definition: RssCheck.h:49
::ad::rss::core::RssCheck rss_check
the actual RSS checker object
Definition: RssCheck.h:245
::ad::map::landmark::LandmarkIdSet const & _green_traffic_lights
Definition: RssCheck.h:290
struct defining the ego vehicles current dynamics in respect to the current route ...
Definition: RssCheck.h:40
::ad::map::point::ENUHeading route_heading
the considered heading of the route
Definition: RssCheck.h:70
std::vector<::ad::map::point::ENUPoint > _routing_targets
current used routing targets
Definition: RssCheck.h:238
std::vector<::ad::map::point::ENUPoint > _routing_targets_to_append
routing targets to be appended next run
Definition: RssCheck.h:240
::ad::physics::Speed route_speed_lon
the ego speed component lon in respect to a route
Definition: RssCheck.h:78
::ad::rss::world::WorldModel world_model
check input: the RSS world model
Definition: RssCheck.h:260
bool dangerous_state
flag indicating if the current state is overall dangerous
Definition: RssCheck.h:269
::ad::rss::world::RssDynamics _default_actor_constellation_callback_ego_vehicle_dynamics
current used vehicle dynamics for ego vehicle by the default actor constellation callback ...
Definition: RssCheck.h:226
class implementing the actual RSS checks based on CARLA world description
Definition: RssCheck.h:132
carla::client::Timestamp timestamp
the carla timestamp of the last calculation
Definition: RssCheck.h:45
::ad::map::point::ENUHeading heading_diff
the considered heading diff towards the route
Definition: RssCheck.h:74
::ad::map::point::ENUHeading ego_heading
the considered heading of the ego vehicle
Definition: RssCheck.h:57
::ad::physics::Acceleration avg_route_accel_lon
the ego acceleration component lon in respect to a route smoothened by an average filter ...
Definition: RssCheck.h:88
bool dangerous_vehicle
flag indicating if the current state is dangerous because of a vehicle
Definition: RssCheck.h:272
bool crossing_border
flag indicating if the current state is already crossing one of the borders this is only evaluated if...
Definition: RssCheck.h:68
::ad::rss::world::RssDynamics default_ego_vehicle_dynamics
current used default vehicle dynamics for ego vehicle
Definition: RssCheck.h:257
boost::shared_ptr< T > SharedPtr
Use this SharedPtr (boost::shared_ptr) to keep compatibility with boost::python, but it would be nice...
Definition: Memory.h:20
::ad::map::point::ENUPoint ego_center
the considered enu position of the ego vehicle
Definition: RssCheck.h:55
This file contains definitions of common data structures used in traffic manager. ...
Definition: Carla.cpp:99
::ad::map::match::Object other_match_object
the other object&#39;s map matched information
Definition: RssCheck.h:125
CarlaRssState _carla_rss_state
the current state of the ego vehicle
Definition: RssCheck.h:296
struct collecting the rss states required
Definition: RssCheck.h:243
::ad::rss::world::RssDynamics ego_vehicle_dynamics
The Rss dynamics to be applied for the ego vehicle.
Definition: RssCheck.h:105
::ad::map::route::FullRoute ego_route
the ego route
Definition: RssCheck.h:251
::ad::rss::world::RssDynamics _default_actor_constellation_callback_pedestrian_dynamics
current used vehicle dynamics for pedestrians by the default actor constellation callback ...
Definition: RssCheck.h:230
::ad::physics::Acceleration route_accel_lon
the ego acceleration component lon in respect to a route
Definition: RssCheck.h:82
std::function<::carla::rss::ActorConstellationResult(carla::SharedPtr< ActorConstellationData >)> ActorConstellationCallbackFunctionType
Definition: RssCheck.h:135
::ad::map::match::Object ego_match_object
the ego map matched information
Definition: RssCheck.h:248
::ad::physics::Acceleration route_accel_lat
the ego acceleration component lat in respect to a route
Definition: RssCheck.h:80
bool ego_center_within_route
check if the ego center is within route
Definition: RssCheck.h:63
::ad::physics::Speed ego_speed
the ego speed
Definition: RssCheck.h:51
static RoadBoundariesMode GetDefaultRoadBoundariesMode()
Definition: RssCheck.h:212
::ad::rss::state::RssStateSnapshot rss_state_snapshot
check result: the rss state snapshot
Definition: RssCheck.h:265
::ad::rss::world::RssDynamics actor_dynamics
The Rss dynamics to be applied for the actor.
Definition: RssCheck.h:111
EgoDynamicsOnRoute ego_dynamics_on_route
the ego dynamics on the route
Definition: RssCheck.h:254
::ad::map::point::ENUPoint route_nominal_center
the considered nominal center of the current route
Definition: RssCheck.h:72
std::shared_ptr< spdlog::logger > _logger
standard logger
Definition: RssCheck.h:218
ActorConstellationCallbackFunctionType _actor_constellation_callback
the current actor constellation callback
Definition: RssCheck.h:233
carla::client::Vehicle const & _carla_ego_vehicle
Definition: RssCheck.h:288
bool dangerous_opposite_state
flag indicating if the current state is dangerous because of an opposite vehicle
Definition: RssCheck.h:275
RoadBoundariesMode
struct defining the different supported handling of road boundaries
Definition: RssCheck.h:28
::ad::map::route::FullRoute ego_route
the ego route
Definition: RssCheck.h:119
::ad::map::match::Object ego_match_object
the ego map matched information
Definition: RssCheck.h:116
std::shared_ptr< spdlog::logger > _timing_logger
logger for timing log messages
Definition: RssCheck.h:220
::ad::physics::AngularVelocity ego_heading_change
the considered heading change of the ego vehicle
Definition: RssCheck.h:59
::carla::rss::RoadBoundariesMode _road_boundaries_mode
current used road boundaries mode
Definition: RssCheck.h:236
::ad::physics::Speed route_speed_lat
the ego speed component lat in respect to a route
Definition: RssCheck.h:76
CarlaRssState const & _carla_rss_state
Definition: RssCheck.h:289
float _maximum_steering_angle
maximum steering angle
Definition: RssCheck.h:223
static std::ostream & operator<<(std::ostream &out, const Buffer &buf)
Definition: test/Buffer.h:48
carla::SharedPtr< carla::client::Actor > other_actor
Definition: RssCheck.h:127
::ad::rss::world::ObjectType actor_object_type
The Rss object type to be used for the actor.
Definition: RssCheck.h:108
::ad::physics::Angle ego_steering_angle
the considered steering angle of the ego vehicle
Definition: RssCheck.h:61
Represents an actor in the simulation.
Definition: client/Actor.h:18
::ad::rss::world::RssDynamics _default_actor_constellation_callback_other_vehicle_dynamics
current used vehicle dynamics for other vehicle by the default actor constellation callback ...
Definition: RssCheck.h:228
::ad::physics::Distance min_stopping_distance
the current minimum stopping distance
Definition: RssCheck.h:53
EgoDynamicsOnRoute ego_dynamics_on_route
the ego dynamics on the route
Definition: RssCheck.h:122
::ad::rss::situation::SituationSnapshot situation_snapshot
check result: the situation snapshot
Definition: RssCheck.h:263
::ad::physics::Acceleration avg_route_accel_lat
the ego acceleration component lat in respect to a route smoothened by an average filter ...
Definition: RssCheck.h:85
Struct defining the configuration for RSS processing of a given actor.
Definition: RssCheck.h:96
::ad::rss::map::RssSceneCreation & _scene_creation
Definition: RssCheck.h:287
::ad::rss::state::ProperResponse proper_response
check result: the proper response
Definition: RssCheck.h:267
geom::Transform Transform
Definition: rpc/Transform.h:16
No road boundaries considered by RSS check.