Institut
für Informatik, Universität Freiburg
|
Institut für
Informatik
Albert-Ludwigs-Universität Freiburg
Praktikum Robotik
Wintersemester 2001/2002
|
Grundlagen der Künstlichen Intelligenz
Veranstalter: Prof. Dr. Bernhard Nebel
Betreuer: Alexander Kleiner
|
Übungsblatt 1 - Odometrieungenauigkeit
Abgabe/Vorführung: 08.11.01
Anleitung
Installieren Sie den Sourcecode zu Aufgabe 1 in ein Verzeichnis und führen Sie die Befehle
make depend und make
aus. Starten Sie das erstellte Programm auf einem Roboter. Verändern Sie die die Schleife myLoop()
in main.c entsprechend der folgenden Aufgaben. Achtung: Diese Schleife wird zyklisch alle 100ms aufgerufen. D.h. man sollte
hier möglichst keine While Schleifen programmieren!
Vorüberlegung
Autonome Roboter ermitteln üblicherweise über eine Odometrie ihrer aktuelle Position.
Diese Odometrie besteht aus einem oder mehrerer Räder, die über einen Inkrementalgeber
ihre Drehbewegung messen können. Damit kann der zurückgelegte Weg eines jeden Rades ermittelt und
die aktuelle Position und Orientierung des Roboters geschätzt werden. Bedingt durch die Ungenauigkeit
dieses Sensors ist es sinnvoll dessen Messung mit der eines anderen Sensors, z.B. "Laser Range Finder", zu fusionieren.
Um dies tun zu können, braucht man jedoch eine Angabe der Streuung beider Sensoren. Diese soll in dieser
Übung für die Odometrie ermittelt werden
Der Inkrementalgeber der Motoren eines Pioneer 2 Roboters liefert 500 "Ticks" pro Umdrehung und die
Übersetzung von Motor zu dem jeweiligem Rad ist 19.7 : 1 (das bedeutet also, daß für eine Umdrehung des Rades
der Motor sich 19.7 mal dreht). Wie groß ist die kleinste mit der Odometrie meßbare Strecke bzw. Drehung bei einem
Raddurchmesser von 165,0 mm?
Wodurch entstehen weitere Ungenauigkeiten?
Aufgabe 1
Schreiben Sie ein einfaches C-Programm von dem
die folgenden Aktivitäten aufgerufen werden können:
- Gleichmäßige Fahrt in eine Richtung
- Eingabe: Richtung in Grad und Strecke in mm
- Abfahren eines Kreises
- Eingabe: Radius und Anzahl abzufahrender Kreise (Bitte kein "setHeading" verwenden)
- Abfahren eines Quadrates
- Eingabe: Kantenlänge und Anzahl abzufahrender Quadrate
Aufgabe 2
Bei der Positionsbestimmung mittels der Odometrie treten Abweichungen zwischen
der tatsächlichen Position und der berechneten Position auf.
Diese Fehler beziehen sich auf die folgenden Größen:
- Entfernung [mm]
- Drehung [Grad]
- Drift [Grad]
Bestimmen Sie den mittleren Fehler und dessen Standardabweichung für diese Größen. Lassen Sie dabei zur Messung des
Entfernungs- und Driftfehlers den Roboter eine Strecke von 1000mm zurücklegen, bzw. zur Messung des Drehfehlers
eine 360 Grad Drehung ausführen.
Die Positionsschätzung des Roboters wird im Crystal Fenster angezeigt. Die Tatsächliche Position muss von Hand gemessen
werden. Achten sie darauf, daß genügend Messungen durchgeführt werden um statistisch
signifikante Aussagen machen zu können.
Frage: Sind die gemessenen Fehler normalverteilt, bzw. in welchen Fällen sind sie es nicht?
Abgabe
- Quellen
- Schriftliche Ausarbeitung der Ergebnisse der Odometriemessung