Post on 24-Jan-2021
transcript
Kanton St.Gallen Kantonsschule am Burggraben St.Gallen Untergymnasium, Gymnasium
Maturaarbeit
Bau eines Tauchroboters
Eingereicht am: 02.02.2015
Vorgelegt durch Christian Engler 4dNP
Vorgelegt bei: Dr. dipl. phys. Thomas Spirig
Maturaarbeit 2015 / Christian Engler 4dNP
Inhaltsverzeichnis
1 Einleitung 1
1.1 Beweggründe 1
2 Konzept 1
2.1 Voraussetzungen 2
2.2 Vorgehen 2
3 Mechanische Komponenten 3
3.1 Antrieb 6
3.2 Kameragehäuse 8
3.3 Schnittstellen mit den Komponenten 9
3.4 Hauptdruckkörper 11
3.5 Auftriebskörper und Ballast 13
3.6 Rahmen 15
4 Elektronik 16
4.1 Steuerung und Kommunikation 17
4.2 Kamerasystem 19
4.3 Tether 20
4.4 Stromversorgung 21
5 Kontrollstation und TMS 23
6 Programmierung 24
6.1 Python Script 25
6.2 Arduino Code 25
6.3 Wertetabelle für die Steuersignale 26
7 Tests 27
7.1 Dichteprüfung 27
7.2 Erster Wassertest 28
7.3 Zweiter Wassertest 29
7.4 Dritter Wassertest 30
8 Erfolge und Rückschläge 33
9 Diskussion 33
10 Danksagung 35
11 Schlusswort 35
Maturaarbeit 2015 / Christian Engler 4dNP
12 Bestätigung der Eigentätigkeit 36
13 Literaturverzeichnis 37
14 Abbildungsverzeichnis 37
Anhang 1: Arduino Quellcode 39
Anhang 2: Python Script 46
Anhang 3: Zusammenfassung 49
Maturaarbeit 2015 / Christian Engler 4dNP 1
1 Einleitung
1.1 Beweggründe
Wo finden wir die letzten “weissen Flecken auf der Landkarte”, Orte an denen noch
niemand vorher war? Diese Frage hat mich schon als kleines Kind beschäftigt. Als es
vor einem Jahr darum ging, ein Thema für die Maturaarbeit auszuwählen, kam mir
dieser Gedanke wieder in den Sinn.
Einerseits interessiere ich mich für technische Dinge, liebe es aber auch, die Natur zu
entdecken und zu erforschen. Um diese Interessen in einem Projekt zusammen zu
bringen, entschied ich mich für den Bau eines ferngesteuerten Tauchroboters, eines
sogenannten ROV (Remotely Operated Vehicle). Unter Wasser gibt es diese letzten
unentdeckten Orte noch, und die sind ziemlich gross. So ist zum Beispiel die
Mondoberfläche besser erforscht als unsere Ozeane. Und auch in den Seen vor
unserer Haustüre gibt es noch vieles zu entdecken. So werden im Bodensee gemäss
Kennern zum Beispiel noch unzählige Schiffswracks vermutet.
Somit stand der Entschluss fest, ein Tauchfahrzeug zu bauen, das in möglichst grosse
Tiefen vorstossen kann, um dort Bildmaterial und Daten (Druck, Temperatur, etc.) zu
sammeln.
2 Konzept
Ziel dieser Arbeit war der Bau eines Tauchroboters, der vorerst mindestens bis in 50 m
Tiefe und später allenfalls tiefer vordringen kann. Ein Freizeittaucher kann mit einer
entsprechenden Ausbildung in Tiefen von bis zu 40 m tauchen. Berufstaucher schaffen
bis zu 100 m, allerdings nur mit grossem Aufwand an Material und Zeit. Es wird
redundante Ausrüstung, u.a. mehrere Druckluftflaschen, mitgeführt und es müssen
Dekompressionsstopps durchgeführt werden, die für einen solchen Tauchgang sehr
viel Zeit in Anspruch nehmen. Somit sind 50 m Tiefe die Grenze, ab der es sinnvoll
wird ein ROV anstelle eines Tauchers einzusetzen.
Maturaarbeit 2015 / Christian Engler 4dNP 2
2.1 Voraussetzungen
Die Vorgaben für den Bau des Tauchroboters sind wie folgt definiert:
Tauchtiefe mindestens 50 m.
Livevideo-Bildübertragung zur Oberfläche.
Steuerbar von der Oberfläche.
Modularer Aufbau, der spätere Erweiterungen ermöglicht und etwaige
Änderungen vereinfacht.
Das ROV soll durch eine Türflucht eines Wracks passen, d.h. eine Breite
von 50cm darf nicht überschritten werden.
2.2 Vorgehen
Das Vorgehen beim Konstruieren eines ROVs wird grundsätzlich bestimmt durch die
Vorgaben, die es erfüllen muss und durch die Art des Einsatzes. Dementsprechend
werden die einzelnen Komponenten, passend für den Einsatzzweck, konstruiert.
In diesem Fall sind die wichtigsten Komponenten (vgl. Abb. 2, Seite 6):
Hauptdruckkörper für die elektronischen Komponenten
Strahlruder für Vortrieb und Steuerung
Kameragehäuse
Lampen
Zu diesen Komponenten werden dann die passenden elektronischen Steuer- und
Kontrollmechanismen entwickelt, z.B. die passenden Motoren oder eine
entsprechend kleine Kamera. Oder es kann sein, dass die Elektronik die
Konstruktionsart der mechanischen Komponente bestimmt (z.B. beim
Hauptdruckkörper mit Kommunikations- und Steuerelektronik).
Danach wird ein Rahmen entworfen, an dem alle Komponenten befestigt werden
können. Schliesslich wird der Tauchroboter gewogen und ein abgestimmtes
Auftriebs- und Ballastsystem gebaut. Nachdem das Gerät auf seine
Funktionstüchtigkeit getestet ist, können allfällige Änderungen vorgenommen
werden.
Dieses Vorgehen wurde bei der vorliegenden Maturaarbeit umgesetzt.
Maturaarbeit 2015 / Christian Engler 4dNP 3
3 Mechanische Komponenten
Als erstes werden die mechanischen Elemente des Tauchroboters beschrieben.
Wichtige Überlegungen hierzu sind vor allem Einsatzgebiet, Funktion und maximale
Tauchtiefe. Bei dieser Arbeit handelt es sich um ein
sogenanntes OCROV – ein Observation Class Remotly
Operated Vehicle. Es trägt als Hauptinstrument eine Kamera
und Sensoren, hingegen keine schweren Werkzeuge, wie die
sogenannten WCROV – Work Class ROV. Die OCROVs
wiegen zwischen 2 und 100 kg. Bei diesem Gerät soll das
Endgewicht nicht über 50 kg liegen und es soll etwa die Grösse
einer grossen Getränkekiste mit einer Breite von ca. 40 cm
haben. Damit passt das ROV durch Türfluchten, was vor allem beim Wracktauchen
wichtig sein kann. Durch das niedrige Gesamtgewicht kann das ROV auch ohne Kran
ins Wasser gelassen werden und ist relativ leicht zu transportieren.
Die Tauchtiefe beeinflusst die Grösse insofern, als dass die einzelnen Komponenten
massiver sein müssen, je tiefer der Roboter tauchen soll. Auf der folgenden Seite ist
eine Übersicht des gesamten ROVs zu sehen.
Abb. 1: Ansichten des ROVs (Front, Rückseite, Seitenansicht)
ROV
In dieser Arbeit wird entweder
von einem ROV oder von
einem Tauchroboter ge-
sprochen, wobei ein und
dasselbe gemeint ist. Die
Bezeichnung ROV ist jedoch
korrekter, weil das Fahrzeug
nur teilautonom ist.
Maturaarbeit 2015 / Christian Engler 4dNP 4
Abb. 2: Gesamtansicht des ROVs
Maturaarbeit 2015 / Christian Engler 4dNP 5
Abb. 3: Übersicht über die Komponenten des ganzen Systems
Maturaarbeit 2015 / Christian Engler 4dNP 6
3.1 Antrieb
Grundsätzliche Überlegungen
Um das ROV im Wasser manövrieren zu können, werden in diesem Fall elektrisch
betriebene Strahlruder verwendet. Das sind kleine, von Elektromotoren angetriebene
Propeller, die beliebig am ROV angebracht werden können. Das ROV bewegt sich
entlang von drei Achsen: vorwärts-rückwärts, links-rechts, auf-ab. Daher braucht man
mindestens drei Strahlruder. Diese müssen in einer möglichst idealen Konfiguration am
ROV montiert sein. Das ‚ROV Manual‘ von Robert L. Wernli Sr. Und Robert D. Christ
erwähnt dazu folgende Überlegungen: Die Anbringung der Strahlruder ist ein
Zusammenspiel aus möglichst grossem Hebelarm und möglichst langem Fahrzeug um
eine optimale Stabilität des ROVs zu erreichen. (Robert D. Christ & Robert L. Wernli
Sr, 2014, S. 76)
Abb.4: Anbringung der Strahlruder und entsprechende Fahrzeuglänge/Breite (The ROV-Manual)
Bei diesem Projekt wurde ein Länge-zu-Breite Verhältnis von etwas über 2:1 gewählt.
So können die Strahlruder in einem genügend grossen Abstand angebracht werden
und das Fahrzeug ist immer noch relativ lang. Zudem basiert diese Wahl der Masse
auf der Betrachtung bereits bestehender ROVs.
Maturaarbeit 2015 / Christian Engler 4dNP 7
Magnetkupplungen der Strahlruder
Abb. 5: Plan der Magnetkupplung
Die Dichtungen an der Antriebswelle der Strahlruder sind eine der grössten
Schwachstellen bei jedem Unterwasserfahrzeug. Da bei radialen Achsendichtungen
eine rotierende Fläche auf der statischen Dichtungsfläche liegt, kann es schnell
geschehen, dass die Dichtfläche unterbrochen wird, wodurch Wasser in das
Motorgehäuse eindringen kann. Die beste Lösung ist deshalb das Vermeiden dieser
Rotationsdichtung durch Verwendung einer Magnetkupplung.
Bei der Magnetkupplung gibt es keine physische Verbindung zwischen Motor und
Propeller. Die Kraftübertragung erfolgt mithilfe eines Magnetfeldes. So kann sich der
Motor in einem vom Wasser komplett abgeschotteten Gehäuse befinden. Gleichzeitig
lässt sich damit eine Überlastung der Motoren verhindern, falls die Propeller blockiert
werden (z.B. durch Seegras). Bei einer Blockade der Propeller beginnt die Kupplung zu
rutschen, während der Motor weiter drehen kann.
Maturaarbeit 2015 / Christian Engler 4dNP 8
Erste Versuche mit einer Magnetkupplung, bei der die Magnete in einem Ring um den
zentralen, angetriebenen Magneten angeordnet waren, brachten nicht die gewünschte
Leistung. Die magnetische Verbindung war zu schwach und konnte deshalb das
notwendige Drehmoment nicht übertragen. Die überarbeitete Version basiert auf zwei
sich gegenüberliegenden Aluminiumtrommeln, in denen Magnete angebracht sind.
Dadurch ist die aktuelle Version auch um einiges kompakter ist als der Prototyp.
Abb. 6: Prototyp der ersten Magnetkupplung Abb. 7: Teile der neuen Magnetkupplung
Die Magnetkupplungen wurden vom Autor aus Delrin (einem sehr robusten Kunststoff)
auf einer Drehmaschine gefertigt. Das Material verhindert Wirbelströme, wie sie in
einem Aluminiumgehäuse entstehen könnten und welche den Motor abbremsen
würden. Die Magnettrommeln sind aus Aluminium gefräst und die Magnete wurden mit
Schraubensicherungslack in die Fassungen eingeklebt.
Um zu verhindern, dass die Magnetkupplungen rutschen, muss der Motor möglichst
sanft anlaufen. Dies wird jedoch durch eine entsprechende Routine in der
Programmierung sicher gestellt. (siehe Kapitel 6) Programmierung)
3.2 Kameragehäuse
Die Kamera des ROVs wird in einem Gehäuse aufgenommen, das aus einer
Acrylglasröhre besteht, die an beiden Seiten durch zwei Verschlüsse mit O-Ringen
wasserdicht verschlossen ist. Acrylglas hat den Vorteil, dass es praktisch optisch „echt“
ist. D.h. es spiegelt nur wenig und verzerrt das Bild nur minim. Zudem ist Acrylglas eine
optimale Dichtfläche für die O-Ringe und zerkratzt nicht so leicht.
Maturaarbeit 2015 / Christian Engler 4dNP 9
Abb. 8: Das Kameragehäuse
3.3 Schnittstellen mit den Komponenten
Die Schnittstellen der einzelnen Komponenten mit der Hauptdruckröhre gehören zu
den grössten Herausforderungen beim Bau eines ROVs. Es gibt kommerzielle,
wasserdichte Verbindungsstecker, die speziell für Tauchroboter und andere
Unterwasseranwendungen konzipiert sind. Diese kosten allerdings zwischen 200 und
mehreren tausend Dollar pro Stück (je nach Tiefenzertifizierung: 200 $ entspricht etwa
300 m Wassertiefe). Es gibt auch wasserfeste Stecker, die um einiges günstiger sind.
Diese Stecker sind jedoch nur bis etwa 10 m. wasserdicht. Deshalb wurde bei diesem
Projekt gänzlich auf externe Stecker verzichtet.
Maturaarbeit 2015 / Christian Engler 4dNP 10
Aufbau der Schnittstellen
Abb. 9: Plan der Verbindungen
Alle Verbinder des Tauchroboters basieren auf dem gleichen Prinzip. Das Kabel wird
durch einen mit Epoxidharz abgedichteten Zapfen geführt. Diese Hülse kann dann in
einen Gewindeeingang der Hauptröhre eingeschraubt werden und wird mit einem O-
Ring abgedichtet. Zusätzlich wird das ganze Kabel durch einen PVC Schlauch, der mit
Briden am Verbinderzapfen abgedichtet ist, vom Wasser abgeschottet. Im Inneren der
Röhre werden die Kabel mittels Elektroklemmen angeschlossen.
Abb. 10: Verbinder der Hauptröhre mit Schläuchen Abb. 11: Anschlüsse von der Innenseite gesehen
Maturaarbeit 2015 / Christian Engler 4dNP 11
3.4 Hauptdruckkörper
Der Hauptdruckkörper ist sozusagen das Herzstück des Tauchroboters. Darin befinden
sich die gesamte fahrzeugseitige Steuerungs- und Kommunikationselektronik sowie die
Stromversorgung. Die Steuersignale aus der Kontrollstation werden hier zu
Motorsteuersignalen verarbeitet und Daten (z.B. Live-Video oder Umweltdaten) werden
an die Kontrollstation gesendet. Aus diesem Grund muss dieser Teil des
Tauchroboters besonders robust und gut abgedichtet sein. Ein Wassereinbruch würde
zum Totalausfall des ROVs führen.
Abb. 12: Schema des Hauptdruckkörpers mit den Verschlüssen
Maturaarbeit 2015 / Christian Engler 4dNP 12
Als Material für den Hauptdruckkörper wurde eine Aluminiumröhre mit einer
Wandstärke von 10 mm gewählt. Die Form der Röhre ist besonders druckfest, was
grössere Tauchtiefen ermöglicht. Aluminium korrodiert bei Kontakt mit Wasser nicht, ist
um vieles druckfester als Acrylglas und lässt sich einfacher bearbeiten als Stahl.
Zur Abdichtung der Röhre gegen Wasser dienen zwei O-Ringe auf jeder Seite. Die O-
Ringe sind so in eine Nut eingepasst und bemessen, dass sie beim Aufsetzen der
Verschlüsse auf die Röhre leicht zusammengepresst werden. Durch diese sog.
Verpressung wird eine wasserdichte Barriere erzeugt. Die Nuten beim
Hauptdruckkörper sind so gewählt, dass man entweder einen O-Ring mit 10%
Verpressung verwenden kann, mit dem sich die Röhre noch komfortabel verschliessen
lässt, oder man kann eine „schwere“ Dichtung verwenden, mit 20% Verpressung, die
grössere Tauchtiefen ermöglicht. Allerdings ist es bei dieser Dichtung schwieriger, den
Zylinder zu verschliessen, da die dickeren O-Ringe zu mehr Reibungswiederstand
führen.
Abb. 13 O-Ring unter Last
Ein wichtiger Bestandteil des Hauptdruckkörpers sind seine Verbindungen mit den
restlichen Komponenten. Im hinteren Deckel ist ein M20 Innengewinde eingearbeitet,
an dem der sog. „Tether“ (Versorgungskabel) angeschlossen werden kann. An der
Vorderseite befinden sich neun M10 Anschlüsse, die das Anschliessen von Motoren,
Sensoren und anderen Gerätschaften ermöglichen. Der Hauptdruckkörper wurde
freundlicherweise von der Firma Breu Mechanik hergestellt, weil die eigene
Drehmaschine für Teile dieser Grösse zu klein ist.
Maturaarbeit 2015 / Christian Engler 4dNP 13
3.5 Auftriebskörper und Ballast
Der Auftriebskörper sorgt für die richtige Tarierung des ROVs im Wasser und
zusammen mit dem Ballast für eine gute Stabilität des Fahrzeugs. Indem der Ballast
möglichst weit unter dem Auftriebskörper angebracht wird, und der Auftriebskörper am
höchst möglichen Punkt ist, wird die optimale Stabilität erreicht.
Mit einer guten Tarierung ist das ROV mit wenig Energie optimal manövrierfähig. Ideal
wäre eine neutrale Tarierung. d.h. das Gesamtgewicht des ROV‘s entspricht genau
dem Gewicht des Wasservolumens welches vom Tauchroboter verdrängt wird. Das
ROV wäre also in einem Schwebezustand. Weil eine solche Feinabstimmung praktisch
kaum möglich ist, entscheidet man sich entweder für eine leicht positive Tarierung oder
eine leicht negative Tarierung. Dieses ROV hat eine leicht positive Tarierung, d.h. man
benötigt mehr Schub um das ROV abtauchen zu lassen, hat aber den Vorteil, dass bei
einem Stromausfall das ROV selbständig wieder auftaucht.
Abb. 14: Austarieren des ROVs im Wasser
Als Ballast werden Bleigewichte verwendet, die möglichst weit unter dem
Auftriebskörper am Rahmen befestigt werden.
positiv tariert
neutral tariert
negativ tariert
steigt
schwebt
sinkt
Maturaarbeit 2015 / Christian Engler 4dNP 14
Das sorgt für Stabilität und das ROV kann getrimmt werden, d.h. das Bleigewicht wird
angepasst, wenn z.B. weitere technische Komponenten angebracht werden.
Material des Auftriebskörper
Ein falsch kalkulierter Auftriebskörper ist die häufigste Ursache für den Verlust von
ROVs. Wird ein falsches Material verwendet, wird der Auftriebskörper vom immensen
Wasserdruck zusammen gequetscht. Das reduzierte Volumen verringert den Auftrieb
und das ROV sinkt ab. Dabei besteht die Gefahr, dass das ganze ROV durch den
zunehmenden Druck vollständig zerstört wird.
Ein erster Versuch mit Polystyrolschaumstoff ergab nicht die gewünschten Resultate.
Der Schaumstoff wurde bereits bei ca. 25 Metern Wassertiefe bis auf das halbe
Volumen zusammengepresst. Nun wird ein leichter Spezialhartschaumstoff (Airex C70
von der Firma Bolleter Composites gratis zur Verfügung gestellt) eingesetzt, der bis zu
einem Druck von 30 bar (300 m Wassertiefe) formstabil ist und sich durch eine sehr
geringe Wasseraufnahme auszeichnet. So ändert sich der Auftrieb nur wenig, während
das ROV im Wasser ist. Dieses Material wird vor allem im Bootsbau und in der
Luftfahrt verwendet und lässt sich sehr gut bearbeiten.
Damit der Auftriebskörper auch abriebfest ist, wurde er mit Glasfasergewebe laminiert
und gelb lackiert. Durch die gelbe Lackierung ist das ROV besser zu sehen unter
Wasser.
Abb. 15: Erste Version des Auftriebkörpers aus Polystyrol.
Abb. 16: Zweite und finale Version des Auftrieb- körpers aus speziellem Schaumstoff
Maturaarbeit 2015 / Christian Engler 4dNP 15
3.6 Rahmen
Am Rahmen werden alle Komponenten des ROVs angebracht. Zudem bietet er Schutz
bei Kollisionen und gibt dem ROV Stabilität. Beim Design des Rahmens war die Idee
des modularen Aufbaus und der einfachen Erweiterbarkeit besonders wichtig.
Abb. 17: Der Rahmen des ROVs
Als Material für den Rahmen wurden Item® Systembauprofile verwendet. Diese Profile
ermöglichen einen einfachen Zusammenbau und Änderungen können kurzfristig und
mit wenig Aufwand vorgenommen
werden. Die Profile haben auf allen vier
Seiten Nuten, an denen Gegenstände
und weitere Profile einfach befestigt
werden können. Zudem können Ballast
und Strahlruder am Rahmen
verschoben werden, so dass man die
Lage des ROVs einstellen kann.
Abb. 18: Verbindung am Rahmen
Maturaarbeit 2015 / Christian Engler 4dNP 16
4 Elektronik
Die Elektronik des ROVs ermöglicht dem Bediener das Erlebnis der sog. „virtuellen
Präsenz“. Er kann dadurch an Orten beobachten und agieren, die für Menschen nicht
erreichbar sind, oder an denen er einem zu hohen Risiko ausgesetzt wäre (z.B.
Höhlen, Unterseeische Quellen usw.). Für diese „virtuelle Präsenz“ benötigt man ein
Livevideobild, eine Möglichkeit das ROV zu steuern und optional mehrere Sensoren,
die den Bediener über die am Einsatzort vorherrschenden Umweltbedingungen
informieren. So kann man Daten messen, wie zum Beispiel Umgebungsdruck,
Temperatur, aber auch aufgabenspezifischere Informationen wie PH-Wert, Sauerstoff-
konzentration, etc. oder man kann die Umwelt filmisch dokumentieren.
Die Elektronik eines ROV besteht immer aus der Bordelektronik und der sog.
Benutzerelektronik.
Die Bordelektronik setzt sich zusammen aus:
Kamera
Steuerung
Kommunikation
Beleuchtung
Sensoren
Stromversorgung
Die Bestandteile der
Benutzerelektronik sind:
Laptop mit
Steuersoftware
Monitor zur Anzeige
des Livebilds
Nachfolgend wird die Bordelektronik behandelt. Auf die Benutzerelektronik wird im
Kapitel Kontrollstation genauer eingegangen.
Abb. 19: Bordelektronik vorne
Abb. 20: Bordelektronik hinten
Maturaarbeit 2015 / Christian Engler 4dNP 17
4.1 Steuerung und Kommunikation
Das Herzstück der Steuerung des ROVs ist ein Arduino UNO
R3. Ein Microcontroller der einfach programmiert werden kann,
Sensorinputs verarbeitet und Steuersignale sendet. Um die
Elektromotoren des Tauchroboters ansteuern zu können, wurde
für jeden Motor ein ESC (Electronic Speed Controller) an den
Arduino angeschlossen, der mittels eines PWM Signals
gesteuert werden kann. Diese ESCs werden vom Arduino wie Servos angesteuert, wie
sie im Modellbau Verwendung finden
Da es sich beim Arduino um ein normales USB-Gerät handelt, wäre es am einfachsten,
ihn direkt an einem USB-Port des Computers anzuschliessen. Ein Standard USB-
Protokoll hat jedoch eine maximale Reichweite von ca. 5 m. Die Lösung war ein USB-
Extender der USB-Signale über ein Ethernetprotokoll bis zu 100 m (maximale
Reichweite des Ethernetprotokolls) weit überträgt. Das am Extender angeschlossene
Gerät verhält sich dabei so, als ob es direkt am USB-Port des Computers
angeschlossen wäre. Um die Reichweite des ROVs noch weiter zu erhöhen, ist
zwischen Computer und USB-Extender ein umgebautes Powerlinemodul geschaltet.
Dieses ermöglicht eine 500 Mbit/s Ethernetverbindung von bis zu 300 m Länge durch
ein zweiadriges Kabel.
Variante 1
Es wurden auch noch zwei weitere Möglichkeiten zur Datenübertragung in Erwägung
gezogen. Aufgrund von niedrigen Kosten und grösserer Reichweite wurde Variante 1
ausgewählt. Zudem benötigt Variante 1 nur 2 Kabel um eine Ethernetverbindung
herzustellen und nicht 8, wie Varianten 2 und 3.
PWM
Der Begriff Pulse Width
Modulation beschreibt ein
digitales Signal, das dazu
verwendet werden kann
Servos und Fahrtenregler
(ESC) zu steuern.
Maturaarbeit 2015 / Christian Engler 4dNP 18
Variante Reichweite Kosten
1 300 m 130.-
2 100 m 400.-
3 100 m 200.-
Tab 1: Kostenvergleich Datenübertragung
Variante 2
Variante 3
Variante 2 hätte den Vorteil gehabt, dass sie mit wenigen Elementen ausgekommen
und sicher stabil gewesen wäre. Allerdings ist die Reichweite auf 100m limitiert und der
benötigte High-Speed USB-Extender wäre sehr teuer.
Variante 3 wäre auch relativ günstig, hat aber den Nachteil, dass sehr viele zusätzliche
Komponenten benötigt werden.
Maturaarbeit 2015 / Christian Engler 4dNP 19
4.2 Kamerasystem
Die Schwierigkeit beim Kamerasystem des ROVs bestand darin, dass der Video-
Stream mit einer möglichst geringen Verzögerung übertragen werden muss um eine
komfortable ‚real-time‘ Steuerung des Fahrzeugs zu ermöglichen.
Der Versuch eine USB-Webcam als Livekamera einzusetzen
scheiterte daran, dass der Minicomputer (ein Raspberry Pi Model
B) der zum Streamen des Signals verwendet wurde zu wenig
Rechenleistung hatte, und das Bild nur mit einer grossen
Verzögerung und stark stockend empfangen werden konnte.
Jetzt wird eine einfache Boardkamera eingesetzt, die ein
Analogsignal sendet. Dieses Signal kann mithilfe eines Video-
Baluns durch ein zweiadriges Kabel über eine Reichweite von bis
zu 600 m gesendet werden. Das Bild ist selbst bei einer Distanz von 100 m noch
nahezu live, jedoch nur von mittlerer Qualität (670 TVL entspricht etwa einer VGA
Auflösung)
Zur filmischen Dokumentation der Tauchfahrten dient eine zweite, externe Full-HD
Kamera. Diese nimmt die gesamte Tauchfahrt auf und speichert das Video auf einer
SD-Karte, die nach dem Einsatz ausgelesen werden kann.
Die Steuerkamera ist vorne am ROV fixiert und kann während der Fahrt weder bewegt
werden noch zoomen. So verhindert man, dass der Bediener die Entfernung zu
Objekten nicht mehr einschätzen kann, oder die Position des ROVs relativ zum
Sichtfeld falsch wahrnimmt.
Abb. 21: Die Livevideokamera ist in einem Plexiglasgehäuse, vorne am ROV angebracht
Video-Balun
Ein Video Balun ist ein Gerät,
das die Videosignale einer
Kamera über weitere
Distanzen senden kann.
Dazu ist im Balun ein kleiner
Transformator eingebaut, der
die Spannung des Signals
erhöht, um Spannungs-
verluste im Kabel zu
verringern.
Maturaarbeit 2015 / Christian Engler 4dNP 20
4.3 Tether
Da Funksignale, die unter Wasser gesendet werden, nur eine Reichweite von wenigen
Metern haben, muss die ganze Kommunikation zwischen ROV und Kontrollstation über
ein Kabel erfolgen. Dieses Versorgungskabel wir im Fachjargon auch Tether genannt.
Durch ihn werden alle Daten- und Steuersignale übertragen. Für dieses Projekt wurde
ein Cat 5 Ethernetkabel gewählt, das folgende Vorteile hat:
Der Tether wird möglichst klein gehalten, da alle Daten durch dieses Kabel
übertragen werden können. Ein Cat 5 Kabel besteht aus 4 Kabelpaaren. Von
diesen wird eines für die Ethernetverbindung und eines für die
Videoübertragung verwendet. Zwei Paare dienen als Ersatz oder für mögliche
Erweiterungen.
Cat 5 Kabel ist fast neutral tariert. So kann verhindert werden, dass das ROV
ein zu grosses Gewicht hinter sich herschleppen muss.
Cat 5 Kabel ist preislich sehr günstig
Abb. 22: Querschnitt eines Cat 5 Kabels
Das Kabel wird auf einer eigens dafür konstruierten Rolle
aufbewahrt und wird bei einem Einsatz abgewickelt. Am
Kabel ist auch der Zapfen zu sehen, mit dem der Tether an
den Hauptdruckkörper angeschlossen wird.
Abb. 23: Kabelrolle für den Tether
Maturaarbeit 2015 / Christian Engler 4dNP 21
4.4 Stromversorgung
Die Stromversorgung des Tauchroboters versorgt alle elektrischen und elektronischen
Komponenten der Bordelektronik mit Strom. Die momentane Stromversorgung basiert
auf zwei NiMH Akkus und einem LiPo-Akku. Eine Stromversorgung über Kabel wurde
verworfen (siehe Diskussion)
Beide NiMH Akkus liefern je 7.2 V. Einer der Akkus versorgt die Motoren, der zweite
versorgt die Kommunikations- und Steuerelektronik. Der LiPo-Akku versorgt das
Internetmodul und die Livekamera, da diese 12 V benötigen. Allerdings wird dieser
Akku so bald wie möglich durch einen NiMh Akku ersetzt, da LiPo-Akkus nicht für
feuchte Umgebungen geeignet sind.
Spannungsregler
Da die Akkus eine Spannung zwischen 8.5 und 7 Volt liefern, muss die Spannung auf
die passende Betriebsspannung der Geräte angepasst werden.
Gerät Spannung Leistung
Arduino 5-19 V 11 W
USB-Extender 5 V 5 W
FPV-Kamera 12 V 10 W
Internetmodul 12 V 3 W
Tab. 2: Übersicht der erforderlichen Spannung und Leistung der Geräte
Das Problem bei Spannungsreglern ist die sogenannte Dropout-Voltage. Das ist die
Mindestspannung, die über dem geregelten Wert liegen muss, damit der
Spannungsregler noch funktionieren kann. Die eingebauten Spannungsregler haben
eine Dropout-Voltage von 2 V. Das bedeutet, dass zum Beispiel der USB-Extender
bereits bei einer Akkuspannung von 7 V keinen Strom mehr erhält.
Maturaarbeit 2015 / Christian Engler 4dNP 22
Abb. 24: Schaltung für einen 5V Spannungsregler, wie er im ROV eingesetzt wird (STmicroelectronics)
Abb. 25: Stromversorgung der Bordelektronik. Gut zu erkennen sind die beiden Filterkondensa- toren und dahinter der Spannungsregler L79
Für die Schaltung der Stromversorgung wurden ausschliesslich
Keramikkondensatoren verwendet. Das lässt die Möglichkeit
offen, die Behälter der elektronischen Komponenten des ROVs
mit Mineralöl zu druckkompensieren. Würden Elektrolyt
kondensatoren verwendet, wäre das nicht möglich, da diese
druckempfindlich sind. Die Möglichkeit einer Druck-
kompensation wurde als Notfalllösung in Erwägung gezogen,
falls sich die Dichtungen als zu schwach erwiesen hätten.
Druckkompensation
Füllt man einen Druckkörper
mit nichtleitendem Mineralöl
auf, kann man diesen effizient
gegen Druck schützen. Da
sich das Mineralöl nicht
komprimieren lässt, besteht
keine Druckdifferenz mehr
zwischen Wasser und
Innenraum. Der O-Ring muss
dann nur noch das Öl im
Inneren halten. Allerdings ist
es besser, diese Methode zu
vermeiden, da Wartungs-
arbeiten an der Elektronik
erschwert werden
VIN VOUT
Maturaarbeit 2015 / Christian Engler 4dNP 23
5 Kontrollstation und TMS
Die Kontrollstation dient dazu, das ROV vom Ufer oder einem Wasserfahrzeug aus zu
steuern. Sie besteht aus folgenden Komponenten
Laptop mit Steuersoftware
Bildschirm zur Anzeige des Signals der FPV-Kamera
Internetmodul
Kabelrolle
Stromversorgung
Die ganze Kontrollstation findet in einer Kiste Platz. Beim Einsatz wird das
Internetmodul an den Ethernetport des Laptops und den Tether angeschlossen und der
Bildschirm wir ebenfalls über einen Video-Balun mit dem Tether verbunden. Der Strom
für den Bildschirm und das Internetmodul wird von einer 12 V Autobatterie geliefert.
Abb. 26: Die Kontrollstation im zusammengelegten (Bild links) und aufgebauten Zustand (Bild rechts)
Maturaarbeit 2015 / Christian Engler 4dNP 24
Abb. 27: Flussdiagramm der Software
6 Programmierung
Die Programmierung des
ROVs besteht, wie die
Elektronik, aus zwei
verschiedenen Teilen. Das
Steuerprogramm des
Arduinos, der im ROV
eingebaut ist und die
Computersoftware zur
Steuerung des Tauch-
roboters vom Laptop aus.
Für die Maturaarbeit ist die
ROV-Software auf das
Minimum reduziert. Nur das
Steuern des ROVs ist in
das Programm implemen-
tiert.
Die Computersoftware ver-
arbeitet den Userinput der
Tastatur in Zahlen, die über
einen Serial Port an den
Arduino gesendet werden.
Auf diesem läuft ein
Programm, das jeder
ankommenden Zahl eine
Aktion zuweist. Drückt der
Benutzer z.B. „W“ sendet
die Computersoftware die
Zahl 119 (ASCII-Code für
den Buchstaben W) an den Arduino. Dieser führt dann eine Funktion aus, die das linke
und rechte Strahlruder einschaltet, so dass der ROV vorwärts fährt.
Maturaarbeit 2015 / Christian Engler 4dNP 25
6.1 Python Script
Die Kontrollsoftware, die auf dem Laptop läuft, wurde mit Python programmiert. Eine
sehr einfach zu erlernende Sprache, die mit vielen sogenannten Modulen erweitert
werden kann. Für dieses Projekt wurde das Modul PySerial benötigt. Dieses ermöglicht
es der Software eine serielle Verbindung mit dem Arduino herzustellen. Dazu wird mit
einem Befehl im Programmcode ein sogenannter Serialport geöffnet und eine Baudrate
gewählt. Die Baudrate bestimmt die Übertragungsgeschwindigkeit der Signale zum
Arduino. Für diese Anwendung wurde der tiefst mögliche Wert von 4800 Baud gewählt,
da nur sehr wenige Daten übertragen werden müssen und so der Arduino nicht
überfordert wird.
Nach dem Setup wartet die Kontrollsoftware auf die Tastatursignale. Durch eine if-else
Schleife wird dauernd überprüft, ob einer der gedrückten Tasten eine Aktion
zugewiesen ist. Wenn dies so ist, wird der Wert der entsprechenden Taste an den
Arduino gesendet. Obwohl im Code des Python-Scripts der Buchstabe gesendet wird,
sendet die Serial-Software den entsprechenden ASCII-Wert. Wird die Taste gedrückt
gehalten wiederholt sich dieser Prozess laufend, bis die Taste losgelassen wird.
6.2 Arduino Code
Der Arduino-Code besteht aus einem sog. Setup Loop und der eigentlichen
Programmschleife. In der Setup Schleife werden die Serial Verbindung initialisiert, die
Pins bestimmt, an denen die ESCs angeschlossen sind, sowie die einzelnen Servos
zugewiesen. So weiss der Arduino, dass er es mit Servos, resp. ESCs, zu tun hat und
die Servos kalibrieren muss. In der Programmschleife wartet der Arduino dann auf eine
ankommende Zahl. Mit einer If-else Schleife wird überprüft, ob und welche Aktion der
Zahl zugeordnet ist. Für jede Aktion sendet der Arduino anschliessend die passenden
Steuersignale an die ESCs. Da die ESCs eigentlich dafür konzipiert sind mit einer RC
Fernsteuerung angesteuert zu werden, sind die Befehle, die der Arduino an die ESCs
senden muss, etwas speziell. Der Wert 90 entspricht der Neutralstellung des
Steuerknüppels an der Fernsteuerung, es passiert also nichts. Werte unter 90 sorgen
für Schub vorwärts, während Werte über 90 für Schub rückwärts sorgen.
Maturaarbeit 2015 / Christian Engler 4dNP 26
Die Kontrolle der Strahlruder ist so programmiert, dass sie so lange und in
entsprechender Kombination laufen wie die für die Bewegung bestimmte Taste
gedrückt wird und die entsprechende Zahl beim Arduino ankommt. Das Tauchruder ist
etwas anders programmiert. Dadurch, dass das ROV positiv tariert ist, muss das
vertikale Ruder während des gesamten Tauchgangs laufen, um das ROV unter
Wasser zu halten. Mit der Taste T wird die sogenannte Tarierungskontrolle
eingeschaltet. Mit den Tasten Z und U kann dann der Auftrieb entweder erhöht oder
erniedrigt werden. So kann man ganz einfach die gewünschte Sinkrate einstellen oder
den ROV im „Schwebeflug“ halten. Drückt man wieder auf T wir das vertikale Ruder
ausgeschaltet und das ROV taucht auf. Man kann aber auch mit den Tasten O und L
die Leistung des Tauchruders kurzzeitig erhöhen, um schneller auf- oder abzutauchen.
Um zu verhindern, dass dabei die Kupplung des Tauchruders rutscht, wurde eine
Rampe einprogrammiert, die die Leistung des Tauchruders proportional erhöht, bis der
eingestellte Wert erreicht wird. Wie langsam diese Anpassung an den Maximalwert
dauert, kann durch das Verändern einer Variablen eingestellt werden.
6.3 Wertetabelle für die Steuersignale
Befehl Taste ASCII-Wert
Vorwärts W 119
Rückwärts S 115
Links A 97
Rechts D 100
Rotieren UZS E 101
Rotieren GUZS Q 113
Tarieren aktivieren T 116
Auftrieb verringern Z 122
Auftrieb erhöhen U 117
Aufwärts O 111
Abwärts L 108
Tab. 3: Werte für Steuerbefehle
Maturaarbeit 2015 / Christian Engler 4dNP 27
7 Tests
7.1 Dichteprüfung
Die erste Dichteprüfung des ROVs stellt einen kritischen Punkt beim Bau des
Tauchroboters dar. Dabei zeigt sich, ob das Design des Tauchroboters dem
Einsatzdruck standhält und dicht ist. Wenn möglich wird der Drucktest unter simulierten
Bedingungen durchgeführt, was das Beobachten und Bergen der Teile einfacher
macht.
Für den Drucktest stellte der Badische Tauchsportverein freundlicherweise seine
Hyperbarische Druckkammer in Überlingen zur Verfügung. Diese Druckkammer wird
normalerweise zur Behandlung von Dekompressionserkrankungen verwendet und
kann eine Tauchtiefe von bis zu 50 m (entspricht 6 bar Absolutdruck) simulieren.
Abb. 28: Testanordnung, zu sehen sind Druckkörper, Tauchcomputer und ein Block Schaumstoff des Auftriebkörers
Abb. 29: Druckkammer des BTSV in Überlingen, links im Bild ist das Kontrollpult, durch das Bullauge konnte die Versuchsanordnung beobachtete werden.
Die zu testenden Komponenten werden in einen mit Wasser gefüllten Behälter gelegt,
um den Luftdruck in Wasserdruck umzuwandeln. Dann wird in der Druckkammer der
entsprechende Druck aufgebaut. Dieser Druck wird über eine gewisse Zeitspanne
aufrecht gehalten. Der Behälter kann während der „Tauchfahrt„ durch ein Bullauge
beobachtet werden. Steigen Bläschen aus dem Behälter auf, deutet dies auf undichte
Stellen hin, die so lokalisiert werden können. Nach der Tauchfahrt wird der Behälter
geöffnet und auf allfällig eingedrungenes Wasser überprüft.
Maturaarbeit 2015 / Christian Engler 4dNP 28
Es wurde nur der Hauptdruckkörper geprüft. Dieser erwies sich zumindest bis zu dem
in der Kammer erreichten Maximaldruck von 6 bar als wasserdicht.
Abb. 30: Tauchprofil des Tests
Auf der rechten Seite ist das Abtauchen zu sehen. Die flache Linie in der Mitte stellt die
12 min dar, während denen der Versuchsaufbau 6 Bar ausgesetzt war. Die steile
Gerade auf der linken Seite entsteht dadurch, dass der Druck relativ schnell aus der
Druckkammer abgelassen wurde.
7.2 Erster Wassertest
Der Tauchroboter wurde ins Wasser gelassen, um zu ermitteln wie viel Ballast
hinzugefügt werden muss und ob das Gerät stabil im Wasser liegt.
Dabei zeigte sich:
Es müssten ca. 15 kg Ballast hinzugefügt werden, was eindeutig zu viel ist.
Der ROV liegt sehr stabil und waagrecht im Wasser.
In die Hauptröhre dringt Wasser ein. Vermutlich wegen einer Dichtung, in der
sich ein Kabel verklemmt hatte.
Der Tether ist abgerissen.
Maturaarbeit 2015 / Christian Engler 4dNP 29
Abb. 31: Erste Testfahrt
Nach diesem Test wurden die notwendigen Änderungen vorgenommen:
Der Auftriebskörper wurde verkleinert, so dass nur noch 7-8 kg Ballast
zugeladen werden müssen.
Die Dichtungen wurden überprüft und gereinigt.
Am Tether wurde eine Zugentlastungsklemme angebracht um zu verhindern,
dass der Tether bei zu starkem Zug aus dem Anschlusszapfen gerissen wird.
7.3 Zweiter Wassertest
Beim zweiten Test im Bodensee sollte die Funktionstüchtigkeit der Elektronik und die
Manövrierfähigkeit des ROVs überprüft werden.
Folgende Testresultate wurden erreicht:
Die Bordelektronik funktioniert einwandfrei.
Kamerabild und Steuerung funktionieren nahezu in Echtzeit (keine
wahrnehmbare Verzögerung).
Das ROV lässt sich gut steuern, ist allerdings sehr träge.
Die Magnetkupplung des Tauchruders rutscht unter Last. Dadurch ist das
Abtauchen nicht möglich.
Es gibt immer noch einen leichten Wassereinbruch in der Hauptröhre. Die
Verbindung mit dem Backbordakku wurde als mutmassliche Leckstelle
identifiziert.
8 kg Ballast sind immer noch zu wenig.
Folgende Massnahmen wurden getroffen:
Überarbeitung der Magnetkupplung
des Tauchruders. Der Abstand
zwischen den beiden
Magnetscheiben wurde verkleinert,
indem die Zwischenwand ein wenig
abgedreht, und die Welle verlängert
wurde.
Überarbeitung der Schnittstelle des
Backbordakkus
Weitere Verkleinerung des Auftriebskörpers
Maturaarbeit 2015 / Christian Engler 4dNP 30
Abb. 32: Letzte Arbeiten am ROV vor der Testfahrt Abb. 33: Inbetriebnahme der Kontrollstation
7.4 Dritter Wassertest
Beim dritten Wassertest wurden Tauchfunktion, Manövrierfähigkeit und allgemeine
Funktionstüchtigkeit des Tauchroboters überprüft. Der Test war auf ca. 4 m Tiefe
beschränkt, da sich im Bodensee nur wenige Stellen in Ufernähe finden lassen, die
tiefer sind.
Folgende Testresultate wurden erreicht:
Roboter konnte problemlos auf 4 m abgetaucht werden.
Die horizontale Manövrierfähigkeit ist sehr gut.
Magnetkupplung des vertikalen Strahlruders funktioniert.
Tauchfunktion funktioniert, allerdings ist das vertikale Strahlruder etwas
schwach motorisiert, so dass das ROV nur sehr träge reagiert.
Nach 15 Minuten Tauchzeit stellten sich Probleme mit dem vertikalen
Strahlruder ein. Es reagierte nicht mehr auf Steuersignale.
Maturaarbeit 2015 / Christian Engler 4dNP 31
Kamerabild funktioniert einwandfrei
Immer noch leichte Wasseraufnahmen in der Hauptdruckröhre. ( < 1 dl bei 20
Minuten Tauchzeit in 4 m Wassertiefe.)
Verbindungen des Internetmoduls der Kontrollstation müssen besser befestigt
werden. Eine Lötstelle löste sich bei den Vorbereitungen des Tests, konnte
aber repariert werden.
Das ROV war mit 11 kg Ballast ein wenig zu schwer.
Abb. 34: ROV im Wasser
Fazit:
Weitere Schwimmtests zur Anpassung des Ballasts sind nötig
Die Steuerung und Software für das vertikale Strahlruder muss überarbeitet
werden.
In das vertikale Strahlruder muss ein stärkerer Motor eingebaut werden.
Die Dichtigkeit der verschiedenen Verbinder muss überprüft werden und
gegebenenfalls müssen sie überarbeitet werden.
Installieren von Wassereinbruchsensoren.
Maturaarbeit 2015 / Christian Engler 4dNP 32
Abb. 35: Erste Unterwasseraufnahmen
Abb. 36: Das ROV beim Abtauchen
Maturaarbeit 2015 / Christian Engler 4dNP 33
8 Erfolge und Rückschläge
Grundsätzlich kam das Projekt gut voran. Das ROV war nach nur drei Tests
einsatzfähig und die Dichtigkeit der Komponenten war in den meisten Fällen schon
nach den ersten Tests in der Badewanne gegeben.
Doch bei einem Projekt dieser Art war natürlich auch mit einigen Rückschägen zu
rechnen. Insbesondere bei der Elektronik gab es diverse Probleme. Da die Elektronik
im Moment noch in einem frühen Prototypenstadium ist, gibt es viele verschiedene
Kabel, was zu Kurzschlüssen führen kann. So wurde zum Beispiel das bordseitige
Internetmodul kurzgeschlossen und ein Bauteil auf der Platine brannte ab.
Glücklicherweise konnte es mit den Bauteilen aus einer alten Grafikkarte repariert
werden. Ein grösseres Problem stellte allerdings ein Schaden an einem der
Motorcontrollerchips dar. Dadurch, dass die Motoren zu viel Strom brauchten
überhitzte der Chip und brannte aus. Der Chip wurde durch ein leistungsfähigeres ESC
ersetzt und ein Grossteil der Programmierung musste umgeschrieben werden.
9 Diskussion
Die in Kapitel 1.2 formulierten Voraussetzungen wurden fast alle erfüllt. Der
Tauchroboter lässt sich von einem Laptop aus steuern und überträgt ein Livevideobild.
Allerdings erreichte das ROV in den Tests aufgrund der Versuchsanordnung, d.h.
Einwassern und Tauchfahrt in Ufernähe, nur eine maximale Tiefe von 4 m.
Die mechanischen Komponenten sind bis 50 m wasserdicht. Das Problem liegt mehr
bei den Verbindern, die auch beim letzten Test noch nicht ganz dicht waren. Für
Expeditionen in grössere Tiefen muss das Dichtmaterial in den Hülsen (Heissleim)
durch Silikonmasse ersetzt werden. Der Vorteil von Silikon ist, dass es elastisch ist.
Dadurch legt es sich immer noch dicht um den flexiblen Kabelmantel, auch wenn sich
dieser unter Druck verformt.
Auch die Elektronik muss noch so umgebaut werden, dass sie zuverlässig funktioniert,
wenn das ROV in grosser Tiefe ist und nicht sofort aufgetaucht werden kann. Eine der
wichtigsten Änderungen wäre das Einbauen von Feuchtigkeitssensoren, die eine
Meldung an den Laptop senden, sobald Wasser in die Hauptdruckröhre eindringt.
Ein Relais, das zwischen Akkus und Elektronik geschaltet ist, könnte dann
ausgeschaltet werden um die Stromversorgung zu unterbrechen.
Maturaarbeit 2015 / Christian Engler 4dNP 34
So könnte ein Schaden an der Elektronik verhindert werden und man hätte Zeit, das
ROV an Land zu ziehen.
Beim Thema Software gibt es ebenfalls noch Optimierungspotential. Es wäre sinnvoll,
dass dem Benutzer die Daten des Feuchtigkeitssensors und Drucksensors auf dem
Laptop angezeigt werden. So weiss er immer, wie tief das ROV im Moment ist.
Des Weiteren würde auch eine Änderung an der Verarbeitungsfunktion der
Tastatursignale viel zu einer sicheren und stabileren Steuerung beitragen. Im Moment
kann immer nur eine Taste gleichzeitig gedrückt werden und es wird nur der Status der
gedrückten Taste abgefragt. Wird die Taste zu lange gedrückt kann das dazu führen,
dass der Serialspeicher des Arduino „überläuft“ und die Software abstürzt. Um das zu
vermeiden, könnte man die Programmierung so anpassen, dass nur noch ein Signal
gesendet wird, wenn die Taste gedrückt wird und wenn sie wieder losgelassen wird.
Dazu wäre allerdings Python als Programmiersprache ungeeignet, da Python vor allem
auf Programmieren von Datenbanken ausgelegt ist und nicht unbedingt für
hardwarebasierte Software geeignet ist. Für eine nächste Version der ROV-
Kontrollsoftware wäre z.B. Java geeigneter.
Natürlich gab es im Verlaufe dieses Projekts auch Ideen und Pläne, die aus zeitlichen,
finanziellen oder technischen Gründen nicht mehr umgesetzt werden konnten.
So wurde das ROV ursprünglich mit einer Stromversorgung über Kabel geplant. Dies
erwies sich jedoch als zu kompliziert. Um die ungefähr benötigten 200 Watt zum ROV
zu liefern, wäre entweder ein sehr dickes Kabel notwendig, das den Tether zu schwer
machen würde, oder man bräuchte eine Spannung von etwa 120 V was ein zu grosses
Sicherheitsrisiko darstellen würde.
Zu den Ideen, die aus zeitlichen Gründen noch nicht umgesetzt wurden, gehört eine
Lageanzeige und Stabilisierungskontrolle. Diese basiert auf einem sogenannten IMU
(Inertial Measurement Unit). Ein IMU besteht aus einem Beschleunigungsmesser,
Kompasssensor und einem Gyroskop. Mithilfe dieses Sensorpakets kann das ROV
bestimmen, wie es im Wasser liegt und allfällige Steuerkorrekturen vornehmen. Für
den Bediener besonders praktisch wären natürlich die Daten, die der Kompasssensor
ausgibt. So könnte man das ROV auch bei schlechter Sicht zu einem Ziel manövrieren.
In diesen Bereich gehören auch der Tiefenmesser und die Lampen, von denen Pläne
und Teile schon vorhanden wären, aber keine Zeit mehr blieb sie einzubauen.
Maturaarbeit 2015 / Christian Engler 4dNP 35
10 Danksagung
Mein herzlicher Dank gilt:
Stefan Bertschi von der ETH Zürich für die Beratung in Sachen Tauchroboter.
Der Firma Bolleter Composites, Arbon für die Spezialschaumstoffplatten für den
Auftriebskörper.
Der Firma Breu Mechanik AG, Au für die Herstellung des Hauptdruckkörpers.
Markus Engler für die Beratung beim Bau und die Unterstützung beim Testen
des ROVs.
Stephan Greiner vom Badischen Tauchsportverein für das zur Verfügung
stellen der Druckkammer.
Marc Gschwend für die Beratung zur Stromversorgung und die tatkräftige Hilfe
bei der letzten Testfahrt bei winterlichen Temperaturen.
Der Firma KUBO TECH AG, Effretikon für alle O-Ringe.
Markus Rohner für die Beratung zu Fragen der Internet-verbindung
Bastian Schildknecht für die wertvolle Beratung bei der Programmierung der
Software.
Daniel Schildknecht fürs Fotografieren beim letzten Test.
Patrick Schildknecht fürs Fotografieren beim letzten Test.
Ivo Schulthess für die LEDs
Thomas Spirig für die motivierende Betreuung meiner Maturaarbeit.
Christoph Zingg für den Tauchcomputer.
11 Schlusswort
Durch diese Arbeit bin ich dem in der Einleitung erwähnten Kindheitstraum sicher
einiges näher gekommen. Obwohl das ROV bereits funktionstüchtig ist, betrachte ich
es im Moment eher als Prototyp und habe vor, es weiter zu verbessern und
auszubauen. Mein Ziel ist eine Tauchfahrt mit dem ROV zum Wrack der DS „Jura“, das
vor Bottighofen in 40 m Tiefe im Bodensee liegt.
Nebst dem Erschaffen des Produkts habe ich aber auch viel Neues gelernt. Dinge, die
mir auch später im Studium sicher sehr nützlich sein werden und von denen ich noch
lange profitieren werde.
Maturaarbeit 2015 / Christian Engler 4dNP 36
Dadurch dass dieses Projekt Elemente aus Physik, Mechanik, Elektronik und
Informatik vereinte, war für mich der Gewinn an neuem praktischem Wissen enorm.
Was für mich aber die wertvollste Erfahrung im Zusammenhang mit diesem Projekt ist,
sind die vielen Kontakte zu verschiedensten Leute, die dank dieser Arbeit entstanden
sind.
12 Bestätigung der Eigentätigkeit
Der Unterzeichnende bestätigt mit seiner Unterschrift, dass die Arbeit selbstständig
verfasst und in schriftliche Form gebracht worden ist, dass sich die Mitwirkung anderer
Personen auf Beratung und Korrekturlesen beschränkt hat und dass alle verwendeten
Unterlagen und Gewährspersonen aufgeführt sind. Er weiss, dass die erstellte Arbeit
Eigentum der Schule ist. Eine Veröffentlichung oder Weitergabe bedarf der
Zustimmung von Autor, Betreuer und Schulleitung.
St. Gallen 02.02.15 Christian Engler
Maturaarbeit 2015 / Christian Engler 4dNP 37
13 Literaturverzeichnis
Christ Robert D., Wernli Robert L. Sr. (2014). The ROV Manual. Waltham: Butterwoth-
Heinemann
Theis, Thomas. (2011). Einstieg in Python. Bonn: Galileo Press
Holm, Walt. Teardown of a HomePlug Adapter. Zugriff am 20. November 2014 unter
http://community.openrov.com/forum/topics/teardown-of-a-homeplug-adapter
The Software Servo Library. Zugriff am 20. Dezember 2014 unter
http://playground.arduino.cc/ComponentLib/Servo
Wikipedia. Balun. Zugriff am 25. Februar 2015 unter http://de.wikipedia.org/wiki/Balun
PySerial. Zugriff am 15. November 2014 unter http://pyserial.sourceforge.net/
Wikipedia. Category 5 Cable. Abgerufen am 11. Oktober 2014 unter
http://en.wikipedia.org/wiki/Category_5_cable
Datenblatt DocID2149 Rev 22 (2014) von STMicroelectronics
14 Abbildungsverzeichnis
Alle Abbildungen wurden vom Autor erstellt, mit folgenden Ausnahmen:
Abb. 4: Christ Robert D., Wernli Robert L. Sr. (2014). The ROV Manual. Waltham:
Butterwoth-Heinemann. Abbildung 3.12 und 3.13. S. 76
Abb. 13: O-Ringe. Zugriff am 20. Januar 2015 unter http://www.hug-
technik.com/inhalt/fb/o-ring.html
Abb. 22: Cables & intterconnect. Zugriff am 20 Januar 2015 unter
http://www.rmhgroup.co.uk/products/cables-interconnect/
http://community.openrov.com/forum/topics/teardown-of-a-homeplug-adapterhttp://playground.arduino.cc/ComponentLib/Servohttp://de.wikipedia.org/wiki/Balunhttp://pyserial.sourceforge.net/http://en.wikipedia.org/wiki/Category_5_cablehttp://www.hug-technik.com/inhalt/fb/o-ring.htmlhttp://www.hug-technik.com/inhalt/fb/o-ring.htmlhttp://www.rmhgroup.co.uk/products/cables-interconnect/
Maturaarbeit 2015 / Christian Engler 4dNP 38
Abb. 24 : Datenblatt DocID2149 Rev 22 (2014) von STMicroelectronics
Abb. 35 : Mit freundlicher Genehmigung von Daniel Schildknecht
Anhang 1
Maturaarbeit 2015 / Christian Engler 4dNP 39
Arduino Quellcode
#include
Servo servor; //Benennen der Motoren
Servo servol;
Servo servov;
int x = 0; // SerialInput Variable
int i = 0; //Zählvariable für Rampe
int posV = 60; //Standardgeschwindigkeit pos.
int negV = 120; //Standardgeschwindigkeit neg.
int neutV = 90; //Neutralstellung der Motoren
int vPosV = 110; //Standadwert für Auftauchen
int vNegV = 70; //Standartwert für Abtauchen
int vNeutV = 90; //Neutralposition
boolean bCont = false;
boolean upTog = false;
boolean downTog = false;
int brDelay = 2000; //Verzögerug für Rampe der Tarierungskkontrolle
int bDelay = 128;
void setup() {
Serial.begin(4800); // Serial Verbindung aufbauen
Serial.println("Arduino-ROV Steuerungssoftware");
servol.attach(9); //Anschliessen der ESCs an die Pins
servor.attach(11);
servov.attach(10);
servol.write(neutV); //Alle Motoren auf neutral stellen
Anhang 1
Maturaarbeit 2015 / Christian Engler 4dNP 40
servor.write(neutV);
servov.write(neutV);
bCont = false;
upTog = false; //Anfangsstatus der Auftriebskontrolle
downTog = false;
}
void loop() {
//s = 100;
x = Serial.read(); // Variable für den Serialspeicher
//Vorwärts fahren
if (x == 119) { // Serialsignal empfangen
Serial.write("Info erhalten"); //Nur für Diagnose
servol.write(60); //Linker und rechte Motor einschalten
servor.write(60);
delay(128); //Verzögerung auf die Baudrate angepasst
servol.write(90); //Motoren wieder ausschalten
servor.write(90);
Serial.flush(); //Serialspeicher leeren um Platz für
//das nächst Signal zu machen
}
// Links:
else if (x == 97) {
Serial.write("Info erhalten");
servor.write(60);
delay(128);
Anhang 1
Maturaarbeit 2015 / Christian Engler 4dNP 41
servor.write(90);
Serial.flush();
}
// Rechts:
else if (x == 100) {
Serial.write("Info erhalten");
servol.write(60);
delay(128);
servol.write(90);
Serial.flush();
}
// Rückwärts:
else if (x == 115) {
Serial.write("Info erhalten");
servol.write(120);
servor.write(120);
delay(128);
servol.write(90);
servor.write(90);
Serial.flush();
}
//Rotieren im Gegenuhrzeigersinn
else if (x == 113) {
Serial.write("Info erhalten");
Anhang 1
Maturaarbeit 2015 / Christian Engler 4dNP 42
servol.write(120);
servor.write(60);
delay(128);
servol.write(90);
servor.write(90);
Serial.flush();
}
//Rotieren im Uhrzeigersinn
else if (x == 101) {
Serial.write("Info erhalten");
servol.write(60);
servor.write(120);
delay(128);
servol.write(90);
servor.write(90);
Serial.flush();
}
// Aufwärts:
else if (x == 111) {
if (!(downTog)) {
if (upTog) {
Ramp(servov, vNeutV, brDelay);
upTog = false;
}
else {
Ramp(servov, vNegV, brDelay);
upTog = true;
}
}
Serial.flush();
}
//Abwärts:
Anhang 1
Maturaarbeit 2015 / Christian Engler 4dNP 43
else if (x == 108) {
if (!(upTog)) {
if (downTog) {
Ramp(servov, vNeutV, brDelay);
downTog = false;
}
else {
Ramp(servov, vPosV, brDelay);
downTog = true;
}
}
Serial.flush();
}
//Einschalten der Tarierkontrolle
else if (x == 116) {
if (!(bCont)) {
Ramp(servov, vNeutV, brDelay);
bCont = true;
}
else {
servov.write(neutV);
bCont = false;
}
Serial.flush();
}
//Auftrieb verringern
else if (x == 122) {
vNeutV++;
Anhang 1
Maturaarbeit 2015 / Christian Engler 4dNP 44
if (bCont) {
Ramp(servov, vNeutV, bDelay);
}
Serial.flush();
}
//Auftrieb erhöhen
else if (x == 117) {
vNeutV--;
if (bCont) {
Ramp(servov, vNeutV, bDelay);
}
Serial.flush();
}
//Alles Abbrechen – Motoren Stoppen
else if (x == 107) {
servov.write(neutV);
servor.write(neutV);
servol.write(neutV);
bCont = false;
upTog = false;
downTog = false;
Serial.flush();
}
}
//Rampe für das vertikale Strahlruder
void Ramp (Servo S, int V, int Delay) {
int deltaV = abs(S.read() - V);
Anhang 1
Maturaarbeit 2015 / Christian Engler 4dNP 45
if (S.read() > V) {
for (int i = S.read(); i >= V; i--) {
S.write(i);
delay(Delay/deltaV);
}
}
else if (S.read() < V) {
for (int i = S.read(); i
Anhang 2
Maturaarbeit 2015 / Christian Engler 4dNP 46
Python Script
import serial //PySerial Modul Importieren
import tkinter as tk
import time
ser = serial.Serial('COM5', 4800) //Serialverbindung herstellen
time.sleep(2)
def keypress(event): //Auf Tastatursignale warten
if event.keysym == 'Escape':
root.destroy()
x = event.char
if x == "w":
print (‘vorwärts’) //Buchstaben senden
ser.write(b'w')
time.sleep(0.1)
elif x == "a":
print (‘links’)
ser.write(b'a')
time.sleep(0.1)
elif x == "s":
print ('rückwärts')
ser.write(b's')
time.sleep(0.1)
elif x == "d":
print ('rechtst')
ser.write(b'd')
time.sleep(0.1)
elif x == "q":
print ('rot GUZS')
Anhang 2
Maturaarbeit 2015 / Christian Engler 4dNP 47
ser.write(b'q')
time.sleep(0.1)
elif x == "e":
print ('rot UZS')
ser.write(b'e')
time.sleep(0.1)
elif x == "o":
print (‘aufwärts’)
ser.write(b'o')
time.sleep(0.1)
elif x == "l":
print (‘abwärts’)
ser.write(b'l')
time.sleep(0.1)
elif x == "t":
print (‘Auftriebskontrolle einschalten’)
ser.write(b't')
time.sleep(0.1)
elif x == "z":
print ('Auftrieb verringern')
ser.write(b'z')
time.sleep(0.1)
elif x == "u":
print (‘Auftrieb erhöhen')
ser.write(b'u')
time.sleep(0.1)
Anhang 2
Maturaarbeit 2015 / Christian Engler 4dNP 48
elif x == "k":
print (‘alles angehalten')
ser.write(b'k')
time.sleep(0.1)
else:
print ('keine Aktion')
root = tk.Tk()
print ('Programm geladen --> Steuerung aktiv:')
root.bind_all('', keypress)
# Fenster nicht zeigen
root.withdraw()
root.mainloop()
Anhang 3
Maturaarbeit 2015 / Christian Engler 4dNP 49
Zusammenfassung
Verfasser: Christian Engler
Betreuer: Thomas Spirig
Thema: Bau eines Tauchroboters
Das Ziel der Arbeit war es ein Tauchfahrzeug zu bauen, ein sogenanntes ROV
(Remotely Operated Vehicle), das mit einem Laptop an Land verbunden ist, mit dem es
sich steuern lässt. Während des Tauchgangs soll es Livevideobilder an die Oberfläche
senden. Zudem sollte es als modulare Plattform gebaut sein, die es ermöglicht, einfach
Änderungen vorzunehmen und das ROV für verschiedene Einsatzzwecke auszurüsten.
Der Antrieb erfolgt mit 3 Motoren, die wasserdicht abgekapselt sind und über
Magnetkupplungen je einen Propeller antreiben. Zwei dieser sogenannten Strahlruder
ermöglichen horizontale Bewegungen, während mit dem dritten Strahlruder, oben auf
dem ROV montiert, das Auf- und Abtauchen gesteuert wird.
Der Hauptdruckkörper des ROVs bildet das Herzstück. Er enthält die gesamte
Bordelektronik des ROVs und muss deshalb besonders dicht sein. Er besteht aus einer
Aluminumröhre mit 110 mm Durchmesser, die an beiden Enden durch Verschluss
deckel mit je zwei O-Ring Dichtungen abgedichtet sind.
Um ein Livevideobild zu übertragen, wurde eine analoge Videokamera am ROV
montiert, welche in einem Plexiglasgehäuse sitzt. Um die Komponenten wie Kamera
und Motoren mit dem Hauptdruckkörper und der sich darin befindlichen Elektronik zu
verbinden, braucht man Schnittstellen, die dem hohen Wasserdruck standhalten. Da
komerziell erhältliche Unterwasserstecker viel zu teuer sind, wurden speziell für dieses
Projekt Schnittstellen entwickelt, die ohne Stecker auskommen.
Die Elektronik des ROVs besteht aus einem umgebauten Powerline-Modul, das die
Signale vom Laptop über ein 100 m langes Kabel an einen USB-Extender an Bord des
ROVs sendet. An diesem Extender ist ein Arduino Mikrocontroller angeschlossen, der
so programmiert ist, dass er die ankommenden Signale in Aktionen umwandelt, die
dann von den Motorreglern ausgeführt werden.
Auf dem Laptop läuft ein Programm, das die Tastatursignale, die der Benutzer eingibt,
an das ROV sendet. Nebst dem Laptop gehört ein Monitor zur landseitigen Kontroll-
und Steuereinheit. Auf diesem Monitor ist das Livebild der Kamera zu sehen, die vorne
am ROV angebracht ist.
Teil der Arbeit waren auch eine Reihe von Tests, bei denen Dichtigkeit und
Funktionsweise des Tauchroboters überprüft wurden.