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> 98 ::ad::rss::map::RssMode rss_calculation_mode{::ad::rss::map::RssMode::NotRelevant};
101 ::ad::rss::map::RssSceneCreation::RestrictSpeedLimitMode restrict_speed_limit_mode{
102 ::ad::rss::map::RssSceneCreation::RestrictSpeedLimitMode::None};
135 std::function<::carla::rss::ActorConstellationResult(carla::SharedPtr<ActorConstellationData>)>;
159 ::ad::rss::state::ProperResponse &output_response,
160 ::ad::rss::state::RssStateSnapshot &output_rss_state_snapshot,
161 ::ad::rss::situation::SituationSnapshot &output_situation_snapshot,
162 ::ad::rss::world::WorldModel &output_world_model,
166 const ::ad::rss::world::RssDynamics &GetDefaultActorConstellationCallbackEgoVehicleDynamics()
const;
168 void SetDefaultActorConstellationCallbackEgoVehicleDynamics(
169 const ::ad::rss::world::RssDynamics &ego_vehicle_dynamics);
171 const ::ad::rss::world::RssDynamics &GetDefaultActorConstellationCallbackOtherVehicleDynamics()
const;
173 void SetDefaultActorConstellationCallbackOtherVehicleDynamics(
174 const ::ad::rss::world::RssDynamics &other_vehicle_dynamics);
176 const ::ad::rss::world::RssDynamics &GetDefaultActorConstellationCallbackPedestrianDynamics()
const;
178 void SetDefaultActorConstellationCallbackPedestrianDynamics(const ::ad::rss::world::RssDynamics &pedestrian_dynamics);
181 void SetLogLevel(
const spdlog::level::level_enum &log_level);
184 void SetMapLogLevel(
const spdlog::level::level_enum &map_log_level);
195 const std::vector<::carla::geom::Transform> GetRoutingTargets()
const;
201 void ResetRoutingTargets();
211 static ::ad::rss::world::RssDynamics GetDefaultVehicleDynamics();
214 static ::ad::rss::world::RssDynamics GetDefaultPedestrianDynamics();
287 ::ad::map::landmark::LandmarkIdSet
const &green_traffic_lights);
305 ::ad::physics::Distance
const &sampling_distance)
const;
321 double const &time_since_epoch_check_start_ms,
323 ::ad::map::match::Object match_object,
324 ::ad::map::route::FullRoute
const &route,
325 ::ad::rss::world::RssDynamics
const &default_ego_vehicle_dynamics,
328 void UpdateDefaultRssDynamics(
CarlaRssState &carla_rss_state);
331 ::ad::map::landmark::LandmarkIdSet GetGreenTrafficLightsOnRoute(
333 ::ad::map::route::FullRoute
const &route)
const;
343 void AnalyseCheckResults(
CarlaRssState &carla_rss_state)
const;
359 inline std::ostream &
operator<<(std::ostream &out, const ::carla::rss::EgoDynamicsOnRoute &ego_dynamics_on_route) {
360 out <<
"EgoDynamicsOnRoute(timestamp=" << ego_dynamics_on_route.timestamp
361 <<
", time_since_epoch_check_start_ms=" << ego_dynamics_on_route.time_since_epoch_check_start_ms
362 <<
", time_since_epoch_check_end_ms=" << ego_dynamics_on_route.time_since_epoch_check_end_ms
363 <<
", ego_speed=" << ego_dynamics_on_route.ego_speed
364 <<
", min_stopping_distance=" << ego_dynamics_on_route.min_stopping_distance
365 <<
", ego_center=" << ego_dynamics_on_route.ego_center <<
", ego_heading=" << ego_dynamics_on_route.ego_heading
366 <<
", ego_heading_change=" << ego_dynamics_on_route.ego_heading_change
367 <<
", ego_steering_angle=" << ego_dynamics_on_route.ego_steering_angle
368 <<
", ego_center_within_route=" << ego_dynamics_on_route.ego_center_within_route
369 <<
", crossing_border=" << ego_dynamics_on_route.crossing_border
370 <<
", route_heading=" << ego_dynamics_on_route.route_heading
371 <<
", route_nominal_center=" << ego_dynamics_on_route.route_nominal_center
372 <<
", heading_diff=" << ego_dynamics_on_route.heading_diff
373 <<
", route_speed_lat=" << ego_dynamics_on_route.route_speed_lat
374 <<
", route_speed_lon=" << ego_dynamics_on_route.route_speed_lon
375 <<
", route_accel_lat=" << ego_dynamics_on_route.route_accel_lat
376 <<
", route_accel_lon=" << ego_dynamics_on_route.route_accel_lon
377 <<
", avg_route_accel_lat=" << ego_dynamics_on_route.avg_route_accel_lat
378 <<
", avg_route_accel_lon=" << ego_dynamics_on_route.avg_route_accel_lon <<
")";
392 const ::carla::rss::ActorConstellationResult &actor_constellation_result) {
393 out <<
"ActorConstellationResult(rss_calculation_mode=" << actor_constellation_result.rss_calculation_mode
394 <<
", restrict_speed_limit_mode=" << actor_constellation_result.restrict_speed_limit_mode
395 <<
", ego_vehicle_dynamics=" << actor_constellation_result.ego_vehicle_dynamics
396 <<
", actor_object_type=" << actor_constellation_result.actor_object_type
397 <<
", actor_dynamics=" << actor_constellation_result.actor_dynamics <<
")";
411 const ::carla::rss::ActorConstellationData &actor_constellation_data) {
412 out <<
"ActorConstellationData(";
413 if (actor_constellation_data.other_actor !=
nullptr) {
414 out <<
"actor_id=" << actor_constellation_data.other_actor->GetId()
415 <<
", actor_dynamics=" << actor_constellation_data.other_match_object <<
", ";
417 out <<
"ego_match_object=" << actor_constellation_data.ego_match_object
418 <<
", ego_route=" << actor_constellation_data.ego_route
419 <<
", ego_dynamics_on_route=" << actor_constellation_data.ego_dynamics_on_route <<
")";
boost::shared_ptr< T > SharedPtr
Use this SharedPtr (boost::shared_ptr) to keep compatibility with boost::python, but it would be nice...
This file contains definitions of common data structures used in traffic manager. ...
static std::ostream & operator<<(std::ostream &out, const Buffer &buf)
Represents an actor in the simulation.
geom::Transform Transform