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:
Das Sunfounder Smart Video Car ist ziemlich einfach zusammenzubauen. Doch trotzdem: Um es automatisch fahren zu lassen, mussten wir ein paar Anpassungen vornehmen:
Das modifizierte Auto sieht nun so aus:
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.
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.
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.