Methoden
Das Sichtsystem
Das Sichtsystem eines Serviceroboters soll eine Auswertung der Szene bereitstellen, die sowohl geometrische als auch semantische Informationen enthält. Mit anderen Worten: der Robutler muss wissen, wo sich Objekte befinden und was man mit ihnen machen kann. Die Semantik eines Objekts lässt sich offensichtlich nicht nur über das Sehen erschließen. Diese Art des Wissens kann zurzeit nur mit Objektmodellen in einer Datenbank verknüpft werden. Daher ist es ganz natürlich, dass ein Serviceroboter mit einem vorher bekannten Satz von Objekten arbeitet.
Wir nutzen das 3-Kamera-System Digiclops von Point Grey Research für die Stereobildverarbeitung mit einem senk- und waagerechten Stereopaar (Grundlinie 10 cm). Jedes Bild hat eine Auflösung von 640 · 480 Pixel. Die von uns untersuchten Objekte – Flaschen und Gläser – sind eine Herausforderung für das Sichtsystem. Das liegt daran, dass die visuellen Daten von transparenten Objekten im Allgemeinen mehrdeutiger sind als die von Objekten mit undurchsichtiger, farbiger oder strukturierter Oberfläche. Daher tragen hauptsächlich Rillen bzw. Falten an der Oberfläche und Ungleichmäßigkeiten in der Tiefe zur Stereobildverarbeitung bei. Daraus ergibt sich dann eine eher spärliche Darstellung der Szene mit ziemlich wenigen 3D-Datenpunkten, mit denen die Objekte auf dem Tisch umrissen werden.
Die für die Szenenanalyse verwendeten Objektmodelle sind abgeleitet von in einer Lernphase empirisch erfassten Histogrammen von den Stereodaten, die von den interessierenden Objekten erzeugt werden. Im Rahmen der Szenenanalyse werden die Suche und Optimierung der Übereinstimmung aller Objektmodelle mit den Stereodaten über alle möglichen Pose-Parameter mithilfe einer unscharfen Version der generalisierten Hough-Transformation wirksam implementiert. Wir haben herausgefunden, dass unser Verfahren selbst bei schwierigen Objekten wie Gläsern bei teilweisen Abschattungen und unter vielen verschiedenen Beleuchtungsbedingungen (Tageslicht, Leuchtstofflampe und Strahler) funktioniert. Diese Art Robustheit ist für unbegrenzte Praxisszenarien in der Servicerobotik erforderlich.
Diese drei Bilder zeigen den Robutler bei der Analyse einer Tischszene kurz vor Beginn seiner Handlung. Die Szene beinhaltet eine Flasche und zwei Weingläser. Über das zweite und dritte Bild wurden die 3D-Punktdaten aus der Stereoverarbeitung bzw. das Ergebnis der Szenenanalyse gelegt. Beachten Sie die große Menge an Rausch- und Hintergrunddaten, die als Störsignale aus der Stereoverarbeitung unter solch schwierigen Bedingungen (transparente Objekte) entstehen. Im resultierenden Diagramm (überlagert auf Bild 3) repräsentieren die drei Spitzen die Nachweisverteilung auf dem Tisch für die verschiedenen Objekte. Die Flasche und die beiden Gläser sind am richtigen Ort dargestellt und werden als Flasche und Glas erkannt.
In zukünftigen Anwendungen in der Servicerobotik wird es notwendig sein, auch vorher unbekannte Objekte zu manipulieren. Bei einem unbekannten Objekt ist das Beste, was wir tun können, eine Beschreibung seiner Oberfläche zu extrahieren, aus der sich genügend Informationen für ein Greifen gewinnen lassen. Im Moment verfolgen wir zwei unterschiedliche Strategien: erstens die Erfassung von Oberflächennormalen aus den Stereodatenpunkten und zweitens die Darstellung der Stereodaten als generalisierte Zylinder.
Schnittstelle für die aufgabenorientierte Programmierung (AOP)
Für die flexible Programmierung von Manipulationsaufgaben verwenden wir beim Robutler dasselbe System wie bei unseren Tele- und Weltraumrobotikexperimenten. Die Manipulationsaufgaben werden in einer grafischen Benutzeroberfläche aus so genannten Elementaraktionen zusammengesetzt. Diese Elementaraktionen vereinen Sensorinformationen, Regelungsstrategien und grundlegende kartesische oder Gelenkwinkelbewegungen, die vom Systemsetup bereitgestellt werden. So könnte das Reichen und Greifen einer Flasche zum Beispiel aus diesen drei Grundaktionen bestehen:
- Die kartesischen Handkoordinaten in eine Greifposition relativ zum Objekt bringen (Objektpose ist bekannt aus der Szenenanalyse oder durch Entfernungssensor, abhängig vom Systemsetup)
- Finger in ein vorgegebenes und für das Objekt geeignete Greifprofil (Gelenkwinkel) fahren
- Flasche ausreichend fest mit den Fingern impedanzgeregelt und mit angepasster Steifigkeit greifen
Mit einer solchen Liste aus Elementaraktionen lassen sich mehr oder weniger komplexe Aufgaben auch von Anwendern ohne nennenswerte Fachkenntnisse zusammenstellen. Für das Robutler-System sind alle definierten Aktionen mit einfachen und intuitiven Symbolen bzw. Icons verknüpft worden, damit das System mit einigen Mausklicks oder über einen Touchscreen bedient werden kann.
Die übersichtliche und flexible Aufgabenschnittstelle ermöglicht die einfache Integration von verschiedenen HMIs höherer Ebene. Für die Vorführung auf der Automatica wurde das System mit einer handelsüblichen Spracherkennung (VOCON von ScanSoft) verbunden. Ein Dialog mit allen Befehlen auf Aufgabenebene wurde in grafischer Form umgesetzt. Da wir die Informationen aus der Aktualisierung des Weltmodells der Szenenanalysekomponente nicht nur der Aufgabenprogrammierumgebung, sondern auch dem Dialogmanager der Spracherkennung zur Verfügung gestellt haben, kannte das System die vorhandenen Objekte. So konnte das System auch auf nicht durchführbare Aufgaben eingehen. So informierte das System den Anwender zum Beispiel darüber, dass man keinen Wein servieren könne, wenn sich keine Weinflasche auf dem Tisch befände. Für die intuitive Rückmeldung wurde der Dialog mit Sprachnachrichten versehen, mit denen dem Anwender gegenüber Handlungen bestätigt oder Fehler gemeldet wurden.
Eine wünschenswerte Erweiterung für den zukünftigen Einsatz der Spracherkennung ist die Integration eines Systems, das aus der Aufgabenhandlungsliste und den Daten aus der Objekterkennung automatisch einen zustandsbezogenen Dialog generiert.