Projekt Luna  1.0.1
Der humanoide Roboter
Navigation

Inhaltsverzeichnis

Autor: Joshua Brauns
Letzte Änderung: 05.01.2016 19:57:54

Einführung

TODO (joshua): 05.01.2016 20:16:56

Man stelle sich einmal einen ganz normalen Samstag Morgen vor, an dem man von Bonn aus nach Köln fahren möchte um sich dort im Kaufhof eine neue Hose zu zulegen. Aus den vielen Möglichkeiten die man hat, um diese Strecke zu bewältigen, wählt man nun folgende aus:

  1. Anfahrt zum Hauptbahnhof mit der Straßenbahn
  2. Umstieg von der Straßenbahnhaltestelle zu Gleis 1. am Bonner Hauptbahnhof

Für uns Menschen scheint das Navigieren kein großes Problem darzustellen. Wir bewegen uns andauernd, sei es auf dem Weg zur Arbeit, beim Einkaufen oder bei der Ausübung einer Sportart. Großartig nachdenken was wir dabei tun muss wohl kaum einer von uns. Statische Objekte wie Mauern, Ampeln oder Bäume erkennen wir schnell und können mit Leichtigkeit einen Weg finden, welcher uns nicht mit diesen Objekten kollidieren lässt.

Bei dynamischen Objekten, also Objekten die eine Eigenbewegung aufweisen, erweist sich diese Aufgabe zwar nicht als ganz so einfach (so kommt es doch oftmals vor das man mit anderen Menschen in großen Menschenansammlungen kollidiert), jedoch meistern wir diese Aufgabe zum größten Teil mit bravour.

Navigation beim Roboter

Was für uns Menschen so einfach erscheint, ist in der Welt der Roboter ein unglaublich komplexer Themenbereich und Bedarf einer großen Menge an Ressourcen.

Programmierkurs

Dieser Programmierkurs beinhaltet eine Reihe an ausführlich dokumentierten Programmen. Diese beginnen bei einem einfachen Niveau bei dem die Grundlagen der Programmierung mit OpenCV erläutert werden. Ziel ist es letztendlich, die Basis an Sensorverarbeitung zu schaffen, welche eine Navigation des Roboters ermöglichen sollte. Die Programme sind konsekutiv aufgebaut, um also alles verstehen zu können ist es wichtig, mit dem ersten Programm anzufangen und sich Schritt für Schritt weiter zu arbeiten.

Zum Programmierstil ist zu sagen: Es wird ein Mix aus C und C++ verwendet. OpenCV bietet zwar von Haus aus eine C API an, jedoch scheint mir diese nicht so Umfangreich wie die C++ API zu sein, weshalb auf die C++ API zurückgegriffen wird. Alles was nicht von OpenCV kommt, wird zum größten Teil in C geschrieben (sprich: Strukturen anstatt Klassen, keine Templates, usw.). Somit sollte ein Einstieg aus der Vorlesung Informatik 1. und 2. bei Frau Rothe keine gravierenden Verständnisprobleme mit sich bringen.

Erstes Programm Canny Edge Detector
Dieser Programmierabschnitt schafft die Grundlagen, von einer Webcam Bilddaten zu erhalten und diese anschließend darzustellen Der Canny Edge Detector ist zwar ein relativ einfacher Algorithmus, bildet dafür aber das Fundament für einen Großteil aller weiteren Programme