CARLA
 
载入中...
搜索中...
未找到
DataStructures.h
浏览该文件的文档.
1
2/// 该文件包含交通管理器中常用数据结构的定义。
3
4#pragma once // 防止头文件被多次包含
5
6#include <chrono> // 包含时间处理相关的头文件
7#include <deque> // 包含双端队列的头文件
8#include <vector> // 包含动态数组的头文件
9
10#include "carla/client/Actor.h" // 引入Actor类的定义
11#include "carla/geom/Location.h" // 引入位置类的定义
12#include "carla/geom/Rotation.h" // 引入旋转类的定义
13#include "carla/geom/Vector3D.h" // 引入三维向量类的定义
14#include "carla/rpc/ActorId.h" // 引入ActorId类的定义
15#include "carla/rpc/Command.h" // 引入命令类的定义
16#include "carla/rpc/TrafficLightState.h" // 引入交通灯状态类的定义
17
18#include "carla/trafficmanager/SimpleWaypoint.h" // 引入简单路径点类的定义
19
20namespace carla {
21namespace traffic_manager {
22
23namespace chr = std::chrono; // std::chrono是C++11引入的日期时间处理库,包含3种时钟:system_clock,steady_clock,
24namespace cc = carla::client; // 为carla::client起别名
25namespace cg = carla::geom; // 为carla::geom起别名
26
27using ActorId = carla::ActorId; // 使用ActorId类型
28using ActorPtr = carla::SharedPtr<cc::Actor>; // 定义Actor的智能指针类型
29using JunctionID = carla::road::JuncId; // 使用交叉口ID类型
30using Junction = carla::SharedPtr<carla::client::Junction>; // 定义交叉口的智能指针类型
31using SimpleWaypointPtr = std::shared_ptr<SimpleWaypoint>; // 定义简单路径点的智能指针类型
32using Buffer = std::deque<SimpleWaypointPtr>; // 定义一个缓冲区类型,用于存储路径点
33using BufferMap = std::unordered_map<carla::ActorId, Buffer>; // 定义一个哈希映射,键为ActorId,值为Buffer
34using TimeInstance = chr::time_point<chr::system_clock, chr::nanoseconds>; // 定义时间实例类型
35using TLS = carla::rpc::TrafficLightState; // 使用交通灯状态类型
36
37// 用于保存定位数据的结构体
41 bool is_at_junction_entrance; // 是否在交叉口入口
42};
43
44using LocalizationFrame = std::vector<LocalizationData>; // 定义定位帧类型,存储多个定位数据
45
46// 用于保存碰撞危险数据的结构体
48 float available_distance_margin; // 可用距离余量
49 ActorId hazard_actor_id; // 危险Actor的ID
50 bool hazard; // 是否存在危险
51};
52
53using CollisionFrame = std::vector<CollisionHazardData>; // 定义碰撞帧类型,存储多个碰撞危险数据
54
55using ControlFrame = std::vector<carla::rpc::Command>; // 定义控制帧类型,存储多个控制命令
56
57using TLFrame = std::vector<bool>; // 定义交通灯帧类型,存储交通灯状态(真或假)
58
59/// 用来保存驱动信号的结构
61 float throttle; // 油门
62 float brake; // 刹车
63 float steer; // 方向盘
64};
65
66/// 用来保存控制器状态的结构体
67struct StateEntry {
69 float angular_deviation; // 角度偏差
70 float velocity_deviation; // 速度偏差
71 float steer; // 方向盘转角
72};
73
74} // namespace traffic_manager
75} // namespace carla
包含客户端相关类和定义的命名空间。
Definition AtomicList.h:17
int32_t JuncId
Definition RoadTypes.h:23
carla::SharedPtr< cc::Actor > ActorPtr
使用别名简化代码中的命名
chr::time_point< chr::system_clock, chr::nanoseconds > TimeInstance
std::vector< carla::rpc::Command > ControlFrame
std::vector< bool > TLFrame
std::deque< std::shared_ptr< SimpleWaypoint > > Buffer
carla::road::JuncId JunctionID
std::vector< CollisionHazardData > CollisionFrame
std::shared_ptr< SimpleWaypoint > SimpleWaypointPtr
carla::ActorId ActorId
参与者的智能指针类型
std::vector< LocalizationData > LocalizationFrame
carla::SharedPtr< carla::client::Junction > Junction
std::unordered_map< carla::ActorId, Buffer > BufferMap
CARLA模拟器的主命名空间。
Definition Carla.cpp:139
boost::shared_ptr< T > SharedPtr
使用这个SharedPtr(boost::shared_ptr)以保持与boost::python的兼容性, 但未来如果可能的话,我们希望能为std::shared_ptr制作一个Python适配器。
Definition Memory.h:19
rpc::ActorId ActorId
Definition ActorId.h:26
用来保存驱动信号的结构
用来保存控制器状态的结构体