Ganz allein unterwegs

Planung, Bau und Programmierung eines autonomen Roboters


Ziel dieser Arbeit ist es, ein autonomes Fahrzeug zu bauen, das selbständig seinen Weg vom Startpunkt zum Ziel findet und dabei mögliche Hindernisse umfährt.

Wie baut man einen autonomen Roboter? Man beginnt mit Hypothesen und Ideen, welche für die Realisierung von Bedeutung sind. Im Verlauf der Arbeit wurden diese durch die Konstruktion, die Programmierung und durch das Testen verifiziert oder widerlegt. Die vorliegende Arbeit beschreibt die verschiedenen Prozesse und Entwicklungsschritte des Projektes.

Folgende Rahmenbedingungen für den Bau des autonomen Fahrzeugs wurden gesetzt: Das Fahrzeug sollte ohne Operator eine Aufgabe selbstständig verrichten. Das Fahrzeug sollte nicht mehr als 20 Kilogramm wiegen und für rund 8 Kilogramm Nutzlast ausgelegt sein. Die Größe wurde auf ungefähr 600 x 400 x 140 mm begrenzt und die Geschwindigkeit sollte bis 1,5 m/s (= 5,4 km/h) im Gelände betragen.

Das Fahrgestell muss das Gewicht aufnehmen und ausreichend stabil sein, da es sich bei den Biegespannungen, die durch die Motoren und das Gelände aufkommen, nicht verziehen oder nachgeben darf.

Das Design orientiert sich an verschiedenen Kriterien: Komplexität, Aussehen, Wasserfestigkeit und Stabilität. Inspiration boten die gängigsten, im Handel erhältlichen Raupenroboter. Als Werkstoff wurde Aluminium gewählt: Es ist relativ zugfest, schweißbar, leicht und günstig. Die Pläne wurden mit „Inventor“ von „AutoDesk“ gezeichnet.

Das Fahrzeug besteht aus einer Grundplatte und zwei Seitenplatten, die durch eine Verschalung verbunden werden (siehe Abb. 2). Die Aussparung auf der Vorderseite des Fahrgestells ist für den Ultraschallsensor. Die Verschalung besteht nicht vollständig aus Aluminium, da dieses Metall sonst das GPS-Signal dämpft. Daher besteht der Deckel der Verschalung aus Polymethylmethacrylat, auch Acrylglas genannt. Dieser Deckel ist 555 mm lang, 450 mm breit und 2 mm dick und wird mittels zweier blauer Spanngurte auf das Chassis gespannt (siehe Abb. 1).

Die Motoren wurden an Motorenkonsolen montiert, die wiederum an der Seitenplatte angebracht wurden (siehe Abb. 3). Vor der endgültigen Fertigung in Aluminium wurde ein Prototyp aus Holz angefertigt, umsicherzugehen, dass alle Komponenten Platz haben würden. Daraufhin wurden die Maße noch einmal verändert: Das Chassis wurde um 50 mm verbreitert und die Bohrungen für die Motorenkonsolen auf den Seitenplatten um 20 mm in Richtung Mitte verschoben.

Der Raddurchmesser beträgt rund 250 mm. Somit besitzt das Chassis 80 mm Bodenfreiheit, was für einen solchen geländegängigen Roboter ausreicht.

Die Komponenten wie Akkumulatoren, Servocontroller und Mikrocontroller wurden im Gehäuse befestigt. Dazu wurde eine Aluminiumplatte zugeschnitten, die genau zwischen die Motorenkonsolen und die Seitenplatten passt. Zusätzlich wurden Vierkant-Aluminiumprofile angeschraubt, sodass die Akkus sicher unter der Platte verstaut werden konnten. Einen Gesamtüberblick zeigt Abb. 4​​​​​​​. Abschließend betragen die Maße des Fahrzeugs 620 x 450 x 160 mm.

Viele geländegängige Fahrzeuge haben einen Raupenantrieb. Jedoch entschied man sich aus verschiedenen Gründen gegen den Raupenantrieb. Der entscheidende Faktor war der Preis. Zwar wäre es möglich gewesen, eine solche Raupe selbst zu bauen, aber weder die Qualität des Produktes noch die des Antriebs hätten dem Material- und Zeitaufwand entsprochen.

Ein klassischer Antrieb mit einer Lenkung wie beim Auto war für das Fahrzeug ebenfalls nicht geeignet, da es ebenfalls zu komplex und zu teuer war.

Im Endeffekt wurde ein Kompromiss zwischen Raupen- und Radantrieb gefunden. Das Fahrzeug hat vier Räder, welche von jeweils einer Antriebsmaschine angetrieben werden. Je zwei Motoren befinden sich auf einer Seite: Der Roboter verfügt also über einen Vierradantrieb, bei dem sich zwei Motoren auf einer Seite simultan in die gleiche Richtung drehen. Dadurch treiben die vier Räder den Roboter wie zwei Raupen vorwärts.

Das maximal benötigte Drehmoment wurde berechnet. Dabei wurde berücksichtigt, dass sich das Fahrzeug auf Ebenen, Feldern und Geröll bewegen soll. Diese Einsatzgebiete wurden gewählt, da die Heimatumgebung des Autors durch dieses Terrain charakterisiert ist und eine vorhandene Limitierung die Kosten der Motoren und Akkumulatoren senkt.

In die Formel zur Berechnung des Drehmomentes M in Nm gehen folgende Größen ein: die Masse m des Roboters in kg, der Radius R des Reifens in m, die Erdbeschleunigung g in m/s2, der Reibungskoeffizient μ und Umwelteinflüsse k.

\(M = {R * m * g * sin\alpha \over \mu - k}\)

Die Masse soll maximal 28 kg (20 kg Eigengewicht und 8 kg Nutzlast) betragen, der Radius des Reifens misst 125 mm. Der Reibungskoeffizient μ zwischen Luftreifen und Schotter beträgt 0,68 [1]. Bei einer Steigung von 36 % ergibt sich für sin α ein Wert von etwa 0,33 die Hangabtriebskraft ist also rund ein Drittel der Gewichtskraft. Der Autor nimmt für k den Gesamtkoeffizienten des Luftwiderstandes an (k = 0,05), welcher sich aus der Stirnfläche multipliziert mit einem cw-Wert von 0,7 ergibt [2]. Mit diesen Werten ergibt sich ein Drehmoment vom M = 21 Nm.

Die Drehzahl berechnet sich wie folgt:

\(n = {\nu \over 2 * R * \pi}\)

Wobei die Geschwindigkeit v in m/s durch den Umfang des Reifens in m geteilt wird. Die Geschwindigkeit soll rund 1,5 m/s betragen. Damit ergibt sich eine Drehzahl von 114,6 min–1. Aufgrund dieser Daten wurden vier Gleichstrommotoren mit Planetengetriebe der Firma Maxon Motor AG gekauft.

Die vier Kugellager mit Flansch, Achsen und Rädern wurden bei Super Droid Robots Inc. mit Sitz in den Vereinigten Staaten bestellt.

Die Welle-Nabe-Verbindung sollte form- und reibschlüssig sein. Die Wellen der Motoren wurden mit Nut und Passfeder bestellt. Es waren jedoch keine Nuten in den Achsen der Räder vorhanden. Folglich wurde eine 4 mm breite Aussparung in diese Achsen gefräst. Ein Klemmring klemmt die Achse an die Welle (siehe Abb. 5). Somit kann das Drehmoment effektiv übertragen und die axialen Kräfte aufgenommen werden. Diese Verbindung ist leicht zu montieren und zu demontieren.

Die ausgewählte Steuerung mit der Artikelnummer 409510 „ESCON 50/5,4-Q Servocontroller für DC/EC-Motoren, 5/15 A, 10 – 50 VDC“ gehört zur ESCON-Produktserie. Der Anwender hat die Auswahl zwischen drei möglichen Betriebsmodi: einem Drehzahlregler, einem Stromregler oder einem Drehzahlsteller. Die Konfiguration dieser Servocontroller wird in Kapitel 3.3 beschrieb

Der Ultraschallsensor mit der Typbezeichnung K-14WP10 und dem Controller DYP-ME007Y dient als Distanzmessgerät und zur Erkennung von Hindernissen. Der Messbereich des Sensors liegt zwischen 30 cm und 3 m bei einem Öffnungswinkel von 30°. Die Auflösung beträgt einen Zentimeter, die Datenvarianz beträgt demzufolge ± 0,5 cm. Um die Distanz zu messen, sendet der Sensor Schallwellen bei einer Frequenz von 40 kHz aus. Herkömmliche, günstigere Ultraschall- Sensoren mit zwei „Augen“, z. B. der HC-SR04, weisen zwar etwa gleiche Messeigenschaften auf, der verwendete Sensor hat jedoch den Vorteil, wasserdicht zu sein. Der Stromverbrauch des Controllers liegt bei 15 mA mit einer Versorgungsspannung von 5 VDC [3, 4].

Der Honeywell HMC5883L ist ein dreiaxiales und digitales Magnetometer, auch Kompass genannt. Er misst die magnetische Feldstärke. Anhand der gemessenen Daten wird die Abweichung seiner x-Achse zum magnetischen Südpol in Gradmaß berechnet. Die Genauigkeit liegt bei 1° bis 2°. Dieser Sensor wird in der Robotik häufig verwendet. Deshalb ist dieses Gerät gut dokumentiert und ermöglicht eine rasche Problembehebung. Ein weiterer Grund, weswegen die Wahl auf dieses Gerät fiel, war das gute Preis-Leistungs- Verhältnis. Der Stromverbrauch liegt bei 100 μA mit einer Versorgungsspannung von 2,16 bis 3,6 VDC [5].

Durch das Global Positioning System und den UBX-G5000/5010 Chipsatz auf dem Navilock-NL-552ETTL-GPS-Modul wird die Positionierung des autonomen Roboters ermöglicht. Diese wird in geografischen Koordinaten angegeben. Die Genauigkeit, welche empirisch bestimmt wurde, beträgt rund 2 m [6]. Diese ist abhängig vom Wetter sowie von der Umgebung und Anzahl verfügbarer Satelliten. NAVSTAR-Satelliten strahlen in Form von elektromagnetischen Wellen ihre Uhrzeit aus. Die Wellen treffen mit Lichtgeschwindigkeit auf das GPS-Modul, das anschließend die Distanz anhand der Differenz der Uhrzeiten zu einem Satelliten berechnet. Wenn es mindestens vier Satelliten erfasst, kann das Modul seine Position auf der Erde bestimmen. Es benötigt max. 80 mA Strom mit einer Versorgungsspannung von 5 VDC [7].

Der Mikrocontroller Arduino Mega 2560 ist geeignet, um die Informationen der Sensoren zu verarbeiten. Der Arduino ist eine Mikrocontroller-Platine mit einem Atmel Atmega2560 als Kern. Dieser hat eine Taktrate von lediglich 16 MHz, die aber für die Aufgaben des Roboters ausreicht. Die Sensoren und die Motorcontroller werden über Mikrocontroller mit Strom versorgt und an den 54 digitalen Ein- und Ausgängen angeschlossen [8].

Das Absichern oder Aufrufen von Dateien wird mit einem externen Speicherkartenlesegerät für SD-Karten durchgeführt. Dafür wurde das SD / TF Card Shield Expansion Board vom Hersteller CATALEX ausgewählt. Es wird mit dem Arduino Mega 2560 verbunden, indem es direkt auf die ICSP-Stifte gesteckt wird. Dieses Gerät ermöglicht das Lesen und Speichern von Textdateien. Diese Funktion ist von Bedeutung, denn es ermöglicht eine anspruchslose Eingabe der Zielkoordinaten. Auch die Koordinaten, die der Roboter passiert, werden auf die SD-Karte geschrieb

Für den Roboter erleichtern folgende Überwachungseinheiten den Prozess der Fehlerbehebung erheblich und ermöglichen das schnelle Überprüfen des Zustandes.

Mit dem Radio-Set 3DR Radio Set V1 433“ von 3D Robotics kann ein Datenlink mit dem Fahrzeug aufrechtgehalten werden, sodass man mittels der Telemetrie die Koordinaten des Fahrzeuges auf einen Rechner übertragen kann. Dies hat den Vorteil, dass man die Position des Gefährts in Echtzeit verfolgen kann. Das Radio-Set arbeitet bei einer Frequenz von rund 433 MHz. Bei 5 VDC und 20 mA hat es einen Bedarf von 100 mW [9]. Nach dem Nationalen Frequenzzuweisungsplan des Bundesamts für Kommunikation (BAKOM) sind für ein solches Radio die Frequenzen von 433.25 MHz bis 434.50 MHz erlaubt [10]. Diese Frequenzen wie auch die Ausgangsleistung sind mit dem APM Planner 2 regulierbar. Die Datenübertragung besitzt eine Bitrate von 2 MBit/s.

Die Monopol-Antennen wurden auf 16,5 Zentimeter verlängert, was ein Viertel der Wellenlänge bei 433 MHz beträgt. So ließ sich, dank der neuen Antennen, anstatt nur über wenige hundert Meter über kilometerweite Distanzen immer eine Verbindung zum Roboter herstellen.

Es wurden Leuchtdioden an den Seitenplatten fixiert. Diese LEDs dienen dazu, den Zustand des Mikrocontrollers, den des GPS-Moduls und den der Stromversorgung zu überwachen. Zusätzlich wird ein Summer verwendet. Dieser gibt beim Hoch- und Herunterfahren des Roboters eine Sequenz von Pieptönen von sich, falls ein System nicht funktioniert. In der Testphase hat sich der Summer als sehr wertvoll erwiesen, da man schnell Probleme lokalisieren und beheben konnte.

Die Sensoren und Komponenten beziehen rund 100 mA Strom vom Arduino über die 3,3-VDC- und 5-VDC-Ausgänge. Dieser wiederum bezieht insgesamt 220 mA von einem Lithium-Polymer- Akkumulator mit einer Spannung von 7,4 VDC. Die Kapazität des Akkus beträgt 2500 mAh. Der Akku versorgt die Elektronik etwa zehn Stunden.

Vier Nickel-Metallhydrid-Akkumulatoren mit einer 24 VDC-Spannung und je 5 Ah Kapazität versorgen die Motoren samt Servocontrollern mit Energie. Damit kann der Roboter etwa eine Stunde fahren. Diese Laufzeit ermöglicht eine theoretische Reichweite von knapp 5,5 km. Die Auflade-Zeit beträgt rund zehn Stunden.

Die Komponenten werden nicht direkt mit dem Mikrocontroller verbunden, weil dies einerseits unübersichtlich wäre und andererseits mehrere Module nicht an einer Stromquelle angeschlossen werden könnten. Daher wurde eine Lochrasterplatine verwendet, da es eine kostengünstige Option war, obwohl es mit einem größeren Arbeitsaufwand verbunden war.

Um die Flexibilität wie bei der Steckplatine beizubehalten, wurden Anschlussstifte und Hohlstifte auf die Platine gelötet. So lassen sich die Kabel und Module jederzeit vom Mikrocontroller trennen und in kurzer Zeit wieder sicher befestigen.

Innerhalb des Codes kann eine Buchse als Ein- oder Ausgang festgelegt werden. Infolgedessen war schon im Vorhinein klar, wie die Verkabelung strukturiert sein musste. Auf die Platine wurden Anschlussstifte gelötet, und zwar sowohl Hohlstifte als auch der Summer. Die Hohl- und Anschlussstifte haben den gleichen Abstand wie die Löcher in der Platine, nämlich 2,54 mm. Der Ultraschallsensor, der Kompass und die Kabel des GPS-Moduls wurden mit diesen Hohlstiften befestigt. Das Radiomodul ließ sich über die Anschlussstifte mit dem Arduino verbinden. Auf der Unterseite der Platine, wo sich die Kupferplatten, die alle Löcher vertikal miteinander verbinden, befinden, mussten Änderungen vorgenommen werden.

Der Arduino, die Lochrasterplatine, das GPS-Modul und der Akkumulator befinden sich auf einer PVC-Hartschaumplatte oberhalb der Motoren und deren Stromversorgung, wie dies auf der Verkabelungsübersicht (Abb. 6) grafisch dargestellt ist.

Die Verbindung der Sensoren, Servocontroller und der Stromversorgung erfolgte ohne größere Umstände. Die Ein- oder Ausgänge der Komponenten mussten an den gewünschten Buchsen des Arduinos befestigt werden. Bemerkenswert ist, dass man beim GPS- und Radio-Modul die RX-Kabel (reception) und TX-Kabel (transmission) vertauschen muss. Der SD-Kartenleser ist in der Verkabelungsübersicht nicht enthalten.

Um die Vibration, die bei der Fahrt auftritt, zu verringern, wurde Silikon für die Befestigung der Komponenten auf der Schaumplatte benutzt. Zusätzlich wurden die ungeschützten Geräte, bspw. das Telemetriekit, mit Silikon umgeben. Dadurch werden sie gegen Wasser, Korrosion und Erschütterungen geschützt.

Die Software ist dafür zuständig, dass sich der Roboter mittels der zuvor gesetzten GPS-Koordinaten seinen Weg zu den gewünschten Zielkoordinaten bahnt. Er sollte imstande sein, Hindernisse zu erkennen und ihnen auszuweichen.

Das Einlesen der Koordinaten erfolgt über das Speicherkartenlesegerät. Dort werden SD-Karten eingeschoben, welche die Zielkoordinaten und deren Anzahl in Form von Textdateien beinhalten. Diese Methode hat sich als benutzerfreundlich erwiesen, um eine Route für den Mikrocontroller zu vordefinieren. Sobald der Arduino diese Route erkannt hat, werden die Längengrade und die Breitengrade separat in Datenreihen (arrays) lokal gesichert. Sind die Zielkoordinaten abgespeichert, so nimmt das Programm das erste Paar als Ziel. Erreicht der Roboter dieses Ziel, werden die nächsten Koordinaten in den Datenreihen zum Ziel. Diese Routine läuft so lange ab, bis das Gerät alle Koordinaten passiert hat. Der Autor hat die Abfolge mit der Eigenschaft versehen, dass der Roboter wieder bei den Anfangskoordinaten beginnt, sobald er die letzte Station erreicht hat. Voraussetzung dafür ist, dass sich die letzten Koordinaten in Sichtweite der Startkoordinaten befinden.

Das Programm wurde mit der Arduino IDE 1.0.6 in C/C++ programmiert. Der Softfolgende Programmablaufplan (Abb. 7) nach ISO 5807 Standard demonstriert den Hauptalgorithmus:

Als erstes werden die Module und Sensoren initialisiert und auf ihren Betriebszustand überprüft. Wenn alles in Ordnung ist, wird die erste Zielkoordinate von der SD-Karte eingelesen.

Dann wird überprüft, ob neue Koordinaten zur Verfügung stehen. Mittels der aktuellen Position des Roboters und Trigonometrie approximiert der Mikrokontroller die gewünschte Ausrichtung und die Distanz zur Zielkoordinate. Ist das Gefährt weniger als 3 Meter von der Zielkoordinate entfernt, wird die nächste Zielkoordinate eingelesen. Falls nicht, sendet der Ultraschall-Sensor einen Puls aus. Wenn dieser jedoch von einem nahen Objekt zurückgeworfen wird, so leitet der Arduino die Ausweichmanöver ein.

Kommt kein Signal zurück, dann wird direkt die momentane Ausrichtung mit dem Magnetometer bestimmt und mit der gewünschten Ausrichtung verglichen. Darauf folgt der Steuerbefehl, welcher vom Servocontroller an die Motoren weitergegeben wird. Ist die momentane Ausrichtung im Toleranzbereich der gewünschten Ausrichtung, fährt der Roboter geradeaus. Sonst wendet er sich nach rechts oder entsprechend nach links.

Das Ganze wiederholt sich von Anfang, wenn keine neuen Koordinaten auf der SD-Karte verfügbar sind.

Zusammengefasst hat das Programm also drei verschiedene Funktionsweisen.

  1. Informationen werden von den Sensoren und Modulen gesammelt und lokal abgespeichert.
  2. Diese Informationen werden miteinander verglichen und es werden Bedingungen aufgestellt. Anhand dieser berechnet der Arduino fortlaufend Steuerwerte, die zum Erreichen des Zieles führen.
  3. Über die Digitalausgänge des Mikrocontrollers werden die ermittelten Werte über das Telemetriesystem und an den Servocontroller exportiert.

Zusätzlich besitzt das Programm die Fähigkeit, Fehler zu überprüfen und sie, wenn nötig, zu korrigieren. Als Beispiel werden die Messdaten des Ultraschall- Sensors herangezogen. Es kann vorkommen, dass diese Fehlwerte beinhalten. Wenn sie nicht überprüft werden, würde das Gefährt grundlos anhalten und ein Ausweichmanöver einleiten.

Dank der verwendeten Software kann das autonome Fahrzeug den meisten Hindernissen geschickt ausweichen.

Das GPS-Modul ist eine der wichtigsten Komponenten, ohne sie kann der Roboter seine Pflicht nicht erfüllen. Gibt es keine freie Sicht zum Himmel, bekommt das Modul nur einen erschwerten oder gar keinen Empfang. Sollte der Roboter keinen Satellitenempfang haben, versetzt er sich in einen Standby-Modus und wartet auf ein neues GPS-Signal.

Es besteht das Risiko, dass das Fahrzeug hängenbleibt. Falls die Reifen im Schnee durchdrehen und der Roboter nicht vom Fleck kommt oder in einem Graben feststeckt, läuft das Programm gewöhnlich weiter. Somit gibt man dem Roboter die Chance, sich aus seiner misslichen Situation zu befreien. Währenddessen würde die Person, die auf einem Rechner die aktuellen Koordinaten des Fahrzeugs liest, bemerken, dass es nicht vorwärtskommt und könnte im Zweifelsfall eingreifen. Gäbe es die Telemetrie-Einheit nicht, wäre das Hängenbleiben ein ernsthaftes Problem.

Die Servocontroller ESCON 50/5 wurden mit der „ESCON Studio 2.2 Software“ der „Maxon Motor AG“ konfiguriert. Die Parameter wurden so gewählt, dass die Beschleunigung 0,2 m/s² und die Bremsbeschleunigung 0,7 m/s² beträgt. Diese letzte Konfiguration erfolgte nach den ersten Testfahrten und basiert auf Erfahrungswerten. Die maximale Geschwidigkeit von rund 5 km/h entspricht einer schnellen Laufgeschwindigkeit. Zusätzlich können die Servocontroller, neben Vorwärts- und Rückwärtsgang, auch zwischen Kriechund Schritttempo schalten, was vier verschiedene Betriebsmodi ermöglicht.

Um sicherzugehen, dass der Roboter für die Einsatzgebiete richtig ausgelegt worden ist, wurden Testfahrten durchgeführt (siehe Abb. 8).

Bei der Jungfernfahrt am 06.03.2015 fuhr der Roboter nur im Kreis, da die NiMH Akkumulatoren ferromagnetisch sind und der Kompass folglich nur auf diese zeigte und nicht in Richtung des geographischen Nordpols. Dieses Problem wurde behoben, indem das Magnetometer an den Deckel des Roboters geklebt wurde, sodass bei der zweiten Testfahrt der Roboter problemlos an sein Ziel fahren konnte. Die GPS-Daten wurden aufgenommen und ausgewertet. Daraufhin konnte der Algorithmus für das GPS-Modul optimiert werden.

Im Gelände tauchten verschiedene, unerwartete Schwierigkeiten auf. Erstens wurde bei der Entwicklung das Loch für den Ultraschallsensor viel zu tief positioniert, sodass auf einer Wiese, auf der das Gras hoch ist, der Roboter nicht seinen Zweck erfüllen konnte. Da die Erkennung der Hindernisse sonst auf Flächen, wie Straßen oder Plätzen, funktioniert, musste man für verschiedene Routen vorausplanen und je nachdem den Sensor ausschalten. Dieses Manko ist Subjekt der Weiterentwicklung.

Des Weiteren kam es vor, dass nur drei Räder des Fahrzeugs mit dem Boden Kontakt hatten, was dazu führte, dass das Drehmoment der drei Motoren nicht ausreichte, um das Gefährt anzutreiben. Dieser Fehler in der Auslegung wurde durch eine Minderung der Beanspruchung verbessert, also indem die Nutzlast verringert wurde.

In der Planungsphase wurden Berechnungen durchgeführt, das Antriebssystem und die Komponenten ausgewählt und das Fahrgestell entworfen. Zusätzlich wurde ein Eins-zu-eins-Modell aus Holz zusammengebaut.

In der Bauphase wurden anhand der CAD-Pläne das Chassis und die Motorenkonsolen von der Lyn-Tec AG hergestellt. Die Radachsen wurden modifiziert, die Elektronik montiert, die Abdeckung zugeschnitten und alle Komponenten miteinander verbunden.

Mit der Programmierung wurde dem autonomen Roboter seine Funktionalität gegeben. Es wurde versucht, einen Mittelweg zwischen Komplexität und Funktionalität zu finden, was auch verwirklicht wurde. Das Ziel, einen autonomen, fahrenden Roboter zu programmieren, wurde erfüllt.

Ein Dankeschön an Damian Henniger, welcher für die Erstellung von CAD-Plänen und den Bau verantwortlich war. Zusätzlich übernahm er die Verantwortung für die Komponentenauswahl im Bereich der Motoren, der Motorensteuerung, der Akkus, des Antriebssystems und des Chassis. Er verwaltete auch die finanziellen Mittel.

Zum Schluss bedankt sich der Autor bei diesen Firmen für Ihre großzügigen Unterstützungen: ABB Ltd, Afag AG, Herrenknecht AG, Implenia AG, Lyn-Tec AG, RUAG AG, Trumpf AG.