远程交通管理器类,通过消息传递机制整合交通管理的各个阶段。 更多...
#include <TrafficManagerRemote.h>
Public 成员函数 | |
ActionBuffer | GetActionBuffer (const ActorId &actor_id) |
获取车辆的动作缓冲区。 | |
carla::client::detail::EpisodeProxy & | GetEpisodeProxy () |
获取CARLA回合信息。 | |
Action | GetNextAction (const ActorId &actor_id) |
获取车辆的下一个动作。 | |
void | HealthCheckRemoteTM () |
检查服务器是否存活。 | |
void | RegisterVehicles (const std::vector< ActorPtr > &actor_list) |
注册车辆到交通管理器。 | |
void | Release () |
释放交通管理器。 | |
void | RemoveImportedRoute (const ActorId &actor_id, const bool remove_path) |
移除路线。 | |
void | RemoveUploadPath (const ActorId &actor_id, const bool remove_path) |
移除路径。 | |
void | Reset () |
重置交通管理器。 | |
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(OSM)模式。 | |
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) |
设置车辆灯光的自动管理功能。 | |
virtual void | ShutDown () |
关闭交通管理器。 | |
void | Start () |
启动交通管理器。 | |
void | Stop () |
停止交通管理器。 | |
bool | SynchronousTick () |
提供同步Tick。 | |
TrafficManagerRemote (const std::pair< std::string, uint16_t > &_serverTM, carla::client::detail::EpisodeProxy &episodeProxy) | |
构造函数,存储远程服务器的位置信息。 | |
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 | ~TrafficManagerRemote () |
析构函数。 | |
![]() | |
TrafficManagerBase () | |
单例生命周期管理的受保护构造函数。 | |
virtual | ~TrafficManagerBase () |
析构函数。 | |
Private 属性 | |
std::condition_variable | _cv |
条件变量,用于线程同步。 | |
bool | _keep_alive = true |
保持活动状态标志。 | |
std::mutex | _mutex |
互斥锁,用于保护共享资源。 | |
TrafficManagerClient | client |
远程客户端,使用IP和端口信息连接到远程RPC交通管理器服务器。 | |
carla::client::detail::EpisodeProxy | episodeProxyTM |
CARLA客户端连接对象。 | |
远程交通管理器类,通过消息传递机制整合交通管理的各个阶段。
该类继承自TrafficManagerBase,提供了远程交通管理的功能,包括启动、停止、重置以及车辆的注册、注销和速度控制等。
在文件 TrafficManagerRemote.h 第 52 行定义.
carla::traffic_manager::TrafficManagerRemote::TrafficManagerRemote | ( | const std::pair< std::string, uint16_t > & | _serverTM, |
carla::client::detail::EpisodeProxy & | episodeProxy ) |
构造函数,存储远程服务器的位置信息。
_serverTM | 远程交通管理器的地址和端口号。 |
episodeProxy | 与当前仿真片段相关联的代理对象。 |
在文件 TrafficManagerRemote.cpp 第 20 行定义.
引用了 Start().
|
virtual |
析构函数。
Destructor.
释放TrafficManagerRemote对象占用的资源。
在文件 TrafficManagerRemote.cpp 第 32 行定义.
引用了 Release().
|
virtual |
获取车辆的动作缓冲区。
actor_id | 需要获取动作缓冲区的车辆ID。 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerRemote.cpp 第 361 行定义.
|
virtual |
获取CARLA回合信息。
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerRemote.cpp 第 376 行定义.
引用了 episodeProxyTM.
|
virtual |
获取车辆的下一个动作。
actor_id | 需要获取动作的车辆ID。 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerRemote.cpp 第 356 行定义.
void carla::traffic_manager::TrafficManagerRemote::HealthCheckRemoteTM | ( | ) |
检查服务器是否存活。
在文件 TrafficManagerRemote.cpp 第 371 行定义.
被这些函数引用 carla::traffic_manager::TrafficManager::CreateTrafficManagerClient().
|
virtual |
注册车辆到交通管理器。
actor_list | 需要注册的车辆列表。 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerRemote.cpp 第 118 行定义.
|
virtual |
释放交通管理器。
彻底释放交通管理器占用的资源,确保不再使用。
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerRemote.cpp 第 101 行定义.
引用了 Stop().
被这些函数引用 ~TrafficManagerRemote().
|
virtual |
移除路线。
actor_id | 需要移除路线的车辆ID。 |
remove_path | 是否移除路线。 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerRemote.cpp 第 316 行定义.
|
virtual |
移除路径。
actor_id | 需要移除路径的车辆ID。 |
remove_path | 是否移除路径。 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerRemote.cpp 第 298 行定义.
|
virtual |
重置交通管理器。
将交通管理器重置到初始状态,准备进行新的交通管理任务。
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerRemote.cpp 第 106 行定义.
引用了 episodeProxyTM, carla::client::detail::EpisodeProxyImpl< PointerT >::Lock(), Start() , 以及 Stop().
|
virtual |
启用/禁用车辆的自动换道功能。
actor | 需要设置自动换道功能的车辆对象。 |
enable | 是否启用自动换道功能。 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerRemote.cpp 第 197 行定义.
|
virtual |
设置休眠车辆重生的边界。
lower_bound | 重生的下边界值。 |
upper_bound | 重生的上边界值。 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerRemote.cpp 第 331 行定义.
|
virtual |
设置车辆之间的碰撞检测规则。
reference_actor | 参考车辆对象,即碰撞检测的一方。 |
other_actor | 另一车辆对象,即与参考车辆进行碰撞检测的对象。 |
detect_collision | 是否启用碰撞检测功能。 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerRemote.cpp 第 180 行定义.
|
virtual |
设置自定义路径。
actor | 需要设置自定义路径的车辆对象。 |
path | 自定义路径对象。 |
empty_buffer | 是否清空动作缓冲区。 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerRemote.cpp 第 290 行定义.
|
virtual |
设置车辆的精确期望速度。
actor | 需要设置期望速度的车辆。 |
value | 车辆的期望速度。 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerRemote.cpp 第 146 行定义.
|
virtual |
设置车辆与前车应保持的距离。
actor | 需要设置距离的车辆对象。 |
distance | 车辆与前车应保持的具体距离值。 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerRemote.cpp 第 205 行定义.
|
virtual |
强制车辆进行换道。
方向标志设置为true表示向左换道,设置为false表示向右换道。
actor | 需要进行换道的车辆对象。 |
direction | 换道方向标志。 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerRemote.cpp 第 189 行定义.
|
virtual |
设置全局前车距离。
distance | 全局前车距离的具体值。 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerRemote.cpp 第 213 行定义.
|
virtual |
设置全局车道偏移量,相对于车道中心线。
正值表示向右偏移,负值表示向左偏移。
offset | 车道偏移量的具体值。 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerRemote.cpp 第 167 行定义.
|
virtual |
设置全局速度相对于限速的百分比减少量。
如果传入的值小于0,则表示速度百分比增加。
percentage | 速度变化的百分比值。 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerRemote.cpp 第 154 行定义.
|
virtual |
设置混合物理模式。
mode_switch | 是否启用混合物理模式。 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerRemote.cpp 第 275 行定义.
|
virtual |
设置混合物理模式的半径。
radius | 混合物理模式的半径值。 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerRemote.cpp 第 280 行定义.
|
virtual |
设置自定义路线。
actor | 需要设置自定义路线的车辆对象。 |
route | 自定义路线对象。 |
empty_buffer | 是否清空动作缓冲区。 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerRemote.cpp 第 308 行定义.
|
virtual |
设置车辆保持在右侧车道的百分比概率。
actor | 需要设置保持在右侧车道概率的车辆对象。 |
percentage | 保持在右侧车道的百分比概率值。 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerRemote.cpp 第 251 行定义.
|
virtual |
设置车辆相对于车道中心线的偏移量。
actor | 需要设置车道偏移的车辆。 |
offset | 车道偏移量。正值表示向右偏移,负值表示向左偏移。 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerRemote.cpp 第 159 行定义.
|
virtual |
设置最大的重生边界。
lower | 最小的重生边界值。 |
upper | 最大的重生边界值。 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerRemote.cpp 第 336 行定义.
|
virtual |
设置Open Street Map(OSM)模式。
mode_switch | 是否启用OSM模式。 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerRemote.cpp 第 285 行定义.
|
virtual |
设置车辆忽略其他车辆碰撞的百分比概率。
actor | 需要设置碰撞忽略概率的车辆对象。 |
perc | 忽略其他车辆碰撞的百分比概率值。 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerRemote.cpp 第 227 行定义.
|
virtual |
设置车辆忽略行人碰撞的百分比概率。
actor | 需要设置碰撞忽略概率的车辆对象。 |
perc | 忽略行人碰撞的百分比概率值。 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerRemote.cpp 第 219 行定义.
|
virtual |
设置车辆无视交通信号灯的概率百分比。
actor | 需要设置无视信号灯概率的车辆对象。 |
perc | 无视交通信号灯的概率百分比值。 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerRemote.cpp 第 235 行定义.
|
virtual |
设置车辆无视交通标志的概率百分比。
actor | 需要设置无视交通标志概率的车辆对象。 |
perc | 无视交通标志的概率百分比值。 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerRemote.cpp 第 243 行定义.
|
virtual |
设置车辆相对于限速的速度差异百分比。
actor | 需要设置速度差异的车辆。 |
percentage | 速度差异的百分比。如果小于0,则表示速度增加。 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerRemote.cpp 第 138 行定义.
|
virtual |
设置随机化种子。
seed | 随机化种子值。 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerRemote.cpp 第 381 行定义.
|
virtual |
设置车辆随机进行左车道变换的百分比概率。
actor | 需要设置随机左车道变换概率的车辆对象。 |
percentage | 随机进行左车道变换的百分比概率值。 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerRemote.cpp 第 259 行定义.
|
virtual |
设置车辆随机进行右车道变换的百分比概率。
actor | 需要设置随机右车道变换概率的车辆对象。 |
percentage | 随机进行右车道变换的百分比概率值。 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerRemote.cpp 第 267 行定义.
|
virtual |
设置自动重生休眠车辆的模式。
mode_switch | 是否启用自动重生休眠车辆模式。 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerRemote.cpp 第 326 行定义.
|
virtual |
切换交通管理器为同步执行模式。
mode | 是否启用同步执行模式。 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerRemote.cpp 第 346 行定义.
|
virtual |
设置同步执行模式的Tick超时时间(毫秒)。
time | 同步执行模式的Tick超时时间值(毫秒)。 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerRemote.cpp 第 351 行定义.
|
virtual |
设置车辆灯光的自动管理功能。
actor | 需要设置灯光自动管理的车辆对象。 |
do_update | 是否启用灯光自动管理功能。 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerRemote.cpp 第 172 行定义.
|
virtual |
|
virtual |
启动交通管理器。
初始化并启动交通管理器的各个组件,准备进行交通管理。
Until connection active
Create error msg
TSet the error message
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerRemote.cpp 第 37 行定义.
引用了 _cv, _keep_alive, episodeProxyTM , 以及 carla::client::detail::EpisodeProxyImpl< PointerT >::Lock().
被这些函数引用 Reset() , 以及 TrafficManagerRemote().
|
virtual |
停止交通管理器。
停止交通管理器的运行,释放相关资源。
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerRemote.cpp 第 91 行定义.
引用了 _cv, _keep_alive , 以及 _mutex.
被这些函数引用 Release() , 以及 Reset().
|
virtual |
提供同步Tick。
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerRemote.cpp 第 366 行定义.
|
virtual |
从交通管理器注销车辆。
actor_list | 需要注销的车辆列表。 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerRemote.cpp 第 128 行定义.
|
virtual |
更新已设置的路线。
actor_id | 需要更新路线的车辆ID。 |
route | 新的路线对象。 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerRemote.cpp 第 321 行定义.
|
virtual |
更新已设置的路径。
actor_id | 需要更新路径的车辆ID。 |
path | 新的路径对象。 |
实现了 carla::traffic_manager::TrafficManagerBase.
在文件 TrafficManagerRemote.cpp 第 303 行定义.
|
private |
|
private |
|
private |
|
private |
远程客户端,使用IP和端口信息连接到远程RPC交通管理器服务器。
在文件 TrafficManagerRemote.h 第 420 行定义.
|
private |
CARLA客户端连接对象。
在文件 TrafficManagerRemote.h 第 425 行定义.
被这些函数引用 GetEpisodeProxy(), Reset() , 以及 Start().