Database
LimSim 会在仿真时将所有数据存储在数据库中,方便对仿真进行分析与评价。LimSim 使用轻量级开源数据库 SQLite 进行数据存储,方便数据的查看与迁移。LimSim 对仿真数据的存储主要分三个部分:路网数据、车辆数据和仿真数据,下面分别对这三个部分进行介绍。
路网数据¶
LimSim 以 SUMO 的路网为基础,对多类型的路网结构进行建模。通过以下几个表格记录路网的数据,在数据回放时,以下面的数据为依据进行路网的重建。
edgeINFO¶
| 字段 | 数据结构 | 描述 | 
|---|---|---|
id | 
TEXT PRIMARY KEY | edge 的 id | 
laneNumber | 
INT | edge 的车道数 | 
from_junction | 
TEXT | edge 的起点所在的 junction | 
to_junction | 
TEXT | edge 的终点所在的 junction | 
laneINFO¶
| 字段 | 数据结构 | 描述 | 
|---|---|---|
id | 
TEXT PRIMARY KEY | lane 的 id | 
rawShape | 
TEXT | lane 的中心线几何结构 | 
width | 
REAL | lane 的宽度 | 
maxSpeed | 
REAL | lane 的最大限速 | 
edgeID | 
TEXT | lane 所属的 edge 的 id | 
length | 
REAL | lane 的长度 | 
lane 的 rawShape 是以字符串的形式存放在数据库中的,以  和 ,  作为分隔符。比如,下面的 rawShape 就记录了三个点,分别是 (10.2,100.3),(14.3,15.4) 和 (13.4,12.6)。
junctionLaneINFO¶
在 SUMO 的路网中,有两种类型的 lane,一种是由用户自主生成的,具有特定名称的 lane。另一种则是为了连接第一种 lane,而由 SUMO 自动生成的 lane,这类 lane 的特点是名称的第一个字符都是 :,且都具有 internal 的属性。这里为了方便区分,我们将第二种 lane 定义为 junctionLane。junctionLane 总是连接两条 lane,部分 junctionLane 还具有信号灯的属性。
| 字段 | 数据结构 | 描述 | 
|---|---|---|
id | 
TEXT PRIMARY KEY | junctionLane 的 id | 
width | 
REAL | junctionLane 的宽度 | 
maxSpeed | 
REAL | junctionLane 的最大限速 | 
length | 
REAL | junctionLane 的长度 | 
tlLogicID | 
TEXT | junctionLane 所属的信号控制逻辑 ID | 
tlIndex | 
INT | junctionLane 在所属信号控制逻辑中的序号 | 
connectionINFO¶
前文提到,两条 lane 是由一条 junctionLane 连接的,connection 则是记录这种连接关系的。
| 字段 | 数据结构 | 描述 | 
|---|---|---|
fromLane | 
TEXT | 起点 lane 的 id | 
toLane | 
TEXT | 终点 lane 的 id | 
direction | 
TEXT | 方向,具体参考 XXXX | 
via | 
TEXT | 连接两条 lane 的 junctionLane 的 id | 
junctionINFO¶
| 字段 | 数据结构 | 描述 | 
|---|---|---|
id | 
TEXT PRIMARY KEY | junction 的 id | 
rawShape | 
TEXT | junction 的几何结构 | 
与 lane 的 rawShape 一样,junction 的 rawShape 也是以字符串的形式记录的,同样以  和 , 作为分隔符。但是 junction 的 rawShape 记录的是 junction 的外部轮廓。
tlLogicINFO¶
| 字段 | 数据结构 | 描述 | 
|---|---|---|
id | 
TEXT PRIMARY KEY | 信号控制逻辑的 id,也是对应 junction 的 id | 
tlType | 
TEXT | 信号控制逻辑的类型,分为 static, actuated和delay_based | 
preDefPhases | 
TEXT | 信号控制逻辑的相位和相序,具体参考 XXX | 
trafficLightStates¶
| 字段 | 数据结构 | 描述 | 
|---|---|---|
frame | 
INT | 当前的仿真时刻 | 
id | 
TEXT | 信号控制逻辑的 id | 
currPhase | 
TEXT | 当前的相位 | 
nextPhase | 
TEXT | 下一个相位 | 
switchTime | 
REAL | 当前相位剩余的持续时间 | 
车辆信息¶
车辆的信息分为两种,一种是车辆的固有属性,另一种是仿真过程中的实时状态。
vehicleINFO¶
| 字段 | 数据结构 | 描述 | 
|---|---|---|
vid | 
INT | 车辆的 id | 
length | 
REAL | 车辆的长度 | 
width | 
REAL | 车辆的宽度 | 
maxAccel | 
REAL | 车辆的最大加速度 | 
maxDecel | 
REAL | 车辆的最大减速度 | 
maxSpeed | 
REAL | 车辆的最大速度 | 
vTypeID | 
TEXT | 车型的 id | 
routes | 
TEXT | 车辆的 route 信息 | 
frameINFO¶
| 字段 | 数据结构 | 描述 | 
|---|---|---|
frame | 
INT | 当前的仿真时刻 | 
vid | 
INT | 车辆的 id | 
vtag | 
TEXT | 车辆的角色,可以取 ego, AoI 和 outOfAoI | 
x | 
REAL | 车辆此刻的 x 位置 | 
y | 
REAL | 车辆此刻的 y 位置 | 
yaw | 
REAL | 车辆此刻的 yaw 角,以 x 轴正方向为起点,逆时针为正方向 | 
speed | 
REAL | 车辆此刻的速度 | 
accel | 
REAL | 车辆此刻的加速度 | 
laneID | 
TEXT | 车辆此刻所在 lane 的 ID | 
lanePos | 
REAL | 车辆此刻在 lane 上的距离 lane 起点的距离 | 
routeIdx | 
INT | 车辆当前处于 route 的第几段上 | 
仿真信息¶
仿真信息主要包括仿真的基本信息和评价的信息
simINFO¶
| 字段 | 数据结构 | 描述 | 
|---|---|---|
startTime | 
TIMESTAMP | 仿真启动时的时间戳 | 
localPosx | 
REAL | local area 模式下,固定视角的 x 位置 | 
localPosy | 
REAL | local area 模式下,固定视角的 y 位置 | 
radius | 
REAL | local area 模式下,区域的半径 | 
egoID | 
TEXT | ego track 模式下,ego 的 id | 
netBoundary | 
TEXT | 仿真路网的范围,即左下角和右上角的坐标 | 
description | 
TEXT | 仿真的模式,有 ego track 和 local area 两种 | 
note | 
TEXT | 备注信息,可以是算法的版本号和参数等 | 
evaluationINFO¶
| 字段 | 数据结构 | 描述 | 
|---|---|---|
frame | 
INT | 当前的仿真时刻 | 
offset | 
REAL | Ego 偏离车道中心的距离 | 
discomfort | 
REAL | Ego 的加加速度信息 | 
collision | 
REAL | Ego 的 TTC1 的倒数 | 
orientation | 
REAL | Ego 偏离车道中心的角度 | 
consumption | 
REAL | Ego 的油耗信息 | 
数值经过处理
上述指标均经过归一化处理,并不是真实数值,详情请参考 场景评价
- 
TTC(Time To Collision):指两车保持当前的速度行驶,多久后会发生碰撞。 ↩