BSE Moderne Tracking Systeme (SoSe 2026)
| Dozent: | Prof. Dr.-Ing. Schneider |
| Lehrveranstaltung: | Moderne Tracking Systeme |
| Modul | Business and Systems Engineering, Systemintegration |
| Modulbezeichnung: | BSE-M-2-2.01 |
| Modulverantwortung: | Prof. UlrichSchneider |
| Prüfungsform: | Hausarbeit |
| Abgabetermin: | 19.07.2026 |
Der Autonome Mobile Roboter (AMR, AlphaBot) soll wie im Video gezeigt möglichst exakt die Ränder eines Quadrats abfahren.
Im Rahmen dieser Hausarbeit soll eine Sensorfusionslösung zur Navigation eines mobilen Roboters entwickelt und untersucht werden.
Als Versuchsplattform dient ein Waveshare AlphaBot, der mit einer MPU9250-Inertialsensoreinheit ausgestattet ist. Die Sensordaten werden erfasst, verarbeitet und zur Schätzung der Roboterpose verwendet.
Ziel ist die Entwicklung und Bewertung verschiedener Bayes-basierter Schätzverfahren:
- Kalman-Filter (KF)
- Extended Kalman-Filter (EKF)
- Unscented Kalman-Filter (UKF)
- Partikelfilter (PF)
Die Verfahren sollen hinsichtlich Genauigkeit, Robustheit und Rechenaufwand verglichen werden.
Notwendige Hardware
- AlphaBot mit
- Arduino R4 Wifi und
- MPU 9250 IMU
- USB-C Kabel
Notwendige Software
- Arduino IDE 2.3.10
- MATLAB® (z. B. R2025b) mit Arduino Support Package
Vorbereitung
- Arbeiten Sie sich anhand dieses Artikels in den AlphaBot ein. Sie benötigen lediglich die Ansteuerung der Motoren, das Auslesen der Inkrementalgeber und die Daten der IMU MPU 9250.
- Leihen Sie sich die Hardware für die Hausarbeit bei Prof. Schneider oder Marc Ebmeyer aus.
- machen Sie bei Fragen frühzeitig einen termin mit Prof Schneider.
- Binden Sie den Arduino Uno R4 Wifi in Ihre Wifi-Umgebung ein. Sie dürfen hierfür gern unser Labor verwenden.
- Tragen Sie die WLAN-Zugangsdaten und die IP-Adresse des MATLAB-Rechners in die entsprechende Zeile ein.
- Übertragen Sie das Programm
DemoUnoR4Wifi.inoauf den Arduino uno R4 Wifi. - Versorgen Sie den Arduino Uno R4 mit Spannung (6 V-24 V). Die Daten werden nun gesendet. Die TX-LED blinkt kontinuierlich.
- Starten Sie
DemoUnoR4Wifi.mauf dem PC. Die DatenZeit in s;Zählermüssten nun empfangen und imCommand Windowdargestellt werden. - Sie sind nun startbereit!
Demos
| DemoUnoR4Wifi.m |
// Notw. Hardware HC-05 Bluetooth Modul
// Vorbereitung:
// 1) Binden Sie den Uno R4 in Ihr Netzwerk ein (Z. 25, 26).
// 2) Tragen Sie die IP Ihres MATLAB Rechners ein (Z. 32).
// 3) Übertragen Sie das Skript an den Uno R4.
// 4) Wählen Sie einen frein UDP-Port (Z. 38).
//*****************************************************************************
#include <WiFiS3.h>
#include <WiFiUdp.h>
// WLAN Zugangsdaten
char ssid[] = "Ihr_WLAN_Name"; // Anpassen
char pass[] = "Ihr_WLAN_Passwort"; // Anpassen
WiFiUDP udp;
// IP-Adresse des MATLAB-Rechners
IPAddress matlabIP(192, 168, 1, 1); // Anpassen
// MATLAB UDP-Port
unsigned int matlabPort = 7000;
void setup()
{
Serial.begin(115200);
while (!Serial);
Serial.println("Verbinde WLAN...");
while (WiFi.begin(ssid, pass) != WL_CONNECTED)
{
delay(5000);
Serial.print(".");
}
Serial.println();
Serial.println("WLAN verbunden");
Serial.print("Arduino IP: ");
Serial.println(WiFi.localIP());
udp.begin(7001);
}
void loop()
{
static int Zaehler_s16 = 0; // Beispiel für Messwert
float Zeit_f32 = float(millis())/1000; // Zeit in s
char Daten_s8[50];
// Format: Float;Integer
sprintf(Daten_s8, "%.3f;%d", Zeit_f32, Zaehler_s16);
Serial.println(Daten_s8);
// UDP senden
udp.beginPacket(matlabIP, matlabPort);
udp.write(Daten_s8);
udp.endPacket();
Zaehler_s16++; // Zähler inkrementieren
delay(100);
}
|
| DemoUnoR4Wifi.ino |
clear all; clc;
port = 7000; % UDP Port, auf dem MATLAB lauscht
u = udpport("IPV4", "LocalPort", port);
disp("Warte auf UDP-Daten vom Arduino ...")
while true
nBytes = u.NumBytesAvailable;
if nBytes > 0 % Prüfen, ob Daten vorhanden sind
data = read(u, nBytes, "string");
disp(data)
end
end
|
Aufgabe 1: Systemaufbau und Datenerfassung
Der AlphaBot wird über eine ebene Fläche bewegt. Während der Fahrt werden Sensordaten aufgezeichnet.
Folgende Sensoren stehen zur Verfügung:
| Sensor | Messgröße | Verwendung |
|---|---|---|
| MPU9250 Gyroskop | Gierrate | Orientierung |
| MPU9250 Beschleunigungssensor | Bewegungsdynamik | |
| MPU9250 Magnetometer | Magnetfeldrichtung | absolute Orientierung |
| Radencoder | Raddrehzahlen | Geschwindigkeit und Weg |
Die Messdaten werden über eine WLAN-Verbindung vom Arduino Uno R4 WiFi an MATLAB übertragen.
Das Datenformat soll mindestens enthalten:
Zeitstempel in s;Messnummer;Sensordaten
Beispiel:
1.25;2300;0.012;-0.034;9.812;0.01;0.02;-0.01
- Implementieren Sie eine Messdatenübertragung zwischen Arduino Uno R4 WiFi und MATLAB®.
- Erfassen und speichern Sie die Sensordaten des AlphaBots.
- Dokumentieren Sie die Abtastrate, Datenqualität und mögliche Messfehler.
2. Analyse der Sensorsignale
Untersuchen Sie die Eigenschaften der verfügbaren Sensordaten.
Führen Sie folgende Analysen durch:
- Bestimmung der Abtastrate
- Darstellung der Sensorsignale im Zeitbereich
- Frequenzanalyse mittels FFT
- Untersuchung von Offset und Drift
- Bestimmung der Messunsicherheit
Bewerten Sie insbesondere:
- Gyro-Bias und Drift
- Rauschen des Beschleunigungssensors
- Störungen des Magnetometers
- Schlupf der Räder
3. Bewegungsmodell des Roboters
Entwickeln Sie ein geeignetes Bewegungsmodell für den AlphaBot.
Der Roboter kann als Differentialantrieb modelliert werden.
Beispiel:
Diskutieren Sie:
- Wahl der Zustandsgrößen
- Modellannahmen
- Modellfehler
Implementieren Sie zunächst eine reine Zustandsschätzung ohne Sensorfusion.
Beispiele:
- Integration der Gierrate
- Berechnung der Position aus Encoderinformationen
Untersuchen Sie:
- Drift
- Positionsfehler
- Einfluss von Sensorausfällen
5. Kalman-Filter (KF)
Entwickeln Sie ein lineares Zustandsmodell.
Die Zustandsschätzung soll mit einem klassischen Kalman-Filter erfolgen.
Bestimmen Sie:
- Zustandsvektor
- Systemmatrix
- Messmatrix
- Prozessrauschen
- Messrauschen
Untersuchen Sie den Einfluss der Filterparameter auf das Ergebnis.
6. Extended Kalman-Filter (EKF)
Erweitern Sie das System auf das nichtlineare Robotermodell.
Implementieren Sie:
- Prediction-Schritt
- Berechnung der Jacobi-Matrix
- Update-Schritt
- Innovation und Innovationskovarianz
Bewerten Sie:
- Genauigkeit
- Stabilität
- Verhalten bei Kurvenfahrt
7. Unscented Kalman-Filter (UKF)
Implementieren Sie einen Unscented Kalman-Filter.
Verwenden Sie Sigma-Punkte zur Approximation der nichtlinearen Zustandsfortpflanzung.
Untersuchen Sie den Einfluss von:
Vergleichen Sie UKF und EKF hinsichtlich:
- Positionsfehler
- Winkelfehler
- Rechenaufwand
8. Partikelfilter (PF)
Erweitern Sie das Navigationsproblem um nicht-Gaußsche Messfehler.
Implementieren Sie einen Partikelfilter mit:
- Initialisierung der Partikel
- Zustandsfortpflanzung
- Gewichtungsberechnung
- Resampling
- Zustandsschätzung
Untersuchen Sie:
- Einfluss der Partikelanzahl
- Robustheit gegenüber Ausreißern
- Verhalten bei Mehrdeutigkeiten
9. Experimentelle Untersuchung
Führen Sie verschiedene Fahrversuche durch:
- Gerade Fahrt
- Kreisfahrt
- Kurvenfahrt
- Stop-and-Go-Fahrt
Bewerten Sie die Filter anhand von:
| Kriterium | KF | EKF | UKF | PF |
|---|---|---|---|---|
| Positionsfehler | ||||
| Winkelfehler | ||||
| Robustheit | ||||
| Rechenzeit |
10. Diskussion und Bewertung
Beantworten Sie folgende Fragen:
- Welche Annahmen treffen KF, EKF, UKF und PF?
- Wann versagen lineare Filter?
- Welche Vorteile bietet der UKF gegenüber dem EKF?
- Wann ist ein Partikelfilter sinnvoll?
- Welche zusätzlichen Sensoren würden die Navigation verbessern?
Diskutieren Sie abschließend, welches Verfahren für die Navigation des AlphaBots am besten geeignet ist und begründen Sie Ihre Entscheidung.
Abgabe
Die Dokumentation soll enthalten:
- Beschreibung des Systemaufbaus
- MATLAB-Programme
- Arduino-Programm
- Messdatenanalyse
- Herleitung der verwendeten Modelle
- Vergleich der Filterverfahren
- Diskussion der Ergebnisse
Die Bewertung erfolgt nach:
- technischem Verständnis
- Qualität der Modellbildung
- Implementierung
- experimenteller Untersuchung
- kritischer Bewertung der Ergebnisse
1.
Der AlphaBot wird über eine ebene Fläche bewegt. Während der Fahrt werden Sensordaten aufgezeichnet.
Folgende Sensoren stehen zur Verfügung:
| Sensor | Messgröße | Verwendung |
|---|---|---|
| MPU9250 Gyroskop | Gierrate | Orientierung |
| MPU9250 Beschleunigungssensor | Bewegungsdynamik | |
| MPU9250 Magnetometer | Magnetfeldrichtung | absolute Orientierung |
| Radencoder | Raddrehzahlen | Geschwindigkeit und Weg |
Die Messdaten werden über eine WLAN-Verbindung vom Arduino Uno R4 WiFi an MATLAB übertragen.
Das Datenformat soll mindestens enthalten:
Zeitstempel;Messnummer;Sensordaten
Beispiel:
12500000;2300;0.012;-0.034;9.812;0.01;0.02;-0.01
Abgabeordner
Nachdem Sie zur Prüfung angemeldet sind, lege ich für Sie einen Sciebo-Arbeitsordner an. Bitte legen Sie darin Ihre Ergebnisse ab (MATLAB®-Dateien und Hausarbeit als .pdf) und organisieren Sie sich ggf. in Unterordnern.
Bewertung
Die Bewertung der Hausarbeit erfolgt anhand der Kriterien in Tabelle 1. Diese Bewertung wird in Ihrem Abgabeordner publiziert. Dieses gilt als Klausureinsicht. Melden Sie sich bitte bei Rückfragen frühzeitig.
| Kriterium | Punkte |
|---|---|
| Dokumentation und Qualität der Recherche | 5 |
| Qualität und Quantität der Auswahlkriterien | 5 |
| Systematik bei der Auswahl des Ansatzes | 5 |
| Darstellung des Lösungsansatzes | 5 |
| Umsetzung des Lösungsansatzes | 5 |
| Anwendung und Optimierung des Partikelfilters zur Spurverfolgung | 5 |
| Qualität des Ergebnisses | 5 |
| Qualität der Ergebnisdiskussion | 5 |
| Summe: | 40 |