- Kontext
- Fachprojekt 1.–2. Semester, FHNW (Team TidyTec, 5 Personen)
- Zeitraum
- 09.2023 – 08.2024
- Ergebnis
- 1. Platz im Abschlusswettbewerb
- Meine Rolle
- Software, Elektronik und PCB-Design
- Technologien
- NI myRIO (FPGA + Echtzeit), LabVIEW, LiDAR, IMU, Kalman-Filter
Ausgangslage
Im Abschlusswettbewerb des Studiengangs Systemtechnik an der FHNW musste ein autonomer Reinigungsroboter möglichst viel Granulat von einem Spielfeld aufnehmen. Das Feld ist einem miniaturisierten Zimmer nachempfunden. Der Roboter muss sich dabei selbst im Raum zurechtfinden, Hindernissen ausweichen und am Ende mit dem gefüllten Behälter zur Ausgangsposition zurückkehren.
Unser Fünferteam «TidyTec» entwickelte dafür im Lauf von zwei Semestern einen Roboter von der Konzeptphase bis zum funktionierenden Prototyp. Ich war für Software, Elektronik und PCB-Design verantwortlich.
Anforderungen
- Vollständig autonom: Der Roboter wird nicht ferngesteuert und findet sich ohne externe Hilfe auf dem Spielfeld zurecht
- Vier Runden: Unterschiedliche Startlagen und Hindernisse
- Dynamisches Hindernis: In Runde 4 muss der Roboter einer «Katze», einem zweiten Roboter, ausweichen
- Begrenzte Zeit: Möglichst viel Granulat in der vorgegebenen Zeit aufnehmen
Systemaufbau
Der Roboter fährt mit einem Differentialantrieb über das Feld und saugt das Granulat über einen Leitkanal in einen Behälter. Ein 360°-LiDAR erfasst die Umgebung, die Steuerung übernimmt ein NI myRIO.
- Antrieb: Zwei Schrittmotoren treiben die Räder über Zahnriemen an. Die Radachse liegt mittig, damit der Roboter auf der Stelle wenden kann.
- Aufnahmesystem: Ein flexibler Leitkanal aus TPU führt das Granulat zur Ansaugöffnung, ohne dass die Räder darüberfahren. Im ersten Test gelangte Granulat unter die Räder und verursachte Schrittverluste. Eine zusätzliche Bürste löste das Problem. Ein 24-V-Saugmotor, stufenlos per PWM angesteuert, zieht das Granulat in einen Behälter mit Filter, der die vordere Hälfte des Roboters füllt.
- Sensorik: Ein 360°-LiDAR liefert 10-mal pro Sekunde eine Punktwolke der Umgebung, eine IMU misst mit 100 Hz die Drehung. Das LiDAR hängt kopfüber auf einer keilförmigen Halterung, die die leichte Neigung des Roboters ausgleicht.
- Elektronik: Ich habe ein eigenes Main-PCB in KiCad entworfen. Es trägt die Schrittmotortreiber und die IMU und wird über ein Flachbandkabel direkt an das myRIO gesteckt, wodurch fast die gesamte Verdrahtung entfällt. Zwei LiPo-Akkus liefern 24 V und reichen für ca. 20 Minuten, also für alle vier Runden.
- Gehäuse: Die Abdeckung im WALL-E-Design ist komplett im 3D-Druck gefertigt. Seitliche Arme klappen per Servo aus, wenn der Roboter nicht in Wandnähe ist. Das Grundgerüst besteht aus zwei von der FHNW-Werkstatt gefertigten Aluminiumplatten.
Software
Die Softwarearchitektur habe ich in LabVIEW aufgebaut. Sie läuft in drei Umgebungen: im FPGA des myRIO (zeitkritische Ansteuerung von Schrittmotoren, IMU und Saugmotor), in der Echtzeitumgebung (gesamte Roboterlogik als Zustandsautomat) und auf dem PC (Benutzeroberfläche zum Starten und Überwachen).
- Lokalisierung: Aus der LiDAR-Punktwolke werden die Wände des Spielfelds als Geraden extrahiert. Daraus folgt die Position des Roboters. Ein erweiterter Kalman-Filter fusioniert sie mit der Odometrie der Schrittmotoren und dem Winkel der IMU.
- Kartierung: Erkannte Hindernisse werden in einer Rasterkarte (50 × 50 mm) abgelegt und für die Planung gröber aufgelöst.
- Pfadplanung: Je nach Runde fährt der Roboter feste Wegpunkte ab oder berechnet einen Pfad, der das ganze Feld abdeckt. In Runde 4 weicht er der «Katze» aus.
- Pfadverfolgung: Ein Regler hält den Roboter auf dem geplanten Pfad. Beschleunigungsrampen verhindern Schrittverluste der Motoren.