Support-Zentrum besuchen Support-Zentrum besuchen Händler finden Händler finden Kontakt Kontakt

AMR Navigation Spotlight - Entscheidungsfindung und Sicherheit

Blogs Oktober 15, 2024

Willkommen zum achten Blog in unserer Serie AMR Navigation Spotlight, in der wir uns auf die Entscheidungsfindung und die Sicherheit bei AMR konzentrieren. Klicken Sie hier, um den vorherigen Blog der Serie zu lesenzu lesen, in dem es um Planung und Kontrollmechanismen geht.

In dieser Spotlight-Serie haben wir viele verschiedene Elemente des Robotersteuerungsstapels erwähnt. Wahrnehmung, Navigationund Bahnplanung um nur ein paar zu nennen. Nun ist es an der Zeit, das Modul zu betrachten, das wohl das Gehirn der ganzen Operation ist - das Entscheidungsfindungsmodul.

 

Was bedeutet Entscheidungsfindung und Sicherheit für Roboter?

Das Entscheidungsfindungsmodul enthält die übergeordnete Intelligenz und Logik, die bestimmt, wie Ihr autonomer mobiler Roboter sich unter verschiedenen Umständen verhalten wird. Im Allgemeinen enthält das Modul einen einzigen Rahmen, der auf bestimmte Bedingungen prüft und dann dem Roboter sagt, wie er reagieren soll, je nachdem, ob diese Bedingungen gegeben sind oder nicht.

Der Rahmen steuert alles, was Ihr Roboter tut, sei es das einfache Verfolgen von Pfaden, das Erkennen von Hindernissen oder sogar das Pflücken von Blumen. Es greift auf Daten zurück, die von verschiedenen anderen Modulen gesammelt werden, und kann so einfach oder komplex sein, wie Sie es brauchen.

Damit Sie einen Bezug zu den anderen Dingen herstellen können, über die wir geschrieben haben, ist das Entscheidungsfindungsmodul in OxTSzwischen der Steuerung und den Aktoren des Roboters angeordnet. Die Steuerung gibt also die Befehle für die Bewegung des Roboters zu seinem nächsten Wegpunkt, das Entscheidungsfindungsmodul entscheidet, ob die Bewegung sicher ist, und dann bewegt sich der Roboter. Man kann die verschiedenen Elemente des Prozesses auch anders anordnen, aber wir haben uns aus zwei Gründen für diesen Weg entschieden. Erstens wollten wir sicherstellen, dass alle Bedingungen für die Entscheidungsfindung erfüllt sind, bevor der Roboter in Bewegung gesetzt wird - deshalb ist das Modul nicht hinter den Aktuatoren angeordnet. Zweitens wollten wir die Möglichkeit ausschließen, dass der Roboter etwas anderes tut als das Ergebnis der Entscheidungsfindung - deshalb ist es das Allerletzte, das vor der Betätigung verarbeitet wird.

 

AMR mit QR-Code-Lokalisierung

 

AMR-Entscheidungsfindung und Sicherheit im Vergleich zu AI

Derzeit wird viel über KI und ihr Potenzial für Robotersteuerungssysteme geschrieben. Um den Zusammenhang zwischen AMR-Entscheidungsfindung und KI zu verdeutlichen, kann man sich KI als eine Möglichkeit vorstellen, automatisch ein komplettes Steuerungsgerüst für einen AMR zu erstellen und dieses Gerüst möglicherweise als Reaktion auf neue Ereignisse kontinuierlich zu aktualisieren. Vieles von dem, was als KI angepriesen wird, ist in Wirklichkeit ein extrem komplexer Rahmen, der die Intelligenz besser imitiert als weniger fortschrittliche Rahmen, der aber immer noch von einem Menschen geschaffen wurde und keine (oder nur eine sehr begrenzte) Fähigkeit zur Selbstkorrektur hat.

 

Warum ist die Entscheidungsfindung bei autonomen mobilen Robotern wichtig?

Einfach ausgedrückt: Entscheidungsfindung ist das "A" in "AMR". Sie ermöglicht es einem Roboter, Aufgaben auszuführen und auf Ereignisse zu reagieren, ohne dass der Mensch eingreifen muss. Das Entscheidungsfindungsmodul macht den Roboter auch sicherer, sofern der Rahmen Elemente enthält, die dem Roboter helfen, auf Risiken wie Hindernisse oder das Abweichen von seiner Bahn zu reagieren. Die Theorie der Entscheidungsfindung besagt, dass die Sicherheit das wichtigste Kriterium bei der Entwicklung eines AMR-Steuerungssystems sein sollte. Das Schlimmste, was passieren kann, ist, dass der AMR eine Person, anderes Eigentum oder sich selbst beschädigt.

Die Herausforderung bei der Entscheidungsfindung besteht darin, dass der Konstrukteur versuchen muss, alle Bedingungen zu erfassen, unter denen eine Entscheidung getroffen werden muss, sei es, um einen sicheren Betrieb aufrechtzuerhalten oder um eine Aufgabe zu erledigen. Es erfordert ein wenig Fantasie und Kreativität sowie die Zusammenarbeit mehrerer Köpfe, um einen Robotersteuerungsrahmen zu entwickeln, der für jedes Szenario geeignet ist.

 

Arten des Entscheidungsfindungsrahmens

Wie zu erwarten, gibt es verschiedene Möglichkeiten, einen Entscheidungsrahmen für einen AMR zu erstellen. Wir werden sie jetzt Schritt für Schritt durchgehen. Wenn Sie schon einmal mit Physiksimulationen oder der Programmierung von Videospielen gearbeitet haben, werden Sie einige dieser Systeme wiedererkennen - sie sind identisch. Die Prinzipien gelten unabhängig davon, ob Sie einem Roboter helfen zu entscheiden, wie er auf ein unerwartetes Hindernis reagieren soll, wie ein Partikel in einer Simulation reagieren soll oder wie sich ein NSC in einem Videospiel verhalten soll.

Wir werden all diese Systeme anhand eines sehr einfachen Beispiels von Entscheidungslogik demonstrieren. In Wirklichkeit wird Ihre Logik weitaus komplexer sein - aber für Lehrzwecke ist Einfachheit besser.

 

Rahmenwerk 1: endliche Zustandsautomaten

Endliche Zustandsautomaten (oder einfach nur Zustandsautomaten) bestehen aus einer Reihe von Zuständen, die durch Kreise dargestellt werden, mit Pfeilen, die bestimmte Bedingungen darstellen, die erforderlich sind, um von einem Zustand in einen anderen zu gelangen.

In AMRs sind die Zustände Aktionen des Roboters, während die Bedingungen normalerweise Eingaben von anderen Systemen oder einem Benutzer sind. Betrachten Sie dieses Beispiel:

 

 

Der Ausgangszustand des Roboters ist "Start up". Um von diesem Zustand in den nächsten Zustand "weiter dem Weg folgen" zu gelangen, muss der Benutzer dem Roboter sagen, dass er sich bewegen darf. Von diesem Zustand aus gibt es drei mögliche Bedingungen:

  1. Es wird kein Hindernis erkannt: Der Roboter folgt weiter dem Weg.
  2. Ein Hindernis wird erkannt: Der Roboter hält an.
  3. Der Benutzer sagt dem Roboter, dass er anhalten soll: Der Roboter hält an.

Ab dem Zustand "Roboter anhalten" muss der Benutzer dem Roboter sagen, dass er sich wieder frei bewegen kann, bevor er wieder beginnt, seinem Weg zu folgen. Wie gesagt, dies ist ein einfaches Beispiel; in der Realität würden Sie, sobald Ihr Roboter auf diese Weise angehalten hat, andere Bedingungen einbeziehen, die es ihm ermöglichen, den Weg wieder aufzunehmen, wie z. B. "Route neu berechnen".

Während Zustandsautomaten relativ einfach zu erstellen sind, können sie für komplexe Situationen, in denen es viele verschiedene Bedingungen und Zustände gibt, sehr kompliziert werden.

 

Rahmenwerk 2: Entscheidungsbäume

Wir stellen uns vor, dass dieses System am vertrautesten aussieht. Ein Entscheidungsbaum besteht aus Aktionsknoten (dargestellt durch Rechtecke), Entscheidungsknoten (dargestellt durch Kreise) und Verzweigungen (dargestellt durch Pfeile). Hier ist die gleiche Logik aus dem vorherigen Abschnitt, umgewandelt in einen Entscheidungsbaum:

 

 

Einer der größten Vorteile eines Entscheidungsbaums besteht darin, dass Sie eine Hierarchie von Entscheidungen erstellen können, die den Betrieb Ihres Roboters steuern. Es überrascht nicht, dass wir den Benutzer an die Spitze gesetzt haben - der Roboter kann nichts tun, bis der Benutzer ihm sagt, dass er sich bewegen darf. Danach prüft er, ob ein Hindernis vorhanden ist, und beginnt nur dann, dem Weg zu folgen, wenn es kein Hindernis gibt. Der Entscheidungsbaum wird in bestimmten Intervallen durchlaufen - es besteht also keine Notwendigkeit, mehrere Entscheidungsknoten "Hindernis erkannt" in den Baum einzufügen.

Sie werden hoffentlich zustimmen, dass der Entscheidungsbaum die gleiche Logik wie der Zustandsautomat darstellt, aber auf einfachere Weise. Das bedeutet, dass es einfacher ist, eine komplexere Logik mit Hilfe von Entscheidungsbäumen zu erstellen. Wenn die Komplexität jedoch zunimmt, gibt es noch einen dritten Rahmen, den Sie verwenden können: den Verhaltensbaum.

 

Rahmenwerk 3: Verhaltensbäume

Verhaltensbäume sehen den Entscheidungsbäumen sehr ähnlich, aber sie funktionieren ganz anders. Sie haben zwar immer noch eine Hierarchie von Knoten, die das Verhalten Ihres Roboters steuern, aber sie enthalten verschiedene Arten von Knoten, mit denen Sie den Entscheidungsfluss innerhalb Ihres Roboters steuern können. Werfen wir einen Blick auf unsere Beispiellogik in einem Verhaltensbaum - mit ein paar hinzugefügten Bits, um alle Konzepte zu demonstrieren:

 

 

Wir haben hier drei verschiedene Komponenten:

  1. Der Startknoten oben (mit dem Symbol ø) ist einfach der Anfang des Baums.
  2. Dann haben wir einen Ablaufsteuerungsknoten (auch bekannt als zusammengesetzter Knoten), der ein Knoten ist, der ein oder mehrere Kinder haben kann. Es gibt zwei Arten: Sequenzknoten (mit dem → Symbol) und Selektorknoten (mit dem ? Symbol).
  3. Unterhalb der Flusskontrollknoten gibt es Blattknoten. Blattknoten haben keine Kinder und sind entweder Abfragen oder Aktionen, die der Roboter ausführt.

Alle drei Knotentypen können drei Zustände annehmen: Laufen, Erfolg oder Misserfolg. Und genau wie beim Entscheidungsbaum wird der Roboter, sobald er den Baum durchlaufen hat, den Vorgang in bestimmten Abständen wiederholen.

 

Sequenz vs. Selektor-Knoten

Diese Knoten verarbeiten beide die unter ihnen liegenden Kindknoten von links nach rechts, reagieren aber auf die Ergebnisse dieser Kindknoten auf unterschiedliche Weise.

Sequenzknoten geben nur dann ein Erfolgsergebnis zurück, wenn alle ihre Kindknoten ein Erfolgsergebnis zurückgeben. Wenn ein untergeordneter Knoten ein Fehlerergebnis liefert, beendet der Sequenzknoten die Verarbeitung der untergeordneten Knoten und gibt ein Fehlerergebnis zurück.

Selektorknoten hingegen geben ein Erfolgsergebnis zurück, sobald sie ihr erstes Erfolgsergebnis von einem Kindknoten erhalten, und beenden die Verarbeitung der restlichen Kindknoten, sobald sie dies tun.

Schauen wir uns also unseren Verhaltensbaum an:

  • Zuerst haben wir unseren Startknoten. Vorsicht!
  • Als nächstes haben wir einen Sequenzknoten. Das bedeutet, dass er alle untergeordneten Knoten von links nach rechts durchläuft und erst aufhört, wenn alle seine untergeordneten Knoten ein erfolgreiches Ergebnis liefern.
  • Der erste untergeordnete Knoten ist "Weiter dem Weg folgen" - der Roboter fährt also los.
  • Sobald sich der Roboter bewegt, gibt dieser erste Knoten ein "erfolgreiches" Ergebnis zurück, so dass der Sequenzknoten mit der Verarbeitung seines zweiten Unterknotens fortfährt: dem Selektorknoten.
  • Der Selektorknoten arbeitet jedes seiner Kinder von links nach rechts ab - auf der Suche nach Hindernissen oder einem Stoppbefehl. Wenn einer dieser Befehle ein erfolgreiches Ergebnis liefert, tut dies auch der Selektorknoten.
  • Wenn dies der Fall ist, bearbeitet der Sequenzknoten jetzt sein drittes Kind und hält den Roboter an. Andernfalls bewegt sich der Roboter weiter.

Der Baum stellt also sicher, dass der Roboter sich erst dann bewegen kann, wenn er einen Befehl erhalten hat, und sorgt dann dafür, dass er, sobald er sich bewegt, anhält, wenn er ein Hindernis entdeckt, von seinem Weg abweicht oder sein Ziel erreicht. Toll, nicht wahr?

Durch die Möglichkeit, Kontrollflussknoten zu kombinieren (und zu verschachteln), die jeweils unterschiedliche Entscheidungen und Aktionen steuern, eignen sich Verhaltensbäume hervorragend für die Entwicklung wirklich komplexer Verhaltensweisen.

 

Der OxTS Prototyp als Entscheidungsträger

Für unseren eigenen Roboter haben wir uns für die Verwendung eines Entscheidungsbaums entschieden. Dies entspricht dem berühmten KISS-Prinzip - "keep it simple, stupid!" für die Uneingeweihten. Wir wollten eine hierarchische Reihe von Bedingungen entwerfen, die der Roboter erfüllen musste, bevor er einem Pfad folgen konnte; ein Verhaltensbaum war komplexer, als wir dafür brauchten. Und ein endlicher Zustandsautomat war nicht anspruchsvoll genug; wir hätten einen sehr komplexen Automaten gebraucht, um das zu tun, was wir wollten.

Hier ist sie in ihrer ganzen Pracht:

 

 

Wir begannen mit den drei Aktionen, die der Roboter ausführen kann: "Pfad folgen", "anhalten" und "langsamer werden". Dann wollten wir festlegen, wann der Roboter jede dieser Aktionen ausführen soll. Der Baum durchläuft alle Sicherheitsprüfungen, die der Roboter durchführen muss, um sich sicher zu bewegen - das sind die einzelnen Entscheidungsknoten:

  • An der Spitze steht natürlich der menschliche Befehl, der dem Roboter mitteilt, dass er sich bewegen darf - wir wollen nie, dass der Roboter losfährt, ohne dass man ihm gesagt hat, dass er sich bewegen darf.
  • Dann wollen wir, dass der Systemmonitor läuft, damit ein Beobachter (entweder ein Mensch oder ein Überwachungssystem) etwaige Probleme mit dem Roboter erkennen kann.
  • Anschließend prüft der Roboter, ob er sich noch auf dem richtigen Weg befindet (die Toleranz lässt eine Abweichung um einen vordefinierten Betrag zu - je nach Anwendung vielleicht ein paar Zentimeter).
  • Dann prüft der Roboter, ob sich ein Hindernis in seiner Nähe befindet. Wenn ja, hält er an.
  • Wenn sich keine Objekte in der Nähe des Roboters befinden, prüft er, ob Objekte am Horizont zu sehen sind. Ist dies der Fall, wird der Roboter langsamer, ist dies nicht der Fall, folgt er dem Weg.

 

Wir haben den Prototyp so konzipiert, dass alle Module parallel laufen. Das heißt, wenn der Roboter überprüfen muss, ob er sich auf dem Weg befindet oder ob ein Hindernis in der Nähe ist, stehen die Daten bereit - er muss also keine Pause einlegen, während die Berechnungen durchgeführt werden.

Die Entwicklung der Logik erforderte eine Menge Tests. Wir ließen die Logik durch Softwaresimulationen laufen, um zu überprüfen, ob das System unter den verschiedenen Bedingungen, denen der Roboter begegnen könnte, die richtigen Ergebnisse liefert. Sobald dies erfolgreich war, setzten wir es auf dem Roboter ein, um es live zu testen. Die Logik war so einfach, dass wir sie nicht wirklich durch eine virtuelle Simulation des Roboters laufen lassen mussten.

Und damit ist unser Blog zum Thema Entscheidungsfindung abgeschlossen! Wir hoffen, er hat Ihnen bei der Planung Ihrer eigenen Entscheidungslogik geholfen.

Autonome Roboternavigation - Kurzbeschreibung

AMRs benötigen eine robuste Lösung zur Lokalisierung von Robotern; ein Werkzeug, das nicht nur die Position und Orientierung des Roboters erfasst, sondern auch in Innenräumen und im Freien funktioniert.

In dieser Lösungsübersicht gehen wir auf die Aspekte ein, die wir unseren Kunden empfehlen, wenn sie sich für eine Lokalisierungsquelle für ihre autonomen mobilen Roboter entscheiden.

Lesen Sie die Lösungsbeschreibung um zu erfahren, wie die richtige Roboterlokalisierungslösung Ihr AMR-Projekt unterstützen kann, einschließlich der wichtigsten Fragen, die Sie sich stellen müssen, bevor Sie ein Projekt in Angriff nehmen.

AMR Solution Brief

Wir hoffen, dass Ihnen dieser Blog gefallen hat und dass er Ihnen geholfen hat, wenn Sie gerade erst mit der AMR-Reise beginnen.

Wenn Sie mehr darüber erfahren möchten, was wir derzeit für AMR-Ingenieure tun können, besuchen Sie unsere Bewerbungsseite.

Wenn Sie ein bestimmtes Projekt haben, über das Sie mit uns sprechen möchten, können Sie uns auch über das unten stehende Formular kontaktieren. Wir freuen uns immer darauf, die neuesten und besten Robotikprojekte zu besprechen.

Halten Sie Ausschau nach dem nächsten Blog in unserer Serie, in der wir alle AMR Navigation Spotlight-Blogs dieses Jahres zusammenfassen!



zurück zum Anfang

Zurück nach oben

Ashburn, US