High-frequency inertial simulator (10 Hz) that generates realistic vehicle trajectories from OpenStreetMap, producing accelerometer, gyroscope, and GPS signals with configurable driving events.
RS3 simulates a vehicle driving a route and outputs the sensor data a real onboard device would record:
Route (OpenStreetMap)
|
v
RS3 Pipeline (26 modular stages)
|
+-- GPS trajectory (1 Hz, with realistic noise & blackouts)
+-- IMU signals (10 Hz accelerometer + gyroscope)
+-- Driving events (braking, bumps, turns, stops, door opening)
+-- HTML report with interactive charts
+-- D0 Parquet export (Telemachus format)
- Modular pipeline — 26 stages (contract-based architecture via rs3-contracts)
- Realistic driving dynamics — Ornstein-Uhlenbeck acceleration model with driver profiles
- Multi-rate simulation — GPS at 1 Hz, IMU at 10 Hz, with proper NaN handling
- Device orientation — Configurable roll/pitch/yaw rotation
- GPS noise — Jitter, HDOP correlation, tunnel blackouts, cold start drift
- 7 event types — Braking, acceleration, speed bumps, potholes, turns, stops, door opening
- Driving severity analysis — Distance-weighted bi-histogram (Gx/Gy)
- Web UI — Interactive Streamlit interface with map, config, and visualization
- D0 export — RFC-0013 compliant Parquet + manifest for downstream analysis
git clone https://github.com/SebE585/RoadSimulator3.git
cd RoadSimulator3
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
# Start cartographic services (OSRM, OSMnx)
docker compose -f services/docker-compose.yml up -d
# Run a simulation
make simulateCartographic services require OSM data extracts. See
services/docker-compose.ymlfor configuration.
cd webui && streamlit run app.py| Column | Type | Unit | Rate |
|---|---|---|---|
| ts | int64 | ns UTC | 10 Hz |
| lat | float64 | deg | 1 Hz |
| lon | float64 | deg | 1 Hz |
| speed_mps | float32 | m/s | 1 Hz |
| ax_mps2 | float32 | m/s2 | 10 Hz |
| ay_mps2 | float32 | m/s2 | 10 Hz |
| az_mps2 | float32 | m/s2 | 10 Hz |
| gx_rad_s | float32 | rad/s | 10 Hz |
| gy_rad_s | float32 | rad/s | 10 Hz |
| gz_rad_s | float32 | rad/s | 10 Hz |
engine/stages/ 26 pipeline stages (simulation engine)
runner/simulate.py CLI entry point
webui/app.py Streamlit web interface
config/ YAML simulation configs
services/ Docker services (OSRM, OSMnx)
| Project | Role |
|---|---|
| Telemachus | Open data format for mobility telemetry |
| rs3-contracts | Shared Stage/Context interfaces |
| rs3-study-curvature | Road geometry analysis (OSM vs IGN) |
| Component | License |
|---|---|
| Core (simulation engine) | AGPL-3.0 |
| Documentation | CC-BY-SA 4.0 |
Sebastien Edet — research.roadsimulator3.fr — LinkedIn