a lot of implementation

This commit is contained in:
2024-06-25 12:24:52 +02:00
parent 1932273383
commit 3d0a6538b3
5 changed files with 103 additions and 5 deletions
+1
View File
@@ -270,6 +270,7 @@ User-Agent: NTRIP ProductName/Version<CR><LF>
\section{Software}
Im folgenden wird die benötigte Software für diese Arbeit beschrieben. Dabei wird zunächst das Betriebssystem der Basisstation beschrieben, gefolgt von der verwendeten Software mit spezifischen Bezug auf die GNSS-Thematik.
\subsection{Debian}
\label{ssec:debian}
Als Betriebssystem wird das freie Debian ohne grafische Oberfläche verwendet. Debian ist eine GNU/Linux-Distribution, welche bereits seit 1993 entwickelt und weiterentwickelt wird und als Basis für viele weitere sehr erfolgreichen und bekannten Betriebssystemen wie Ubuntu verwendet wird. Daher kann Debian als ein stabiles und hartes Betriebssystem angesehen werden, welches auch in der Industrie für viele Server eingesetzt wird und bei Cloud-Services als Betriebssystem für virtuelle Maschinen angeboten wird.
\subsubsection{Systemd}
+2 -1
View File
@@ -4,7 +4,8 @@
Darüber hinaus werden Anforderungen zur Erweiterung des Rovers definiert.
\section{Referenzstation}
Das Gesamtsystem der Station muss im Millimeterbereich eingemessen werden können. Das Eingemessene System muss im Dauerbetrieb die Korrekturdaten im RTCM3-Format erstellen und veröffentlichen, dafür soll als Caster der kostenlose RTK2go Service genutzt werden. Die Korrekturdaten sollen für die alle aktuell verfügbaren GNSS bereitgestellt werden. Der Wartungsaufwand soll möglichst gering sein. Die komplette Installation muss an dem vorgegebenen Ort sicher angebracht werden und sich diesem anpassen.
\label{sec:referenzstation_req}
Das Gesamtsystem der Station muss im Millimeterbereich eingemessen werden können. Das Eingemessene System muss im Dauerbetrieb die Korrekturdaten im RTCM3-Format erstellen und veröffentlichen, dafür soll als Caster der kostenlose RTK2go Service genutzt werden. Die Korrekturdaten sollen für alle aktuell verfügbaren GNSS bereitgestellt werden. Der Wartungsaufwand soll möglichst gering sein. Die komplette Installation muss an dem vorgegebenen Ort sicher angebracht werden und sich diesem anpassen.
\subsection{Antennenposition}
Der Installationsort der Antenne muss so gewählt werden, dass die Antenne eine freie Sicht auf den kompletten Himmel hat, dafür eignen sich besonders höher gelegene Orte. Deshalb und aufgrund der vorhandenen Infrastruktur wurde im Vorhinein entschieden, dass die Referenzstation auf dem Flachdach des Fachhochschulgebäudes an der Emil-Figge-Straße 44 in Dortmund errichtet werden soll.
+1
View File
@@ -43,6 +43,7 @@
Die Innenmaße bieten bei einer hochkantigen Ausrichtung einen Installationsraum von 320x215x106mm (hbt). Somit lassen sich der Computer, der PoE-Splitter und das GNSS-Modul nebeneinander Platzieren. Die Montage soll auf einer Hutschiene stattfinden, die dem Kasten noch hinzugefügt wird. Außerdem müssen für den Computer und das GNSS-Modul entsprechende Halterungen geschaffen werden.
\section{Gyroskop}
\label{sec:gyroskop}
Die Anforderung ein Gyroskop zu integrieren soll durch das GY-521 Modul !!!data sheet!!! von AZ-Delivery erfüllt werden. Auf dem Modul ist ein Chip mit der Bezeichnung MPU-6050 aufgelötet. Dieser vereinigt einen 3-Achsen Gyroskop und eine 3-Achsen Beschleunigungssensor. Das Gyroskop kann auf den Bereich der erwarteten Winkelgeschwindigkeiten eingestellt werden, diese reichen von \(\pm 250^\circ/sec\) bis \(\pm 2000^\circ/sec\). Der Beschleunigungssensor ist ebenfalls anpassbar, von \(\pm 2g\) bis \(\pm 16g\). Die Analogen Werte der Sensoren werden mit 16-bit ADC digitalisiert. Des weiteren verfügt der MPU-6050 über einen Digital Motion Processor (DPM), dieser kann zu den vom Sensor erzeugten 6-Achsen zusätzlich die 3-Achsen von einem extern über I2C angeschlossenen Magnetometer verrechnen. Die Daten, welche durch diese Sensorfusion entstehen erhöhen die Genauigkeit, ergeben ein Zugewinn an Information bezüglich der Ausrichtung des Chips und erlauben es dem Nutzer diese zentral abzurufen.
\par
Die Kommunikation findet über I2C statt, dies ermöglicht die Einbindung des Sensors in das bestehende System. Durch das Board von AZ-Delivery, ist eine Versorgung mit der gegebenen Spannung von \(5V\) möglich. Der bereits verbaute Kompass könnte vom ESP32 getrennt werden und an das GY-521 Modul angeschlossen werden.
+97 -4
View File
@@ -1,18 +1,111 @@
\chapter{Implementierung}
Im folgenden Teil dieser Arbeit wird auf den Aufbau der Basisstation eingegangen, dabei wird der mechanische Aufbau sowie die Implementierung und Einrichtung der Station erläutert. Außerdem werden die Erweiterungen des Rovers ausführlich beschrieben, dazu gehören die Implementierung weiterer Softwarekomponenten sowie der Einbau des GY-521 Moduls (siehe Abschnitt \ref{sec:gyroskop}).
\section{Basisstation}
\label{sec:Basisstation}
Für den Errichtung der Referenzstation stellte sich zunächst die Frage, wie das System aufgebaut werden soll. Dabei sind die bereits beschriebenen Anforderungen im Abschnitt \ref{sec:referenzstation_req} entstanden. Um das System den Anforderungen entsprechend erstellen zu können wurde die Hardwareauswahl in dem vorangegangen Kapitel \ref{cha:Hardwareauswahl} bereits beschrieben. Deshalb wird in diesem Abschnitt die noch fehlende Installation und Konfiguration der Komponenten thematisiert. Darüber hinaus werden für die vollständige Montage Formteile benötigt, welche mit einem 3D-Drucker produziert werden sollen.
\subsection{Installation Betriebssystem}
Im ersten Schritt muss das Server Betriebsbereit gemacht werden, dafür muss ein Betriebssystem installiert werden. Dazu soll das in Unterabschnitt \ref{ssec:debian} beschriebene Debian genutzt werden.
\par
Da der Server über übliche Anschlüsse für einen Monitor verfügt, kann die Installation über den Installationsassistenten mittels Tastatur und Bildschirm durchgeführt werden. Dafür wurde die iso-Datei von Debian so auf einen USB-Stick geschrieben, dass dieser Bootfähig ist. Während der Installation wurden die meisten Einstellungen bei ihrem Standard belassen.
\par
Nach der erfolgreichen Installation des Betriebssystem wurde sich zunächst als root Benutzer angemeldet um die ersten grundlegenden Einstellungen zu tätigen.
\subsubsection{Netzwerk}
Nach der Installation bezieht der Server seine Netzwerkkonfiguration über einen DHCP-Server. Für eine feste Installation eines Servers ist die manuelle Konfiguration der Netzwerkschnittstelle dringend empfohlen, damit die IP-Adresse zu jeder Zeit persistent und bekannt ist. Dafür müssen zwei Dateien editiert werden und der Name des Netzwerkinterfaces muss bekannt sein.
Die erste Datei mit dem Pfad \url{/etc/network/interfaces} enthält die Konfigurationen aller auf dem System verfügbaren Interfaces. Da der Server lediglich über ein Interface verfügt, kann in der Datei auch der Name des Interfaces abgelesen werden. !!!Im folgenden Dings ist die Conf:!!!
Die zweite Datei ist unter dem Pfad \url{/etc/resolv.conf} zu finden. In diese Datei müssen die zu benutzen DNS-Server eingetragen werden. In jeder Zeile kann ein Eintrag getätigt werden. In diesem Fall nach dem Muster \flqq nameserver xxx.xxx.xxx.xxx\frqq. In dem Netz der FH-Dortmund lauten die IP-Adressen der Nameserver \mintinline{text}|172.22.1.10| und \mintinline{text}|172.22.1.20|
\par
Die Netzwerkkonfiguration wurde durch einen Mitarbeiter im Hardwarelabor der FH-Dortmund festgelegt und im System eingepflegt. Wenn die Bearbeitung der Datei abgeschlossen ist, muss das Netzwerkinterface neu gestartet werden. Dies kann mit dem Befehl !!!command!!! oder einem Neustart des Computers erfolgen.
\subsubsection{sudo}
Sudo ist ein Programm aus den Paketquellen von Debian, dass es anderen Nutzern erlauben kann Befehle mit root-Rechten auszuführen. Diese Vorgehensweise empfiehlt sich, damit nicht alle Befehle automatisch mit root-Rechten ausgeführt werden und das vollständige System über ein normales Benutzerkonto gesteuert werden kann. Das Paket kann mit dem Paketverwaltungstool \mintinline{bash}|apt-get| installiert werden. Davor sollten die Paketquellen jedoch aktualisiert und möglich Paketupdates installiert werden. Um die Aktualisierung und die Installation auszuführen müssen diese Befehle ausgeführt werden:
\begin{minted}[linenos, gobble=5]{bash}
apt-get update
apt-get upgrade
apt-get install sudo
\end{minted}
Im Anschluss müssen die Benutzer welche neben dem root-Benutzer ebenfalls Befehle mit erweiterten Rechten ausführen können sollen in die Benutzergruppe \mintinline{text}|sudo???| hinzugefügt werden. Für den bei der Installation automatisch erstellen Benutzer \mintinline{text}|rtk| sieht der Befehl wie folgt aus: \mintinline{text}|usermod -aG sudo rtk???|.
Danach wird der root-Account abgemeldet und nur noch der rtk-Benutzer verwendet. Befehle können nun mit einem vorangestellten \mintinline{bash}|sudo| als Administrator ausgeführt werden.
\subsubsection{ssh-server}
Der SSH-Server wird ebenfalls über die Paketquellen installiert, der Paketname entspricht der Überschrift dieses Abschnitts. Mit einem SSH-Server wird die Verwaltung des System über das Netzwerk ermöglicht und damit der Zugriff auf das Terminal erheblich zu vereinfacht. Der Server kann in mit den Standardeinstellungen betrieben werden, für eine erhöhte Sicherheit wird jedoch der Login mit dem root-Account verboten. Dafür wird in der Konfigurationsdatei (\url{/etc/ssh/sshd_config}) die Zeile \mintinline{text}|PermitRootLogin no| ergänzt und der SSH-Server anschließend mit \mintinline{bash}|sudo service sshd restart| neugestartet.
\par
Ab diesem Zeitpunkt der Installation kann der Server headless betrieben werden. Es ist nur noch eine die Netzwerkverbindung und die Stromversorgung notwendig. Zum einloggen wird ein SSH-Client, die Zugangsdaten und die Adresse des Servers benötigt.
\subsection{ser2net vorbereiten}
\subsection{RTKLib kompilieren}
Die Konfiguration der GNSS-Module von U-Blox lässt sich am einfachsten mit dem u-center (siehe Abschnitt \ref{sssec:u-blox}) erledigen. Da das u-center ausschließlich unter Windows verfügbar und ein Programm mit grafischer Oberfläche ist, kann es nicht auf dem Server ausgeführt werden. Allerdings ist es nicht praktikabel das GNSS-Modul aus dem System der Referenzstation zu entfernen, um es an einem anderen Computer zu konfigurieren. Deshalb bietet sich die Installation von ser2net an, damit die Verbindung zwischen dem u-center und dem GNSS-Modul über eine Netzwerkverbindung aufgebaut werden kann.
\par
Die Installation erfolgt über die Paketquellen mit \mintinline{bash}|sudo apt-get install ser2net|. Das Programm wird dem Betriebssystem als Service hinzugefügt und läuft damit ständig. Da die Verbindung nur zur Verfügung stehen soll wenn diese auch benötigt wird, kann der automatische Start des Service beim Bootvorgang mit dem Befehl
\begin{minted}[linenos, gobble=4]{bash}
sudo systemctl disable ser2net
\end{minted}
deaktiviert werden. Die nächsten beiden Befehle sind zum stoppen und starten des Services. Nach der Deaktivierung läuft der Service weiter bis der Computer neugestartet wird oder der Service mit dem ersten Befehl gestoppt wird.
\begin{minted}[linenos, gobble=4]{bash}
sudo systemctl stop ser2net
sudo systemctl start ser2net
\end{minted}
Um ein serielles Interface über ser2net im Netzwerk freizugeben muss dieses in der Konfigurationsdatei (\url{/etc/ser2net.yaml}) deklariert werden. Dafür muss der Gerätepfad des GNSS-Moduls bekannt sein. Dieser kann herausgefunden werden indem das Modul an einen USB-Port angesteckt wird und in dem Verzeichnis \url{/dev} nach einer neuen Datei geschaut wird, welche mit \mintinline{text}|tty| beginnt. In der Konfigurationsdatei wird der folgende Yaml-Block ergänzt:
\begin{minted}[linenos, gobble=4, tabsize=4, showtabs=no]{yaml}
connection: &con0096
accepter: tcp,2000
enable: on !!!mach mal richtig hier!!!
options:
banner: *banner
kickolduser: true
telnet-brk-on-sync: true
connector: serialdev,/dev/ttyS0,9600n81,local
\end{minted}
Sollte der Service zum Zeitpunkt der Konfiguration aktiv gewesen sein, muss es mit dem genannten Befehl gestoppt werden und kann anschließend je nach Bedarf aktiviert werden. Sobald der Service aus Abschnitt \ref{ssec:pushService} aktiv ist, muss dieser gestoppt werden bevor eine Verbindung zu ser2net aufgebaut wird. Wenn dies nicht geschieht, ist es nicht vorhersehbar an welchen Service die ankommenden Daten des GNSS-Moduls geleitet werden.
\subsection{RTKLib installieren}
Die in den Grundlagen unter \ref{sssec:rtklib} beschriebene RTKLib ist nicht über die Paketquellen verfügbar und muss deshalb auf dem Server kompiliert werden. Um das Projekt von GitHub clonen zu können muss Git installiert werden. Außerdem wird als Abhängigkeit die Bibliothek \mintinline[]{text}|libpng-dev| benötigt. Der Compiler inklusive weiterer benötigter Tools wie \mintinline[]{text}|make| ist in dem Paket \mintinline[]{text}|build-essential| enthalten. Für die vollständige Installation wird die folgende Befehlsfolge in dem Home-Verzeichnis des rtk-Benutzers benötigt:
\begin{minted}[linenos, gobble=4]{bash}
sudo apt-get update
sudo apt-get install git
sudo apt-get install libpng-dev
sudo apt-get install build-essential
git clone https://github.com/rtklibexplorer/RTKLIB.git
cd RTKLIB/app/consapp/
make
make install
\end{minted}
\subsection{Dachinstallation}
\subsubsection{Ausgangssituation}
\subsubsection{Halterungen}
Die Installation auf dem Dach wurde in ihren groben Zügen bei der in der Einleitung des Kapitels \ref{cha:Hardwareauswahl} beschriebenen Begehung des Installationsortes geplant. Von diesem Plan wurde die in dem Kapitel folgende Hardwareauswahl abgeleitet. Im ersten Schritt sollen nun alle Vorbereitungen getroffen werden, welche von dem Installationsort unabhängig sind. Im Anschluss wird die eigentliche Montage auf dem Dach vorgenommen.
\subsubsection{Befestigungen}
Die anzubringenden Komponenten benötigen Halterungen und Befestigungspunkte. Diese werden im folgenden Beschrieben:
\begin{itemize}
\item die \textbf{Antenne} soll am Ende des C-Profils welches zur Verlängerung des Pfostens dient befestigt werden. Dafür wurde ein Formteil konstruiert (siehe Abbildung !!!). Im wesentlichen besteht diesel Teil aus einem Quader, welcher in das C-Profil eingeführt werden kann. Der Quader verfügt über eine Bohrung, damit dieser mittels einer Schrauben-Mutter-Kombination am C-Profil fixiert werden kann. Am oberen Ende befindet sich ein Gewinde auf welches die Antenne aufgeschraubt werden kann,
\item der \textbf{Installationskasten} soll unterhalb des vorhandenen Kastens am Pfosten angebracht werden. Als Maße stehen der gemessene Durchmesser des Pfostens (\(90mm\)) und der aus dem Datenblatt !!!cite!!! verfügbare Lochabstand der Befestigungslöcher des Kastens. Mit diesen Werten konnte eine Halterung konstruiert werden, welche aus zwei Halbschalen besteht. Ein Halbschale verfügt über abstehende Arme mit vorhandenen Löchern für M!!!-Schrauben, an denen der Kasten befestigt werden kann. Die M!!!-Schrauben können von hinten mit der passenden Mutter gesichert werden. In die gleich Halbschale können passgenau M8-Muttern eingelegt werden. Die andere Halbschale verfügt über die Löcher und Vertiefungen um diese mit zwei M8-Schrauben an der anderen Halbschale befestigen zu können. Die Halterungen wurde für den oberen und den unteren Teil des Kastens jeweils einmal ausgedruckt. Eine Halterung ist in Abbildung !!!ref!!! zu sehen,
\item für den Server wird eine Halterung benötigt, damit dieser an der Hutschiene im Installationskasten befestigt werden kann. Dafür...
\end{itemize}
Antenne, PC, ZED-F9P, Box
\subsubsection{Zusammenbau}
\subsubsection{Installationskasten bestücken}
\subsubsection{Montage}
\subsection{Antennenposition bestimmen}
\subsection{Service einrichten}
\label{ssec:pushService}
\section{Rover}
\subsection{Gyroskop installieren}
+2
View File
@@ -6,3 +6,5 @@ https://rnrorwxhqioplk5p.ldycdn.com/JCA228F-aidqiBpmKjiRliSqklonklpk.pdf Data sh
https://github.com/Stefal/rtkbase Cooles Projekt für eine Basisstation
ser2net deaktivieren und stoppen