-Plattform mit Kinect Robotikpraktikum Sommersemester 2013 IWR Heidelberg 06.11.2013 Joscha Ilmberger Sascha Jung Hendrik Leuschner
Autonom folgender Roboter Ursprüngliche Ziele Arexx-Plattform folgt dem Benutzer Interaktion mittels Microsoft Kinect-Kamera, OpenNI und Raspberry Pi 2
Hardware- und Softwareprobleme Probleme Falsch bestückte Platine (behoben) Platinen weiterhin nicht funktionsfähig Sehr unübersichtliche Firmware von Arexx OpenNI nicht mit einer über USB versorgbaren Kamera betreibbar OpenNI nicht mit Raspberry Pi betreibbar Räder lockern sich schnell 3
Ferngesteuerter Roboter Neue Ziele Steuerung der Plattform mit stationärer Kinect Geschwindigkeitsregelung mit den Armen Herstellung eigener Hardware Ätzen von 5 Platinen für Mikroprozessor und Treiber Optionale Ziele Gestensteuerung Programmierung einer App für einfachere Steuerung 4
Ergebnisübersicht 5
Inhalte Hardware des Arexx Wild Thumper Software auf der Plattform Software der Kinect Android - App 6
Die Arexx-Hardware 7
Gleichspannungsmotoren Große griffige Gummiräder Geländegängige Aufhängung Motor
Brückentreiber L298 bis zu 4A pro Motor 8-Bit Geschwindigkeitsregelung Gehäuse ist Kühlblech Treiberkarte Motor
Hauptplatine Mikroprozessor ATmega48 4x PWM Drehgeschwindigkeit 8x I/O-Ports für Drehrichtung UART für Steuerbefehlempfang Treiberkarte Motor
BT-/Funk- Empfänger Hauptplatine Bluetooth-UART Adapter Funk-UART Adapter Treiberkarte Motor
Handy/ PC & Kinect BT-/Funk- Empfänger Hauptplatine Treiberkarte Motor
Handy/ PC & Kinect BT-/Funk- Empfänger Hauptplatine Treiberkarte Motor
Die Arexx-Software 15
Das Hauptprogramm Empfange Daten Ja Controlbyte? Nein Motoransteuerung Empfange ein Byte Start 16
Der Failsafe FAILSAFE HAUPTPROGRAMM count++ 40Hz 10Hz Ja count 8? Nein Notaus 17
Die Kinect-Software 18
Start der Software Zunächst Kalibrierung in ψ-pose Anschließend Übergang in Ruheposition: r R = H R E R 2 + (S R N)² 19
Geschwindigkeitsbestimmung Rechtes Radpaar: speed R abs H R T r R dir R = sgn( H R T r R ) Linkes Radpaar analog Verschiedene Skalierung für vorwärts und rückwärts 20
Das Fahren 21
Das Programm OpenNI 3D-Berechnung Notauserkennung Personen Tracker Gestenerkennung Umgebung Zeichnen Steuerbefehl rechnen Personen Zeichnen Senden über UART 22
Technische Details Basierend auf OpenNI (1.3.3) NiUserTracker Aktualisierung der Gelenkpositionen und Senden mit variabler Frequenz, Standard sind 10Hz Geschwindigkeitsmaxima und bereiche einstellbar Sicherheitsmechanismus bei bestimmten Stop- Gesten LEDs durch Gesten steuerbar 23
Die Android-App 24
Eine andere Art des Steuerns App für Android 3.0 oder höher Übertragung per Bluetooth Zusätzliches Bluetooth-Modul auf der Plattform 25
Funktionen 26
Funktionen 27
Verbesserungsideen Ausblick Bessere Kinect-Bibliothek verwenden Kinect 2 mit höherer Auflösung verwenden Neue Hardware speziell für Arexx entwickeln Andere Räder / Radbefestigung 28
Vielen Dank für Ihre Aufmerksamkeit 29
Vielen Dank für Ihre Aufmerksamkeit Schematic Treiberkarte Layout Treiberkarte Ätzen Treiberkarte Bestückte Treiberkarte Übersicht Treiberkarte Firmware AVR 30
Schaltplan Treiberkarte zurück 31
Layout Treiberkarte zurück 32
ÄtzenTreiberkarte zurück 33
Bestückte Treiberkarte zurück 34
ÜbersichtTreiberkarte zurück 35
Komplette Firmware AVR MAIN FAILSAFE PWM Start F F Initialisierung UART Buffer? T Lese UDR Controlbyte? T 1 Datenbyte Setze I/O Shift Out T 4 Datenbytes cfs = 0 Setze Compare Setze I/O T T cfs = 255? F cfs++ cfs 8? F Compare 0 I/O s 0 Shift Out cfs = 255 T cp = 255? F cp = 0 cp++ T cp<compare? F Port High Port Low Shift Out zurück
Geschwindigkeitsberechnung genau erklärt int byteleft = (handtorsodistance zurück 37