This class has functionality to maintain a horizon of waypoints ahead of the vehicle for it to follow. More...
#include <LocalizationStage.h>
Public Member Functions | |
ActionBuffer | ComputeActionBuffer (const ActorId &actor_id) |
Action | ComputeNextAction (const ActorId &actor_id) |
LocalizationStage (const std::vector< ActorId > &vehicle_id_list, BufferMap &buffer_map, const SimulationState &simulation_state, TrackTraffic &track_traffic, const LocalMapPtr &local_map, Parameters ¶meters, std::vector< ActorId > &marked_for_removal, LocalizationFrame &output_array, RandomGenerator &random_device) | |
void | RemoveActor (const ActorId actor_id) override |
void | Reset () override |
void | Update (const unsigned long index) override |
Private Types | |
using | SimpleWaypointPair = std::pair< SimpleWaypointPtr, SimpleWaypointPtr > |
Private Member Functions | |
SimpleWaypointPtr | AssignLaneChange (const ActorId actor_id, const cg::Location vehicle_location, const float vehicle_speed, bool force, bool direction) |
void | ExtendAndFindSafeSpace (const ActorId actor_id, const bool is_at_junction_entrance, Buffer &waypoint_buffer) |
void | ImportPath (Path &imported_path, Buffer &waypoint_buffer, const ActorId actor_id, const float horizon_square) |
void | ImportRoute (Route &imported_actions, Buffer &waypoint_buffer, const ActorId actor_id, const float horizon_square) |
![]() | |
Stage () | |
Stage (const Stage &) | |
virtual | ~Stage () |
Private Attributes | |
BufferMap & | buffer_map |
LaneChangeSWptMap | last_lane_change_swpt |
const LocalMapPtr & | local_map |
std::vector< ActorId > & | marked_for_removal |
LocalizationFrame & | output_array |
Parameters & | parameters |
RandomGenerator & | random_device |
const SimulationState & | simulation_state |
TrackTraffic & | track_traffic |
const std::vector< ActorId > & | vehicle_id_list |
ActorIdSet | vehicles_at_junction |
std::unordered_map< ActorId, SimpleWaypointPair > | vehicles_at_junction_entrance |
This class has functionality to maintain a horizon of waypoints ahead of the vehicle for it to follow.
The class is also responsible for managing lane change decisions and modify the waypoint trajectory appropriately.
Definition at line 32 of file LocalizationStage.h.
|
private |
Definition at line 45 of file LocalizationStage.h.
carla::traffic_manager::LocalizationStage::LocalizationStage | ( | const std::vector< ActorId > & | vehicle_id_list, |
BufferMap & | buffer_map, | ||
const SimulationState & | simulation_state, | ||
TrackTraffic & | track_traffic, | ||
const LocalMapPtr & | local_map, | ||
Parameters & | parameters, | ||
std::vector< ActorId > & | marked_for_removal, | ||
LocalizationFrame & | output_array, | ||
RandomGenerator & | random_device | ||
) |
Definition at line 16 of file LocalizationStage.cpp.
|
private |
Definition at line 332 of file LocalizationStage.cpp.
References buffer_map, carla::geom::Math::Clamp(), carla::geom::Math::DistanceSquared(), carla::geom::Math::Dot(), carla::traffic_manager::TrackTraffic::GetOverlappingVehicles(), carla::traffic_manager::TrackTraffic::GetPassingVehicles(), carla::traffic_manager::constants::LaneChange::MAX_WPT_DISTANCE, carla::traffic_manager::constants::LaneChange::MAXIMUM_LANE_OBSTACLE_CURVATURE, carla::traffic_manager::constants::LaneChange::MAXIMUM_LANE_OBSTACLE_DISTANCE, carla::traffic_manager::constants::LaneChange::MIN_WPT_DISTANCE, carla::traffic_manager::constants::LaneChange::MINIMUM_LANE_CHANGE_DISTANCE, SQUARE, and track_traffic.
Referenced by Update().
ActionBuffer carla::traffic_manager::LocalizationStage::ComputeActionBuffer | ( | const ActorId & | actor_id | ) |
Definition at line 625 of file LocalizationStage.cpp.
References buffer_map, carla::traffic_manager::ChangeLaneLeft, carla::traffic_manager::ChangeLaneRight, carla::geom::Math::DistanceSquared(), carla::traffic_manager::SimulationState::GetHeading(), carla::traffic_manager::SimulationState::GetLocation(), last_lane_change_swpt, simulation_state, carla::geom::Vector3D::x, and carla::geom::Vector3D::y.
Referenced by carla::traffic_manager::TrafficManagerLocal::GetActionBuffer().
Definition at line 592 of file LocalizationStage.cpp.
References buffer_map, carla::traffic_manager::ChangeLaneLeft, carla::traffic_manager::ChangeLaneRight, carla::geom::Math::DistanceSquared(), carla::traffic_manager::SimulationState::GetHeading(), carla::traffic_manager::SimulationState::GetLocation(), carla::traffic_manager::LaneFollow, last_lane_change_swpt, simulation_state, carla::geom::Vector3D::x, and carla::geom::Vector3D::y.
Referenced by carla::traffic_manager::TrafficManagerLocal::GetNextAction().
|
private |
Definition at line 234 of file LocalizationStage.cpp.
References carla::traffic_manager::constants::WaypointSelection::MIN_JUNCTION_LENGTH, carla::traffic_manager::PushWaypoint(), carla::traffic_manager::constants::WaypointSelection::SAFE_DISTANCE_AFTER_JUNCTION, SQUARE, track_traffic, and vehicles_at_junction_entrance.
Referenced by Update().
|
private |
Definition at line 453 of file LocalizationStage.cpp.
References carla::traffic_manager::Parameters::GetOSMMode(), carla::traffic_manager::Parameters::GetUploadPath(), local_map, marked_for_removal, parameters, carla::traffic_manager::PopWaypoint(), carla::traffic_manager::PushWaypoint(), carla::traffic_manager::Parameters::RemoveUploadPath(), track_traffic, and carla::traffic_manager::Parameters::UpdateUploadPath().
Referenced by Update().
|
private |
Definition at line 536 of file LocalizationStage.cpp.
References carla::traffic_manager::Parameters::GetOSMMode(), carla::traffic_manager::Parameters::GetUploadRoute(), marked_for_removal, parameters, carla::traffic_manager::PopWaypoint(), carla::traffic_manager::PushWaypoint(), carla::traffic_manager::Parameters::RemoveImportedRoute(), track_traffic, and carla::traffic_manager::Parameters::UpdateImportedRoute().
Referenced by Update().
|
overridevirtual |
Implements carla::traffic_manager::Stage.
Definition at line 322 of file LocalizationStage.cpp.
References last_lane_change_swpt, and vehicles_at_junction.
Referenced by carla::traffic_manager::ALSM::RemoveActor().
|
overridevirtual |
Implements carla::traffic_manager::Stage.
Definition at line 327 of file LocalizationStage.cpp.
References last_lane_change_swpt, and vehicles_at_junction.
Referenced by carla::traffic_manager::TrafficManagerLocal::Stop().
|
overridevirtual |
Implements carla::traffic_manager::Stage.
Definition at line 36 of file LocalizationStage.cpp.
References AssignLaneChange(), buffer_map, carla::traffic_manager::ChangeLaneInfo::change_lane, carla::traffic_manager::DeviationDotProduct(), carla::traffic_manager::ChangeLaneInfo::direction, carla::geom::Math::DistanceSquared(), ExtendAndFindSafeSpace(), carla::traffic_manager::constants::LaneChange::FIFTYPERC, carla::traffic_manager::Parameters::GetAutoLaneChange(), carla::traffic_manager::Parameters::GetCustomPath(), carla::traffic_manager::Parameters::GetForceLaneChange(), carla::traffic_manager::SimulationState::GetHeading(), carla::traffic_manager::Parameters::GetImportedRoute(), carla::traffic_manager::Parameters::GetKeepRightPercentage(), carla::traffic_manager::SimulationState::GetLocation(), carla::traffic_manager::Parameters::GetOSMMode(), carla::traffic_manager::Parameters::GetRandomLeftLaneChangePercentage(), carla::traffic_manager::Parameters::GetRandomRightLaneChangePercentage(), carla::traffic_manager::GetTargetWaypoint(), carla::traffic_manager::SimulationState::GetVelocity(), carla::traffic_manager::constants::PathBufferUpdate::HIGH_SPEED_HORIZON_RATE, carla::traffic_manager::constants::SpeedThreshold::HIGHWAY_SPEED, carla::traffic_manager::constants::PathBufferUpdate::HORIZON_RATE, ImportPath(), ImportRoute(), carla::traffic_manager::constants::LaneChange::INTER_LANE_CHANGE_DISTANCE, carla::traffic_manager::LocalizationData::is_at_junction_entrance, carla::traffic_manager::LocalizationData::junction_end_point, carla::traffic_manager::constants::WaypointSelection::JUNCTION_LOOK_AHEAD, last_lane_change_swpt, carla::geom::Vector3D::Length(), local_map, marked_for_removal, carla::traffic_manager::constants::PathBufferUpdate::MAX_START_DISTANCE, carla::traffic_manager::constants::LaneChange::MIN_LANE_CHANGE_SPEED, carla::traffic_manager::constants::PathBufferUpdate::MINIMUM_HORIZON_LENGTH, carla::traffic_manager::RandomGenerator::next(), output_array, parameters, carla::traffic_manager::PopWaypoint(), carla::traffic_manager::PushWaypoint(), random_device, carla::traffic_manager::LocalizationData::safe_point, simulation_state, SQUARE, carla::geom::Vector3D::SquaredLength(), track_traffic, carla::traffic_manager::TrackTraffic::UpdateGridPosition(), vehicle_id_list, and vehicles_at_junction_entrance.
Referenced by carla::traffic_manager::TrafficManagerLocal::Run().
|
private |
Definition at line 35 of file LocalizationStage.h.
Referenced by AssignLaneChange(), ComputeActionBuffer(), ComputeNextAction(), and Update().
|
private |
Definition at line 43 of file LocalizationStage.h.
Referenced by ComputeActionBuffer(), ComputeNextAction(), RemoveActor(), Reset(), and Update().
|
private |
Definition at line 38 of file LocalizationStage.h.
Referenced by ImportPath(), and Update().
|
private |
Definition at line 41 of file LocalizationStage.h.
Referenced by ImportPath(), ImportRoute(), and Update().
|
private |
Definition at line 42 of file LocalizationStage.h.
Referenced by Update().
|
private |
Definition at line 39 of file LocalizationStage.h.
Referenced by ImportPath(), ImportRoute(), and Update().
|
private |
Definition at line 47 of file LocalizationStage.h.
Referenced by Update().
|
private |
Definition at line 36 of file LocalizationStage.h.
Referenced by ComputeActionBuffer(), ComputeNextAction(), and Update().
|
private |
Definition at line 37 of file LocalizationStage.h.
Referenced by AssignLaneChange(), ExtendAndFindSafeSpace(), ImportPath(), ImportRoute(), and Update().
|
private |
Definition at line 34 of file LocalizationStage.h.
Referenced by Update().
|
private |
Definition at line 44 of file LocalizationStage.h.
Referenced by RemoveActor(), and Reset().
|
private |
Definition at line 46 of file LocalizationStage.h.
Referenced by ExtendAndFindSafeSpace(), and Update().