ORB-SLAM auf der Drohne

ORB-SLAM auf der Drohne funktioniert bis jetzt nicht immer verlässlich. Ich konnte das das Ergebnis durch Anpassungen an den Parametern zwar noch etwas verbessern, trotzdem verliert die Drohne gerade bei schnellen Bewegungen das Tracking. Auch das initialisieren der Karte schlägt manchmal noch fehl.

 

Im Video sieht man sehr gut die ORBs welche vom Algorithmus gefunden und verfolgt werden. Die Drohne fliegt etwas durch den Raum zum testen.

Das paper zum ORB-SLAM findet sich hier.

 

Test auf dem Schiff

Wir haben nun unser Setup im live Betrieb auf einem Schiff getestet. Dabei haben wir die Daten aller Sensoren aufgezeichnet damit später die (neuen) Algorithmen in den gleichen Situationen immer und immer wieder testen zu können.

Hier ein kleiner Teil unseres Setups, eine Kamera und ein LiDAR.

Neue Motortreiber

Ich habe mich dazu entschieden meine selbstgelöteten Motortreiber durch gekaufte Platinen zu ersetzen welche sich über I2C ansteuern lassen. Das erleichtert mir das Handling und ich kann Fehler in der Elektronik ausschließen falls etwas nicht funktioniert.

Die neuen Platinen sind auch schon montiert. Die Verkabelung für den Strom zu den Boards und Motoren liegt auch schon, was noch fehlt sind die I2C Kabel Beider Boards zu einem Hub und dann zu der TX2.

Mein SICK LiDAR musste ich für die Montage des vorderen Treibers abschrauben.

NVIDIA Jetson TX2

Von appliedAI habe ich eine Nvidia Jetson TX2 bekommen. Dies wird meinen Raspberry Pi  und den Atmega32 ersetzen.

Die Jetson CPU hat zwei Denver Kerne und vier Cortex-A57 Kerne. Die Denver Kerne bieten eine wesentlich höhere Singlethread performance, die Kortex Kerne sind sparsamer.  In dem Modul ist auch eine 256 Core Pascal GPU integriert welche sich super für das inferencing von tiefen neuronalen Netzen eignet.

Der Raspi und der Atmel Atmega32 sind jetzt mit der Nvidia Jetson ersetzt. Die Antennen rechts im Bild an dem Board sind für WLAN.

Autonomes Schiff

Ein anderes Projekt wo wir zur Zeit dran arbeiten ist ein autonomes Schiff. Hier soll erst nur die perception pipeline entworfen, implementiert und getestet werden um herauszufinden welche Sensoren wirklich gebraucht werden, welche Probleme es gibt und  welche Algorithmen eingesetzte werden können. Das planning und control wird dann zu einem späteren Zeitpunkt entwickelt.

Wir benutzen Kameras, LiDARs, GPS, IMU und Accelerometer für unsere Navigation. später könnten dann noch Radar oder etwa AIS Daten hinzukommen.

Die Daten der SICK 3D LiDARs benutze ich um SLAM mit dem Google Cartographer zu machen. Dieser Algorithmus ist zur Zeit state of the art was LiDAR SLAM angeht. Das Paper zu dem Algorithmus, allerdings für 2D Daten kann man sich hier durchlesen.

Die LiDARs habe ich mit unsern Kameras kalibriert, so haben wir zusätzlich zu den Tiefeninformation auch RGB Daten was sich für die Objekterkennung nutzen lässt.

In ein paar Wochen werden wir uns System auf einem Schiff montieren und dann ausgiebig testen. Ich bin gespannt!

Autonome Drohne

Eines meiner Projekte an denen ich bei appliedAI arbeite ist eine autonome Drohne welche indoor navigiert. Das Einsatzgebiet und -Zweck soll allerdings zur Zeit noch geheim bleiben.

Die Drohne ist ausgestattet mit einer ToF RGBD Kamera und einem (relativ) leistungsstarken onboard Rechner. Einer meiner Aufgaben in diesem Projekt ist die Realisierung der Navigation und Stabilisierung da GPS in geschlossenen Räumen nicht verfügbar ist.

Zur Zeit benutze ich eine Implementierung des ORB-SLAM 2 da dieser sehr effizient läuft und wir keine dichte Karte unserer Umgebung brauchen. Die Genauigkeit ist sehr gut, allerdings macht der SLAM bei der Initialisierung noch Probleme, gerade wenn nicht viele Key-Points im Sichtfeld der Kamera sind.

AppliedAI

Seit Dezember 2017 bin ich Junior AI Engineer bei appliedAI, eine Initiative welche zum Ziel hat den Einsatz von künstlicher Intelligenz in der Industrie und Gesellschaft zu beschleunigen.

Wir arbeiten mit verschiedensten Partnern zusammen und ein Netzwerk an Firmen, Startups und Experten aufzubauen, entwicklen mit Partnern zusammen Prototypen und bilden im Bereich KI weiter.

Meine Aufgaben sind das entwickeln an Robotik-Projekten, speziell SLAM, sensor fusion und Navigation. Aber auch deep learning für Robotik und Projekt Management sind Teil meiner Arbeit!

Ich habe mir nun ein Semester Zeit genommen um Vollzeit bei appliedAI zu arbeiten.

Audi Smart Factory Hackathon

Am 4. Oktober war habe ich mit vier Kollegen an dem Audi Smart Factory Hackathon teilgenommen. Das Ziel des Events war es innerhalb von 25 Stunden eines von 11 verschiedenen Themen im Bereich Big Data / Data Science zu bearbeiten und dazu einen Prototypen zu entwickeln.

Wir haben uns mit der Konstruktion von Karosserien beschäftigt und hatten einen Datensatz von mehreren Millionen Messungen aus der Produktionsstraße zur Verfügung. Damit haben wir ein Programm entwickelt mit welchem sich potentiell voraussagen lässt wann eine Karosserie so viele Fertigungsgenauigkeiten hat das sich eine Weiterproduktion dieser Karosserie nicht mehr lohnt da die Fehlerbehebung teuerer ist als das Bauteil. So könnte Audi viel Geld in der Produktion sparen.

TUfast Driverless Hockenheim

Das Rennen der autonomen Autos in Hockenheim ist nun vorbei. Wir haben den 5. Platz (von 15 Teilnehmern) belegt. Unser Auto und unsere Entwicklungen haben definitiv das Potential für weitaus mehr, allerdings gab es Probleme mit mit den Motoren und anderer Hardware während des Events.

Für die Erkennung der Absperrhütchen welche die Strecke markieren haben wir 2 Flir Kameras benutzt um Stereobilder zu erhalten. Die Tiefeninformationen wurden mit den Daten des LiDARs kombiniert für eine höhere Präzision. Meine Aufgaben waren unter anderem das Kalibrieren des LiDARs mit den Kameras, der erkennen der cones in den LiDAR Daten und mergen der Kameradaten mit denen des LiDARs. Zu beginn war eine Erkennung mit Hilfe eines neuronalen Netzes angedacht, dies stellte sich aber als zu rechenintensiv und nicht erforderlich heraus, da die cones sehr markant und gut (auch mit eher herkömmlichen Methoden) zu erkennen sind.

Die erkannten Absperrhütchen (also die landmarks) wurden dann für den SLAM verwendet.

Als Rechner benutzten wir drei NVIDA Jetson Computer welche sich um alle Computervision und path-planning Aufgaben kümmerten.

TUfast LiDAR

Ich habe verschiedene Test mit zwei verschiedenen LiDARs durchgeführt um zu ermitteln welches für uns am geeignetesten ist. Die Anforderung an den Sensors sind recht hoch: wir müssen die Absperrhütchen welche die Rennstrecke makieren auch bei hoher Geschwindigkeit sicher erkennen. Die Daten des LiDAR werden zusammen mit den Daten der Stereokameras für für SLAM benutzt.
Das LMS 511 und LMS 151 von SICK.
Zur Zeit arbeite ich an der Kalibrierung der Kameras und des LiDARs um die point clouds der beiden Systeme fusen zu können. Fast fertig ist meine cone detection, also der Algorithmus mit dem die Absperrhütchen in der point cloud gefunden werden.