H2R Handovers
Objektunabhängige Mensch-zu-Roboter Handovers mit Echtzeit-Robotik-Vision
Autoren: Patrick Rosenberger [TU Wien] [ORCID], öffnet eine externe URL in einem neuen Fenster [Homepage], öffnet eine externe URL in einem neuen Fenster, Akansel Cosgun [Uni Monash], öffnet eine externe URL in einem neuen Fenster, Rhys Newbury, Jun Kwan, Valerio Ortenzi [Uni Brimingham] [ORCID], öffnet eine externe URL in einem neuen Fenster, Peter Corke [QUT], öffnet eine externe URL in einem neuen Fenster [ORCID], öffnet eine externe URL in einem neuen Fenster [Homepage], öffnet eine externe URL in einem neuen Fenster und Manfred Grafinger [, öffnet eine externe URL in einem neuen FensterTU Wien] [ORCID], öffnet eine externe URL in einem neuen Fenster
Publikation: demnächst verfügbar
Vorabdruck: demnächst verfügbar
Code: https://github.com/patrosAT/h2r_handovers, öffnet eine externe URL in einem neuen Fenster
Programmiersprache: Der im Rahmen dieses Projekts entwickelte Code ist in Python 2.7 und 3.6 geschrieben, je nach Modul. Weitere Informationen finden Sie in den einzelnen Repositories.
Hardware: Dieses Projekt wurde mit einem Franka-Emika Panda Arm, öffnet eine externe URL in einem neuen Fenster und einem Realsense D435, öffnet eine externe URL in einem neuen Fenster durchgeführt.
Ansatz
In diesem Projekt wird ein Ansatz für sichere und objektunabhängige Übergaben (Handovers) von Mensch zu Roboter unter Verwendung von Echtzeit-Robotersicht und -manipulation vorgestellt. Wir streben eine allgemeine Anwendbarkeit an, indem wir die Leistung eines generischen Objektdetektors (darknet_ros), eines Echtzeit-Greifauswahlalgorithmus (ggcnn_humanseg_ros) und zweier semantischer Segmentierungsmodule für Körpersegmentierung (bodyparts_ros) und Handsegmentierung (egohands_ros) kombinieren.
Der Ansatz verwendet eine RGB-D-Kamera, die am Endeffektor des Roboters angebracht ist und einen stetigen Strom von RGB- und Tiefenbildern liefert. Für jedes Bild erkennt der Objektdetektor alle Objekte im Sichtfeld der Kamera und wählt diejenigen aus, die sich in Reichweite des Roboters befinden. Außerdem werden alle Pixel, die zum menschlichen Interaktionspartner und dessen Händen gehören, segmentiert. Das Greifauswahlmodul verwendet diese Eingaben, um eine Schätzung der Greifqualität zusammen mit der zugehörigen Greiforientierung und Greifbreite für jedes Pixel im Tiefenbild zu berechnen. Schließlich wird der Greifpunkt mit der höchsten geschätzten Erfolgswahrscheinlichkeit ausgewählt und in das Basisbild des Roboters übersetzt. Das Robotertreibermodul bewegt den Endeffektor über eine visuelle Servosteuerung in Richtung des ausgewählten Greifpunkts. Die Segmentierungsmasken werden in Echtzeit aktualisiert, um die Änderungen der Hand-/Körperpositionen dynamisch zu verarbeiten.
Modul bodyparts_ros
Dieses Modul implementiert ein leichtgewichtiges RefineNet NN, öffnet eine externe URL in einem neuen Fenster , das auf dem PASCAL-Körperteil-Datensatz trainiert wurde. Das NN ist in der Lage, menschliche Körperteile zu erkennen und kann zwischen Köpfen, Oberkörpern, Oberarmen, Unterarmen, Oberschenkeln und Unterschenkeln mit einer mittleren Intersection-Over-Union (mIoU)-Bewertung von 0,649 unterscheiden (Nek18), öffnet eine externe URL in einem neuen Fenster.
Code: https://github.com/patrosAT/bodyparts_ros, öffnet eine externe URL in einem neuen Fenster
Modul egohands_ros
Dieses Modul implementiert ein Scene Parsing framework (PSPNet), öffnet eine externe URL in einem neuen Fenster, das auf dem egohands-Datensatz trainiert wurde. Das trainierte Modell erreichte einen mIoU von 0,897 und eine Pixelgenauigkeit von 0,986 auf dem Validierungssatz.
Code: https://github.com/patrosAT/egohands_ros, öffnet eine externe URL in einem neuen Fenster
Modul darknet_ros
Dieses Modul implementiert einen YOLO v3 Objektdetektor, öffnet eine externe URL in einem neuen Fenster, der auf dem COCO-Datensatz trainiert wurde. Da unser Ziel darin besteht, Handovers für jede beliebige Klasse von Objekten zu ermöglichen, lassen wir Fehlklassifizierungen für Objekte zu, die nicht zu einer der 80 Kategorien des Datensatzes gehören.
Code: https://github.com/leggedrobotics/darknet_ros, öffnet eine externe URL in einem neuen Fenster
Modul ggcnn_humanseg_ros
Dieses Modul implementiert ein GGCNN, öffnet eine externe URL in einem neuen Fenster. Der Knoten gibt auf der Grundlage des Tiefenbildes eines Objekts und der Eingaben der drei Module bodyparts_ros, egohands_ros und darknet_ros die beste Picking-Position aus. Umfangreiche Vor- und Nachbearbeitungen verhindern, dass menschliche Körperteile gepflückt werden.
Code: https://github.com/patrosAT/ggcnn_humanseg_ros, öffnet eine externe URL in einem neuen Fenster
Modul h2r_handovers
Dieses Modul bietet einen Treiber für objektunabhängige Mensch-Roboter-Handovers mit Hilfe von Robot Vision. Der Ansatz erfordert nur eine RGBD-Kamera und kann daher in einer Vielzahl von Anwendungsfällen eingesetzt werden, ohne dass künstliche Aufbauten wie Marker oder externe Kameras erforderlich sind.
Code: https://github.com/patrosAT/h2r_handovers, öffnet eine externe URL in einem neuen Fenster
Anerkennungen
Besonderer Dank gilt der TU Wien und dem Australian Center for Robotic Vision (ACRV), öffnet eine externe URL in einem neuen Fenster, die dieses Forschungsprojekt ermöglicht haben.
Lizenz
Das Projekt ist unter der BSD 4-Clause License lizenziert.
Haftungsausschluss
Bitte bedenken Sie, dass kein System 100% fehlertolerant ist und dass dieser Demonstrator darauf ausgerichtet ist, die Grenzen der Innovation zu erweitern. Unvorsichtige Interaktion mit Robotern kann zu schweren Verletzungen führen, seien Sie immer entsprechend vorsichtig!
Diese Software wird von den Urheberrechtsinhabern und Mitwirkenden im Ist-Zustand zur Verfügung gestellt, und jede ausdrückliche oder stillschweigende Gewährleistung, einschließlich, aber nicht beschränkt auf die stillschweigende Gewährleistung der Marktgängigkeit und der Eignung für einen bestimmten Zweck, wird ausgeschlossen. In keinem Fall haften der Urheberrechtsinhaber oder die Mitwirkenden für direkte, indirekte, zufällige, besondere, beispielhafte oder Folgeschäden (einschließlich, aber nicht beschränkt auf die Beschaffung von Ersatzwaren oder -dienstleistungen, Nutzungs-, Daten- oder Gewinnverluste oder Geschäftsunterbrechungen), wie auch immer diese verursacht wurden und auf welcher Haftungstheorie sie beruhen, ob aus Vertrag, verschuldensunabhängiger Haftung oder unerlaubter Handlung (einschließlich Fahrlässigkeit oder anderweitig), die in irgendeiner Weise aus der Verwendung dieser Software entstehen, selbst wenn auf die Möglichkeit solcher Schäden hingewiesen wurde.