Skip to content

StefanMack/PAT-ROS

Repository files navigation

Projekt Automatisierungstechnik mit BeagleBone, Ubuntu, ROS und Simulink - Master Mechatronik, Hochschule Reutlingen

Projektarbeit: Embedded Linux auf einem BeagleBone unter ROS, Filter- und Regelungsentwicklung unter Simulink zur Steuerung eines autonomen Roboterfahrzeugs.

Im Projekt Automatisierungstechnik erhält jede Studentengruppe ein mit einem BeagleBone-Platinencomputer ausgestattetes Roboterfahrzeug. Dieses Fahrzeug soll autonom einen Raum entlang der Wand absuchen, Kollisionen vermeiden, Hindernissen ausweichen und einen vorgegebenen Gegenstand auf dem Boden identifizieren. Dazu muss das Fahrzeug mit einer Leistungselektronik für die Antriebe und mit geeigneten Sensoren ausgestattet werden.
Da für die Messung des Wandabstands nur ein einzelner Ultraschallsensor verwendet werden darf, muss dessen Signal mit einem Kalman-Filter aufbereitet werden.
Die Softwareentwicklung sowohl auf dem BeagleBone aus auch auf dem PC geschieht unter Linux (Ubuntu 20.04 LTS) inklusive der Middleware ROS (Robot Operation System Noetic).

Kommunikationsstruktur

Das Roboterfahrzeug als mechatronisches System besitzt die Komponenten Sensordatenerfassung, Motorsteuerung und Kalman-Filter / Regelung. Jeder dieser Komponenten ist ein ROS-Knoten also ein Prozess zugeordnet. Dabei werden die Knoten Sensordatenerfassung und Motorsteuerung auf dem BeagleBone ausgeführt. Der Knoten Kalman-Filter / Regelung wird mit Simulink auf dem PC erstellt und dort auch ausgeführt. Der BeagleBone und der PC befinden sich im selben WLAN und bilden ein ROS-Netzwerk.
Wie in der Grafik dargestellt liefert der Sensorknoten beispielsweise Abstandsmesswerte (Topic A) an den Filter-/Regelungsknoten. Dieser wiederum liefert Solldrehzahlen der Räder (Topic B) an die Motorsteuerung, damit das Roboterfahrzeug im konstanten Abstand entlang der Wand fährt.

Softwarestruktur ROS

In diesem Repository finden Sie die Projektanleitung als PDF-Datei. Darin werden die BeagleBone-Hardware sowie die Schnittstellen zu den Peripheriemodulen (Sensoren und Aktoren) eingehend behandelt. Auch finden sich dort Anleitungen zur Softwareerstellung mit C, Python und Simulink sowie Basisinformationen zum Umgang mit Embedded Linux. Weiter sind hier als Beispiele Quellcodedateien für C-, Python-, und Simulink-Programme sowie für ein ROS-Package zu finden.

Das verwendete Image (Stand 20.9.22) für den BeagleBone finden sie hier als Download.

Die Bewegung des Roboterfahrzeugs und die Messeigenschaften des Abstandssensors werden mit einem Simulink-Modell simuliert. Dazu wird für das Roboterfahrzeug ein einfaches "Bicycle"-Fahrzeugmodell (Fahrradmodell mit lenkbarer Vorderachse) verwendet. Hiermit werden sowohl der Kalman-Filter als auch die Regelung numerisch optimiert. Folgender Screenprint zeigt das Modell und Ergebnis einer Simulation der mit einem einzelnen Abstandssensor + Kalman-Filter geregelten Fahrt entlang einer Wand.

Simulinkmodell Robotersimulation

Bisher wurde diese Projektarbeit ohne ROS mit modellbasierter Softwareerzeugung und Cross-Compiler komplett unter Simulink durchgeführt. Leider hatte uns Mathworks hier etwas im Stich gelassen, da das Support Package für den BeagleBone nicht für neuere Debianversionen als 7.9 aktualisiert wurde. Im Zuge der Umstellung der Labor-PCs auf Ubuntu-Linux konnte das Support Package für den BeagleBone dann gar nicht mehr verwendet werden, da es seltsamerweise nur für Windows verfügbar ist.
Die Not macht erfinderisch: Das Projekt wurde auf Ubuntu 20.04 und ROS Noetic umgestellt. Simulink wird nun nur noch dazu verwendet, einen ROS-Knoten für die Regelung und den Kalman-Filter zu erstellen.
Insgesamt funktioniert die Projektarbeit nun wesentlich besser und die Studierenden sind zufriedener!

Aufgrund der Corona-bedingten Schließung der Hochschulen im Sommersemester 2020 wurde eine "to-go Version" des Roboters entwickelt. Damit konnten die Studierenden die Projektarbeit auch Zuhause unter Online-Betreuung durchführen. Dieser RoboToGo wird aktuell nun auch im Präsenzunterricht verwendet.

Neuer RoboToGo für die Projektarbeit Zuhause

Prof. Dr. S. Mack, 22. Mai 2021.

License

Creative Commons Lizenzvertrag
Dieses Werk ist lizenziert unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 4.0 International Lizenz.

About

Projekt Automatisierungstechnik mit BeagleBone, Ubuntu, ROS und Simulink - Master Mechatronik

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages