DOI: 10.5281/zenodo.14757143
title: TOWARDS: The Overtaking Warning Assistant Recorded Data Set

description: Driving data from the user study of the CHI '25 paper "You Shall Not Pass: Warning Drivers of Unsafe Overtaking Maneuvers on Country Roads by Predicting Safe Sight Distance" (DOI: 10.1145/3706598.3713768) on the VR driving simulator. 1240 minutes of driving (1363 minutes simulation time including breaks) and 576 completed overtaking maneuvers.

File naming convention: Participant#.[1-3]_Condition#.csvConditions:



Mod1: Condition 1 ("No Assistant") - Baseline

Mod2: Condition 2 ("Monitoring")

Mod3: Condition 3 ("Scheduling")


Example: 2.1_Mod2.csv, 2.2_Mod3.csv, 2.3_Mod1.csv - Participant 2 started (1) with condition 2 ("Monitoring"), then continued (2) with condition 3 ("Scheduling"), and finally (3) tried condition 1 ("No Assistant"). 

Contents of the .csv-files



Time:



Absolute time [DateTime]

simulation time without breaks [t]



Driver's car:



3D position [position.x, .y, .z]

3D rotation [rotation.x, .y, .z]

mass [mass]

drag [drag]

angular drag [angularDrag]

3D velocity vector [velocity.x, .y, .z]

3D angular velocity vectors [angularVelocity.x, .y, .z]



Driver input:



steering angle [inputHorizontal]

acceleration pedal input [inputVertical (positive values)]

break pedal input [inputVertical (negative values)]



Of up to 4 vehicles in front of or overtaken by the driver:



3D position [OenLogger#.pos]

distance to driver's car [OenLogger#.dist]

vehicle length [OenLogger#.length]

speed [OenLogger#.speed]

planned direction at the next intersection [OenLogger#.turn]

unique ID [OenLogger#.id]

next car in front index [OenHandler.currentIndex]



Next oncoming vehicle:



3D position [OpposingTracker.opposingPos]

distance to driver's car [OpposingTracker.opposingDist]

speed [OpposingTracker.opposingSpeed]

length [OpposingTracker.opposingLength]



Overtaking warning assistant values:



$L_1$ [overtakingAnalyzer.L1]

$L_{oen}$ [overtakingAnalyzer.Loen]

$L_{oing}$ [overtakingAnalyzer.Loing]

$L_2$ [overtakingAnalyzer.L2]

$L_{tot}$ [overtakingAnalyzer.Lges]

$L_e$ [overtakingAnalyzer.Le]

$L_3$ [overtakingAnalyzer.L3]

$G$ [overtakingAnalyzer.G]

$v^{max}_{opp}$ [overtakingAnalyzer.vmaxopp]

warning (yes/no/no car to take) [overtakingAnalyzer.Status]

warning reason [overtakingAnalyzer.WarnExplanation]

$v_{oen}$ [overtakingAnalyzer.voen]

minimum required $L_e$ [overtakingAnalyzer.Lemin]

maximum $L_{tot}$ possible [overtakingAnalyzer.Leges]

$L$ to point of no return [overtakingAnalyzer.LtoCrit]



For each acceleration model [const., ldm.d0.1., dyn.d0.1. ....]:



$d_{rest}$ [.... .dist]

predicted total overtaking duration [.... .tfinish]

predicted time and distance until point-of-no-return is reached [.... .teq] [.... .startupDist]

$v_{oing,end}$ [.... .voingend]

$d_{opp}$ [.... .dopp]

$L_{sm}$ [.... .Lsm]

$d_{s,min}$ [.... .dsmin]

distance to next overtaking opportunity [.... .DistToNextOvertaking]

boolean indicating whether we are currently on the road where the next overtaking section could be [.... .amOnFirstSectionRoad]



Road related:



number of lanes per direction on the current road [overtakingAnalyzer.laneCount]

distance of the front left wheel to the center line of the road [leftFrontWheel.distToCenter]

distance traveled along the current road [leftFrontWheel.RoadPrg]

total length of the current road [leftFrontWheel.RoadLength]



Visibility: 



Currently available sight distance [Sight.availSight]



Collisions:



Number of collisions [CollisionLogger.collisionCounter]

Number of severe collisions (Unity impulse > 100) [CollisionLogger.tooStrongCounter]

3D position of the collided object [CollisionLogger.collidedObjectPos]

3D Unity impulse of the collision [CollisionLogger.impulse]

Collision type (vehicle, terrain, unknown) [CollisionLogger.type]



Study related:



Number of resets to set the car back on the road [ResetCar.count]

Current section index [Section.current]

Whether game is paused currently [Section.paused]

Participant Name never filled [StudyParams.ParticipantName]

Modality WarnOnly=Monitoring, DistanceOnly=Scheduling [StudyParams.Modality]

Participant number [StudyParams.ParticipantNumber]



Manual button presses:



Number of re-centerings of the VR headset [ResetView.count]

Number of manual resets to set the car back on the road [ResetCar.byButton]

Number of severe collisions as deemed by the experimentor [CollisionLogger.manualCounter]

Number of manual markings of events deemed special by the experimentor [OvertakingCounter.val]