Logo U. Osnabrueck Institute of Computer ScienceKnowledge-Based Systems Research Group

Praktikum "Mobile Robotik" WS 2004/2005


Allgemeines

Dozenten: Prof.Dr. Joachim Hertzberg, Dipl.-Inform. Andreas Nüchter, Dipl.-Inform. Kai Lingemann
Termin: Blockpraktikum nach der Vorlesungszeit: 14.2.2005–4.3.2005
Verteilung der Praktikumsthemen: Do, 10.02.2005, 9:00 Uhr, Raum 31/322
Beschreibung der Themen s.u.

Inhalt

Für Forschung und Lehre in der AG Wissensbasierte Systeme werden einige Exemplare des Robotertyps KURT2 bzw. KURT-3D angeschafft, von denen zum Ende Januar 2005 zwei Exemplare geliefert wurden. Im Praktikum sollen einige Steuerungs-, Navigations- und Umgebungserkennungsfunktionen auf diesen Robotern in einfacher Form realisiert werden. Weiterhin soll in einem Robotersimulator (USARSim) ein Modell der KURT2-Roboter integriert und im Vergleich mit den physischen Robotern evaluiert werden.

Anwendungskontext für die Softwarekomponenten ist RoboCup Rescue Robot League.


Literatur:


WWW-Ressourcen, allgemein


Arbeitspakete

Simulator (2 + 2 Studierende)

Basierend auf dem Computerspiel Unreal Tournament entwickeln Sie einen Robotersimulator für den Rettungsroboter Kurt3D. Zunächst installieren Sie Unreal Tournament 2003, die Software Pyro und Microsoft Visual Studio (C++) auf die Praktikumsrechner. Eine Teilgruppe soll ein Umgebungsmodell von Gebäude 31, 5. Stock, erstellen. Die zweite Teilgruppe erstellt ein virtuelles Modell von Kurt3D. Anschließend soll das bestehende Roboterkontrollprogramm für die Simulation abgeändert werden. Ziel dieser änderungen ist es, die Steursoftware für den Simulator nutzbar zu machen. Dabei soll sich der virtuelle Roboter analog dem echten Roboter verhalten.

Weitere Informationen:
USARSim
Unreal Tournament
Pyro
Microsoft Visual Studio
Kurt3D

Opfererkennung (2 Studierende)

Für RoboCup Rescue ist es wichtig, Überlebende zu detektieren. In diesem Arbeitspaket entwickeln Sie unter Verwendung der OpenCV-Bibliothek C++-Algorithmen, die den Operator unterstützen sollen. Dazu gehören neben der Bewegungserkennung auch eine Farbsegmentierung und Hautfarbenerkennung.

Weitere Informationen:
OpenCV (Intel)
OpenCV (SourceForge)
Motion
CVonline

Geometrische Zusatzattribute für 3D-Daten (2 Studierende)

In diesem Arbeitspaket implementieren Sie Algorithmen zur Bestimmung geometrischer Zusatzattribute für 3D-Daten. Die Daten werden dabei mit einem 3D-Laserscanner aufgenommen. Zum einen soll eine semantische Interpretation (Fußboden, Wände, Decken) bestimmt werden, zum anderen muss für jeden Punkt das Normal berechnet werden. Anschließend werden 3D-Flächen mit Hilfe der zusätzlichen Attribute aus der Punktmenge bestimmt.

Weitere Informationen:
3D-Laserscanner
Paper: Colored Maps
Paper: Surface Normals

SPLAM (2 Studierende)

Der Rettungsroboter Kurt3D wird von einem Operator gesteuert, der den Roboter in einem Stop-Scan-Go-Prozess betreibt. In diskreten Abständen wird gestoppt und ein 3D-Scan zur Kartierung aufgenommen. In diesem Arbeitspaket entwickeln Sie ein Modul, das den Operator bei der Entscheidung zur Scanaufnahme unterstützt. Dazu müssen C++-Funktionen geschrieben werden, die den Überlappungsbereich von Arealen nachhalten und planen (SPLAM = simultaneous planning, localization, and mapping).

Weitere Informationen:
Polygon Clipping

Microcontroller (2 Studierende)

In diesem Arbeitspaket beschäftigen Sie sich mit der Microcontrol-Software der Kurt-Plattform. Ein Infineon C-167 steuert die Motoren, liest die Sensoren aus und kommuniziert mit dem Laptop. Der C-167 wird in C programmiert. Sie suchen eine sogenannte "tool-chain" und versuchen damit, den vorhandenen C-167 Code zu compilieren, zu linken, und ihn auf den Roboter zu transferieren. Anschließend programmieren Sie den vorhandenen, z.Zt. auf dem Notebook laufenden PI-Regler auf dem C-167 nach.

Weitere Informationen:
Kurt2
Phytec C-167 Board
C-166
Macroassembler AS
vbcc
Keil 167

Human-Robot-Interface (2 Studierende)

In diesem Teil des Praktikums entwickeln Sie ein Interface für den Rettungsroboter Kurt3D. Dazu werden Sie an die vorhandene Serversoftware eine Java-basierte Oberfläche programmieren. Da die Serversoftware in C++ geschrieben ist, verwenden Sie zur Verbindung das Java Native Interface (JNI).

Weitere Informationen:
JNI


Valid HTML 4.0! Last changed: 2004-12-01