Skip to content

Json Definition für Testszenarien

Hendrik Meyer edited this page Jun 25, 2021 · 23 revisions

Beschreibung

Die Json beschreibt eine Reihe an Testszenarien, in welchem Ball und Auto initial mit bestimmten Werten versehen werden, und danach Inputs des Autos in "Actions" simuliert werden, welche eine bestimmte Zeit lang zusammen ausgeführt werden. Nach dieser Zeit wird die nächste Action der Liste ausgeführt, solange, bis alle Actions der Liste ausgeführt wurden.

Beispielhafter Aufbau der Json Datei

{
  "time" : 0.0,
  "name" : "string",
  "boostAmount": 0.0, // -1 no boost consumption
    {
      "startValues": [
        {
          "gameObject": "string",
          "position": {
            "x": 0.0,
            "y": 0.0,
            "z": 0.0
          },
          "velocity": {
            "x": 0.0,
            "y": 0.0,
            "z": 0.0
          },
	 "angularVelocity": {
            "x": 0.0,
            "y": 0.0,
            "z": 0.0
          },
          "rotation": {
            "x": 0.0,
            "y": 0.0,
            "z": 0.0
          }
        }
      ],
      "actions": [
        {
          "duration": 0.0,
          "inputs": [
            {
              "name": "string",
              "value": 0.0
            }
          ]
        }
    }
}

Die Koordinatenachsen und Einheitengrößen sind so wie in Roboleague zu setzen.

GameObjects

Name
ball
car

Actions

Name Wertebereich
jump 0 oder 1
boost 0 oder 1
handbrake 0 oder 1
throttle -1 bis 1
steer -1 bis 1
pitch -1 bis 1
yaw -1 bis 1
roll -1 bis 1

Logging

Die folgenden Werte sollten für den Vergleich pro Tick geloggt werden:

frames: [
{
    "time": 1.0,
    "game_cars": [
        {
            "physics": {
                "location": {"x": 0.0, "y": 0.0, "z": 0.0},
                "rotation": {"pitch": 0.0, "yaw": 0.0, "roll": 0.0},
                "velocity": {"x": 0.0, "y": 0.0, "z": 0.0},
                "angular_velocity": {"x": 0.0, "y": 0.0, "z": 0.0}
            },
            "has_wheel_contact": true,
            "jumped": false, --> Sprung gedrückt oder in der Luft ?
            "boost": 0.0,
        },
    ],
    "game_ball": {
        "physics": {
            "location": {"x": 0.0, "y": 0.0, "z": 0.0},
            "rotation": {"pitch": 0.0, "yaw": 0.0, "roll": 0.0},
            "velocity": {"x": 0.0, "y": 0.0, "z": 0.0},
            "angular_velocity": {"x": 0.0, "y": 0.0, "z": 0.0}
        },
    },
}
]