|
|
(55 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) |
Zeile 1: |
Zeile 1: |
| [[Datei:Roboterarm UR10.jpeg|250px|thumb|top|Abbildung 1: UR10 Roboterarm]]
| | Seite kann gelöscht werden ! |
| | |
| <br />'''Autoren:''' [[Benutzer:Kevin_Penner|Kevin Penner]]
| |
| <br />'''Betreuer:''' [[Mirek Goebel|Prof. Goebel]]
| |
| <br />'''Art:''' Bachelorarbeit
| |
| | |
| | |
| = Thema der Arbeit =
| |
| Als Hauptziel dieser Arbeit soll eine Anwendung in der MATLAB Umgebung implementiert werden, welche die Arm- und Handgesten einer Person unter Anwendung einer 3D-Kamera erfasst, diese verarbeitet und anschließend in eine vergleichbare Roboterarmstellung transformiert. Dabei sollen sowohl sicherheitsrelevante Aspekte, wie z. B. ein kollisionsfreies Arbeiten des Roboters, berücksichtigt werden, als auch die Rahmenbedingungen für einen späteren Greifvorgang geschafft werden, indem Handgesten erkannt werden können. Bei dem Roboterarm handelt es sich um den „Zweiarm-Knickroboter“ mit dem Namen UR10 der Firma Universal Robots.
| |
| | |
| <br />
| |
| | |
| = Anforderungen =
| |
| '''Anforderungen an Aktorik und Sensorik:'''
| |
| * Verwendung eines Kinect-Sensors zur Erkennung von Gelenkkoordinaten und Handgesten
| |
| * Verwendung eines UR10 Roboterarms zur Rekonstruktion menschlicher Gesten
| |
| <br />
| |
| '''Anforderungen an die verwendete Software/Programmierumgebung:'''
| |
| * Implementierung der Software in MATLAB
| |
| * Verwendung des Robot Operating System "Polyscope"
| |
| <br />
| |
| '''Softwareanforderungen:'''
| |
| * Handgesten erkennen für eine spätere Ansteuerung eines Greifers
| |
| * Filterung & Glättung der Gesten/Bewegungen des Benutzers
| |
| * Transformation der Gesten/Bewegungen in eine Roboterbewegung
| |
| * Sicherheitscheck der Rotorbewegungen in Form von Kollisionsüberprüfungen mit Objekten im Arbeitsbereich des Roboters
| |
| * Implementierung einer benutzerfreundlichen Anwendung unter Verwendung von akustischen Befehlen und einer detailierten Bedienungsanleitung
| |
| | |
| | |
| <br />
| |
| = Anwendungsgebiete =
| |
| * [https://heise.de/-1831858| ''Heise-Artikel:'' GDC: NASA steuert Weltraum Roboter per Kinect]
| |
| * [http://newatlas.com/gesture-controlled-computers-and-nurses/17808/| ''New Atlas Artikel:'' Gesture-controlled computers and robotic nurses being developed for operating rooms]
| |
| | |
| | |
| <br />
| |
| = Grundlagen =
| |
| In diesem Kapitel werden die technischen Grundlagen dieser Arbeit vermittelt. Hierbei handelt es sich zum einen um eine Beschreibung und die Funktionsweise der vorhandenen Hardware- und Softwarekomponenten, zum anderen um Grundlagen im Bereich der Gestensteuerung von technischen Systemen. Auf der Grundlage der verwendeten Hardware wurde so ein Konzept zur Gestensteuerung des Roboterarms aufgestellt.
| |
| | |
| | |
| <br />
| |
| == Kinect-Sensor ==
| |
| [[Datei:Aufbau Kinect-Sensor V2.PNG|320px|thumb|top|Abbildung 2: Aufbau des Kinect-Sensors V2 <ref> L. Valgma, „3D reconstruction using Kinect v2 camera,“ Tartu, 2016. [https://www.tuit.ut.ee/sites/default/files/tuit/atprog-courses-bakalaureuset55-loti.05.029-lembit-valgma-text-20160520.pdf | Weblink] </ref>]]
| |
| [[Datei:Kinect Metadaten Gelenkkoordinaten.png|320px|thumb|top|Abbildung 3: Auflistung Gelenkkoordinaten <ref> MathWorks Kinect, „mathworks.com,“ [https://de.mathworks.com/help/supportpkg/kinectforwindowsruntime/ug/acquire-image-and-body-data-using-kinect-v2.html?requestedDomain=de.mathworks.com#responsive_offcanvas | Weblink] </ref>]]
| |
| Für die Erfassung des menschlichen Arms wird der Kinect-Sensor V2 der Firma Microsoft verwendet. Dieser besitzt neben einer RGB-Kamera einen Tiefensensor, welcher eine Kombination aus Infrarot-Projektor und Infrarot-Kamera ist (siehe Abbildung 2). Außerdem verfügt die Kinect-Hardware über ein Mikrofon-Array und eine eingebaute Intelligenz in Form eines Computers, welcher eine Sensordatenverarbeitung vollzieht und dadurch eine Skeletterkennung bei Menschen durchführt.
| |
| <br /><br />
| |
| Für die Verwendung des Kinect-Sensors in MATLAB ist eine SDK notwendig. Diese SDK mit dem Namen „Image Acquisition Toolbox Support Package for Kinect for Windows Sensor“ kann in MATLAB über den Add-On Manager installiert werden und beinhaltet neben den Hardware Treibern eine Sammlung von Software Beispielen. Für die Nutzung dieser SDK ist jedoch eine MATLAB Version ab R2016a notwendig. Im Zuge dieser Arbeit wird die Toolbox der Version 16.2.0 verwendet.
| |
| <br />
| |
| Weitere Sepzifikationen des Kinect-Sensors befinden sich in folgender Tabelle <ref> E. Lachat, H. Macher, M.-A. Mittet, T. Landes und P. Grussenmeyer, „FIRST EXPERIENCES WITH KINECT V2 SENSOR FOR CLOSE RANGE 3D MODELLING,“ Straßburg, Frankreich, 2015. [https://pdfs.semanticscholar.org/1976/63abdcd99bfd992312a3daa70ee5dae15e9e.pdf | Weblink] </ref>:
| |
| <br />
| |
| {| class="wikitable"
| |
| |-
| |
| !Beschreibung
| |
| !Funktionen | |
| |-
| |
| | '''Auflösung RGB-Kamera'''
| |
| | 1920 x 1080
| |
| |-
| |
| | '''Auflösung Tiefensensor'''
| |
| | 512 x 424
| |
| |-
| |
| | '''Max Distanz Tiefensensor'''
| |
| | 4,5 m
| |
| |-
| |
| | '''Min Distanz Tiefensensor'''
| |
| | 0,5 m
| |
| |-
| |
| | '''Bildfrequenz RGB-Kamera'''
| |
| | 30 fps
| |
| |-
| |
| | '''Bildfrequenz Tiefenkamera'''
| |
| | 30 fps
| |
| |-
| |
| | '''Horizontaler Sichtbereich Tiefenkamera'''
| |
| | 70 deg
| |
| |-
| |
| | '''Vertikaler Sichtbereich Tiefenkamera'''
| |
| | 60 deg
| |
| |-
| |
| | '''USB-Standard'''
| |
| | 3
| |
| |-
| |
| | '''Unterstütztes OS'''
| |
| | Windows 8 oder höher
| |
| |-
| |
| | '''benötigte Grafikkarte'''
| |
| | unterstützt DirectX 11.0 oder höher
| |
| |}
| |
| <br />
| |
| Die Skeletterkennung erfolgt auf der Kinect-Hardware. Neben dem Zugriff auf das Farb- und Tiefenbild der Kinect, lassen sich die [https://de.mathworks.com/help/supportpkg/kinectforwindowsruntime/ug/acquire-image-and-body-data-using-kinect-v2.html?requestedDomain=de.mathworks.com#responsive_offcanvas| Metadaten] des Tiefenbildes in MATLAB auslesen. In diesen sind die 25 Gelenkkoordinaten im 3D Koordinatensystem der Kinect hinterlegt. In Abbildung 3 ist eine Auslistung der Gelenkkoordinaten sortiert nach ihrer Indexzahl abgebildet.
| |
| <br /><br /><br /><br />
| |
| | |
| == UR10 Roboterarm ==
| |
| Der aus Aluminium bestehende Industrieroboter UR10 ist der größte Knickroboterarm im Sortiment des Unternehmens Universal Robots (siehe Abbildung 1). Er besitzt sechs rotierende Gelenke, die von -360° bis 360 ° agieren. Durch eine maximale Traglast von 10 kg und einer maximalen Reichweite von 1,3 m ist der UR10 für Aufgaben in der Logistik (Verpackung und Palettierung), Montagearbeiten oder bei „Pick & Place“ Aufgaben (z. B. Sortieren von Objekten auf einem Fließband) prädestiniert. Die maximale lineare Geschwindigkeit des TCP von 1 m/s erlaubt es dem Roboter Automatisierungsaufgaben sehr schnell durchzuführen. Außerdem verfügt der Knickroboterarm über eine konfigurierbare Sensorik zur Messung der Drehmomente, die es ihm ermöglicht einen Sicherheitsstopp bei einer Kollision einzuleiten. Dies befähigt den Roboter ohne weitere Sicherheitssysteme in einem Umfeld mit dem Menschen zusammenzuarbeiten. Die Kommunikation mit dem Roboter kann über eine TCP/IP- Schnittstelle erfolgen, welche die Ansteuerung und Programmierung über einen PC ermöglicht.
| |
| | |
| | |
| <br />
| |
| | |
| == Konzept der Gestensteuerung ==
| |
| | |
| | |
| | |
| <br />
| |
| | |
| = Hardwareaufbau =
| |
| Der Aufbau der Hardware ist der Abbildung 4 zu entnehmen. Der Benutzer kann mit dem System mittels eines Kinect-Sensors, Lautsprechers und einem Programmierhandgerät kommunizieren. Dabei erfasst der Kinect-Sensor die Gesten bzw. Armstellungen des Benutzers und schickt diese über die serielle Schnittstelle an den Rechner, der die Daten in der MATALB-Programmierumgebung verarbeitet. Für Aufforderungen an den Nutzer kann das Programm auf dem Rechner akustische Hinweise bzw. Befehle an den Benutzer zurücksenden. Die erfassten Bild- und Metadaten werden auf dem Rechner in eine Roboterarmstellung transformiert und über die TCP/IP-Schnittstelle an das Steuergerät des Roboters übermittelt. Außerdem besitzt der Benutzer die Option, mithilfe des Programmierhandgerätes einen direkten Eingriff auf den Roboter vorzunehmen (z. B. durch Betätigung des Not-Aus Schalters).
| |
| | |
| [[Datei:Hardwareaufbau Gestensteuerung UR10.png|thumb|500px|buttom|Abbildung 4: Hardwareaufbau Gestensteuerung UR10.png]]
| |
| | |
| | |
| <br />
| |
| | |
| = Implementierung & Realisierung der Software =
| |
| | |
| | |
| | |
| <br />
| |
| = Ergebnis & Bedienungsanleitung =
| |
| | |
| | |
| | |
| | |
| <br />
| |
| = Zusammenfassung, Optimierungspotential & Ausblick =
| |
| | |
| | |
| | |
| <br />
| |
| = Literatur =
| |
| <references />
| |
| | |
| | |
| | |
| | |
| ----
| |
| → zurück zum Hauptartikel: [[Studentische_Arbeiten| Studentische Arbeiten]]
| |