Simulation as a Service for Cooperative Vehicles MASE 2019, Munich - - PowerPoint PPT Presentation

simulation as a service for cooperative vehicles
SMART_READER_LITE
LIVE PREVIEW

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:


slide-1
SLIDE 1

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/

slide-2
SLIDE 2

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

slide-3
SLIDE 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

slide-4
SLIDE 4

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
slide-5
SLIDE 5

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

slide-6
SLIDE 6

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

slide-7
SLIDE 7

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

slide-8
SLIDE 8

Jörg Christian Kirchhof | Software Engineering

8

Map Sectorization

slide-9
SLIDE 9

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

slide-10
SLIDE 10

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

slide-11
SLIDE 11

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
slide-12
SLIDE 12

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

slide-13
SLIDE 13

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

slide-14
SLIDE 14

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

CI Pipeline