This class has functionality to detect potential collision with a nearby actor. More...
#include <CollisionStage.h>
Public Member Functions | |
void | ClearCycleCache () |
CollisionStage (const std::vector< ActorId > &vehicle_id_list, const SimulationState &simulation_state, const BufferMap &buffer_map, const TrackTraffic &track_traffic, const Parameters ¶meters, CollisionFrame &output_array, RandomGenerator &random_device) | |
void | RemoveActor (const ActorId actor_id) override |
void | Reset () override |
void | Update (const unsigned long index) override |
Private Member Functions | |
void | DrawBoundary (const LocationVector &boundary) |
LocationVector | GetBoundary (const ActorId actor_id) |
float | GetBoundingBoxExtention (const ActorId actor_id) |
LocationVector | GetGeodesicBoundary (const ActorId actor_id) |
GeometryComparison | GetGeometryBetweenActors (const ActorId reference_vehicle_id, const ActorId other_actor_id) |
Polygon | GetPolygon (const LocationVector &boundary) |
std::pair< bool, float > | NegotiateCollision (const ActorId reference_vehicle_id, const ActorId other_actor_id, const uint64_t reference_junction_look_ahead_index) |
Private Member Functions inherited from carla::traffic_manager::Stage | |
Stage () | |
Stage (const Stage &) | |
virtual | ~Stage () |
Private Attributes | |
const BufferMap & | buffer_map |
CollisionLockMap | collision_locks |
GeodesicBoundaryMap | geodesic_boundary_map |
GeometryComparisonMap | geometry_cache |
CollisionFrame & | output_array |
const Parameters & | parameters |
RandomGenerator & | random_device |
const SimulationState & | simulation_state |
const TrackTraffic & | track_traffic |
const std::vector< ActorId > & | vehicle_id_list |
This class has functionality to detect potential collision with a nearby actor.
Definition at line 52 of file CollisionStage.h.
carla::traffic_manager::CollisionStage::CollisionStage | ( | const std::vector< ActorId > & | vehicle_id_list, |
const SimulationState & | simulation_state, | ||
const BufferMap & | buffer_map, | ||
const TrackTraffic & | track_traffic, | ||
const Parameters & | parameters, | ||
CollisionFrame & | output_array, | ||
RandomGenerator & | random_device | ||
) |
Definition at line 18 of file CollisionStage.cpp.
void carla::traffic_manager::CollisionStage::ClearCycleCache | ( | ) |
Definition at line 422 of file CollisionStage.cpp.
References geodesic_boundary_map, and geometry_cache.
Referenced by carla::traffic_manager::TrafficManagerLocal::Run().
|
private |
|
private |
Definition at line 141 of file CollisionStage.cpp.
References carla::road::EPSILON, carla::traffic_manager::SimulationState::GetDimensions(), carla::traffic_manager::SimulationState::GetHeading(), carla::traffic_manager::SimulationState::GetLocation(), carla::traffic_manager::SimulationState::GetType(), carla::traffic_manager::SimulationState::GetVelocity(), carla::geom::Vector3D::Length(), carla::geom::Vector3D::MakeSafeUnitVector(), carla::traffic_manager::Pedestrian, simulation_state, carla::traffic_manager::constants::Collision::WALKER_TIME_EXTENSION, carla::geom::Vector3D::x, and carla::geom::Vector3D::y.
Referenced by GetGeodesicBoundary(), and GetGeometryBetweenActors().
|
private |
Definition at line 120 of file CollisionStage.cpp.
References carla::traffic_manager::constants::Collision::BOUNDARY_EXTENSION_MINIMUM, collision_locks, carla::traffic_manager::CollisionLock::distance_to_lead_vehicle, carla::geom::Math::Dot(), carla::traffic_manager::SimulationState::GetHeading(), carla::traffic_manager::SimulationState::GetVelocity(), carla::traffic_manager::CollisionLock::initial_lock_distance, carla::traffic_manager::constants::Collision::LOCKING_DISTANCE_PADDING, carla::traffic_manager::constants::Collision::MAX_LOCKING_EXTENSION, simulation_state, and carla::traffic_manager::constants::Collision::VEL_EXT_FACTOR.
Referenced by GetGeodesicBoundary(), and NegotiateCollision().
|
private |
Definition at line 172 of file CollisionStage.cpp.
References buffer_map, carla::traffic_manager::constants::Collision::COS_10_DEGREES, carla::geom::Math::Dot(), carla::road::EPSILON, geodesic_boundary_map, GetBoundary(), GetBoundingBoxExtention(), carla::traffic_manager::SimulationState::GetDimensions(), carla::traffic_manager::Parameters::GetDistanceToLeadingVehicle(), carla::traffic_manager::GetTargetWaypoint(), carla::geom::Vector3D::MakeSafeUnitVector(), parameters, reverse(), simulation_state, SQUARE, carla::geom::Vector3D::x, and carla::geom::Vector3D::y.
Referenced by GetGeometryBetweenActors().
|
private |
Definition at line 256 of file CollisionStage.cpp.
References geometry_cache, GetBoundary(), GetGeodesicBoundary(), and GetPolygon().
Referenced by NegotiateCollision().
|
private |
Definition at line 245 of file CollisionStage.cpp.
Referenced by GetGeometryBetweenActors().
|
private |
Definition at line 305 of file CollisionStage.cpp.
References carla::traffic_manager::TrafficLightState::at_traffic_light, buffer_map, collision_locks, carla::traffic_manager::CollisionLock::distance_to_lead_vehicle, carla::geom::Math::DistanceSquared(), carla::geom::Math::Dot(), carla::road::EPSILON, GetBoundingBoxExtention(), carla::traffic_manager::SimulationState::GetDimensions(), carla::traffic_manager::Parameters::GetDistanceToLeadingVehicle(), GetGeometryBetweenActors(), carla::traffic_manager::SimulationState::GetHeading(), carla::traffic_manager::SimulationState::GetLocation(), carla::traffic_manager::SimulationState::GetTLS(), carla::rpc::Green, carla::traffic_manager::GeometryComparison::inter_bbox_distance, carla::traffic_manager::GeometryComparison::inter_geodesic_distance, carla::traffic_manager::CollisionLock::lead_vehicle_id, carla::geom::Vector3D::MakeSafeUnitVector(), carla::traffic_manager::constants::Collision::MIN_REFERENCE_DISTANCE, carla::traffic_manager::GeometryComparison::other_vehicle_to_reference_geodesic, carla::traffic_manager::constants::Collision::OVERLAP_THRESHOLD, parameters, carla::traffic_manager::GeometryComparison::reference_vehicle_to_other_geodesic, simulation_state, SQUARE, carla::traffic_manager::constants::Collision::SQUARE_ROOT_OF_TWO, carla::traffic_manager::TrafficLightState::tl_state, and carla::geom::Vector3D::x.
Referenced by Update().
|
overridevirtual |
Implements carla::traffic_manager::Stage.
Definition at line 112 of file CollisionStage.cpp.
References collision_locks.
Referenced by carla::traffic_manager::ALSM::RemoveActor().
|
overridevirtual |
Implements carla::traffic_manager::Stage.
Definition at line 116 of file CollisionStage.cpp.
References collision_locks.
Referenced by carla::traffic_manager::TrafficManagerLocal::Stop().
|
overridevirtual |
Implements carla::traffic_manager::Stage.
Definition at line 34 of file CollisionStage.cpp.
References carla::traffic_manager::CollisionHazardData::available_distance_margin, buffer_map, carla::traffic_manager::constants::Collision::COLLISION_RADIUS_MIN, carla::traffic_manager::constants::Collision::COLLISION_RADIUS_RATE, carla::traffic_manager::constants::Collision::COLLISION_RADIUS_STOP, carla::traffic_manager::SimulationState::ContainsActor(), carla::geom::Math::DistanceSquared(), carla::traffic_manager::Parameters::GetCollisionDetection(), carla::traffic_manager::SimulationState::GetDimensions(), carla::traffic_manager::Parameters::GetDistanceToLeadingVehicle(), carla::traffic_manager::SimulationState::GetLocation(), carla::traffic_manager::TrackTraffic::GetOverlappingVehicles(), carla::traffic_manager::Parameters::GetPercentageIgnoreVehicles(), carla::traffic_manager::Parameters::GetPercentageIgnoreWalkers(), carla::traffic_manager::GetTargetWaypoint(), carla::traffic_manager::SimulationState::GetType(), carla::traffic_manager::SimulationState::GetVelocity(), carla::traffic_manager::CollisionHazardData::hazard, carla::traffic_manager::CollisionHazardData::hazard_actor_id, carla::traffic_manager::constants::WaypointSelection::JUNCTION_LOOK_AHEAD, carla::geom::Vector3D::Length(), NegotiateCollision(), carla::traffic_manager::RandomGenerator::next(), output_array, parameters, carla::traffic_manager::Pedestrian, random_device, simulation_state, sort(), SQUARE, track_traffic, Vehicle, vehicle_id_list, carla::traffic_manager::constants::Collision::VERTICAL_OVERLAP_THRESHOLD, carla::geom::Vector3D::x, and carla::geom::Vector3D::z.
Referenced by carla::traffic_manager::TrafficManagerLocal::Run().
|
private |
Definition at line 56 of file CollisionStage.h.
Referenced by GetGeodesicBoundary(), NegotiateCollision(), and Update().
|
private |
Definition at line 61 of file CollisionStage.h.
Referenced by GetBoundingBoxExtention(), NegotiateCollision(), RemoveActor(), and Reset().
|
private |
Definition at line 66 of file CollisionStage.h.
Referenced by ClearCycleCache(), and GetGeodesicBoundary().
|
private |
Definition at line 65 of file CollisionStage.h.
Referenced by ClearCycleCache(), and GetGeometryBetweenActors().
|
private |
Definition at line 59 of file CollisionStage.h.
Referenced by Update().
|
private |
Definition at line 58 of file CollisionStage.h.
Referenced by GetGeodesicBoundary(), NegotiateCollision(), and Update().
|
private |
Definition at line 67 of file CollisionStage.h.
Referenced by Update().
|
private |
Definition at line 55 of file CollisionStage.h.
Referenced by GetBoundary(), GetBoundingBoxExtention(), GetGeodesicBoundary(), NegotiateCollision(), and Update().
|
private |
Definition at line 57 of file CollisionStage.h.
Referenced by Update().
|
private |
Definition at line 54 of file CollisionStage.h.
Referenced by Update().