Für das Projekt sind 3 unterschiedliche Softwares notwendig: 1.
Die Software für die Kommunkation mit der Stereokamera 2. Die
Software des Arduinos der das PPM-Signal des Empfängers abfängt und
verändert 3. Die Software des ESP32 der ein Webserver eröffnet
für die Steuerung der Drohne
1.Stereo Kamera Das von uns
gewählte Kamera-System besitzt eine sehr ausführliche Dokumentation
und stellte bereits Treiberpackete zur Einbindung in Ross bereit.
Somit kann alles über Ross eingestellt werden und es müssen nur
wenige Konfigurationen an der Kamera und an der Treibern vorgenommen
werden. Deshalb haben wir uns darauf geeinigt, dass Mapping mit
Hilfe von Ross zu machen. Für die Bildverarbeitung bzw. das Mapping
wird das Ross Paket "rtabmap_ros" verwendet, dies generiert aus den
Kamerabildern die Odometry. Über diese kann dann die relative
Bestimmung im Raum erfolgenden und somit kann auch eine absolute
Bestimmung im Raum durch Berechnungen durchgeführt werden. Diese
Bilder können zusammengefasst werden, um somit ein großes Model des
Raums zu erstellen.
Abbildung 1:
Ablaufplan Ross Stero-Kamera
2. Arduino Nano Der
Flugcontroller erwartet ein PPM-Signal des Empfängers zur Steuerung
der Drohne. Dieses PPM-Signal wird von dem Arduino abgefangen und
nach bedarf verändert. Wie im Bild darunter zu sehen ist, kann man
aus einem PPM-Signal die einzelnen Werte der Kanäle ablesen.
Abbildung 2: Aufteilung eines PPM-Signals in Kanäle (Bildquelle:
Quelle)
Diese einzelnen Kanäle liest der Arduino
aus und speichert sich deren Werte ab, und sendet diese je nach
bedarf an der Flugcontroller weiter.
Abbildung 3: Ablaufplan Arduino
3. ESP32 Der ESP32 verbindet sich mit einem vorhandenen Wlan,
anschließend ist der Webserver des ESP32 über seine IP Adresse im
Browser zu erreichen. Wie unten im Bild zu sehen, erhält man in der
Webansicht, das übertragene Kamerabild, sowie 2 Joysticks zur
Steuerung der Drohne.
Abbildung 4: Webansicht der Drohnensteuerung
Eingaben die über das Joystick zur Drohne kommen werden dort vom
ESP32 an den Arduino per I²C übertragen, der Arduino leitet das
Signal anschließend an den Flugcontroller weiter
|