Put it into the CI!

We need

  1. A Docker image that contains the simulation,

    • is easily maintainable and

    • accessible from the CI!

  2. A new CI job in the kitcar-ros pipeline that runs the tests,

    • is integrable without many changes,

    • uses the simulation Docker image, and

  3. good test cases

    • with reproducible results

    • that are clear and precise!

Keep the Image updated

Make it Accessible

../../_images/registry.png

Docker Images stored in the Gitlab Docker Registry

Easy Integration

../../_images/kitcar_ros_pipeline.png

Kitcar-ros Pipeline

simulation:
  stage: test
  image: git.kitcar-team.de:4567/kitcar/kitcar-gazebo-simulation/kitcar_ros_ci:focal
  variables:
    KITCAR_REPO_PATH: /builds/kitcar
    CAR_NAME: dr_drift
    DISPLAY: ":1.0"
  before_script:
    - ...
  script:
    - rostest simulation_evaluation drive.test road:=ci_roads/curves mission_mode:=1
    - rostest simulation_evaluation drive.test road:=ci_roads/obstacles mission_mode:=2
    - rostest simulation_evaluation drive.test road:=ci_roads/intersection mission_mode:=2
    - export INTERSECTION_TURN=1  # Left turn
    - rostest simulation_evaluation drive.test road:=ci_roads/intersection mission_mode:=2
    - export INTERSECTION_TURN=2  # Right turn
    - rostest simulation_evaluation drive.test road:=ci_roads/intersection mission_mode:=2

Results Should be Clear and Precise?

Well…

../../_images/ci_output.png

CI Output on Failure.

A good solution on how to deliver the results is still missing!

A good start would be to

  1. record rosbags and deliver them as CI artifacts, and

  2. clearly highlight the configuration of the simulation that errors can be reproduced locally.

Other ideas are very much appreciated…

Go back to Outlook: Possibilities.