
Bachelorprojekt · Aarhus Universitet · Efteråret 2017
CAPTAIN: en autonom opmålingsbåd
CAPTAIN er en lille båd, der selv kan sejle til et punkt eller dække et område, styret fra et kort i en webbrowser. Det var mit bachelorprojekt i elektronikingeniør, lavet sammen med en medstuderende.
Idéen
At opmåle havbunden betyder at sejle frem og tilbage over et område, linje for linje. Autonomi gør det gentageligt og fjerner den menneskelige fejlkilde, så landmåleren kan fokusere på data i stedet for at styre båden.
Vi ville lave et system, hvor man tegner et område på et kort, trykker på en knap, og så klarer båden resten. Resultatet blev en fungerende prototype på en modelbåd, der bestod alle sine acceptprøver.
Sådan virker det
Systemet består af fire dele, der skal spille sammen:
- En hjemmeside med interaktivt kort (Bootstrap og Leaflet) og et offline-kort til brug uden netværk. Man klikker en destination eller et rektangel ud.
- En Node.js-server, der hoster hjemmesiden og sender kommandoer og status mellem browser og båd.
- En controller i C++ på en Raspberry Pi 3B, der planlægger ruten, læser en GPS-modtager og styrer rorservoen og thrusteren med hver sin PID-regulator.
- En modelbåd med ror, thruster, batteri, motordriver, level shifter og step-down-konvertere på et perfboard.

Al hardwaren i båden: Raspberry Pi, effektelektronik, motordriver og GPS-modtager.
Hvad den kan
- Punkt til punkt: sæt en markør på kortet eller indtast koordinater, så sejler båden derhen. En stopknap virker til enhver tid.
- Rektangeldækning: vælg et område, så beregner systemet en rute, der dækker det, med en værktøjsbredde sat i parametrene.
- Live diagnostik: motorer, GPS og forbindelsesstatus samt bådens position og retning på kortet.
- Parameterprofiler: en tekniker kan ændre navigations- og autopilotparametre, fx rorets PID, mens båden kører.

Dækningssiden: et rektangel vælges på kortet, og en rute beregnes.
Tekniske valg
- C++11 til controlleren, med PiGpio til PWM, MiniPID til PID-regulatorerne, nlohmann/json til beskeder og GeographicLib til geodæsi.
- GPS-data og autopilotbeskeder følger NMEA-standarden.
- Ruter bruger loxodromer (rhumb lines) frem for storcirkler. De er rette linjer på Mercator-kortet, så det brugeren ser passer med det, båden sejler, og over opmålingsafstande er forskellen ubetydelig.
- Kravene blev prioriteret med MoSCoW. Polygondækning blev fravalgt tidligt, fordi det er et stort problem i sig selv.
Resultat og næste skridt
Alle acceptprøver blev bestået og dækkede profiler, diagnostik, punkt til punkt og rektangeldækning. Båden blev aldrig testet i vand, fordi vi vurderede det for risikabelt, før acceptprøven var færdig, og det var en kold vinter.
Med mere tid ville jeg tilføje forhindringsundvigelse, en dybdesensor, batteriovervågning, RTK-GPS til bedre præcision og muligheden for at gemme en rute, så en opmåling kan gentages præcist.