交通管理器本地类,通过消息传递机制整合交通管理器的各个阶段。 @inherits TrafficManagerBase 更多...
#include <TrafficManagerLocal.h>
Public 成员函数 | |
ActionBuffer | GetActionBuffer (const ActorId &actor_id) |
获取车辆的动作缓冲区。 | |
carla::client::detail::EpisodeProxy & | GetEpisodeProxy () |
获取CARLA仿真场景的信息代理。 | |
Action | GetNextAction (const ActorId &actor_id) |
获取车辆的下一个动作。 | |
std::vector< ActorId > | GetRegisteredVehiclesIDs () |
获取所有已注册车辆的ID列表。 | |
void | RegisterVehicles (const std::vector< ActorPtr > &actor_list) |
向交通管理器注册车辆 | |
void | Release () |
释放交通管理器 此方法用于释放TrafficManagerLocal所占用的资源,例如线程、内存等 | |
void | RemoveImportedRoute (const ActorId &actor_id, const bool remove_path) |
移除路线。 | |
void | RemoveUploadPath (const ActorId &actor_id, const bool remove_path) |
移除一组点。 | |
void | Reset () |
重置交通管理器 此方法将TrafficManagerLocal重置为其初始状态,清除所有已注册的车辆和设置 | |
void | Run () |
启动线程以顺序运行交通管理器 此方法将创建一个新线程(如果尚未创建),并在该线程中顺序运行交通管理器的逻辑 | |
void | SetAutoLaneChange (const ActorPtr &actor, const bool enable) |
启用或禁用车辆的自动换道功能。 | |
void | SetBoundariesRespawnDormantVehicles (const float lower_bound, const float upper_bound) |
设置休眠车辆重生时的边界。 | |
void | SetCollisionDetection (const ActorPtr &reference_actor, const ActorPtr &other_actor, const bool detect_collision) |
设置两辆车之间的碰撞检测规则。 | |
void | SetCustomPath (const ActorPtr &actor, const Path path, const bool empty_buffer) |
设置自定义路径。 | |
void | SetDesiredSpeed (const ActorPtr &actor, const float value) |
设置车辆的精确期望速度 | |
void | SetDistanceToLeadingVehicle (const ActorPtr &actor, const float distance) |
设置车辆与前车应保持的距离。 | |
void | SetForceLaneChange (const ActorPtr &actor, const bool direction) |
强制车辆进行换道。 | |
void | SetGlobalDistanceToLeadingVehicle (const float distance) |
设置车辆与全局前导车辆应保持的距离。 | |
void | SetGlobalLaneOffset (float const offset) |
设置全局车道相对于中心线的偏移量。 | |
void | SetGlobalPercentageSpeedDifference (float const percentage) |
设置全局相对于限速的速度百分比差异 | |
void | SetHybridPhysicsMode (const bool mode_switch) |
设置混合物理模式。 | |
void | SetHybridPhysicsRadius (const float radius) |
设置混合物理模式的半径。 | |
void | SetImportedRoute (const ActorPtr &actor, const Route route, const bool empty_buffer) |
设置自定义路线。 | |
void | SetKeepRightPercentage (const ActorPtr &actor, const float percentage) |
设置车辆保持在右侧车道的百分比概率。 | |
void | SetLaneOffset (const ActorPtr &actor, const float offset) |
设置车辆相对于中心线的车道偏移量 | |
void | SetMaxBoundaries (const float lower, const float upper) |
设置重生休眠车辆时边界的限制。 | |
void | SetOSMMode (const bool mode_switch) |
设置Open Street Map模式。 | |
void | SetPercentageIgnoreVehicles (const ActorPtr &actor, const float perc) |
设置车辆忽略其他车辆碰撞的百分比概率。 | |
void | SetPercentageIgnoreWalkers (const ActorPtr &actor, const float perc) |
设置车辆忽略行人碰撞的百分比概率。 | |
void | SetPercentageRunningLight (const ActorPtr &actor, const float perc) |
设置车辆闯红灯的百分比概率。 | |
void | SetPercentageRunningSign (const ActorPtr &actor, const float perc) |
设置车辆无视交通标志的百分比概率。 | |
void | SetPercentageSpeedDifference (const ActorPtr &actor, const float percentage) |
设置车辆相对于限速的速度百分比差异 | |
void | SetRandomDeviceSeed (const uint64_t _seed) |
设置随机化种子。 | |
void | SetRandomLeftLaneChangePercentage (const ActorPtr &actor, const float percentage) |
设置车辆随机进行左车道变换的百分比概率。 | |
void | SetRandomRightLaneChangePercentage (const ActorPtr &actor, const float percentage) |
设置车辆随机进行右车道变换的百分比概率。 | |
void | SetRespawnDormantVehicles (const bool mode_switch) |
设置休眠车辆的自动重生模式。 | |
void | SetSynchronousMode (bool mode) |
将交通管理器切换到同步执行模式。 | |
void | SetSynchronousModeTimeOutInMiliSecond (double time) |
设置同步执行时的Tick超时时间(以毫秒为单位)。 | |
void | SetUpdateVehicleLights (const ActorPtr &actor, const bool do_update) |
设置车辆的灯光是否自动管理。 | |
void | SetupLocalMap () |
设置内存中的地图 此方法用于初始化或设置TrafficManagerLocal所使用的内存地图 | |
void | ShutDown () |
关闭并清理资源 | |
void | Start () |
启动交通管理器 此方法用于启动TrafficManagerLocal,开始其管理交通的功能 | |
void | Stop () |
停止交通管理器 此方法用于停止TrafficManagerLocal的运行,并可能进行必要的清理工作 | |
bool | SynchronousTick () |
提供同步Tick。 | |
TrafficManagerLocal (std::vector< float > longitudinal_PID_parameters, std::vector< float > longitudinal_highway_PID_parameters, std::vector< float > lateral_PID_parameters, std::vector< float > lateral_highway_PID_parameters, float perc_decrease_from_limit, cc::detail::EpisodeProxy &episode_proxy, uint16_t &RPCportTM) | |
私有构造函数,用于单例生命周期管理 | |
void | UnregisterVehicles (const std::vector< ActorPtr > &actor_list) |
从交通管理器注销车辆 | |
void | UpdateImportedRoute (const ActorId &actor_id, const Route route) |
更新已设置的路线。 | |
void | UpdateUploadPath (const ActorId &actor_id, const Path path) |
更新已设置的点列表。 | |
virtual | ~TrafficManagerLocal () |
析构函数 虚拟析构函数,用于确保派生类能够正确地被销毁 | |
![]() | |
TrafficManagerBase () | |
单例生命周期管理的受保护构造函数。 | |
virtual | ~TrafficManagerBase () |
析构函数。 | |
Private 成员函数 | |
bool | CheckAllFrozen (TLGroup tl_to_freeze) |
检查一个交通灯组中的所有交通灯是否都被冻结的方法 | |
Private 属性 | |
ALSM | alsm |
自动驾驶局部路径规划模块(ALSM) ALSM可能是一个用于生成局部路径规划算法的模块或对象 | |
BufferMap | buffer_map |
存储所有车辆路径点的缓冲区结构映射 使用BufferMap类型(可能是自定义的映射类型)来存储每个车辆的路径点缓冲区 | |
CollisionFrame | collision_frame |
存储碰撞避免阶段输出数据的数组 用于存储碰撞避免阶段产生的数据 | |
CollisionStage | collision_stage |
ControlFrame | control_frame |
存储运动规划阶段输出数据的数组 用于存储运动规划阶段产生的控制指令 | |
uint64_t | current_reserved_capacity {0u} |
用于跟踪当前为帧保留的数组空间的变量 这是一个无符号64位整数,用于记录为各个帧数组预留的空间大小 | |
carla::client::detail::EpisodeProxy | episode_proxy |
CARLA 客户端连接对象。 | |
std::vector< float > | lateral_highway_PID_parameters |
高速公路横向PID控制器参数集合。 | |
std::vector< float > | lateral_PID_parameters |
横向PID控制器参数集合。 | |
LocalMapPtr | local_map |
指向本地地图缓存的指针 使用智能指针管理InMemoryMap对象,用于存储和访问地图数据 | |
LocalizationFrame | localization_frame |
存储定位阶段输出数据的数组 用于存储定位阶段产生的数据 | |
LocalizationStage | localization_stage |
表示交通管理器核心操作的各种阶段 这些阶段包括定位、碰撞避免、交通灯响应、运动规划和车辆灯光控制等 | |
std::vector< float > | longitudinal_highway_PID_parameters |
高速公路纵向PID控制器参数集合。 | |
std::vector< float > | longitudinal_PID_parameters |
纵向PID控制器参数集合。 | |
std::vector< ActorId > | marked_for_removal |
标记为删除的参与者ID列表 用于存储需要在某个时间点被移除的参与者ID | |
MotionPlanStage | motion_plan_stage |
Parameters | parameters |
参数化对象 包含交通管理器运行所需的各种配置参数 | |
TimePoint | previous_update_instance |
在异步模式下用于计算时间差(dt)的时间实例 使用TimePoint类型表示一个具体的时间点,用于与上一个更新时间点进行比较,以计算时间差 | |
RandomGenerator | random_device = RandomGenerator(seed) |
持有每辆车的随机设备的结构体 RandomGenerator是一个用于生成随机数的类或结构体,使用seed进行初始化 | |
AtomicActorSet | registered_vehicles |
注册到交通管理器的所有参与者集合。 | |
int | registered_vehicles_state |
用于跟踪注册参与者状态变化的计数器 | |
std::mutex | registration_mutex |
防止在帧数组重新分配期间注册车辆的互斥锁 用于保护车辆注册操作,确保在帧数组重新分配时不会有新的车辆被注册 | |
std::atomic< bool > | run_traffic_manger {true} |
用于打开/关闭交通管理器的开关 这是一个原子布尔变量,用于线程安全地控制交通管理器的运行状态 | |
uint64_t | seed {static_cast<uint64_t>(time(NULL))} |
随机化种子 使用当前时间作为随机化种子,确保每次程序运行时都能产生不同的随机序列 | |
TrafficManagerServer | server |
交通管理器服务器实例。 负责处理来自客户端的请求,并管理交通管理器的运行 | |
SimulationState | simulation_state |
包含模拟中所有参与者当前状态的类型 用于表示模拟中所有参与者的状态信息 | |
std::atomic< bool > | step_begin {false} |
用于标记步骤开始和结束的标志 使用std::atomic<bool>确保跨线程的原子操作,避免数据竞争 | |
std::condition_variable | step_begin_trigger |
用于同步执行进度的条件变量 std::condition_variable用于线程间的同步,当一个线程需要等待某个条件成立时,可以阻塞在该条件变量上,直到另一个线程通知条件已成立 | |
std::atomic< bool > | step_end {false} |
std::condition_variable | step_end_trigger |
std::mutex | step_execution_mutex |
用于同步执行进度的互斥锁 std::mutex用于保护共享资源,确保同一时间只有一个线程可以访问 | |
TLFrame | tl_frame |
存储交通灯响应阶段输出数据的数组 用于存储交通灯响应阶段产生的数据 | |
TrackTraffic | track_traffic |
用于跟踪交通车辆路径的对象 TrackTraffic对象可能包含有关交通车辆当前位置和预期路径的信息 | |
TrafficLightStage | traffic_light_stage |
std::vector< ActorId > | vehicle_id_list |
当前更新周期中注册到交通管理器的车辆列表 使用ActorId类型存储车辆的唯一标识符 | |
VehicleLightStage | vehicle_light_stage |
std::unique_ptr< std::thread > | worker_thread |
用于顺序执行子组件的单个工作线程 使用std::unique_ptr<std::thread>管理线程的生命周期,确保线程在不再需要时能够被正确销毁 | |
cc::World | world |
CARLA 世界对象。 | |
交通管理器本地类,通过消息传递机制整合交通管理器的各个阶段。 @inherits TrafficManagerBase
该类继承自TrafficManagerBase,并实现了通过消息传递机制整合交通管理器的各个阶段的功能。
在文件 TrafficManagerLocal.h 第 58 行定义.
carla::traffic_manager::TrafficManagerLocal::TrafficManagerLocal | ( | std::vector< float > | longitudinal_PID_parameters, |
std::vector< float > | longitudinal_highway_PID_parameters, | ||
std::vector< float > | lateral_PID_parameters, | ||
std::vector< float > | lateral_highway_PID_parameters, | ||
float | perc_decrease_from_limit, | ||
cc::detail::EpisodeProxy & | episode_proxy, | ||
uint16_t & | RPCportTM ) |
私有构造函数,用于单例生命周期管理
通过私有构造函数确保TrafficManagerLocal类只能有一个实例被创建,并通过其他静态方法访问该实例
longitudinal_PID_parameters | 纵向PID控制参数 |
longitudinal_highway_PID_parameters | 高速公路纵向PID控制参数 |
lateral_PID_parameters | 横向PID控制参数 |
lateral_highway_PID_parameters | 高速公路横向PID控制参数 |
perc_decrease_from_limit | 从限速降低的百分比 |
episode_proxy | 模拟器中的episode代理对象 |
RPCportTM | 交通管理器使用的RPC端口号 |
在文件 TrafficManagerLocal.cpp 第 22 行定义.
引用了 parameters, registered_vehicles_state, carla::traffic_manager::Parameters::SetGlobalPercentageSpeedDifference(), SetupLocalMap() , 以及 Start().
|
virtual |
析构函数 虚拟析构函数,用于确保派生类能够正确地被销毁
在文件 TrafficManagerLocal.cpp 第 113 行定义.
引用了 episode_proxy, carla::client::detail::EpisodeProxyImpl< PointerT >::Lock() , 以及 Release().
|
private |
检查一个交通灯组中的所有交通灯是否都被冻结的方法
tl_to_freeze | 要检查的交通灯组 |
在文件 TrafficManagerLocal.cpp 第 461 行定义.
|
virtual |
获取车辆的动作缓冲区。
actor_id | 车辆ID。 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerLocal.cpp 第 457 行定义.
|
virtual |
获取CARLA仿真场景的信息代理。
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerLocal.cpp 第 483 行定义.
获取车辆的下一个动作。
actor_id | 车辆ID。 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerLocal.cpp 第 453 行定义.
std::vector< ActorId > TrafficManagerLocal::GetRegisteredVehiclesIDs | ( | ) |
|
virtual |
向交通管理器注册车辆
actor_list | 要注册的车辆列表,每个元素都是一个指向Actor的指针 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerLocal.cpp 第 320 行定义.
|
virtual |
释放交通管理器 此方法用于释放TrafficManagerLocal所占用的资源,例如线程、内存等
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerLocal.cpp 第 305 行定义.
被这些函数引用 ~TrafficManagerLocal().
|
virtual |
移除路线。
actor_id | 车辆ID。 |
remove_path | 是否移除路线。如果为true,则移除;如果为false,则不移除 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerLocal.cpp 第 433 行定义.
|
virtual |
移除一组点。
actor_id | 车辆ID。 |
remove_path | 是否移除路径。如果为true,则移除;如果为false,则不移除 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerLocal.cpp 第 421 行定义.
|
virtual |
重置交通管理器
此方法将TrafficManagerLocal重置为其初始状态,清除所有已注册的车辆和设置
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerLocal.cpp 第 312 行定义.
void carla::traffic_manager::TrafficManagerLocal::Run | ( | ) |
启动线程以顺序运行交通管理器
此方法将创建一个新线程(如果尚未创建),并在该线程中顺序运行交通管理器的逻辑
在文件 TrafficManagerLocal.cpp 第 143 行定义.
引用了 alsm, carla::traffic_manager::CollisionStage::ClearCycleCache(), collision_frame, collision_stage, control_frame, current_reserved_capacity, episode_proxy, carla::client::Timestamp::frame, carla::traffic_manager::Parameters::GetHybridPhysicsMode(), carla::traffic_manager::AtomicActorSet::GetIDList(), carla::client::World::GetSnapshot(), carla::traffic_manager::AtomicActorSet::GetState(), carla::traffic_manager::Parameters::GetSynchronousMode(), carla::client::WorldSnapshot::GetTimestamp(), carla::traffic_manager::constants::FrameMemory::GROWTH_STEP_SIZE, carla::traffic_manager::constants::FrameMemory::INITIAL_SIZE, carla::traffic_manager::constants::FrameMemory::INV_GROWTH_STEP_SIZE, localization_frame, localization_stage, carla::client::detail::EpisodeProxyImpl< PointerT >::Lock(), motion_plan_stage, parameters, previous_update_instance, registered_vehicles, registered_vehicles_state, registration_mutex, run_traffic_manger, carla::traffic_manager::Parameters::SetMaxBoundaries(), carla::traffic_manager::AtomicActorSet::Size(), step_begin, step_begin_trigger, step_end, step_end_trigger, step_execution_mutex, tl_frame, traffic_light_stage, carla::traffic_manager::MotionPlanStage::Update(), carla::traffic_manager::CollisionStage::Update(), carla::traffic_manager::LocalizationStage::Update(), carla::traffic_manager::TrafficLightStage::Update(), carla::traffic_manager::VehicleLightStage::Update(), carla::traffic_manager::VehicleLightStage::UpdateWorldInfo(), vehicle_id_list, vehicle_light_stage , 以及 world.
被这些函数引用 Start().
|
virtual |
启用或禁用车辆的自动换道功能。
actor | 要设置自动换道状态的车辆指针。 |
enable | 是否启用自动换道。如果为true,则启用;如果为false,则禁用 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerLocal.cpp 第 365 行定义.
|
virtual |
设置休眠车辆重生时的边界。
lower_bound | 重生边界的下限。 |
upper_bound | 重生边界的上限 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerLocal.cpp 第 445 行定义.
|
virtual |
设置两辆车之间的碰撞检测规则。
reference_actor | 参考车辆指针,即碰撞检测中的一方。 |
other_actor | 另一车辆指针,即与参考车辆进行碰撞检测的另一方。 |
detect_collision | 是否启用两车之间的碰撞检测。如果为true,则启用;如果为false,则禁用 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerLocal.cpp 第 357 行定义.
|
virtual |
设置自定义路径。
actor | 要设置路径的车辆指针。 |
path | 自定义路径。 |
empty_buffer | 是否清空已有的路径缓冲区。如果为true,则清空;如果为false,则不清空 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerLocal.cpp 第 417 行定义.
|
virtual |
设置车辆的精确期望速度
actor | 要设置期望速度的车辆指针 |
value | 车辆的期望速度值 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerLocal.cpp 第 348 行定义.
|
virtual |
设置车辆与前车应保持的距离。
actor | 要设置距离的车辆指针。 |
distance | 车辆与前车应保持的距离值 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerLocal.cpp 第 369 行定义.
|
virtual |
强制车辆进行换道。
actor | 要强制换道的车辆指针。 |
direction | 换道方向。如果为true,则向左换道;如果为false,则向右换道 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerLocal.cpp 第 361 行定义.
|
virtual |
设置车辆与全局前导车辆应保持的距离。
distance | 车辆与全局前导车辆应保持的距离值。 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerLocal.cpp 第 373 行定义.
|
virtual |
设置全局车道相对于中心线的偏移量。
offset | 车道偏移量。正值表示向右偏移,负值表示向左偏移。 此设置将影响所有由交通管理器管理的车辆 |
|
virtual |
设置全局相对于限速的速度百分比差异
percentage | 全局速度百分比差异,如果小于0,则表示速度百分比增加 此设置将影响所有已注册的车辆 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerLocal.cpp 第 337 行定义.
|
virtual |
设置混合物理模式。
mode_switch | 是否启用混合物理模式。如果为true,则启用;如果为false,则禁用 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerLocal.cpp 第 405 行定义.
|
virtual |
设置混合物理模式的半径。
radius | 混合物理模式的半径值 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerLocal.cpp 第 409 行定义.
|
virtual |
设置自定义路线。
actor | 要设置路线的车辆指针。 |
route | 自定义路线。 |
empty_buffer | 是否清空已有的路线缓冲区。如果为true,则清空;如果为false,则不清空 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerLocal.cpp 第 429 行定义.
|
virtual |
设置车辆保持在右侧车道的百分比概率。
actor | 要设置的车辆指针。 |
percentage | 车辆保持在右侧车道的百分比概率 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerLocal.cpp 第 393 行定义.
|
virtual |
设置车辆相对于中心线的车道偏移量
actor | 要设置车道偏移量的车辆指针 |
offset | 车道偏移量,正值表示向右偏移,负值表示向左偏移 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerLocal.cpp 第 341 行定义.
|
virtual |
设置重生休眠车辆时边界的限制。
lower | 下限值。 |
upper | 上限值 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerLocal.cpp 第 449 行定义.
|
virtual |
设置Open Street Map模式。
mode_switch | 是否启用Open Street Map模式。如果为true,则启用;如果为false,则禁用. |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerLocal.cpp 第 413 行定义.
|
virtual |
设置车辆忽略其他车辆碰撞的百分比概率。
actor | 要设置忽略其他车辆碰撞概率的车辆指针。 |
perc | 忽略其他车辆碰撞的百分比概率。值范围应在0到100之间 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerLocal.cpp 第 381 行定义.
|
virtual |
设置车辆忽略行人碰撞的百分比概率。
actor | 要设置忽略行人碰撞概率的车辆指针。 |
perc | 忽略行人碰撞的百分比概率。值范围应在0到100之间。 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerLocal.cpp 第 377 行定义.
|
virtual |
设置车辆闯红灯的百分比概率。
actor | 要设置闯红灯概率的车辆指针。 |
perc | 闯红灯的百分比概率。值范围应在0到100之间 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerLocal.cpp 第 385 行定义.
|
virtual |
设置车辆无视交通标志的百分比概率。
actor | 要设置无视交通标志概率的车辆指针。 |
perc | 无视交通标志的百分比概率。值范围应在0到100之间。 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerLocal.cpp 第 389 行定义.
|
virtual |
设置车辆相对于限速的速度百分比差异
actor | 要设置速度差异的车辆指针 |
percentage | 速度百分比差异,如果小于0,则表示速度百分比增加 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerLocal.cpp 第 333 行定义.
|
virtual |
设置随机化种子。
_seed | 随机化种子值 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerLocal.cpp 第 491 行定义.
|
virtual |
设置车辆随机进行左车道变换的百分比概率。
actor | 要设置的车辆指针。 |
percentage | 车辆随机进行左车道变换的百分比概率 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerLocal.cpp 第 397 行定义.
|
virtual |
设置车辆随机进行右车道变换的百分比概率。
actor | 要设置的车辆指针。 |
percentage | 车辆随机进行右车道变换的百分比概率 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerLocal.cpp 第 401 行定义.
|
virtual |
设置休眠车辆的自动重生模式。
mode_switch | 是否启用休眠车辆的自动重生模式。如果为true,则启用;如果为false,则禁用 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerLocal.cpp 第 441 行定义.
|
virtual |
将交通管理器切换到同步执行模式。
mode | 是否启用同步执行模式。如果为true,则启用;如果为false,则禁用。 在同步执行模式下,交通管理器的所有操作将按顺序执行,而不是并行执行 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerLocal.cpp 第 470 行定义.
|
virtual |
设置同步执行时的Tick超时时间(以毫秒为单位)。
time | Tick超时时间,单位为毫秒 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerLocal.cpp 第 479 行定义.
|
virtual |
设置车辆的灯光是否自动管理。
设置车辆灯光自动管理的方法
actor | 要设置灯光管理状态的车辆指针。 |
do_update | 是否启用自动灯光管理。如果为true,则启用;如果为false,则禁用 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerLocal.cpp 第 353 行定义.
void carla::traffic_manager::TrafficManagerLocal::SetupLocalMap | ( | ) |
设置内存中的地图 此方法用于初始化或设置TrafficManagerLocal所使用的内存地图
在文件 TrafficManagerLocal.cpp 第 119 行定义.
引用了 episode_proxy, carla::client::World::GetMap(), local_map, carla::client::detail::EpisodeProxyImpl< PointerT >::Lock(), carla::log_warning() , 以及 world.
被这些函数引用 TrafficManagerLocal().
|
inlinevirtual |
|
virtual |
启动交通管理器
此方法用于启动TrafficManagerLocal,开始其管理交通的功能
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerLocal.cpp 第 138 行定义.
引用了 Run(), run_traffic_manger , 以及 worker_thread.
被这些函数引用 TrafficManagerLocal().
|
virtual |
停止交通管理器
此方法用于停止TrafficManagerLocal的运行,并可能进行必要的清理工作
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerLocal.cpp 第 265 行定义.
引用了 buffer_map, carla::traffic_manager::AtomicActorSet::Clear(), carla::traffic_manager::TrackTraffic::Clear(), collision_frame, collision_stage, control_frame, current_reserved_capacity, carla::traffic_manager::Parameters::GetSynchronousMode(), localization_frame, localization_stage, motion_plan_stage, parameters, previous_update_instance, registered_vehicles, registered_vehicles_state, carla::traffic_manager::MotionPlanStage::Reset(), carla::traffic_manager::SimulationState::Reset(), carla::traffic_manager::CollisionStage::Reset(), carla::traffic_manager::LocalizationStage::Reset(), carla::traffic_manager::TrafficLightStage::Reset(), run_traffic_manger, simulation_state, step_begin, step_begin_trigger, step_end, tl_frame, track_traffic, traffic_light_stage, vehicle_id_list , 以及 worker_thread.
|
virtual |
提供同步Tick。
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerLocal.cpp 第 253 行定义.
引用了 carla::traffic_manager::Parameters::GetSynchronousMode(), parameters, step_begin, step_begin_trigger, step_end, step_end_trigger , 以及 step_execution_mutex.
|
virtual |
从交通管理器注销车辆
actor_list | 要注销的车辆列表,每个元素都是一个指向Actor的指针 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerLocal.cpp 第 325 行定义.
|
virtual |
更新已设置的路线。
actor_id | 车辆ID。 |
route | 新的路线 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerLocal.cpp 第 437 行定义.
更新已设置的点列表。
actor_id | 车辆ID。 |
path | 新的路径 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerLocal.cpp 第 425 行定义.
|
private |
|
private |
存储所有车辆路径点的缓冲区结构映射
使用BufferMap类型(可能是自定义的映射类型)来存储每个车辆的路径点缓冲区
在文件 TrafficManagerLocal.h 第 113 行定义.
被这些函数引用 Stop().
|
private |
|
private |
在文件 TrafficManagerLocal.h 第 144 行定义.
|
private |
|
private |
用于跟踪当前为帧保留的数组空间的变量 这是一个无符号64位整数,用于记录为各个帧数组预留的空间大小
在文件 TrafficManagerLocal.h 第 140 行定义.
|
private |
CARLA 客户端连接对象。
用于与CARLA仿真环境进行通信的客户端连接对象。
在文件 TrafficManagerLocal.h 第 90 行定义.
被这些函数引用 Run(), SetupLocalMap() , 以及 ~TrafficManagerLocal().
|
private |
|
private |
|
private |
指向本地地图缓存的指针
使用智能指针管理InMemoryMap对象,用于存储和访问地图数据
在文件 TrafficManagerLocal.h 第 110 行定义.
被这些函数引用 SetupLocalMap().
|
private |
|
private |
表示交通管理器核心操作的各种阶段
这些阶段包括定位、碰撞避免、交通灯响应、运动规划和车辆灯光控制等
在文件 TrafficManagerLocal.h 第 143 行定义.
|
private |
|
private |
|
private |
标记为删除的参与者ID列表 用于存储需要在某个时间点被移除的参与者ID
在文件 TrafficManagerLocal.h 第 179 行定义.
|
private |
在文件 TrafficManagerLocal.h 第 146 行定义.
|
private |
参数化对象
包含交通管理器运行所需的各种配置参数
在文件 TrafficManagerLocal.h 第 125 行定义.
被这些函数引用 Run(), Stop(), SynchronousTick() , 以及 TrafficManagerLocal().
|
private |
在异步模式下用于计算时间差(dt)的时间实例
使用TimePoint类型表示一个具体的时间点,用于与上一个更新时间点进行比较,以计算时间差
在文件 TrafficManagerLocal.h 第 122 行定义.
|
private |
持有每辆车的随机设备的结构体
RandomGenerator是一个用于生成随机数的类或结构体,使用seed进行初始化
在文件 TrafficManagerLocal.h 第 176 行定义.
|
private |
|
private |
用于跟踪注册参与者状态变化的计数器
在文件 TrafficManagerLocal.h 第 104 行定义.
被这些函数引用 Run(), Stop() , 以及 TrafficManagerLocal().
|
private |
防止在帧数组重新分配期间注册车辆的互斥锁
用于保护车辆注册操作,确保在帧数组重新分配时不会有新的车辆被注册
在文件 TrafficManagerLocal.h 第 182 行定义.
被这些函数引用 Run().
|
private |
用于打开/关闭交通管理器的开关
这是一个原子布尔变量,用于线程安全地控制交通管理器的运行状态
在文件 TrafficManagerLocal.h 第 156 行定义.
|
private |
随机化种子
使用当前时间作为随机化种子,确保每次程序运行时都能产生不同的随机序列
在文件 TrafficManagerLocal.h 第 173 行定义.
|
private |
交通管理器服务器实例。
负责处理来自客户端的请求,并管理交通管理器的运行
在文件 TrafficManagerLocal.h 第 153 行定义.
|
private |
|
private |
用于标记步骤开始和结束的标志 使用std::atomic<bool>确保跨线程的原子操作,避免数据竞争
在文件 TrafficManagerLocal.h 第 159 行定义.
被这些函数引用 Run(), Stop() , 以及 SynchronousTick().
|
private |
用于同步执行进度的条件变量 std::condition_variable用于线程间的同步,当一个线程需要等待某个条件成立时,可以阻塞在该条件变量上,直到另一个线程通知条件已成立
在文件 TrafficManagerLocal.h 第 166 行定义.
被这些函数引用 Run(), Stop() , 以及 SynchronousTick().
|
private |
在文件 TrafficManagerLocal.h 第 160 行定义.
被这些函数引用 Run(), Stop() , 以及 SynchronousTick().
|
private |
在文件 TrafficManagerLocal.h 第 167 行定义.
被这些函数引用 Run() , 以及 SynchronousTick().
|
private |
用于同步执行进度的互斥锁 std::mutex用于保护共享资源,确保同一时间只有一个线程可以访问
在文件 TrafficManagerLocal.h 第 163 行定义.
被这些函数引用 Run() , 以及 SynchronousTick().
|
private |
|
private |
用于跟踪交通车辆路径的对象 TrackTraffic对象可能包含有关交通车辆当前位置和预期路径的信息
在文件 TrafficManagerLocal.h 第 116 行定义.
被这些函数引用 Stop().
|
private |
在文件 TrafficManagerLocal.h 第 145 行定义.
|
private |
当前更新周期中注册到交通管理器的车辆列表
使用ActorId类型存储车辆的唯一标识符
在文件 TrafficManagerLocal.h 第 107 行定义.
|
private |
在文件 TrafficManagerLocal.h 第 147 行定义.
被这些函数引用 Run().
|
private |
用于顺序执行子组件的单个工作线程
使用std::unique_ptr<std::thread>管理线程的生命周期,确保线程在不再需要时能够被正确销毁
在文件 TrafficManagerLocal.h 第 170 行定义.
|
private |
CARLA 世界对象。
表示CARLA仿真世界的一个对象,用于访问和操作仿真世界中的元素。
在文件 TrafficManagerLocal.h 第 96 行定义.
被这些函数引用 Run() , 以及 SetupLocalMap().