交通管理器本地类,通过消息传递机制整合交通管理器的各个阶段。 @inherits TrafficManagerBase 更多...
#include <TrafficManagerLocal.h>
类 carla::traffic_manager::TrafficManagerLocal 继承关系图:
carla::traffic_manager::TrafficManagerLocal 的协作图: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 () |
| 析构函数 虚拟析构函数,用于确保派生类能够正确地被销毁 更多... | |
Public 成员函数 继承自 carla::traffic_manager::TrafficManagerBase | |
| virtual ActionBuffer | GetActionBuffer (const ActorId &actor_id)=0 |
| 获取车辆的动作缓冲区。 更多... | |
| virtual carla::client::detail::EpisodeProxy & | GetEpisodeProxy ()=0 |
| 获取CARLA场景信息代理。 更多... | |
| virtual Action | GetNextAction (const ActorId &actor_id)=0 |
| 获取车辆的下一个动作。 更多... | |
| virtual void | RegisterVehicles (const std::vector< ActorPtr > &actor_list)=0 |
| 此方法向交通管理器注册车辆。 更多... | |
| virtual void | Release ()=0 |
| 释放交通管理器。 更多... | |
| virtual void | RemoveImportedRoute (const ActorId &actor_id, const bool remove_path)=0 |
| 移除路线。 更多... | |
| virtual void | RemoveUploadPath (const ActorId &actor_id, const bool remove_path)=0 |
| 移除路径。 更多... | |
| virtual void | Reset ()=0 |
| 重置交通管理器。 更多... | |
| virtual void | SetAutoLaneChange (const ActorPtr &actor, const bool enable)=0 |
| 启用/禁用车辆的自动换道。 更多... | |
| virtual void | SetBoundariesRespawnDormantVehicles (const float lower_bound, const float upper_bound)=0 |
| 设置重生车辆的范围。 更多... | |
| virtual void | SetCollisionDetection (const ActorPtr &reference_actor, const ActorPtr &other_actor, const bool detect_collision)=0 |
| 设置车辆之间的碰撞检测规则。 更多... | |
| virtual void | SetCustomPath (const ActorPtr &actor, const Path path, const bool empty_buffer)=0 |
| 设置自定义导入路径。 更多... | |
| virtual void | SetDesiredSpeed (const ActorPtr &actor, const float value)=0 |
| 设置车辆的精确期望速度。 更多... | |
| virtual void | SetDistanceToLeadingVehicle (const ActorPtr &actor, const float distance)=0 |
| 设置车辆与前车应保持的距离。 更多... | |
| virtual void | SetForceLaneChange (const ActorPtr &actor, const bool direction)=0 |
| 强制车辆换道。 更多... | |
| virtual void | SetGlobalDistanceToLeadingVehicle (const float dist)=0 |
| 设置全局前车距离。 更多... | |
| virtual void | SetGlobalLaneOffset (float const offset)=0 |
| 设置全局相对于中心线的车道偏移量。 正值表示向右偏移,负值表示向左偏移。 更多... | |
| virtual void | SetGlobalPercentageSpeedDifference (float const percentage)=0 |
| 设置全局相对于限速的速度百分比降低。 如果小于0,则表示百分比增加。 更多... | |
| virtual void | SetHybridPhysicsMode (const bool mode_switch)=0 |
| 设置混合物理模式。 更多... | |
| virtual void | SetHybridPhysicsRadius (const float radius)=0 |
| 设置混合物理半径。 更多... | |
| virtual void | SetImportedRoute (const ActorPtr &actor, const Route route, const bool empty_buffer)=0 |
| 设置自定义导入路线。 更多... | |
| virtual void | SetKeepRightPercentage (const ActorPtr &actor, const float percentage)=0 |
| 设置保持在右车道的百分比。 更多... | |
| virtual void | SetLaneOffset (const ActorPtr &actor, const float offset)=0 |
| 设置车辆相对于中心线的车道偏移量。 正值表示向右偏移,负值表示向左偏移。 更多... | |
| virtual void | SetMaxBoundaries (const float lower, const float upper)=0 |
| 设置范围限制。 更多... | |
| virtual void | SetOSMMode (const bool mode_switch)=0 |
| 设置Open Street Map模式。 更多... | |
| virtual void | SetPercentageIgnoreVehicles (const ActorPtr &actor, const float perc)=0 |
| 设置车辆忽略其他车辆的碰撞概率。 更多... | |
| virtual void | SetPercentageIgnoreWalkers (const ActorPtr &actor, const float perc)=0 |
| 设置车辆忽略行人的碰撞概率。 更多... | |
| virtual void | SetPercentageRunningLight (const ActorPtr &actor, const float perc)=0 |
| 设置车辆闯红灯的概率。 更多... | |
| virtual void | SetPercentageRunningSign (const ActorPtr &actor, const float perc)=0 |
| 设置车辆无视交通标志的概率。 更多... | |
| virtual void | SetPercentageSpeedDifference (const ActorPtr &actor, const float percentage)=0 |
| 设置车辆相对于限速的速度百分比降低。 如果小于0,则表示百分比增加。 更多... | |
| virtual void | SetRandomDeviceSeed (const uint64_t seed)=0 |
| 设置随机化种子。 更多... | |
| virtual void | SetRandomLeftLaneChangePercentage (const ActorPtr &actor, const float percentage)=0 |
| 设置随机左变道的百分比。 更多... | |
| virtual void | SetRandomRightLaneChangePercentage (const ActorPtr &actor, const float percentage)=0 |
| 设置随机右变道的百分比。 更多... | |
| virtual void | SetRespawnDormantVehicles (const bool mode_switch)=0 |
| 设置休眠车辆的自动重生。 更多... | |
| virtual void | SetSynchronousMode (bool mode)=0 |
| 将交通管理器切换到同步执行模式。 更多... | |
| virtual void | SetSynchronousModeTimeOutInMiliSecond (double time)=0 |
| 设置同步执行模式的Tick超时时间。 更多... | |
| virtual void | SetUpdateVehicleLights (const ActorPtr &actor, const bool do_update)=0 |
| 设置车辆灯光的自动管理。 更多... | |
| virtual void | ShutDown ()=0 |
| 关闭系统。 更多... | |
| virtual void | Start ()=0 |
| 启动交通管理器。 更多... | |
| virtual void | Stop ()=0 |
| 停止交通管理器。 更多... | |
| virtual bool | SynchronousTick ()=0 |
| 提供同步Tick。 更多... | |
| TrafficManagerBase () | |
| 单例生命周期管理的受保护构造函数。 更多... | |
| virtual void | UnregisterVehicles (const std::vector< ActorPtr > &actor_list)=0 |
| 此方法从交通管理器注销车辆。 更多... | |
| virtual void | UpdateImportedRoute (const ActorId &actor_id, const Route route)=0 |
| 更新已设置的路线。 更多... | |
| virtual void | UpdateUploadPath (const ActorId &actor_id, const Path path)=0 |
| 更新已设置的路径。 更多... | |
| 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(), carla::traffic_manager::TrafficManagerServer::port(), Release() , 以及 server.
函数调用图:
|
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 行定义.
被这些函数引用 ~TrafficManagerLocal().
|
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().