CARLA
 
载入中...
搜索中...
未找到
Public 成员函数 | Private 成员函数 | Private 属性 | 所有成员列表
carla::traffic_manager::TrafficManagerLocal类 参考

交通管理器本地类,通过消息传递机制整合交通管理器的各个阶段。 @inherits TrafficManagerBase 更多...

#include <TrafficManagerLocal.h>

+ 类 carla::traffic_manager::TrafficManagerLocal 继承关系图:
+ carla::traffic_manager::TrafficManagerLocal 的协作图:

Public 成员函数

ActionBuffer GetActionBuffer (const ActorId &actor_id)
 获取车辆的动作缓冲区。

 
carla::client::detail::EpisodeProxyGetEpisodeProxy ()
 获取CARLA仿真场景的信息代理。

 
Action GetNextAction (const ActorId &actor_id)
 获取车辆的下一个动作。

 
std::vector< ActorIdGetRegisteredVehiclesIDs ()
 获取所有已注册车辆的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
 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< ActorIdmarked_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< ActorIdvehicle_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.h58 行定义.

构造及析构函数说明

◆ TrafficManagerLocal()

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.cpp22 行定义.

引用了 parameters, registered_vehicles_state, carla::traffic_manager::Parameters::SetGlobalPercentageSpeedDifference(), SetupLocalMap() , 以及 Start().

+ 函数调用图:

◆ ~TrafficManagerLocal()

carla::traffic_manager::TrafficManagerLocal::~TrafficManagerLocal ( )
virtual

析构函数 虚拟析构函数,用于确保派生类能够正确地被销毁

在文件 TrafficManagerLocal.cpp113 行定义.

引用了 episode_proxy, carla::client::detail::EpisodeProxyImpl< PointerT >::Lock() , 以及 Release().

+ 函数调用图:

成员函数说明

◆ CheckAllFrozen()

bool TrafficManagerLocal::CheckAllFrozen ( TLGroup tl_to_freeze)
private

检查一个交通灯组中的所有交通灯是否都被冻结的方法

参数
tl_to_freeze要检查的交通灯组
返回
如果所有交通灯都被冻结,则返回true;否则返回false

在文件 TrafficManagerLocal.cpp461 行定义.

◆ GetActionBuffer()

ActionBuffer TrafficManagerLocal::GetActionBuffer ( const ActorId & actor_id)
virtual

获取车辆的动作缓冲区。

参数
actor_id车辆ID。
返回
返回车辆的动作缓冲区

实现了 carla::traffic_manager::TrafficManagerBase.

在文件 TrafficManagerLocal.cpp457 行定义.

◆ GetEpisodeProxy()

carla::client::detail::EpisodeProxy & TrafficManagerLocal::GetEpisodeProxy ( )
virtual

获取CARLA仿真场景的信息代理。

返回
返回CARLA仿真场景的EpisodeProxy引用

实现了 carla::traffic_manager::TrafficManagerBase.

在文件 TrafficManagerLocal.cpp483 行定义.

◆ GetNextAction()

Action TrafficManagerLocal::GetNextAction ( const ActorId & actor_id)
virtual

获取车辆的下一个动作。

参数
actor_id车辆ID。
返回
返回车辆的下一个动作

实现了 carla::traffic_manager::TrafficManagerBase.

在文件 TrafficManagerLocal.cpp453 行定义.

◆ GetRegisteredVehiclesIDs()

std::vector< ActorId > TrafficManagerLocal::GetRegisteredVehiclesIDs ( )

获取所有已注册车辆的ID列表。

返回
返回包含所有已注册车辆ID的std::vector

在文件 TrafficManagerLocal.cpp487 行定义.

◆ RegisterVehicles()

void carla::TrafficManagerLocal::RegisterVehicles ( const std::vector< ActorPtr > & actor_list)
virtual

向交通管理器注册车辆

参数
actor_list要注册的车辆列表,每个元素都是一个指向Actor的指针

实现了 carla::traffic_manager::TrafficManagerBase.

在文件 TrafficManagerLocal.cpp320 行定义.

◆ Release()

void carla::TrafficManagerLocal::Release ( )
virtual

释放交通管理器 此方法用于释放TrafficManagerLocal所占用的资源,例如线程、内存等

实现了 carla::traffic_manager::TrafficManagerBase.

在文件 TrafficManagerLocal.cpp305 行定义.

被这些函数引用 ~TrafficManagerLocal().

+ 这是这个函数的调用关系图:

◆ RemoveImportedRoute()

void TrafficManagerLocal::RemoveImportedRoute ( const ActorId & actor_id,
const bool remove_path )
virtual

移除路线。

参数
actor_id车辆ID。
remove_path是否移除路线。如果为true,则移除;如果为false,则不移除

实现了 carla::traffic_manager::TrafficManagerBase.

在文件 TrafficManagerLocal.cpp433 行定义.

◆ RemoveUploadPath()

void TrafficManagerLocal::RemoveUploadPath ( const ActorId & actor_id,
const bool remove_path )
virtual

移除一组点。

参数
actor_id车辆ID。
remove_path是否移除路径。如果为true,则移除;如果为false,则不移除

实现了 carla::traffic_manager::TrafficManagerBase.

在文件 TrafficManagerLocal.cpp421 行定义.

◆ Reset()

void carla::TrafficManagerLocal::Reset ( )
virtual

重置交通管理器
此方法将TrafficManagerLocal重置为其初始状态,清除所有已注册的车辆和设置

实现了 carla::traffic_manager::TrafficManagerBase.

在文件 TrafficManagerLocal.cpp312 行定义.

◆ Run()

void carla::traffic_manager::TrafficManagerLocal::Run ( )

启动线程以顺序运行交通管理器
此方法将创建一个新线程(如果尚未创建),并在该线程中顺序运行交通管理器的逻辑

在文件 TrafficManagerLocal.cpp143 行定义.

引用了 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().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ SetAutoLaneChange()

void TrafficManagerLocal::SetAutoLaneChange ( const ActorPtr & actor,
const bool enable )
virtual

启用或禁用车辆的自动换道功能。

参数
actor要设置自动换道状态的车辆指针。
enable是否启用自动换道。如果为true,则启用;如果为false,则禁用

实现了 carla::traffic_manager::TrafficManagerBase.

在文件 TrafficManagerLocal.cpp365 行定义.

◆ SetBoundariesRespawnDormantVehicles()

void TrafficManagerLocal::SetBoundariesRespawnDormantVehicles ( const float lower_bound,
const float upper_bound )
virtual

设置休眠车辆重生时的边界。

参数
lower_bound重生边界的下限。
upper_bound重生边界的上限

实现了 carla::traffic_manager::TrafficManagerBase.

在文件 TrafficManagerLocal.cpp445 行定义.

◆ SetCollisionDetection()

void TrafficManagerLocal::SetCollisionDetection ( const ActorPtr & reference_actor,
const ActorPtr & other_actor,
const bool detect_collision )
virtual

设置两辆车之间的碰撞检测规则。

参数
reference_actor参考车辆指针,即碰撞检测中的一方。
other_actor另一车辆指针,即与参考车辆进行碰撞检测的另一方。
detect_collision是否启用两车之间的碰撞检测。如果为true,则启用;如果为false,则禁用

实现了 carla::traffic_manager::TrafficManagerBase.

在文件 TrafficManagerLocal.cpp357 行定义.

◆ SetCustomPath()

void TrafficManagerLocal::SetCustomPath ( const ActorPtr & actor,
const Path path,
const bool empty_buffer )
virtual

设置自定义路径。

参数
actor要设置路径的车辆指针。
path自定义路径。
empty_buffer是否清空已有的路径缓冲区。如果为true,则清空;如果为false,则不清空

实现了 carla::traffic_manager::TrafficManagerBase.

在文件 TrafficManagerLocal.cpp417 行定义.

◆ SetDesiredSpeed()

void TrafficManagerLocal::SetDesiredSpeed ( const ActorPtr & actor,
const float value )
virtual

设置车辆的精确期望速度

参数
actor要设置期望速度的车辆指针
value车辆的期望速度值

实现了 carla::traffic_manager::TrafficManagerBase.

在文件 TrafficManagerLocal.cpp348 行定义.

◆ SetDistanceToLeadingVehicle()

void TrafficManagerLocal::SetDistanceToLeadingVehicle ( const ActorPtr & actor,
const float distance )
virtual

设置车辆与前车应保持的距离。

参数
actor要设置距离的车辆指针。
distance车辆与前车应保持的距离值

实现了 carla::traffic_manager::TrafficManagerBase.

在文件 TrafficManagerLocal.cpp369 行定义.

◆ SetForceLaneChange()

void TrafficManagerLocal::SetForceLaneChange ( const ActorPtr & actor,
const bool direction )
virtual

强制车辆进行换道。

参数
actor要强制换道的车辆指针。
direction换道方向。如果为true,则向左换道;如果为false,则向右换道

实现了 carla::traffic_manager::TrafficManagerBase.

在文件 TrafficManagerLocal.cpp361 行定义.

◆ SetGlobalDistanceToLeadingVehicle()

void TrafficManagerLocal::SetGlobalDistanceToLeadingVehicle ( const float distance)
virtual

设置车辆与全局前导车辆应保持的距离。

参数
distance车辆与全局前导车辆应保持的距离值。

实现了 carla::traffic_manager::TrafficManagerBase.

在文件 TrafficManagerLocal.cpp373 行定义.

◆ SetGlobalLaneOffset()

void carla::traffic_manager::TrafficManagerLocal::SetGlobalLaneOffset ( float const offset)
virtual

设置全局车道相对于中心线的偏移量。

参数
offset车道偏移量。正值表示向右偏移,负值表示向左偏移。
此设置将影响所有由交通管理器管理的车辆

实现了 carla::traffic_manager::TrafficManagerBase.

◆ SetGlobalPercentageSpeedDifference()

void carla::TrafficManagerLocal::SetGlobalPercentageSpeedDifference ( float const percentage)
virtual

设置全局相对于限速的速度百分比差异

参数
percentage全局速度百分比差异,如果小于0,则表示速度百分比增加
此设置将影响所有已注册的车辆

实现了 carla::traffic_manager::TrafficManagerBase.

在文件 TrafficManagerLocal.cpp337 行定义.

◆ SetHybridPhysicsMode()

void TrafficManagerLocal::SetHybridPhysicsMode ( const bool mode_switch)
virtual

设置混合物理模式。

参数
mode_switch是否启用混合物理模式。如果为true,则启用;如果为false,则禁用

实现了 carla::traffic_manager::TrafficManagerBase.

在文件 TrafficManagerLocal.cpp405 行定义.

◆ SetHybridPhysicsRadius()

void TrafficManagerLocal::SetHybridPhysicsRadius ( const float radius)
virtual

设置混合物理模式的半径。

参数
radius混合物理模式的半径值

实现了 carla::traffic_manager::TrafficManagerBase.

在文件 TrafficManagerLocal.cpp409 行定义.

◆ SetImportedRoute()

void TrafficManagerLocal::SetImportedRoute ( const ActorPtr & actor,
const Route route,
const bool empty_buffer )
virtual

设置自定义路线。

参数
actor要设置路线的车辆指针。
route自定义路线。
empty_buffer是否清空已有的路线缓冲区。如果为true,则清空;如果为false,则不清空

实现了 carla::traffic_manager::TrafficManagerBase.

在文件 TrafficManagerLocal.cpp429 行定义.

◆ SetKeepRightPercentage()

void TrafficManagerLocal::SetKeepRightPercentage ( const ActorPtr & actor,
const float percentage )
virtual

设置车辆保持在右侧车道的百分比概率。

参数
actor要设置的车辆指针。
percentage车辆保持在右侧车道的百分比概率

实现了 carla::traffic_manager::TrafficManagerBase.

在文件 TrafficManagerLocal.cpp393 行定义.

◆ SetLaneOffset()

void carla::TrafficManagerLocal::SetLaneOffset ( const ActorPtr & actor,
const float offset )
virtual

设置车辆相对于中心线的车道偏移量

参数
actor要设置车道偏移量的车辆指针
offset车道偏移量,正值表示向右偏移,负值表示向左偏移

实现了 carla::traffic_manager::TrafficManagerBase.

在文件 TrafficManagerLocal.cpp341 行定义.

◆ SetMaxBoundaries()

void TrafficManagerLocal::SetMaxBoundaries ( const float lower,
const float upper )
virtual

设置重生休眠车辆时边界的限制。

参数
lower下限值。
upper上限值

实现了 carla::traffic_manager::TrafficManagerBase.

在文件 TrafficManagerLocal.cpp449 行定义.

◆ SetOSMMode()

void TrafficManagerLocal::SetOSMMode ( const bool mode_switch)
virtual

设置Open Street Map模式。

参数
mode_switch是否启用Open Street Map模式。如果为true,则启用;如果为false,则禁用.

实现了 carla::traffic_manager::TrafficManagerBase.

在文件 TrafficManagerLocal.cpp413 行定义.

◆ SetPercentageIgnoreVehicles()

void TrafficManagerLocal::SetPercentageIgnoreVehicles ( const ActorPtr & actor,
const float perc )
virtual

设置车辆忽略其他车辆碰撞的百分比概率。

参数
actor要设置忽略其他车辆碰撞概率的车辆指针。
perc忽略其他车辆碰撞的百分比概率。值范围应在0到100之间

实现了 carla::traffic_manager::TrafficManagerBase.

在文件 TrafficManagerLocal.cpp381 行定义.

◆ SetPercentageIgnoreWalkers()

void TrafficManagerLocal::SetPercentageIgnoreWalkers ( const ActorPtr & actor,
const float perc )
virtual

设置车辆忽略行人碰撞的百分比概率。

参数
actor要设置忽略行人碰撞概率的车辆指针。
perc忽略行人碰撞的百分比概率。值范围应在0到100之间。

实现了 carla::traffic_manager::TrafficManagerBase.

在文件 TrafficManagerLocal.cpp377 行定义.

◆ SetPercentageRunningLight()

void TrafficManagerLocal::SetPercentageRunningLight ( const ActorPtr & actor,
const float perc )
virtual

设置车辆闯红灯的百分比概率。

参数
actor要设置闯红灯概率的车辆指针。
perc闯红灯的百分比概率。值范围应在0到100之间

实现了 carla::traffic_manager::TrafficManagerBase.

在文件 TrafficManagerLocal.cpp385 行定义.

◆ SetPercentageRunningSign()

void TrafficManagerLocal::SetPercentageRunningSign ( const ActorPtr & actor,
const float perc )
virtual

设置车辆无视交通标志的百分比概率。

参数
actor要设置无视交通标志概率的车辆指针。
perc无视交通标志的百分比概率。值范围应在0到100之间。

实现了 carla::traffic_manager::TrafficManagerBase.

在文件 TrafficManagerLocal.cpp389 行定义.

◆ SetPercentageSpeedDifference()

void carla::TrafficManagerLocal::SetPercentageSpeedDifference ( const ActorPtr & actor,
const float percentage )
virtual

设置车辆相对于限速的速度百分比差异

参数
actor要设置速度差异的车辆指针
percentage速度百分比差异,如果小于0,则表示速度百分比增加

实现了 carla::traffic_manager::TrafficManagerBase.

在文件 TrafficManagerLocal.cpp333 行定义.

◆ SetRandomDeviceSeed()

void TrafficManagerLocal::SetRandomDeviceSeed ( const uint64_t _seed)
virtual

设置随机化种子。

参数
_seed随机化种子值

实现了 carla::traffic_manager::TrafficManagerBase.

在文件 TrafficManagerLocal.cpp491 行定义.

◆ SetRandomLeftLaneChangePercentage()

void TrafficManagerLocal::SetRandomLeftLaneChangePercentage ( const ActorPtr & actor,
const float percentage )
virtual

设置车辆随机进行左车道变换的百分比概率。

参数
actor要设置的车辆指针。
percentage车辆随机进行左车道变换的百分比概率

实现了 carla::traffic_manager::TrafficManagerBase.

在文件 TrafficManagerLocal.cpp397 行定义.

◆ SetRandomRightLaneChangePercentage()

void TrafficManagerLocal::SetRandomRightLaneChangePercentage ( const ActorPtr & actor,
const float percentage )
virtual

设置车辆随机进行右车道变换的百分比概率。

参数
actor要设置的车辆指针。
percentage车辆随机进行右车道变换的百分比概率

实现了 carla::traffic_manager::TrafficManagerBase.

在文件 TrafficManagerLocal.cpp401 行定义.

◆ SetRespawnDormantVehicles()

void TrafficManagerLocal::SetRespawnDormantVehicles ( const bool mode_switch)
virtual

设置休眠车辆的自动重生模式。

参数
mode_switch是否启用休眠车辆的自动重生模式。如果为true,则启用;如果为false,则禁用

实现了 carla::traffic_manager::TrafficManagerBase.

在文件 TrafficManagerLocal.cpp441 行定义.

◆ SetSynchronousMode()

void TrafficManagerLocal::SetSynchronousMode ( bool mode)
virtual

将交通管理器切换到同步执行模式。

参数
mode是否启用同步执行模式。如果为true,则启用;如果为false,则禁用。
在同步执行模式下,交通管理器的所有操作将按顺序执行,而不是并行执行

实现了 carla::traffic_manager::TrafficManagerBase.

在文件 TrafficManagerLocal.cpp470 行定义.

◆ SetSynchronousModeTimeOutInMiliSecond()

void TrafficManagerLocal::SetSynchronousModeTimeOutInMiliSecond ( double time)
virtual

设置同步执行时的Tick超时时间(以毫秒为单位)。

参数
timeTick超时时间,单位为毫秒

实现了 carla::traffic_manager::TrafficManagerBase.

在文件 TrafficManagerLocal.cpp479 行定义.

◆ SetUpdateVehicleLights()

void TrafficManagerLocal::SetUpdateVehicleLights ( const ActorPtr & actor,
const bool do_update )
virtual

设置车辆的灯光是否自动管理。

设置车辆灯光自动管理的方法

参数
actor要设置灯光管理状态的车辆指针。
do_update是否启用自动灯光管理。如果为true,则启用;如果为false,则禁用

实现了 carla::traffic_manager::TrafficManagerBase.

在文件 TrafficManagerLocal.cpp353 行定义.

◆ SetupLocalMap()

void carla::traffic_manager::TrafficManagerLocal::SetupLocalMap ( )

设置内存中的地图 此方法用于初始化或设置TrafficManagerLocal所使用的内存地图

在文件 TrafficManagerLocal.cpp119 行定义.

引用了 episode_proxy, carla::client::World::GetMap(), local_map, carla::client::detail::EpisodeProxyImpl< PointerT >::Lock(), carla::log_warning() , 以及 world.

被这些函数引用 TrafficManagerLocal().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ ShutDown()

void carla::traffic_manager::TrafficManagerLocal::ShutDown ( )
inlinevirtual

关闭并清理资源

实现了 carla::traffic_manager::TrafficManagerBase.

在文件 TrafficManagerLocal.h452 行定义.

◆ Start()

void carla::traffic_manager::TrafficManagerLocal::Start ( )
virtual

启动交通管理器
此方法用于启动TrafficManagerLocal,开始其管理交通的功能

实现了 carla::traffic_manager::TrafficManagerBase.

在文件 TrafficManagerLocal.cpp138 行定义.

引用了 Run(), run_traffic_manger , 以及 worker_thread.

被这些函数引用 TrafficManagerLocal().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ Stop()

void carla::traffic_manager::TrafficManagerLocal::Stop ( )
virtual

◆ SynchronousTick()

bool carla::traffic_manager::TrafficManagerLocal::SynchronousTick ( )
virtual

提供同步Tick。

返回
如果成功提供同步Tick,则返回true;否则返回false

实现了 carla::traffic_manager::TrafficManagerBase.

在文件 TrafficManagerLocal.cpp253 行定义.

引用了 carla::traffic_manager::Parameters::GetSynchronousMode(), parameters, step_begin, step_begin_trigger, step_end, step_end_trigger , 以及 step_execution_mutex.

+ 函数调用图:

◆ UnregisterVehicles()

void carla::TrafficManagerLocal::UnregisterVehicles ( const std::vector< ActorPtr > & actor_list)
virtual

从交通管理器注销车辆

参数
actor_list要注销的车辆列表,每个元素都是一个指向Actor的指针

实现了 carla::traffic_manager::TrafficManagerBase.

在文件 TrafficManagerLocal.cpp325 行定义.

◆ UpdateImportedRoute()

void TrafficManagerLocal::UpdateImportedRoute ( const ActorId & actor_id,
const Route route )
virtual

更新已设置的路线。

参数
actor_id车辆ID。
route新的路线

实现了 carla::traffic_manager::TrafficManagerBase.

在文件 TrafficManagerLocal.cpp437 行定义.

◆ UpdateUploadPath()

void TrafficManagerLocal::UpdateUploadPath ( const ActorId & actor_id,
const Path path )
virtual

更新已设置的点列表。

参数
actor_id车辆ID。
path新的路径

实现了 carla::traffic_manager::TrafficManagerBase.

在文件 TrafficManagerLocal.cpp425 行定义.

类成员变量说明

◆ alsm

ALSM carla::traffic_manager::TrafficManagerLocal::alsm
private

自动驾驶局部路径规划模块(ALSM)
ALSM可能是一个用于生成局部路径规划算法的模块或对象

在文件 TrafficManagerLocal.h150 行定义.

被这些函数引用 Run().

◆ buffer_map

BufferMap carla::traffic_manager::TrafficManagerLocal::buffer_map
private

存储所有车辆路径点的缓冲区结构映射
使用BufferMap类型(可能是自定义的映射类型)来存储每个车辆的路径点缓冲区

在文件 TrafficManagerLocal.h113 行定义.

被这些函数引用 Stop().

◆ collision_frame

CollisionFrame carla::traffic_manager::TrafficManagerLocal::collision_frame
private

存储碰撞避免阶段输出数据的数组
用于存储碰撞避免阶段产生的数据

在文件 TrafficManagerLocal.h131 行定义.

被这些函数引用 Run() , 以及 Stop().

◆ collision_stage

CollisionStage carla::traffic_manager::TrafficManagerLocal::collision_stage
private

在文件 TrafficManagerLocal.h144 行定义.

被这些函数引用 Run() , 以及 Stop().

◆ control_frame

ControlFrame carla::traffic_manager::TrafficManagerLocal::control_frame
private

存储运动规划阶段输出数据的数组
用于存储运动规划阶段产生的控制指令

在文件 TrafficManagerLocal.h137 行定义.

被这些函数引用 Run() , 以及 Stop().

◆ current_reserved_capacity

uint64_t carla::traffic_manager::TrafficManagerLocal::current_reserved_capacity {0u}
private

用于跟踪当前为帧保留的数组空间的变量 这是一个无符号64位整数,用于记录为各个帧数组预留的空间大小

在文件 TrafficManagerLocal.h140 行定义.

被这些函数引用 Run() , 以及 Stop().

◆ episode_proxy

carla::client::detail::EpisodeProxy carla::traffic_manager::TrafficManagerLocal::episode_proxy
private

CARLA 客户端连接对象。

用于与CARLA仿真环境进行通信的客户端连接对象。

在文件 TrafficManagerLocal.h90 行定义.

被这些函数引用 Run(), SetupLocalMap() , 以及 ~TrafficManagerLocal().

◆ lateral_highway_PID_parameters

std::vector<float> carla::traffic_manager::TrafficManagerLocal::lateral_highway_PID_parameters
private

高速公路横向PID控制器参数集合。

包含用于高速公路场景下横向PID控制器的参数集合。

在文件 TrafficManagerLocal.h84 行定义.

◆ lateral_PID_parameters

std::vector<float> carla::traffic_manager::TrafficManagerLocal::lateral_PID_parameters
private

横向PID控制器参数集合。

包含用于横向(侧向)PID控制器的参数集合。

在文件 TrafficManagerLocal.h78 行定义.

◆ local_map

LocalMapPtr carla::traffic_manager::TrafficManagerLocal::local_map
private

指向本地地图缓存的指针
使用智能指针管理InMemoryMap对象,用于存储和访问地图数据

在文件 TrafficManagerLocal.h110 行定义.

被这些函数引用 SetupLocalMap().

◆ localization_frame

LocalizationFrame carla::traffic_manager::TrafficManagerLocal::localization_frame
private

存储定位阶段输出数据的数组
用于存储定位阶段产生的数据

在文件 TrafficManagerLocal.h128 行定义.

被这些函数引用 Run() , 以及 Stop().

◆ localization_stage

LocalizationStage carla::traffic_manager::TrafficManagerLocal::localization_stage
private

表示交通管理器核心操作的各种阶段
这些阶段包括定位、碰撞避免、交通灯响应、运动规划和车辆灯光控制等

在文件 TrafficManagerLocal.h143 行定义.

被这些函数引用 Run() , 以及 Stop().

◆ longitudinal_highway_PID_parameters

std::vector<float> carla::traffic_manager::TrafficManagerLocal::longitudinal_highway_PID_parameters
private

高速公路纵向PID控制器参数集合。

包含用于高速公路场景下纵向PID控制器的参数集合。

在文件 TrafficManagerLocal.h72 行定义.

◆ longitudinal_PID_parameters

std::vector<float> carla::traffic_manager::TrafficManagerLocal::longitudinal_PID_parameters
private

纵向PID控制器参数集合。

包含用于纵向(前进方向)PID(比例-积分-微分)控制器的参数集合。

在文件 TrafficManagerLocal.h66 行定义.

◆ marked_for_removal

std::vector<ActorId> carla::traffic_manager::TrafficManagerLocal::marked_for_removal
private

标记为删除的参与者ID列表 用于存储需要在某个时间点被移除的参与者ID

在文件 TrafficManagerLocal.h179 行定义.

◆ motion_plan_stage

MotionPlanStage carla::traffic_manager::TrafficManagerLocal::motion_plan_stage
private

在文件 TrafficManagerLocal.h146 行定义.

被这些函数引用 Run() , 以及 Stop().

◆ parameters

Parameters carla::traffic_manager::TrafficManagerLocal::parameters
private

参数化对象
包含交通管理器运行所需的各种配置参数

在文件 TrafficManagerLocal.h125 行定义.

被这些函数引用 Run(), Stop(), SynchronousTick() , 以及 TrafficManagerLocal().

◆ previous_update_instance

TimePoint carla::traffic_manager::TrafficManagerLocal::previous_update_instance
private

在异步模式下用于计算时间差(dt)的时间实例
使用TimePoint类型表示一个具体的时间点,用于与上一个更新时间点进行比较,以计算时间差

在文件 TrafficManagerLocal.h122 行定义.

被这些函数引用 Run() , 以及 Stop().

◆ random_device

RandomGenerator carla::traffic_manager::TrafficManagerLocal::random_device = RandomGenerator(seed)
private

持有每辆车的随机设备的结构体
RandomGenerator是一个用于生成随机数的类或结构体,使用seed进行初始化

在文件 TrafficManagerLocal.h176 行定义.

◆ registered_vehicles

AtomicActorSet carla::traffic_manager::TrafficManagerLocal::registered_vehicles
private

注册到交通管理器的所有参与者集合。

使用AtomicActorSet管理所有已注册到交通管理器的参与者(如车辆、行人等)。

在文件 TrafficManagerLocal.h102 行定义.

被这些函数引用 Run() , 以及 Stop().

◆ registered_vehicles_state

int carla::traffic_manager::TrafficManagerLocal::registered_vehicles_state
private

用于跟踪注册参与者状态变化的计数器

在文件 TrafficManagerLocal.h104 行定义.

被这些函数引用 Run(), Stop() , 以及 TrafficManagerLocal().

◆ registration_mutex

std::mutex carla::traffic_manager::TrafficManagerLocal::registration_mutex
private

防止在帧数组重新分配期间注册车辆的互斥锁
用于保护车辆注册操作,确保在帧数组重新分配时不会有新的车辆被注册

在文件 TrafficManagerLocal.h182 行定义.

被这些函数引用 Run().

◆ run_traffic_manger

std::atomic<bool> carla::traffic_manager::TrafficManagerLocal::run_traffic_manger {true}
private

用于打开/关闭交通管理器的开关
这是一个原子布尔变量,用于线程安全地控制交通管理器的运行状态

在文件 TrafficManagerLocal.h156 行定义.

被这些函数引用 Run(), Start() , 以及 Stop().

◆ seed

uint64_t carla::traffic_manager::TrafficManagerLocal::seed {static_cast<uint64_t>(time(NULL))}
private

随机化种子
使用当前时间作为随机化种子,确保每次程序运行时都能产生不同的随机序列

在文件 TrafficManagerLocal.h173 行定义.

◆ server

TrafficManagerServer carla::traffic_manager::TrafficManagerLocal::server
private

交通管理器服务器实例。
负责处理来自客户端的请求,并管理交通管理器的运行

在文件 TrafficManagerLocal.h153 行定义.

◆ simulation_state

SimulationState carla::traffic_manager::TrafficManagerLocal::simulation_state
private

包含模拟中所有参与者当前状态的类型
用于表示模拟中所有参与者的状态信息

在文件 TrafficManagerLocal.h119 行定义.

被这些函数引用 Stop().

◆ step_begin

std::atomic<bool> carla::traffic_manager::TrafficManagerLocal::step_begin {false}
private

用于标记步骤开始和结束的标志 使用std::atomic<bool>确保跨线程的原子操作,避免数据竞争

在文件 TrafficManagerLocal.h159 行定义.

被这些函数引用 Run(), Stop() , 以及 SynchronousTick().

◆ step_begin_trigger

std::condition_variable carla::traffic_manager::TrafficManagerLocal::step_begin_trigger
private

用于同步执行进度的条件变量 std::condition_variable用于线程间的同步,当一个线程需要等待某个条件成立时,可以阻塞在该条件变量上,直到另一个线程通知条件已成立

在文件 TrafficManagerLocal.h166 行定义.

被这些函数引用 Run(), Stop() , 以及 SynchronousTick().

◆ step_end

std::atomic<bool> carla::traffic_manager::TrafficManagerLocal::step_end {false}
private

在文件 TrafficManagerLocal.h160 行定义.

被这些函数引用 Run(), Stop() , 以及 SynchronousTick().

◆ step_end_trigger

std::condition_variable carla::traffic_manager::TrafficManagerLocal::step_end_trigger
private

在文件 TrafficManagerLocal.h167 行定义.

被这些函数引用 Run() , 以及 SynchronousTick().

◆ step_execution_mutex

std::mutex carla::traffic_manager::TrafficManagerLocal::step_execution_mutex
private

用于同步执行进度的互斥锁 std::mutex用于保护共享资源,确保同一时间只有一个线程可以访问

在文件 TrafficManagerLocal.h163 行定义.

被这些函数引用 Run() , 以及 SynchronousTick().

◆ tl_frame

TLFrame carla::traffic_manager::TrafficManagerLocal::tl_frame
private

存储交通灯响应阶段输出数据的数组
用于存储交通灯响应阶段产生的数据

在文件 TrafficManagerLocal.h134 行定义.

被这些函数引用 Run() , 以及 Stop().

◆ track_traffic

TrackTraffic carla::traffic_manager::TrafficManagerLocal::track_traffic
private

用于跟踪交通车辆路径的对象 TrackTraffic对象可能包含有关交通车辆当前位置和预期路径的信息

在文件 TrafficManagerLocal.h116 行定义.

被这些函数引用 Stop().

◆ traffic_light_stage

TrafficLightStage carla::traffic_manager::TrafficManagerLocal::traffic_light_stage
private

在文件 TrafficManagerLocal.h145 行定义.

被这些函数引用 Run() , 以及 Stop().

◆ vehicle_id_list

std::vector<ActorId> carla::traffic_manager::TrafficManagerLocal::vehicle_id_list
private

当前更新周期中注册到交通管理器的车辆列表
使用ActorId类型存储车辆的唯一标识符

在文件 TrafficManagerLocal.h107 行定义.

被这些函数引用 Run() , 以及 Stop().

◆ vehicle_light_stage

VehicleLightStage carla::traffic_manager::TrafficManagerLocal::vehicle_light_stage
private

在文件 TrafficManagerLocal.h147 行定义.

被这些函数引用 Run().

◆ worker_thread

std::unique_ptr<std::thread> carla::traffic_manager::TrafficManagerLocal::worker_thread
private

用于顺序执行子组件的单个工作线程
使用std::unique_ptr<std::thread>管理线程的生命周期,确保线程在不再需要时能够被正确销毁

在文件 TrafficManagerLocal.h170 行定义.

被这些函数引用 Start() , 以及 Stop().

◆ world

cc::World carla::traffic_manager::TrafficManagerLocal::world
private

CARLA 世界对象。

表示CARLA仿真世界的一个对象,用于访问和操作仿真世界中的元素。

在文件 TrafficManagerLocal.h96 行定义.

被这些函数引用 Run() , 以及 SetupLocalMap().


该类的文档由以下文件生成: