Simulation as a Service for Cooperative Vehicles MASE 2019, Munich - - PowerPoint PPT Presentation
Simulation as a Service for Cooperative Vehicles MASE 2019, Munich - - PowerPoint PPT Presentation
Simulation as a Service for Cooperative Vehicles MASE 2019, Munich Jrg Christian Kirchhof, Evgeny Kusmenko, Bernhard Rumpe and Hengwen Zhang Software Engineering RWTH Aachen University http://www.se-rwth.de/ Motivation Our mission:
Jörg Christian Kirchhof | Software Engineering
2
Motivation
- Our mission: provide MBSE methodologies for the automotive domain
- EmbeddedMontiArc: Modeling language for automotive systems
Sensor 1 Sensor 2 Sensor N … Actuator 1 Actuator 2 Actuator M ECU 1 ECU 2 ECU K ECU 3
Jörg Christian Kirchhof | Software Engineering
3
EmbeddedMontiArc
Deep Driving Component DPNet KalmanFilterBank
predictions: Q(-∞:∞)^{14}
Denormalizer
image:Z(0:255)^{3,210,280} affordance: Affordance
AffordanceToVector Localization DriverController
affordanceSmoothed: Affordance affordanceSmoothed: Affordance numLanes: N
SteeringBuffer
speedIn: Q brakingCmd: Q(-1:1) steerCmd: Q(1:1) timeRightIn: N timeLeft: N laneChange: LaneChange structure for affordance indicators predictions: Q(-∞:∞)^{14} timeLeftOut: N timeRightOut: N steerRecords: Q^{5} enum for lane change maneuvers accelCmd: Q(-1:1) laneChange: LaneChange
Jörg Christian Kirchhof | Software Engineering
4
- Cooperative Driving
- Participant‘s decisions influence each other
- Simulation of communication infrastructure
Requirements
- Continuous Integration
- Partition simulation to cloud computers
- Frequently exchange parts of the code
- Automatically evaluate simulation results
Jörg Christian Kirchhof | Software Engineering
5
Architecture
(Sub-)Simulator Registry Controller Type-A register service discovery
Controller instances
requests Resource DB MQ Files API Server Map Service Controller Type-B Controller Type-C
RPC
(Sub-)Simulator Synchronization
Jörg Christian Kirchhof | Software Engineering
6
Simulation Model
simulation Example1 { map = MunichCity.osm; startTime = 22.06.2017 13:30; deltaT = 1ms wheather = noRain, noSnow; duration = 30s; cars { AC-SE001:50°46'43.7"N 6°03'38.6"E ->
50°46'49.7"N 6°04'32.5"E,
M-SE003: … -> … }}
Sim
1 2 3 4 5 6 7 8 9 10
Start Position Target Position
"frames": [ { "deltaTime": 33, "position": [ 5.8806556, 50.83668824517681, 0.5429999999999999 ], "steering": 0.0165, "collision": false, ... "totalTime": 4059, "vehicleID": "45124“ }, ... ]
JSON
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
CI Pipeline
Jörg Christian Kirchhof | Software Engineering
7
Sub-Simulator Synchronization
:Client
select/upload map, scenario
:API-Server
start the simulation reserve resource return resource
:Sub-Simulators :Registry
task setup(map, vehicle) execute simulation step release resource return result map sectoring execute simulation step execute simulation step return result return result return result synchronize synchronize
…
SD Sequence Diagram
Jörg Christian Kirchhof | Software Engineering
8
Map Sectorization
Jörg Christian Kirchhof | Software Engineering
9
- 1. Sectorize map
- 2. Find edges that go across sectors
(cut edges)
- 3. In each sector find routes from one
cut node to the others (cut nodes)
- 4. Find route between sectors
Route Planning
s t
Previous slide
Jörg Christian Kirchhof | Software Engineering
10
Evaluation: CPU Consumption
Sector Overload
900 9000 90000 900000 1 5 10 15 20 25 30 35 40 45 50 Accumulated CPU time (ms) Number of sectors Total CPU Time Average CPU Time
Jörg Christian Kirchhof | Software Engineering
11
Evaluation: Memory Consumption 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 1 5 10 15 20 25 30 35 40 45 50 Memory usage (Mbyte) Number of sectors Total Memory Average Memory
- Max. Memory
Jörg Christian Kirchhof | Software Engineering
12
Evaluation: Scalability 1000 2000 3000 4000 5000 6000 7000 8000 9000 5000 10000 15000 20000 25000 30000 35000 40000 45000 1 63 125 188 250 313 375 438 500 Total Memory usage (MByte) Total CPU time (ms) Number of vehicles Total CPU Time Total Memory
Jörg Christian Kirchhof | Software Engineering
13
Evaluation: Simulation Speed 10000 20000 30000 40000 50000 60000 1023 4092 7161 10230 13299 16368 19437 22506 25575 Time in reality (ms) Simulator time (ms) 1 sector 2 sectors 3 sectors 4 sectors Online Simulation
Jörg Christian Kirchhof | Software Engineering
14
Conclusion
(Sub-)Simulator Registry Controller Type-A register service discovery
Controller instances
requests
DB MQ
Files
Resource API Server Map Service Controller Type-B Controller Type-C
RPC
(Sub-)Simulator Synchronization
s t
"frames": [ { "deltaTime": 33, "position": [ 5.8806556, 50.83668824517681, 0.5429999999999999 ], "steering": 0.0165, "collision": false, ... "totalTime": 4059, "vehicleID": "45124"}, ... ]
JSON
1 2 3 4 5 6 7 8 9 10 11 12 13 14
simulation Example1 { map = MunichCity.osm; startTime = 22.06.2017 13:30; deltaT = 1ms wheather = noRain, noSnow; duration = 30s; cars { AC-SE001:50°46'43.7"N 6°03'38.6"E ->
50°46'49.7"N 6°04'32.5"E,
M-SE003: … -> … }}
Sim
1 2 3 4 5 6 7 8 9 10
Start Position Target Position