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:

 

 

 

 

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:

  1. Entfernung [mm]
  2. Drehung [Grad]
  3. 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