Hardware

Entwicklung von I2C-Splitterboard und Sensor Abschirmtrichter, Herstellung von Montageteilen und Montage am Hexakopter.

Simulation

Entwicklung einer Matlab Simulationsumgebung zum Test von Kollisionsvermeidungsalgorithmen und Integration in Arducopter SITL.

Softwareintegration

Programmierung der Sonarsensoransteuerung und des Kollisionsvermeidungsalgorithmus im Arducopter Code.

Testumgebung

Vollumfängliche Tests der Sensoren, Nutzung der Simulationen, Funktionstest am Hexakopter.

Wer sind wir? Unser Projektteam!

Eric Beier

Bachelorstudent 6. Semester
Elektro- und Informationstechnik

Angestrebte Spezialisierung im Bereich Mikroelektronik. Interessengebiete: Digitale Schaltungstechnik, Hardwarenahe Softwareentwicklung, Eingebettete Systeme.

Pascal Lang

Bachelorstudent 6. Semester
Elektro- und Informationstechnik

Angestrebte Spezialisierung auf dem Gebiet der digitalen Signalverarbeitung. Interessensgebiete: Statistische Signalverarbeitung, Adaptive- / Lernalgorithmen, Robotik.

Prof. Dr. Taoufik Nouri

Projektbetreuung
 

Prof. Dr. Mauricio Reyes

Experte
 

Aufgabenstellung

Einleitung

Drohnen sind heute allgegenwärtig und werden für immer mehr Anwendungsfälle eingesetzt. Sie sind für jedermann zugänglich und sehr einfach zu bedienen, vor allem im Hobbybereich des Modellfliegens erfreuen sich Multikopter einer grossen Beliebtheit. Zusätzlich werden vermehrt grössere Logistikunternehmen wie Amazon, Google, UPS und die Post an einem Einsatz von Multikoptern zur Auslieferung ihrer Güter an die Kunden interessiert. Aufgrund dieses Trends wurden in den letzten Jahren vermehrt eigenständig navigierende Multikopter entwickelt. Um eigenständig navigieren zu können, muss ein Multikopter Informationen über seine Umgebung besitzen. Die nötigen Informationen werden dabei durch GPS-Ortung, akustischer Entfernungsmessung (im Ultraschallbereich, Sonar) oder optischen Sensoren gesammelt.

Ziele

In diesem Projekt war es das Ziel, einen bestehenden Multikopter mit Sonarsensoren auszurüsten und einen Algorithmus zu entwickeln, um Kollisionen zu vermeiden und Hindernissen auszuweichen. Das Projekt wurde in die folgenden Arbeitsschritte gegliedert:

  • Durchführen von Untersuchungen bezüglich der Anfälligkeit auf Störeinflüsse der Sonarsensoren. In einem zweiten Schritt sollten verschiedene Verfahren entwickelt werden um die Störeinflüsse zu minimieren.
  • Entwickeln eines Simulators, um verschiedene Algorithmen zur Kollisionsvermeidung gefahrlos testen zu können.
  • Implementation eines Algorithmus zur Kollisionsvermeidung, mit welchem Hindernisse vermieden und umgangen werden können.
  • Testen der entworfenen Algorithmen an einem realen Multikopter.

Projektarbeit

Hardware

Auf dem vom Auftraggeber zur Verfügung gestellten Hexakopter von 3D Robotics wurden 6 Sonarsensoren installiert. Für die Montage wurden Winkel und Streben aus Aluminium dimensioniert und angebracht. Die über den I2C-Bus angesprochenen Sensoren wurden getestet und über ein eigens entworfenes Splitterboard am Flugkontroller angeschlossen. Das Splitterboard enthält zusätzlich einen Busbuffer, um die Sensoren auch im 400kHz High-Speed I2C Modus benutzen zu können. Die grosse Kabelkapazität würde dies ansonsten nicht erlauben. Zur Verminderung der gegenseitigen Beeinflussung der Sonarsensoren wurde ein Abschirmtrichter entwickelt, getestet und abschliessend im 3D-Druckverfahren passgenau gefertigt, so dass dieser direkt auf die Sensoren aufgesteckt werden kann.

Montage Sonarsensoren mit Abschirmtrichter

Montage Sonarsensoren mit Abschirmtrichter
 

Montage I2C Splitter

Montage I2C Splitter
 

Simulationen

Zur Entwicklung eines Kollisionsvermeidungsalgorithmus wurde eine Simulationsumgebung in Matlab entwickelt. Diese umfasst die Emulierung der Sonarsensoren in einer virtuellen Testumgebung. Die Testumgebung kann als Hindernisgeometrie im 3D-Programm Blender erstellt und als Point Cloud Daten im .csv-Format exportiert werden. Zur Herleitung des Kollisionsvermeidungsalgorithmus wurde das dynamische Verhalten einer beschleunigten Punktmasse in einer Dimension analysiert und die Lösung für den 3-dimensionalen Raum adaptiert.

In einem zweiten Schritt wurde der "Software in the Loop" (SITL) Simulator aus dem ArduCopter Projekt um die Emulierung der Sonarsensoren erweitert, um den selber entwickelten Programmcode, der auf dem ArduCopter Flugcontroller implementiert wurde, sicher testen zu können.

Prinzip des Algorithmus

Prinzip des Algorithmus
 

Algorithmus in Simulation: Wandumfliegung

Algorithmus in Simulation: Wandumfliegung
 

Algorithmus in Simulation: Säulen

Algorithmus in Simulation: Säulen
 

Softwareintegration

Der in diesem Projekt entwickelte und implementierte Algorithmus zur Kollisionsvermeidung baut auf dem Open-Source Framework Ardupilot für Multikopter, Modellflugzeuge und Rover auf. Mit Ardupilot kann ein Multikoper per Fernsteuerung gesteuert werden, wobei verschiedene Flugmodi verfügbar sind. Das Framework ist sehr umfangreich und enthält ca. 700'000 Zeilen C++/C-Code, was eine zusätzliche Herausforderung während diesem Projekt darstellte.

Der Multikopter erkennt Hindernisse mittels sechs Sonarsensoren, welche mit einer Aktualisierungsrate von 10 Hz Ultraschallmessungen durchführen. Beim Ausfall eines oder mehrerer Sensoren wird ein Sicherheitsalgorithmus eingeleitet, worauf der Multikopter sobald wie möglich selbstständig landet. Der Algorithmus zur Kollisionsvermeidung wurde in einem eigenen Flugmodus realisiert. Damit besteht jederzeit die Möglichkeit, den entwickelten Algorithmus in den offiziellen Ardupilot Code auf Github einfliessen zu lassen. Die Kollisionsvermeidung wird durch drei verschiedene Massnahmen erreicht. Erstens einer Sicherheitsbeschränkung, um die Geschwindigkeit des Multikopters auf einem sicheren Niveau zu halten. Zweitens einem Ausweichalgorithmus, welcher versucht Hindernisse zu umfliegen. Drittens einem Algorithmus, welcher die Kollision mit einem Hindernis verhindern soll und folglich eine zum Hindernis entgegengesetzte Beschleunigung verursacht.

Tests

Während dem Projekt stand nur ein einziger Hexakopter zur Verfügung. Deswegen musste nach einer Möglichkeit gesucht werden, die entwickelten Algorithmen möglichst gefahrlos testen zu können. Aus diesem Grund wurde ein Teststand aufgebaut, welcher es dem Hexakopter ermöglicht sich frei in jede Richtung zu neigen (Roll, Pitch). So konnte die Reaktion des Algorithmus auf ein herannahendes Hindernis realitätsgetreu getestet werden.

Testaufbau Hexakopter

Testaufbau Hexakopter
 

Teststand Sonarsensoren

Teststand Sonarsensoren
 



Impressionen

weitere Bilder und Grafiken aus der Projektarbeit

Sensor Teststand

Sensor Teststand


 
Hexakopter Test: Aufhängung

Hexakopter Test: Aufhängung


 
I2C Sonarsensor, Paketdekodierung

I2C Sonarsensor, Paketdekodierung


 
I2C Sonarsensor, Timinganalyse

I2C Sonarsensor, Timinganalyse


 
USB-I2C-Konvertermodul

USB-I2C-Konvertermodul


 
Sonarsensor Abschirmtrichter

Sonarsensor Abschirmtrichter


 
I2C-Splitterboard Fertigung

I2C-Splitterboard Fertigung


 
I2C-Splitterboard Bestückt

I2C-Splitterboard Bestückt


 
I2C-Splitterboard Montiert

I2C-Splitterboard Montiert


 
Design: © 2014 Timber HTML Template mit eigenen Änderungen
Hintergrund: Circuit mit eigenen Änderungen