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):指两车保持当前的速度行驶,多久后会发生碰撞。 ↩