Drohnenansteuerung per Sensorhandschuh

Aus toolbox_interaktion
Wechseln zu: Navigation, Suche

Einleitung

Mit diesem Projekt „Drohnenansteuerung per Sensorhandschuh“ möchten wir die Ansteuerung einer Drohne mit einem Sensorhandschuh interaktiv gestalten. Dabei ist es uns wichtig, dass die Handgesten so intuitiv wie möglich sind. Die intuitive Steuerung erleichtert dem User das Erlernen einer neuen Steuerung erheblich.

EVA-Plan

Eingabe:

  • Daten aus Biegesensoren für jeden Finger

Verarbeitung:

  • Analyse und Auswertung der DMS-Streifen
  • Definition der Grundpositionen (Angewinkelt, Ruheposition, Gestreckt)
  • Skalierung der aufgenommenen Daten
  • Manuelle Bestimmung der Schwellenwerte für den jeweiligen Finger
  • Mapping der definierten Handgesten auf die Steuerung der Drohne
  • Simulation eines Joystick für die Ansteuerung

Ausgabe:

  • USB-Verbindungskabel
  • Laptop mit Ubuntu 12.04 LTS
  • WIFI
  • Steuerung der Drohne

Drohnenansteuerung aufbau.jpeg

Aufbau & Durchführung

Hardware:

  • Handschuh: Mizuno Bio Flex Allwetter Golfhandschuh
  • Biegesensoren: Sparkfun Flex Sensor 2.2
  • Board: Keyestudio Leonardo R3
  • Beschleunigungssensor: Bosch Sensortec BMA280
  • Drohne: Parrot AR.Drone 2.0

Software:

  • Arduino Software 1.8.8 (IDE)

Kurzbeschreibung:

Der flexible Mizuno Bio Flex Allwetter Golfhandschuh bietet einen guten Sitz und ist sehr atmungsaktiv. Zusätzlich bietet dieser Golfhandschuh gute Befestigungsmöglichkeit der Biegesensoren. Die Biegesensoren sind simpel mit Fäden befestigt und können verschoben werden, somit bleibt eine einmalige Aufklebung der Sensoren erspart.

Anstelle des Arduino Uno wurde ein Arduino Leonardo (bzw. in unserem Fall ein Keyestudio Leonardo) benutzt, weil dieser eine Simulation des Joysticks ermöglicht. Die Befestigung des Leonardos sollte am Handgelenk/Unterarm am besten mit einem Klettverschluss bewerkstelligt werden, sodass es den Benutzer nicht bei der Bewegung einschränkt. Letztendlich wertet das Leonardo Board die aufgenommenen Daten aus und sendet diese per USB-Verbindung zu einem PC. Dieser besitzt eine Software, die zur Steuerung der Drohne über WIFI benötigt wird.

Drohnenansteuerung aufbau OG.jpeg

Probleme / Herausforderungen

  • Finden einer passenden Dokumentation für die Software (Aktuellster Stand: 2012)
  • Installation eines kompatiblen Betriebsystems (Ubuntu 12.04 LTS)
  • Saubere Auswertung der DMS-Streifen
  • Senden der Signale als "Controller" getarnt

Aktueller Stand

  • Ansteuerung der Drohne möglich
    • Implementierte Gesten: Start, Landen, Notaus

Arduino Programm

Die Werte der Dehnmessstreifen werden über einen Analogeingang eingelesen und im Arduino mit vorgegebenen Werten verglichen:

int DaumenADC = analogRead(Daumen_PIN);

DaumenAngle += 5;

float ZeigefingerAngle = map(ZeigefingerR, STRAIGHT_RESISTANCE, BEND_RESISTANCE,0, 90.0);

float DSkal = (DaumenAngle * 1.33);

if(DSkal > 55)
setStatusFinger(angewinkelt, Daumen);
}
else if(DSkal < 55 && DSkal > 7) {
setStatusFinger(Ruheposition, Daumen);
}
else {
setStatusFinger(gestreckt, Daumen);
}

Um die Eingaben als Joystick Befehle an den PC zu senden, wird die Joystick Library verwendet:

if((statusFinger[Daumen] == Ruheposition) && statusFinger[Zeigefinger] == gestreckt && statusFinger[Mittelfinger] == gestreckt && statusFinger[Ringfinger] == Ruheposition && statusFinger[Kleinfinger] == Ruheposition)
{
for(int i = 0; i < 11; i++)
Joystick.releaseButton(i);
Joystick.pressButton(0);
}

Ausblick

  • Implementierung weiterer Gesten
  • Aufbau ohne Laptop/PC als Zwischenschnittstelle
    • mögliche Lösung: über Raspberry Pi

Mitwirkende

  • Feiyang Cheng
  • Marcus Stoltmann
  • Philipp Herrmann
  • Jamin Schiller

Links

Programmdaten (Arduino)

ARDrone SDK