Spielerei: Fahrzeugsimulation und -steuerung

Da ich zur Zeit für eine andere Lehrveranstaltung eine KI implementiere, konnte ich mich nicht zurückhalten und musste die dabei verwendeten Methoden gleich mal beim Ottocar-Projekt testen.

Eins vorneweg: Ich kümmere mich sonst nicht um die Fahrzeugsteuerung. Das hier ist nur als kleines interessantes Nebenprojekt zu betrachten, stellt aber in keinster Weise unseren aktuellen Stand dar.

Mein Ziel war es, ein Fahrzeug mit einfachem Fahrzeugmodell in einer 2D-Welt entlang einer Zieltrajektorie bewegen zu lassen.

Das Fahrzeugmodell wurde sehr simpel implementiert:

    def forward(self,action,dt):
        # action == -1  : left
        # action ==  0  : middle
        # action ==  1  : right
 
        steer = action * self.max_steer
        self.theta -= steer * dt 
        vx = math.cos(self.theta) * self.speed * dt
        vy = math.sin(self.theta) * self.speed * dt
        self.x += vx
        self.y += vy

Eine Heuristik sorgt dafür, dass sich das Auto nahe der Zieltrajektorie befindet und Kollisionen vermeidet.

Mit Hilfe des Fahrzeugmodelles lässt sich ein Suchraum aufbauen, in dem die KI mittels der Heuristik eine „optimale“ Abfolge der Aktionen ermitteln kann.

Hier ist das ganze als Video mit zwei Fahrzeugen:
Spannend sind auch die Überholmanöver, wie ganz am Anfang zu sehen. Da sieht man was passiert, wenn auch das überholte Fahrzeug versucht eine Kollision mit dem überholenden Fahrzeug zu vermeiden. Es schert wie aufgeschreckt aus.
Ab Sekunde 0:20 ist im Video zu sehen, wie die Strecke verschoben wird und sich die Autos daran anpassen
Die Farbe des Hintergrundes repräsentiert die Distanz zur Fahrbahn.


Der ganze Sourcecode dazu ist auf Github vorzufinden:

Sourcecode auf Github

Statusupdate Einparken

Das Konzept des Einparkens wurde für dieses Jahr grundlegend überarbeitet. Im Gegensatz zum Vorjahr verzichten wir bei der Vermessung der Parklücke komplett auf die Verwendung des Laserscanners. Stattdessen nutzen wir eine Kombination der Messwerte unserer IR-Sensoren und der Odometrie. Zur Spurhaltung bei der Lückenvermessung greifen wir auf die vorhandene Regelung für den Rundkurs zurück. Damit entfällt auch die exakte Ausrichtung am Start.

Darüber hinaus wird beim Abfahren der Trajektorie der Bremsweg dieses Jahr angemessen berücksichtigt. Dadurch besteht die Möglichkeit, das Auto deutlich zuverlässiger an den gewünschten Zielpunkten zum Halten zu bringen.

Mit der Fertigstellung des Grundgerüstes kann dann in den nächsten Wochen die Feinabstimmung erfolgen. Das Video vermittelt einen ersten Einblick des aktuellen Stands.

Statusbericht Spurverfolgung

Diese Woche haben wir uns unter anderem die Spurverfolgung in Kombination mit Hindernissen etwas näher angesehen. Aufgrund des Junior-Cups konnten wir diesen Aspekt im letzten Jahr zurückstellen. Dieses Jahr wird es allerdings ernst. Ein erster Test mit Hindernissen auf der Fahrbahn ergab ein auf den ersten Blick sehr erfreuliches Ergebnis: Das Auto lässt sich trotz der Kartons auf oder neben der Fahrbahn nicht aus der Ruhe bringen und folgt unbeirrbar der Straße. Ein Blick auf die verarbeiteten Bilder zeigt aber, dass die Ränder der Kartons auch als Fahrbahnmarkierung eingezeichnet werden und so ggf. auch zu einer falschen Detektion der Spur führen können. Es liegt somit noch Arbeit vor uns.

Dem aufmerksamen Betrachter des Videos sei gesagt: Die linkslastige Fahrweise hängt nicht mit den Hindernissen zusammen. In Erwartung der neuen Kamerahalterung hat der Verfasser dieser Zeilen auf eine ordentliche Ausrichtung der Kamera verzichtet …

Evolution

Am heutigen Abend sind wir stolze Besitzer eines neuen Autos geworden! Die Entwicklung geht dabei in Richtung sportlicher Fahrdynamik und kompaktere Bauweise. Bei geringerem Stromverbrauch erreichen wir ein Vielfaches der alten Rechenleistung, bei gleichzeitiger Verringerung der Bauhöhe und besserer Gewichtsverteilung. Dafür wurden die Akkus am Heck angebracht, neue stufenlos verstellbare Stoßdämpfer eingebaut und die Präzision der Lenkung wurde erhöht. Die beiden Pandaboards ES der Vorgängerversion wurden durch ein Intel NUC-Mainboard D34010WYB ersetzt, das uns den Vorteil einer schnelleren Rechenleistung bringt. Mit den Pandaboards hatten wir das Problem einen Treiber für die Grafikeinheit zu finden, um die Bildverarbeitung auf dieser auszuführen. Das Problem hatten wir dann mit dem zweiten Pandaboard gelöst, welches aber nicht zufriedenstellend war (Straßenerkennung mit ca. 5 Bilder in der Sekunde). Mit der vierten Generation der Intel® Core™ i3-Reihe wird uns eine leistungsfähige Grafikeinheit mit besserer Treiberunterstützung geboten. Wir erhoffen uns mit dem neuen Board eine Steigerung der Straßenerkennung auf 60 Bilder in der Sekunde, was uns auch eine höhere Fahrgeschwindigkeit ermöglichen wird.

Vergleich alt (links) und neu (rechts)
Vergleich alt (links) und neu (rechts)
oTTo-NUC von der Schokoladenseite
oTTo-NUC von der Schokoladenseite

Lange Nacht der Wissenschaft

Bei der langen Nacht der Wissenschaft am 17. Mai gelang es unserem Auto, die Aufmerksamkeit von vielen Besuchern auf sich zu lenken. Auf dem Parcours vom RoboCup fuhr es völlig autonom und unerlässlich seine Runden und begeisterte somit nicht nur kleine und große Besucher, sondern sammelte für uns auch interessante Daten aus dem Dauerbetrieb. Selbst ein Zusammenstoß mit einem fehlgeleiteten Quadrocopter konnte das Auto nicht von seiner Mission abbringen.

RoboCup 2014

Seitdem wir unser Auto zum ersten mal beim RoboCup 2013 präsentiert haben, hat sich einiges getan. Während damals das Auto noch ausschließlich über eine Fernsteuerung auf einem kleinen Tisch bewegt werden konnte, können die Gäste beim kommenden RoboCup am 03.-05.04.2014 bewundern, wie unser oTToCAR völlig autonom auf unserer frisch fertig gestellten Teststrecke die Fahrbahn abfährt. Wer möchte, kann gern im RC-Modus versuchen die Rundenzeit unseres Reglers zu schlagen. Wir freuen uns auf interessierte Besucher.

Parcours

Nach dem Wettkampf ist vor dem Wettkampf

Das Projekt oTToCAR geht in eine neue Runde. Mit verbessertem Projektmanagement und einem Füllhorn an Erfahrung aus dem vergangenen Jahr, werden wir für den Carolo-Cup 2015 noch besser vorbereitet sein. Erste Ergebnisse sind bereits zu sehen: Der Anfang für den neuen Parcours aus möglichst glatt mit Teichfolie beklebten und transportablen Spanplatten ist geschafft. Damit sollte es möglich sein, beim Anfang April anstehenden RoboCup eine ansprechende Präsentation unser bisherigen Ergebnisse zu zeigen.

DSCI0308 DSCI0310 DSCI0311

2. Platz beim Carolo-Cup 2014

Nach einem spannenden Wettbewerb schaffte es das oTToCAR-Team beim Junior-Cup auf den 2. Platz. Sowohl bei der statischen Disziplin wie auch dem Rundkurs ohne Hindernisse lieferte sich das oTToCAR-Team ein Kopf-an-Kopf-Rennen mit dem Team piCar aus Braunschweig. Lediglich beim Einparken zeigten sich Unterschiede, sodass die Braunschweiger schlussendlich ihre hauchdünne Führung ausbauen konnten. Angespornt durch das knappe Ergebnis geht es jetzt in Richtung Carolo-Cup 2015.

img_0123carolo-cup-1028  carolo-cup-1042 carolo-cup-1045carolo-cup-1029

Es wird ernst

Beim ersten Carolo-Cup Tag, dem freien Training, haben wir gelernt, was bei uns funktioniert und was in der letzten Nacht vor dem Wettkampf noch verbessert werden sollte. Sehr beruhigend ist die Qualität der Straßen in Braunschweig, es gibt wesentlich weniger Wellen, Sprünge, usw. als in unserem Testaufbau. Die Quer- und Geschwindigkeitsregelung funktioniert nur das Einparken hat noch einige Unwegbarkeiten.

oTToCARTestArena
Es wird noch eine lange Nacht!
2014-02-09_23-48-05
oTToCar mit der Weitwinkelwebcam und der „Lichtanlage“

 

Konzeptstudie for die oTToCar-Karosserie

Um unser Fahrzeug optisch gut ausschauen zu lassen, haben wir den Fachbereich die Arbeitsgruppe Industriedesign [ID] der Otto-von-Guericke Universität „mit ins Boot geholt“. Im Rahmen der Lehrveranstaltung „Produktdesign für Computervisualistik“ wurde ein erster Entwurf für eine mögliche Karosserie entworfen.