16namespace traffic_manager {
23using Action = std::pair<RoadOption, WaypointPtr>;
25using Path = std::vector<cg::Location>;
26using Route = std::vector<uint8_t>;
50 const float vehicle_speed,
51 bool force,
bool direction);
55 const bool is_at_junction_entrance,
62 const float horizon_square);
68 const float horizon_square);
83 void Update(
const unsigned long index)
override;
89 void Reset()
override;
此类功能是维护车辆前方的路径点以供跟随。 该类还负责管理车道变更决策并适当地修改路径轨迹。
ActionBuffer ComputeActionBuffer(const ActorId &actor_id)
void ImportRoute(Route &imported_actions, Buffer &waypoint_buffer, const ActorId actor_id, const float horizon_square)
ActorIdSet vehicles_at_junction
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 ImportPath(Path &imported_path, Buffer &waypoint_buffer, const ActorId actor_id, const float horizon_square)
void ExtendAndFindSafeSpace(const ActorId actor_id, const bool is_at_junction_entrance, Buffer &waypoint_buffer)
Action ComputeNextAction(const ActorId &actor_id)
std::unordered_map< ActorId, SimpleWaypointPair > vehicles_at_junction_entrance
const SimulationState & simulation_state
RandomGenerator & random_device
const std::vector< ActorId > & vehicle_id_list
TrackTraffic & track_traffic
void Reset() override
重置方法。
SimpleWaypointPtr AssignLaneChange(const ActorId actor_id, const cg::Location vehicle_location, const float vehicle_speed, bool force, bool direction)
const LocalMapPtr & local_map
LocalizationFrame & output_array
std::vector< ActorId > & marked_for_removal
void Update(const unsigned long index) override
更新方法。
void RemoveActor(const ActorId actor_id) override
移除参与者方法。
std::pair< SimpleWaypointPtr, SimpleWaypointPtr > SimpleWaypointPair
LaneChangeSWptMap last_lane_change_swpt
carla::SharedPtr< cc::Waypoint > WaypointPtr
Waypoint的智能指针类型别名。
std::vector< uint8_t > Route
路线类型,由一系列地理位置组成
std::vector< cg::Location > Path
参与者的唯一标识符类型
std::unordered_map< ActorId, SimpleWaypointPtr > LaneChangeSWptMap
std::vector< Action > ActionBuffer
动作缓冲区类型别名。
std::deque< std::shared_ptr< SimpleWaypoint > > Buffer
std::shared_ptr< InMemoryMap > LocalMapPtr
本地地图指针类型,使用智能指针管理InMemoryMap对象
std::shared_ptr< SimpleWaypoint > SimpleWaypointPtr
std::pair< RoadOption, WaypointPtr > Action
动作类型别名。
carla::ActorId ActorId
参与者的智能指针类型
std::unordered_set< ActorId > ActorIdSet
std::vector< LocalizationData > LocalizationFrame
std::unordered_map< carla::ActorId, Buffer > BufferMap
boost::shared_ptr< T > SharedPtr
使用这个SharedPtr(boost::shared_ptr)以保持与boost::python的兼容性, 但未来如果可能的话,我们希望能为std::shared_ptr制作一个Python适配器。