Wall-B ist ein Projekt der Berner Fachhochschule, welches sich mit der Entwicklung eines unbemannten Forschungsbootes befasst. Dieses soll in Zukunft autonom auf dem Bielersee unterwegs sein und Daten sammeln. Die Hardware war bereits gegeben und in der Projektarbeit 2 wurde ein Framework auf Basis des Robot Operating System 2 (ROS2) auf dem Boot implementiert. Im Rahmen dieser Bachelorarbeit wurde die autonome Navigation und Steuerung des Bootes entwickelt.
Ziel dieser Bachelorthesis war es, dass das Boot selbständig eine gegebene Zielkoordinate auf dem Bielersee ansteuern kann. Dazu gehören sowohl die Planung der schnellsten Route unter Berücksichtigung der geografischen Gegebenheiten als auch die Steuerung und Regelung des Kurses.
Die Vermeidung des Seeufers war ein wichtiger Aspekt bei der Entwicklung des deliberativen Navigationssystems. Dessen Identifikation wurde mithilfe von GIS ermöglicht, während Suchalgorithmen wie Dijkstra und A* zur Berechnung der Route innerhalb dieser Begrenzung verwendet wurden. Python und NetworkX wurden zur Erstellung und Verwaltung des Navigationsgraphen eingesetzt.
Ein benutzerfreundliches Dashboard, entwickelt mit HTML, JavaScript und CSS, zeigt Echtzeitdaten von GPS, Sonar und Temperatur an und erlaubt es, die Navigation zu steuern, indem jederzeit neue Zielpunkte gewählt werden können. Für die Karten- und Datenvisualisierung wurden Leaflet.js und Chart.js genutzt.
Sowohl das Navigationsprogramm als auch das Dashboard wurden in ROS2 implementiert. Dabei werden von der Pfadplanung Wegpunkte entlang der geplanten Route generiert, welche laufend im ROS2-System veröffentlicht werden.
Für die Steuerung des Bootes wurde ein Autopilot entwickelt. Dessen Aufgabe ist es, die Wegpunkte, welche von der Pfadplanung veröffentlicht werden, anzusteuern. Dazu werden die Daten des GPS-Sensors und des digitalen Kompasses genutzt.
Die Programmierung des Autopiloten erfolgte mit Python in Form einer ROS2-Node. Bei Erhalt eines neuen Wegpunktes werden anhand der GPS-Daten die direkte Route zwischen der aktuellen Position und dem Wegpunkt sowie der entsprechende Soll-Kurs bestimmt. Wenn die Position des Bootes von der direkten Route abweicht, wird ein neuer Soll-Kurs berechnet, um diese Abweichung zu korrigieren. Der Soll-Kurs wird über einen P-Regler gesteuert, wobei der gemessene Kurs des digitalen Kompasses als Regelgrösse dient. Die resultierende Stellgrösse ist der Steuerbefehl an das Ruder.
Die entwickelten Programme konnten ausgiebig auf dem See getestet werden. Es können beliebige Ziele auf dem See angefahren werden, und die Route lässt sich während der Fahrt anpassen. Dank der Pfadplanung wird vermieden, dass das Boot dem Ufer zu nahe kommt und auf Grund läuft. Der Autopilot ist in der Lage, den Kurs des Bootes präzise zu steuern, und reagiert auch robust auf Störgrössen. Somit konnten die Ziele der Bachelorarbeit erreicht werden.