Automotive, Software Development

Als Praktikant bei itemis: Machine Learning live mit einem Robocar Showcase

Wir bei itemis arbeiten in verschiedenen Automotive-Software-Projekten – z. B. im Bereich Modelling (Entwicklung von DSLs), Tooling (Architektur, Feature-Modelle, Implementierung, Machine Learning) und Konzeptionierung/Standards (AUTOSAR, Genivi, openADX).

An unserem Stuttgarter Standort wollten wir einen ganz praktischen, greifbaren Demonstrator dieser Arbeit aufbauen – eine Robocar-Plattform als flexible Basis für einen initialen Machine-Learning-Showcase.

Das Sunfounder Smart Video Car Kit hatte es sich schon einige Zeit auf meinem Schreibtisch gemütlich gemacht – allerdings noch unausgepackt. Glücklicherweise hatte sich Julian als Praktikant bei uns beworben, nach dem er mit der Schule fertig war.

Gemeinsam definierten wir also ein paar Ziele für seine Zeit als Praktikant bei itemis:

  • Zusammenbauen des Robocar Kits
  • Implementierung einer Software um das Auto ferngesteuert über einen Xbox-Controller steuern zu können
  • Implementierung einer Aufnahme-Software inkl. Kamera, die mit den Lenkachsen verbunden ist
  • Verbindung eines neuronalen Netzwerks mit den aufgenommenen Daten
  • Implementierung einer Software zur Übertragung der Livebilder an das neuronale Netzwerk, um das Auto automatisch zu lenken

Aufbau des Sunfounder Smart Video Cars

Das Sunfounder Smart Video Car ist ziemlich einfach zusammenzubauen. Doch trotzdem: Um es automatisch fahren zu lassen, mussten wir ein paar Anpassungen vornehmen:

  • Ersetzten der Kamera mit einer Fish-Eye-Kamera. Ansonsten wären die Fahrbahnmarkierungen in der unmittelbaren Umgebung des Autos nicht ausreichend sichtbar gewesen.
  • Höheres Einsetzen der Kamera, so dass sie nach unten zeigen kann und eine bessere Sicht möglich ist.
  • Einstellen des Raspberry Pi in Stand-Off, um den Xbox-Controller einsetzen zu können.

Das modifizierte Auto sieht nun so aus:

20180320_111555

Die Software

Der Raspberry Pi, das auf dem Auto sitzt, läuft mit Ubuntu Mate Linux. Die Software besteht aus einer Komponente, die die Lenkung des Autos steuert, während die Geschwindigkeit über den Xbox-Controller gesteuert wird. Gleichzeitig werden die Bilder der Kamera über die OpenCV-Library gelesen und jedes Bild mit Angaben zum Winkel und zur Geschwindigkeit im Dateinamen gespeichert.

capture_10_0.0_0.83

Dieser Ansatz des autonomen Fahrens war inspiriert durch das Udacity Behavioral Cloning Projekt. Die Idee dahinter ist, dass das neuronale Netzwerk von den Aufnahmen lernt, wie gelenkt werden soll. Für unsere Umsetzung nutzen wir ein Standard-Notebook mit Keras auf einem Nvidia Grafikprozessor (GPU). Das Modell wurde auf den Raspberry Pi übertragen, auf dem eine Python-basierte Controller-Software ausgeführt wurde.

Nächste Schritte

Die aktuelle Software ist recht einfach und besteht nur aus ein paar Python-Skripten. Nächste Schritte wären die Übertragung auf eine State-of-the-Art-Technologie wie AUTOSAR, ROS, DDS, etc. – perfekte Aufgaben für potentielle neue Praktikanten oder Werkstudenten!

Julian hat das Praktikum jedenfalls so viel Spaß gemacht und sein Interesse am Automotive-Software-Engineering geweckt, dass er in die Richtung nun studieren möchte – und das Ganze zukünftig an echten Autos ausprobieren möchte.

New call-to-action

    
Über Andreas Graf

I am working at itemis as a project manager and business development manager (automotive) supporting and promoting the use of Eclipse and Open Source tooling for the implementation of integrated tool chains and the support of model driven (software) engineering.