Team ARTEMIS: Naherkennung von Objekten

von admin E-Mail

Obwohl die Bloberkennung relativ zuverlässig erkennt in welchen Regionen der Karte die Objekte positioniert sind, so ist die Bloberkennung trotzdem nicht dafür geeignet zusätzlich die Orientierung der Gegenstände zuverlässig zu berechnen. Dieser Teil der Objekterkennung wird von einem anderen Modul erledigt, welches die Pose der zuvor erwähnten Gegenstände mithilfe einer Punktwolke aus einem Laser Scanner ermittelt.

 

Ein Laser Scanner sendet über das gesamte Sichtfeld eine große Anzahl an Laserstrahlen aus, in unserem Fall 1440, wobei jeder dieser Laserstrahlen einen anderen Kipp- und Schwenkwinkel hat. Sobald diese Strahlen zum Beispiel auf Wände treffen werden sie reflektiert. Anhand der Zeit, die vom Laserstrahl benötigt wird um wieder zum Scanner zurückgeworfen zu werden, kann die Distanz zum getroffenen Objekt berechnet werden, wodurch ein Punkt im Raum entsteht. Da der Laser Scanner allerdings tausende Punkte erzeugt entwickelt sich aus diesem abtastenden Prozess eine Punktwolke. Team ARTEMIS benutzt einen zweidimensional scannenden Hokuyo UTM-30LX Laser Scanner. Diese Einschränkung des zweidimensionalen Scanverhaltens bedeutet, dass dieser Laser Scanner nur auf einer Ebene die Umgebung abtastet, die Ausrichtung der Laserstrahlen variiert dementsprechend nur im Schwenkwinkel. Um eine Punktwolke der Umgebung zu erzeugen muss der Rover über eine externe Vorrichtung verfügen, die eine Neigung des Laser Scanners ermöglicht.

 

Eine typische von einem Laser Scanner erzeugte Punktwolke

 

Auf dem obigen Bild ist eine Punktwolke eines eingescannten Container-Laderaums zu erkennen. Der Laser Scanner findet zwar die Distanz und den Winkel der Punkte, jedoch werden keine Farben vom Laser Scanner registriert. Der von Team ARTEMIS verwendete Hokuyo Scanner hat den Vorteil, dass die Stärke des reflektierten Lichtes gemessen werden kann. Ein dunkles Objekt absorbiert mehr Licht, weniger Licht wird vom Scanner empfangen, und deswegen kann der Scanner den Punkt als dunkel markieren. Umgekehrt gilt natürlich das gleiche für helle Punkte. Ein möglicher Weg um eingefärbte Punkte zu erzeugen wäre ein 2D-Farbbild aufzunehmen und die Überlagerung dessen mit der dreidimensionalen Punktwolke zu berechnen. Dieser Prozess würde eine sogenannte DRGB-Punktwolke erschaffen, da nun jeder der Distanzwerte zusätzlich einen RGB-Farbwert besitzt.

 

Um die Pose des Gegenstandes, was sowohl die Position als auch die Orientierung beinhaltet, zu erkennen muss das Modul zuallererst das Objekt in der Anhäufung von Punkten finden. Obwohl das menschliche Auge sehr gut in der Erkennung von Mustern, Kanten, Rändern und generell der Assoziation von verschiedenen Punktwolkenteilen zu verschiedenen Dingen trainiert ist, so sieht ein Computer die Punktwolke für das was sie ist: Eine Ansammlung von Punkten. Um rational zwischen den verschiedenen Teilen der Wolke unterscheiden zu können versucht das Modul als ersten Schritt Ebenen, wie zum Beispiel den Boden, in der eingescannten Punktwolke zu finden. Eine Visualisierung des Prozesses ist auf dem nachfolgenden Bild gezeigt.

 

Die Ebenen sind erkannt und zur Visualisierung eingefärbt worden

 

Wie bereits im Artikel über die Objekterkennung durch Bloberkennung erwähnt, sind dem Team die Dimensionen der aufzunehmenden Objekte bekannt. Aufgrund der Tatsache, dass der Laser Scanner im Wesentlichen die Größe der Objekte misst (der Abstand zwischen zwei Punkten ist für die Entfernung vom Scanner bekannt) kann ein Objekt, falls die Dimensionen nicht mit den gesuchten Dimensionen übereinstimmen, aus dem Objekterkennungsprozess ausgeschlossen werden. Verglichen mit komplexeren Gegenständen ist die Pose der Objekte im SpaceBot Cup aufgrund der geringen Parameterzahl, die benötigt wird um die Objekte zu beschreiben, relativ einfach zu erkennen. Das Akkupack benötigt nur drei Parameter (Länge, Breite, Höhe) und das Wasserglas sogar nur zwei (Radius und Höhe). Außerdem kann das Modul erkennen, dass ein zum Beispiel auf einer vertikalen Ebene stehendes Wasserglas aufgrund von Gravitationseffekten nicht plausibel und wahrscheinlich nicht das gesuchte Objekt ist. In dieser Pose würde das Glas sowieso nicht mehr viel Wasser enthalten. Ein Nachteil der Punktwolkten ist, dass die Auflösung von Punkten in der Ferne ziemlich gering ist. Der Hokuyo Laser Scanner sendet über den gesamten Schwenkwinkel von 270 Grad nur 1440 Laserstrahlen aus. Dies bedeutet, dass bei einer Distanz von 10m zwei individuelle Punkte in der Wolke schon 13cm voneinander entfernt sind. Dieser Abstand ist zu groß um zuverlässig die gesuchten Objekte zu erkennen. Folglich funktioniert die Posenerkennung durch Laser Scanner nur auf kleinen Distanzen vom Objekt zuverlässig.

 

Die festgestellte Objektpose muss nun für die Objektaufnahme mit dem Manipulatorarm verwendet werden. Die Objektaufnahme würde entweder als Open-Loop oder ein Closed-Loop Prozess ablaufen. In einem Open-Loop wird dem Manipulatorarm die Pose des Objektes mitgeteilt und mithilfe der eigenen Position und Kinematik kann die Objektaufnahme ausgeführt werden. Theoretisch funktioniert dieser Prozess sehr gut; wenn allerdings Ungenauigkeiten bedacht werden, zum Beispiel Veränderungen in der Rover- oder Objektposition, wird der Open-Loop Prozess deutlich unzuverlässiger. Als Illustration könnte man sich vorstellen ein Objekt mit geschlossenen Augen aufnehmen zu wollen. Möglicherweise kennt man die Position des Gegenstandes, aber ein Wasserglas würde man auf diese Weise trotzdem nicht aufnehmen wollen. Ein Closed-Loop misst während des Greifprozesses die relativen Positionen des Manipulators und des Objektes und ist dementsprechend deutlich zuverlässiger. Verständlicherweise ist die Implementierung mithilfe eines Laser Scanners deutlich komplizierter, könnte die Bemühungen aber wert sein.

Team ARTEMIS: Objekterkennung im Fernbereich

von admin E-Mail

Team ARTEMIS macht beständige Fortschritte in der Objekterkennung. Je nach Distanz zum Objekt wird die Objekterkennung in Module für Fern- und Naherkennung aufgeteilt. Die Module werden nicht parallel laufen, sondern sobald der Rover näher an eine entdecke, interessante Region heranfährt, übernimmt das Naherkennungsmodul.

 

Eine erfolgreiche Erkennung von zwei der drei im Spacebot Cup farblich gekennzeichneten, Gegenstände

 

Während des SpaceBot Cups müssen drei Objekte, von denen eines möglicherweise von einem Überhang verdeckt sein wird, im Terrain gesucht werden. Am Anfang der SpaceBot Cup Mission besitzt der Rover nur eine sehr ungenaue Karte der Umgebung. Um die Position der Gegenstände zu bestimmen muss der Rover das Terrain durchsuchen und mithilfe der Objekterkennung sowohl die Position auf der Karte als auch, später im Naherkennungsbereich, die Orientierung der Objekte berechnen. Um die Erkennung der vom Rover gesuchten Objekte zu vereinfachen werden diese farblich gekennzeichnet sein.

 

Durch die farbliche Kennzeichnung kann der erste Schritt der Objekterkennung durch Blob-Erkennung erreicht werden. Ein Blob ist in der Objekterkennung eine Bildregion in der die Pixel etwas gemeinsam haben (in diesem Fall die Farbe der Pixel), das von den umliegenden Pixeln nicht geteilt wird. Team ARTEMIS benutzt eine Bloberkennungsmethode die als Maximally Stable Extremal Regions bekannt ist. Diese Methode hat den Vorteil, dass sie in der Kombination mit normalisiertem RGB von den Lichtverhältnissen der Umgebung und der Helligkeit relativ unbeeinflusst ist. Normalisiertes RGB ist eine Möglichkeit um die RGB-Farbwerte von den Helligkeitswerten unabhängiger zu machen. RGB-Farben bestehen aus drei Farbwerten, die in diesem Fall von 0 bis 255 reichen. Um zum Beispiel Rot darzustellen würden wir 255 rot, 0 grün und 0 blau auswählen. Der normalisierte RGB-Farbwert jeder dieser drei Komponenten ist durch das Teilen des individuellen RGB-Farbwertes durch die Summe der drei Farbwerte zu errechnen. In dem Fall von Rot würde dies bedeuten, dass 100% des Lichtes die Farbe Rot enthält (alles andere wäre etwas überraschend). Was die Anwendung von normalisiertem RGB für die Objekterkennung so nützlich macht, ist, dass selbst bei Farbwerten wie 100 rot, 0 grün und 0 blau (ein dunkles Rot, da weniger Licht benutzt worden ist) der normalisierte Rotwert des Lichtes "1" (also 100%) beträgt. Dies hat zur Folge, dass die erhaltenen normalisierten RGB-Farbwerte deutlich weniger empfindlich bei Helligkeitsveränderungen reagieren, zum Beispiel wenn die Hälfte eines gesuchten Objekts von einem Schatten verdeckt ist.

 

In dem ersten Bild dieses Artikels ist neben den beiden objektumschließenden Kästchen jeweils ein Wert zu erkennen. Dieser sogenannte Konfidenzwert zeigt die farbliche Übereinstimmung des identifizierten Objektes mit der vom Algorithmus gesuchten Farbe auf einer Skala von 0 bis 1 an. Um die Markierung von irrtümlicherweise markierten Regionen zu verhindern, gibt es eine Untergrenze die vom Konfidenzwert überstiegen werden muss um als gefundenes Objekt gekennzeichnet zu werden. Es kann bei dieser Methode allerdings passieren, dass pro Objekt mehrere entdeckte Regionen mit hohen Konfidenzwerten auftreten.

 

Neben der Identifizierung von Gegenständen muss das Objekterkennungsmodul natürlich auch die Positionen der neu erkannten Objekte auf der Karte, einem sogenannten Occupancy Grid, markieren, sodass der Rover entweder sofort zur Objektaufnahme fahren, oder nach weiterer Exploration den Weg zurück finden kann. Dadurch, dass die Position der Kamera auf dem Rover, des Blobs auf dem Bild und die Terraindaten des Velodyne LiDARs bekannt sind, ist es möglich die Position des identifizierten Gegenstandes abzuschätzen. Die gefundene Position des Objektes wird während des Erkennungsprozesses durch die Zuordnung eines Konfidenzwertes zu der dazugehörigen Gitterzelle gespeichert. Je näher der Zellenwert an 1 ist, desto dunkler wird die Gitterzelle markiert. Dementsprechened enthält der Occupancy Grid möglicherweise mehrere Objektpositionen.

  

Ein möglicher Output eines Bloberkennungsalgorithmus

 

Aufgrund der Tatsache, dass der Erkennungsprozess nur die Farbwerte der Bildregionen in Betracht zieht besteht weiterhin die Möglichkeit, dass falsch positiv erkannte Regionen als Objekt auf der Karte gekennzeichnet sind. Der Rover muss nun entscheiden welcher dieser markierten Blobs das tatsächliche Objekt ist. Ein Hinweis sind, im Zusammenspiel mit der geschätzten Entfernung, die den Teams bekannten Dimensionen der gesuchten Gegenstände. Wenn die Position noch sehr weit vom Rover entfernt ist, der Blob allerdings schon groß auf dem Bild erscheint, dann kann mit hoher Wahrscheinlichkeit gesagt werden, dass dieser Blob nicht das gesuchte Objekt darstellt.

 

Obwohl das oben zu sehende Bild erst vor ein paar Tagen mit einer relativ geringauflösenden Kamera aufgenommen worden ist, wird der Rover im tatsächlichen Wettbewerb drei, unterhalb des Velodyne montierte, hochauflösende Kameras zur Verfügung haben. Zum Zeitpunkt zu dem dieser Artikel verfasst wurde ist der Algorithmus zwar noch nicht mit den richtigen Kameras getestet worden, aber es werden aufgrund der hohen Effizienz des Objekterkennungsalgorithmus keine Probleme erwartet.

Team ARTEMIS: Werkstatt

von admin E-Mail

Andreas Scholz ist einer der Mitarbeiter die für das SpaceBot Cup ARTEMIS Projekt hinter den Kulissen arbeiten. Das DFKI hat die Einrichtungen und das Know-How um einen Großteil der Bauteile für die verschiedenen Projekte selbst in der eigenen Werkstatt herzustellen. Obwohl das Team an fast allen Projekten in unterschiedlichen Ausmaßen beteiligt ist, wird für den ARTEMIS Rover momentan, abgesehen von den verschiedenen Elektromotoren, an exakten Nachbauten der zu suchenden Objekte im SpaceBot Cup gearbeitet.

 

Das für die beiden anderen Objekte als Montagebasis dienende, dritte Objekt wurde bereits als Testgegenstand aus Holz gefertigt. Selbstverständlich wird der Roboter, sobald die Entwicklung und Konstruktion abgeschlossen sind, ausgiebig getestet damit sichergestellt werden kann, dass alle Funktionen ordnungsgemäß ablaufen. Um eine den Wettbewerbsbedingungen möglichst akkurat entsprechende Testphase zu gewährleisten stellt Team ARTEMIS Nachbildungen der drei im SpaceBot Cup verwendeten Gegenstände her.

 

Das Basisobjekt das mit den zwei anderen Objekten zusammengesetzt wird

 

Während des Wettkampfes wird der Rover das Wasserglas und das Akkupack zum dritten Objekt transportieren (mehr Informationen zu möglichen Angehensweisen an den Transport sind im Mission Control Artikel zu finden). Wenn sich beide Objekte an der Konstruktionsbasis befinden, wird das Akkupack in das Akkufach auf der Rückseite der Basis geschoben, und das Wasserglas auf der Oberseite platziert. Sobald dies erreicht ist muss ein Schalter, ähnlich wie der auf dem Bild abgebildete schwarze Kippschalter, umgeschaltet werden damit die im Wasserbehälter verbleibende Wassermasse gemessen werden kann. Um die Basis für die Wettbewerbsteilnehmer besser sichtbar zu machen wird das Objekt leuchtend rot lackiert.

 

An dem abgebildeten Objekt wird offensichtlich noch gearbeitet. Ein Kippschalter wurde sogar schon installiert, aber, wie man von den auf dem Tisch platzierten Teilen bereits erahnen kann, müssen die Führungsschienen für das Batteriefach noch eingebaut werden. Wie bereits erwähnt wird das Objekt in der nahen Zukunft rot lackiert.

1 2 3 >>