Letzte Woche haben wir herausgefunden , wie der legendäre BigDog-Gangkoordinierungsalgorithmus funktioniert. Der Roboter war noch nicht autonom und konnte das Gelände nur unter der Kontrolle des Bedieners überqueren.
Die meisten Leser befürworteten das letzte Mal die Idee einer neuen Übersetzung - darüber, wie BigDog gelernt hat, wie man selbständig zum richtigen Punkt geht und im Weltraum navigiert. Nun, eigentlich ist er hier. Das BigDog-Navigationssystem verwendet eine Kombination aus planarem Laserscanning, Stereovision und propriozeptiver Wahrnehmung. Mit seiner Hilfe wird der Standort des Roboters in der Umgebung bestimmt. Sie entdeckt Hindernisse und platziert sie in einem zweidimensionalen Modell der Welt. Dann plant sie den Pfad und steuert den Roboter so, dass er dem gewählten Pfad folgt. Der Pfadplaner ist eine Variation des klassischen A * -Suchalgorithmus. Der Glättungsalgorithmus verarbeitet die Ergebnisse und übergibt sie an den Pfadverfolgungsalgorithmus. Er berechnet die Lenkbefehle für BigDog.
Das beschriebene System wurde in einer Waldzone mit vielen Bäumen, Felsbrocken und Unterholz getestet. Zusätzlich zu den flachen Gebieten hatte es auch Steigungen (Winkel von bis zu 11 Grad). Insgesamt wurden 26 Tests durchgeführt, von denen 88% erfolgreich waren. Der Roboter "sah" das Gelände in einem Radius von 130 Metern, wenn er sich mit einer bestimmten Geschwindigkeit bewegte, und überwand mehr als 1,1 km.
Ausrüstung
1) Propriozeptive SensorenWird zur Steuerung des BigDog-Gangs und der autonomen Navigation verwendet. Jeder der 16 aktiven und 4 passiven Freiheitsgrade des Roboters ist mit einem Sensor ausgestattet. Sie liefern Daten zur aktuellen Position und Last. Diese Informationen werden mit IMU-Daten kombiniert, um den Kontaktzustand mit dem Boden, die Körperhöhe und die Geschwindigkeit des Körpers zu bewerten. Darüber hinaus zeigen eine Reihe von Sensoren den Zustand des Antriebs-, Rechen-, Hydraulik-, Wärme- und anderer BigDog-Systeme an.
BigDog-Sensoren: a) GPS-Antenne; b) Lidar; c) Hummel-Stereokamera; d) Honeywell IMU; e) Gelenksensoren.2) Exterozeptive SensorenDer Roboter ist mit vier externen Sensoren ausgestattet: dem SICK LMS 291 Lidar, der Bumblebee PointGrey Stereokamera, dem NovAtel GPS Empfänger und der Honeywell IMU. Daten von ihnen gelangen in das in der folgenden Abbildung gezeigte System.
3) ComputerUm das System mit dem obigen Diagramm zu implementieren, werden zwei Computer verwendet. Der BigDog-Hauptcomputer ist ein PC104 mit einem Single-Core-Intel Pentium M-Prozessor (1,8 GHz). Es interagiert mit propriozeptiven Sensoren, steuert das Gleichgewicht und die Bewegung des Roboters, berechnet das aktuelle Modell der Umgebung und den Weg durch den Roboter und steuert auch den Gang.
Vision wird von einem separaten Computer mit einem Intel CoreDuo-Prozessor (1,7 GHz) bereitgestellt. Es kommuniziert mit zwei Kameras, erkennt Inkonsistenzen, wertet die visuelle Kilometerzähler aus und unterstützt eine 3D-Geländekarte. Dieser Computer überträgt die Karten- und visuellen Kilometerzählungsdaten mit einer Frequenz von 15 Hz über das integrierte lokale Netzwerk an den Host-Computer.
Der Vorteil eines solchen Systems besteht in der Möglichkeit, die Planungsaufgabe zu vereinfachen, indem sie in zwei Teile geteilt wird. Die Daten von Lidar und Sensoren sind dreidimensional, aber wir können uns auf die Selbststabilisierung des Gangsteuersystems verlassen, um eine komplexere 3D-Wahrnehmung und -Planung aufzugeben.
Technischer Ansatz
In unserem allgemeinen technischen Ansatz verwenden wir Daten von zwei Umgebungssensoren, um Hindernisse zu erkennen, den Weg durch oder um Hindernisse zu berechnen und das Gangsteuerungssystem des Roboters anzuweisen, einem bestimmten Weg zu folgen.
Der gesamte Prozess kann in drei Phasen unterteilt werden. Zunächst werden Bilder vom Lidar und der Kamera verarbeitet, um eine Liste von Punkten zu erhalten, die auf Hindernisse in der Umgebung hinweisen. Dann werden diese Punkte in disjunkte Objekte unterteilt und einige Zeit verfolgt. Ferner werden diese Objekte zur Zuordnung im temporären Speicher kombiniert. Diese Karte wird verwendet, um die Fahrtrichtung zu einem Zwischenziel zu planen. Der Scheduler soll steuern, dass sich die BigDog-Trajektorien im richtigen Abstand zu Hindernissen befinden und dass die Trajektorien während der Iterationen des Schedulers im Raum stabil sind. Der Bewegungsalgorithmus entlang einer bestimmten Flugbahn zwingt den Roboter, dem beabsichtigten Pfad zu folgen, und sendet Geschwindigkeitsbefehle an das Gangsteuersystem. Sie bewegt abwechselnd die Glieder des Roboters.
A. Sammlung von Informationen
1) Einschätzung der SituationEs gibt zwei Quellen für odometrische Informationen: kinematische Sensoren in den Beinen und ein künstliches Sichtsystem. Die daraus erhaltenen Daten werden kombiniert, um den Standort des Roboters zu bestimmen.

Das odometrische System berechnet anhand der kinematischen Informationen der Beine die Bewegungen des Roboters. Das visuelle Kilometerzählersystem überwacht die visuellen Eigenschaften für die Berechnung der Bewegung. Beide Tools verwenden ein Trägheitsmessmodul (IMU) als Informationsquelle für die räumliche Orientierung. Ein allgemeines Messgerät kombiniert die Leistung dieser beiden Kilometerzähler und konzentriert sich auf die visuelle Kilometerzähler bei niedrigen Geschwindigkeiten und die Kinematik bei höheren Geschwindigkeiten. Die Kombination dieser beiden Indikatoren beseitigt die Mängel der einzelnen Zähler: den möglichen Ausfall von Stereosystemen, die Abweichung der Kilometerstände in den Gliedmaßen während des Laufens an Ort und Stelle sowie die Fehler dieses Sensors entlang der vertikalen Achse.
Das im BigDog-Roboter verwendete Lidar erzeugt alle 13 Millisekunden ein neues Bild. Jedes Bild wird in ein externes Koordinatensystem mit der Mitte am Ort des Roboters umgewandelt. In diesem Fall werden zeitsynchronisierte Informationen vom Standortzähler verwendet. Die resultierende 3D-Punktwolke wird dann zur Verarbeitung durch den nachstehend beschriebenen Segmentierungsalgorithmus übertragen. In ähnlicher Weise sammelt das stereoskopische Sichtsystem für einige Zeit Nichtkonformitätskarten, um eine 3D-Geländekarte auf einem 4 x 4 Meter großen Quadrat zu erstellen, das auf dem Roboter zentriert ist. Der räumliche Filter bestimmt die Bereiche mit signifikanten Höhenänderungen (d. H. Potenziellen Hindernissen) und überträgt eine Liste von Punkten, die zu diesen Bereichen gehören, an den Punktwolkensegmentierungsalgorithmus.
2) Punktwolkensegmentierung und ObjektverfolgungAufgrund der Unregelmäßigkeiten der Erde und der Bewegungen des Roboters enthält ein Teil der Lidar-Scannerdaten Bilder der Erde. Reflexionen von langen Hindernissen (wie Wänden) ähneln Reflexionen von der Erdoberfläche. Für einen erfolgreichen Betrieb muss das System diese Reflexionen so interpretieren, dass es den Roboter in der Nähe der Wände steuern kann und keine „Angst“ vor der Erde hat. Der erste Schritt in diesem Prozess ist die Segmentierung der vom Lidar und der Geländekarte bereitgestellten Hindernispunkte in separate Objekte. Seltene 3D-Punktwolken werden in Objekte segmentiert, indem einzelne Punkte zusammengeführt werden, die durch einen Abstand von weniger als 0,5 Metern voneinander getrennt sind.
Objekte, die dank des Segmentierungsalgorithmus erhalten wurden, werden einige Zeit verfolgt. Um diese Aufgabe zu erfüllen, verwenden wir einen gierigen iterativen Algorithmus mit heuristischen Einschränkungen. Das Objekt im aktuellen Bild stimmt mit dem nächstgelegenen Objekt des letzten Bildes überein, sofern die Objekte nicht mehr als 0,7 Meter voneinander entfernt sind.
Aufgrund der Tatsache, dass Punktwolken in Objekte unterteilt und für einige Zeit verfolgt werden, kann sich der Roboter in der Umgebung mit mäßigen Unebenheiten der Erde und verschiedenen Arten von Hindernissen angemessen bewegen: Bäume, Kopfsteinpflaster, umgestürzte Baumstämme, Wände. Bäume und Wände werden hauptsächlich von einem Lidar-Scanner bestimmt, und Kopfsteinpflaster und Protokolle werden von einem stereoskopischen Sichtsystem bestimmt.
Eine Folge von Abbildungen, die einen Roboter (gelbes Rechteck) zeigen, mit: a) Daten von einem Lidar (blaue Punkte), die in wenigen Sekunden aufgezeichnet wurden; b) ihre jeweiligen Einrichtungen. Hohe braune Gegenstände sind Bäume. Bodenreflexionen werden transparent und flach dargestellt. Der grüne Zylinder ist das Ziel; Die blaue Linie des berechneten Pfades führt dorthin. c) Draufsicht auf das Kartogramm: Bereiche mit dem niedrigsten tödlichen Wert werden grün und Bereiche mit dem höchsten Wert lila angezeigt. Jede Gittereinheit entspricht 5 Metern.B. Navigationsplanung
Unser Ansatz zur Lösung des Navigationsproblems wird in der Robotergemeinschaft allgemein akzeptiert. Hindernispunkte (aufgrund von Wahrnehmungsprozessen erhalten) werden auf einem Kartogramm mit der Mitte am Ort des Roboters aufgezeichnet. Das endgültige Ziel des Roboters wird auf die Grenze des Kartogramms projiziert und eine Variante des Algorithmus A ∗ wird darauf angewendet. Dieser Vorgang wird ungefähr einmal pro Sekunde wiederholt.
1) Erinnerung an verfolgte HindernisseAufgrund des begrenzten Sichtfelds der beiden Sensoren des Roboters ist es unbedingt erforderlich, dass der Roboter eine genaue Erinnerung an Hindernisse behält, die er nicht mehr sehen kann. Da die Objektliste vom Objektverfolgungssystem bereitgestellt wird, werden einzelne Objekte im Objektspeicher des Planungssystems hinzugefügt, aktualisiert oder gelöscht. Die Größe der Liste der Objekte ist begrenzt. Wenn also neue Objekte hinzugefügt werden, müssen andere gelöscht werden.
Mit der aktuellen Liste der Objekte der Variablen O können wir zwei parametrisierte Unterklassen von O berechnen:
Hier ist Alter (q) die Differenz zwischen der aktuellen Zeit und der Zeit der letzten Messung des Objekts q,
norm (q, r) inf - der Mindestabstand zwischen dem aktuellen Standort des Roboters und der Grenze des Objekts q.
Objekte werden nach folgenden Kriterien aus O gelöscht:- Die Menge {P (30) ∩ Q (15)} wird von O abgezogen. Dies sind Objekte, die älter als 30 Sekunden sind und sich nicht näher als 15 Meter am Roboter befinden.
- Die Menge {P (1800) ∩ Q (10)} wird von O abgezogen. Dies sind Objekte, die älter als eine halbe Stunde sind und sich nicht näher als 10 Meter vom Roboter befinden.
- Objekte werden aus O entfernt, wenn das Listenlimit erreicht ist. Die Priorität des Objekts wird durch die Zeit bestimmt, in der es vom Tracker erfolgreich verfolgt wurde. Mit anderen Worten, Objekte, die der Roboter länger "sah", werden länger im Speicher gespeichert.
- In den letzten 10 Sekunden verfolgte Objekte werden jedoch nicht verworfen.
Diese Zuweisung von Speicherressourcen führt zu folgendem Verhalten: Wenn Objekte das Sichtfeld der Sensoren des Roboters verlassen, werden gelöschte Objekte und Objekte vergessen, die sie nicht mehrmals gesehen haben. Objekte, die in Sichtweite oder unzugänglich sind, sich jedoch in der Nähe des Roboters befinden, werden nicht vergessen.
2) Erstellen eines KartogrammsWir verwenden ein Kartogramm, das auf der Grundlage eines 2D-Gitters erstellt wurde, um die Umgebung des Roboters darzustellen. Anstatt dynamisch ein Kartogramm zu erstellen (wenn der Roboter neue Umgebungsinformationen erhält), wird bei jeder Planungsiteration ein neues Kartogramm erstellt und mit Objekten aus dem Speicher des Planers gefüllt. Daraus folgt, dass der dynamische Routenplaner nicht anstelle des A * -Algorithmus verwendet werden kann. Da wir davon ausgehen, dass die Größe der Objekte begrenzt ist (dass das Fehlen einer Sackgasse in der Umgebung mehr als die Hälfte der Karte beträgt), sind der Umfang der Planungsaufgabe und die Zeit für die Berechnung des Pfads gering.
Das Kartogramm wird gemäß dem folgenden Algorithmus mit Werten aus der Liste der Objekte gefüllt:
Den Zellen, in denen sich die Objekte befinden, wird ein sehr hoher tödlicher Wert zugewiesen. Der Indikator für die Zellen in der Nähe des Objekts wird gemäß der Funktion f gesetzt, die den aktuellen Abstand zu diesem Punkt berücksichtigt. Für die hier dargestellten Testergebnisse war f einfach der inverse Würfel der Entfernung.
Der Effekt dieses Ansatzes ist, dass er von Zellen mit einem sehr hohen Wert allmählich abnimmt, wenn er sich von ihnen (und den von ihnen bezeichneten Objekten) entfernt.
3) Stabilität des PfadesUm sicherzustellen, dass wir BigDog nicht zufällig und unsystematisch „kontrollieren“, wird besonderes Augenmerk auf die Stabilität des geplanten Pfades gelegt. Es sollte durch Iterationen des Pfadplaners so stabil wie möglich sein. Dies erfolgt auf drei Arten.
Erstens ist der an den A * -Algorithmus übergebene Startpunkt nicht die aktuelle Position des Roboters, sondern die Projektion seiner Position am Endpunkt des zuvor vom A * -Algorithmus angegebenen Pfades (nennen wir diesen Punkt p). Solange BigDog dem geplanten Pfad folgt, kann es seitlich geringfügig davon abweichen. Indem wir den Startpunkt auf den Punkt der vorherigen Berechnung des A * -Algorithmus projizieren, filtern wir die Schwankung der Position des Roboters heraus und die vom Scheduler angezeigten Pfade werden stabiler. Wenn der Roboter mehr als den eingestellten Wert vom Pfad abweicht (standardmäßig 3 Meter), wird Punkt p einfach auf die aktuelle Position des Roboters übertragen.
Zweitens berechnen wir zur Überprüfung der Kontinuität des Pfadplaners q - die Projektion der Position des Roboters von 2,5 Sekunden in der Vergangenheit bis zum letzten vom A * -Algorithmus berechneten Punkt. Dann wird das Segment des letzten geplanten Pfades von q nach p zur Berechnung des neuen Pfades hinzugefügt. Infolgedessen verfolgt der Roboter eine kleine Strecke, die bereits zurückgelegt wurde. Dank dessen zeigt sich der Algorithmus zum Verfolgen des Pfades besser mit signifikanten Verstößen gegen die Position, auf die Roboter häufig an ihren Füßen stoßen.
Drittens wird ein Teil des Verlaufs der geplanten Pfade im Speicher des Roboters gespeichert. Diese Pfade werden verwendet, um die Werte der Zellen des Kartogramms zu reduzieren, in die der Roboter bereits gegangen ist, während der Wert der Zellen in der Umgebung erhöht wird. Daher wiederholt ein neuer geplanter Pfad in derselben Richtung in der Regel den bereits vom Roboter zurückgelegten Pfad (jedoch ohne strikte Garantie dafür).
4) PfadglättungDer berechnete Pfad ist etwas gezackt, da er auf einem regulären Raster basiert. Wesentliche Richtungsänderungen können zu unerwünschten Steuerbefehlen führen. Um dies zu vermeiden, wird der De Boer-Glättungsalgorithmus angewendet.
Darüber hinaus führt die gitterbasierte Pfadplanung häufig zu technisch optimalen, aber weniger wünschenswerten Pfaden zum Ziel. Wir lösen dieses Problem, indem wir für jede Iteration des Schedulers einen geglätteten Pfad berechnen. Für nachfolgende Iterationen wird den Zellen des Kartogramms, in denen der geglättete Pfad verläuft, ein niedrigerer Wert zugewiesen. Dies bietet einen direkteren und reibungsloseren Weg zum Ziel.
C. Gangkontrolle: Mobilität und Gleichgewicht
Das Navigationsplanungssystem ermittelt ungefähr einmal pro Sekunde einen neuen Pfad. Ein Algorithmus zum Folgen eines Pfades, der mit einer Frequenz von 200 Hz arbeitet, führt den Roboter gemäß dem zuletzt geplanten Pfad. Dieser Algorithmus erstellt eine Reihe von Befehlen in Form der gewünschten Körpergeschwindigkeiten, einschließlich Vorwärtsgeschwindigkeit, Quergeschwindigkeit und Gierrate des Körpers. Diese Geschwindigkeiten werden an den Gangregler übertragen, der die Bewegung der Beine steuert.
Basierend auf der Entfernung zwischen dem Roboter und dem Pfad wird eine von drei Strategien verwendet. Befindet sich der Roboter in der Nähe eines Abschnitts des Pfades, beginnt er sich diagonal zu bewegen, bis er von der Seite mit voller Geschwindigkeit in ihn eintritt. Wenn der Roboter weit vom Pfad entfernt ist, richtet er sich genau vorwärts zum gewünschten Punkt. In einer Zwischenposition wird eine Kombination dieser Strategien verwendet.
Eine detaillierte Beschreibung der Gangsteuerungsalgorithmen würde den Rahmen dieses Artikels sprengen. In der Regel dienen Körpergeschwindigkeiten jedoch als Steuereingaben für BigDog-Gangregler mit niedrigem Pegel. Der Gangregler erzeugt Kraft- und Positionsbefehle für jedes Gelenk, um Stabilität zu gewährleisten, reagiert auf Anomalien und liefert die erforderlichen Körpergeschwindigkeiten. Obwohl die Berechnungen des Path Investigator-Algorithmus für jeden BigDog-Gang verwendet werden können, ist das Trabrennen aufgrund der Geschwindigkeit und der Fähigkeit, unwegsames Gelände zu überqueren, optimal.
Feldtestergebnisse
Das oben beschriebene Sensor- und Navigationssystem wurde auf BigDog installiert und außerhalb des Labors getestet. Die Tests wurden in einem Gebiet durchgeführt, in dem es viele Bäume, Felsbrocken, Unterholz und Hügel mit Hängen von bis zu 11 Grad gab. Abbildung 1 zeigt Landschaftsbeispiele. Abbildung 2 zeigt die vom Roboter verarbeiteten Daten des Lidars.
Abb. 1. Das Gelände, in dem die Tests durchgeführt wurdenAbb. 2. Testen, Draufsicht. Bild von Lidar- und Stereokameras empfangen. Dunkle Bereiche sind Bäume und andere Hindernisse. Die Maschenweite beträgt 5 Meter.Das Navigationssystem und der Planer wurden über einen Zeitraum von 7 Monaten entwickelt, wobei regelmäßige Tests etwa alle fünf Wochen durchgeführt wurden. Die Ergebnisse der letzten Tests werden hier beschrieben.
Von den 26 durchgeführten Tests endeten 23 erfolgreich: Der Roboter erreichte das Ziel, stieß auf keines der Hindernisse und war diesem nicht nahe. Die Ergebnisse dieser Tests sind in der PivotTable als Ziel gekennzeichnet. Der Roboter fiel am Ende nur eines Tests, nachdem er auf einen kleinen Stein getreten war. Normalerweise bewältigt das Gangkontrollsystem solche Situationen, diesmal jedoch nicht (das Ergebnis ist in der Tabelle als Fall - „Fall“ gekennzeichnet). In drei Tests stieß der Roboter auf große Hindernisse (mehr als 20 Meter breit). Der Roboter berechnete, welche Seite am besten um das Hindernis herumkommt, und rückte in einem bestimmten Zeitraum (20 Sekunden) nicht vor. Hindernisse dieser Größe gehen über den Rahmen hinaus, für den ein autonomes System entwickelt wurde. Die Ergebnisse dieser Tests sind in der Tabelle als Live-Lock angegeben.

In diesen 26 Tests wurde der Roboter in ziemlich ähnlichen Szenarien und mitten im Wald platziert. Wenn die Umgebung komplexer wird, steigt die Anzahl der Live-Lock-Ergebnisse und der Roboter wählt weniger effiziente Pfade aus.
Interessanter - bei robo-hunter.com :Unser YouTube-Kanal