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