DE68921857T2 - Methode und Vorrichtung zur Steuerung der Fortbewegungsrichtung eines Fahrzeuges und mit so einer Vorrichtung ausgestattetes Fahrzeug. - Google Patents

Methode und Vorrichtung zur Steuerung der Fortbewegungsrichtung eines Fahrzeuges und mit so einer Vorrichtung ausgestattetes Fahrzeug.

Info

Publication number
DE68921857T2
DE68921857T2 DE68921857T DE68921857T DE68921857T2 DE 68921857 T2 DE68921857 T2 DE 68921857T2 DE 68921857 T DE68921857 T DE 68921857T DE 68921857 T DE68921857 T DE 68921857T DE 68921857 T2 DE68921857 T2 DE 68921857T2
Authority
DE
Germany
Prior art keywords
state
states
box
vehicle
configuration space
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE68921857T
Other languages
English (en)
Other versions
DE68921857D1 (de
Inventor
Leendert Dorst
Karen Irene Trovato
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Koninklijke Philips NV
Original Assignee
Philips Electronics NV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Philips Electronics NV filed Critical Philips Electronics NV
Application granted granted Critical
Publication of DE68921857D1 publication Critical patent/DE68921857D1/de
Publication of DE68921857T2 publication Critical patent/DE68921857T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B62LAND VEHICLES FOR TRAVELLING OTHERWISE THAN ON RAILS
    • B62DMOTOR VEHICLES; TRAILERS
    • B62D15/00Steering not otherwise provided for
    • B62D15/02Steering position indicators ; Steering position determination; Steering aids
    • B62D15/027Parking aids, e.g. instruction means
    • B62D15/0285Parking performed automatically
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • B25J9/1666Avoiding collision or forbidden zones
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B62LAND VEHICLES FOR TRAVELLING OTHERWISE THAN ON RAILS
    • B62DMOTOR VEHICLES; TRAILERS
    • B62D15/00Steering not otherwise provided for
    • B62D15/02Steering position indicators ; Steering position determination; Steering aids
    • B62D15/025Active steering aids, e.g. helping the driver by actively influencing the steering system after environment evaluation
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/406Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by monitoring or safety
    • G05B19/4061Avoiding collision or forbidden zones
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • G05D1/0217Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory in accordance with energy consumption, time reduction or distance reduction criteria
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0268Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
    • G05D1/0272Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means comprising means for registering the travel distance, e.g. revolutions of wheels
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/35Nc in input of data, input till input file format
    • G05B2219/354153-D three dimension, space input, spaceball
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40443Conditional and iterative planning
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40476Collision, planning for collision free path
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/49Nc machine tool, till multiple
    • G05B2219/49143Obstacle, collision avoiding control, move so that no collision occurs
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0246Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • General Physics & Mathematics (AREA)
  • Mechanical Engineering (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Chemical & Material Sciences (AREA)
  • Transportation (AREA)
  • Combustion & Propulsion (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Robotics (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
  • Control Of Driving Devices And Active Controlling Of Vehicle (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

  • Die Erfindung betrifft eine Vorrichtung zum Planen einer Strecke, der ein Fahrzeug durch einen gegebenen Aktionsraum von einem Ausgangspunkt zu einem Zielpunkt folgen soll, wobei die Strecke ein gegebenes Kostenkriterium erfüllt, das Fahrzeug auf mindestens einem Rad und einem drehbaren oder gleitenden Träger bewegbar ist, das genannte Rad nahezu an einem Ende des Fahrzeugs positioniert ist und steuerbar ist und der genannte Träger nahezu am anderen Ende des Fahrzeugs positioniert ist, insbesondere zum Parken eines Robotfahrzeugs oder eines Autos. Dies ist ein spezielles Beispiel für das Planen einer optimalen Strecke, der ein Gegenstand von einem gegebenen Ausgangspunkt zu dem nächstgelegenen Ziel aus einer Menge von Zielen unter Berücksichtigung von Einschränkungen und Hindernissen folgen soll. Manövrieren erfolgt typischerweise in einem solchen Maßstab, daß die Abmessungen des Fahrzeugs nicht vernachlässigt werden dürfen.
  • Ein hervorstechendes Problem in der Robotik ist das Umgehen von Hindernissen, und die Bewegung als Ganzes sollte so effizient wie sinnvollerweise möglich erfolgen. Die Planung der Strecke sollte so schnell wie möglich erfolgen, beispielsweise durch Angabe einer Reihe von Sollwerten.
  • Es gibt bereits eine Anzahl von Robotern. In der Regel werden sie mit einer Programmiersprache gesteuert, wie Val II, die in Unimation, Inc. "Programming Manual: User's Guide to Val II: Version 2.0 398AG1, Dezember 1986 beschrieben ist. Val II kann zum Steuern von Erzeugnissen wie zum Beispiel den Puma-Robotern und Expertenrobotern von Unimation verwendet werden. Nach Val II kann ein Anwender die Bewegung eines Roboters von einem gegenwärtigen Punkt zu einem gewünschten Punkt mit dem Befehl MOVE POINT (), Seite 4-20 des Handbuchs, vorgeben. Punkte werden im allgemeinen in Gelenkkoordinaten generiert. Für ein Streckenplanungsverfahren reicht es daher aus, eine Menge von Sollwerten zu generieren, die in den entsprechenden Val-II-Befehl einzusetzen sind. Die Technologie ist vorhanden, daß der Roboter eine Strecke zurücklegt, sobald die Sollwerte generiert sind.
  • Typische Industrieroboter verwenden manuell generierte Sollwerte. Derartige manuell generierte Sollwerte reichen zum Ausführen einer einfachen, sich wiederholenden Aufgabe wie zum Beispiel einer automatisierten Montage in einer Umgebung, die sich von einer Aufgabe zur nächsten nicht verändert, aus. Bei dynamischen Situationen oder bei Situationen mit zahlreichen Hindernissen oder bei komplex geformten Hindernissen sind manuell generierte Sollwerte unzweckmäßig und die zurückgelegten Wege häufig ineffizient. Daher besteht Bedarf an einem Verfahren zum automatischen Generieren von Sollwerten.
  • Ein bekanntes Verfahren generiert automatisch eine Menge von Punkten entlang einer optimalen Strecke. Die Menge von Punkten gestattet es einem Roboter, von einem Ausgangspunkt zu einem Punkt aus einer Menge von Zielpunkten zu gelangen. Einer der Zielpunkte wird vor den anderen bevorzugt, weil er die Bewegung des Roboters minimiert. Dieses bekannte Verfahren ist in L. Dorst et al. "The Constrained Distance Transformation, A Pseudo-Euclidean, Recursive Implementation of the Lee- algorithm", Signal Processing III (herausgegeben von I.T. Yount et al.; Elsevier Science Publishers B.V., EURASIP 1986) ("L. Dorst et al.") und in P.W. Verbeek et al. "Collision Avoidance and Path Finding through Constrained Distance Transformation in Robot State Space", Proc. Conf. Dec 8-11, 1986, Amsterdam, Seiten 627-634 beschrieben. Das bekannte Verfahren plant Strecken im Konfigurationsraum des Roboters. Hindernisse für die Roboterbewegung sind durch nichtzulässige Zustände im Konfigurationsraum dargestellt. In diesem Raum ist die Menge von Sollwerten in sogenannten Gelenkkoordinaten, das heißt einem Satz von Koordinaten, die zum direkten Steuern der Gelenke des Roboters verwendet werden können, angegeben. Komplizierte Koordinatentransformationen sind nicht erforderlich. Ein Vorteil des bekannten Verfahrens ist die einfache Art und Weise, in der es auf mehr Freiheitsgrade ausgeweitet werden kann.
  • Bisher ist der Weg im Konfigurationsraum in drei Schritten gefunden worden:
  • 1) Die Hindernisse und Ziele des Roboters werden von Punkten im Aktionsraum in Zustände im Konfigurationsraum transformiert. Der Konfigurationsraum wird diskretisiert.
  • 2) Es wird ein Kostenfeld erzeugt, das die zum Erreichen des nächstliegenden Zielzustandes erforderlichen Gesamtkosten in jedem Zustand im Konfigurationsraum angibt. Das verwendete spezielle Verfahren zum Erzeugen des Kostenfeldes ist in L. Dorst et al. beschrieben. Das Verfahren besteht aus einem wiederholten Abtasten des vollständigen Konfigurationsraums und gleichzeitiger Durchführung einer Basis-Kostenausbreitungsoperation in jedem Zustand.
  • 3) Ab dem Ausgangszustand werden Maßnahmen in Richtung des Kostengradienten des Kostenfeldes ergriffen, bis der Zieizustand erreicht ist. Die unterwegs durchlaufenen Zustände bilden die kürzeste Strecke vom Start zum Ziel und können als die Menge von Sollwerten verwendet werden.
  • Die Schritte 1) und 2) werden für einen bestimmten Roboter und eine bestimmte Menge von Hindernissen und Zielen nur einmal ausgeführt. Mit dem gleichen Kostenfeld kann Schritt 3) für verschiedene Ausgangszustände ausgeführt werden.
  • Das oben genannte Verfahren hat mehrere Nachteile. Erstens muß beim Schritt 2) der gesamte Konfigurationsraum mehrmals abgetastet werden. Zweitens sind die betrachteten Arten einer Kostenmetrik beschränkt. Insbesondere die Kosten von Übergängen zwischen Zuständen im Konfigurationsraum werden für eine bestimmte Richtung als gleich angesehen, ohne Rücksicht auf den Zustand, in dem die Kosten berechnet werden. Diese Beschränkungen setzen den Anwendungen in der Praxis Grenzen. Zum Beispiel ist es nicht möglich, einen Weg für einen Roboterarm mit Drehgelenken zu finden, der zu einer minimalen Bewegung eines Endstücks führt. Zeitminimierte Wege zu finden, ist nur bei einigen wenigen Robotern, die nur begrenzte praktische Anwendung finden, möglich. Ein dritter Nachteil ist, daß ein Folgen des Gradienten eine Berechnung des Gradienten an jedem Punkt des Wegs erfordert.
  • Bisher war eine als A* bekannte Suchtechnik bekannt, siehe z.B. N.J. Nilson, Principles of Artificial Intelligence, Kapitel 2 (Tioga 1980)
  • Nach dem Ausbreiten von Kostenwellen kann sich ein Aspekt des Konfigurationsraums ändern, beispielsweise wenn ein Hindernis entfernt oder ein Ziel hinzugefügt worden ist. In einem solchen Fall kann es ineffizient sein, erneut Kostenwellen durch den gesamten Konfigurationsraum auszubreiten, weil nur ein kleiner Teil des Konfigurationsraums betroffen zu sein braucht.
  • Ein weiteres Problem, das nach einer Änderung im Konfigurationsraum auftritt, ist, daß der genaue Ort der Änderungen, insbesondere hinsichtlich der Orte von Hindernissen unbekannt sein kann.
  • Ein Lösungsansatz für dieses Problem ist in V. Lumelsky "Algorithmic and Complexity Issues of Robot Motion in an Uncertain Environment", Journal of Complexity 3, 146-182 (1987) sowie in V. Lumelsky "Dynamic Path Planning for a Planar Articulated Robot Arm Moving Amidst Unknown Obstacles", Automatica, Band 23, Nr. 5, S. 551-570 (1987) beschrieben. Dieser Ansatz hat jedoch gewisse Nachteile. So kann das beschriebene Verfahren nur zweidimensionale Funktionen ausführen. Außerdem werden die sich auf vorherige Hindernisse beziehenden Daten nicht gespeichert.
  • Ein Anzahl Forschungsprojekte haben das Problem elektronischer Straßenkarten für Fahrzeuge behandelt.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Der Erfindung liegt daher als Aufgabe zugrunde, die Manöver eines Fahrzeuges mit nicht vernachlässigbaren Abmessungen zu steuern.
  • Der Erfindung liegt als weitere Aufgabe zugrunde, die Manöver eines Fahrzeuges zu steuern, das hier mit "Budding" und "Differentialbudding" bezeichnete Techniken verwendet.
  • Der Erfindung liegt als noch weitere Aufgabe zugrunde, einen effizienten Vorrang beim Suchen einer Nachbarschaft eines gegebenen Zustandes im Konfigurationsraum aufzustellen.
  • Diese Aufgaben werden erfindungsgemäß dadurch gelöst, daß die Vorrichtung Mittel zum Speichern einer internen Repräsentation einer nahen Umgebung des Fahrzeugs umfaßt, Mittel zur Repräsentation einer Lage des Fahrzeugs in dem gegebenen Aktionsraum, wobei die Lage in bezug auf einen festen Punkt des Fahrzeugs gemessen wird, und Mittel zum Berechnen einer auf der internen Repräsentation beruhenden Manövriertrajektorie. Die nahe Umgebung ist ein Gebiet, in dem das Manövrieren stattfindet: Seine Größe liegt in ungefahr der gleichen Größenordnung wie die Größe des Fahrzeugs.
  • Diese Aufgaben werden weiterhin erfindungsgemäß dadurch gelöst, daß der feste Punkt bezüglich des Trägers bei einem Symmetriepunkt positioniert ist.
  • Das Fahrzeug hat einen drehbaren oder gleitenden Träger, beispielsweise ein Rad, ein Paar Räder, eine oder mehr Kufen, eine Schlittensohle usw. Wenn dieser Träger nicht steuerbar ist, führt die Wahl eines festen Punktes an einem Symmetriepunkt relativ zu diesem Träger zu bestimmten Rationalisierungen bei der Berechnung: Es ist ein Drehpunkt des Fahrzeugs. Falls der Träger aus einem einzigen Rad, einer einzigen Kufe oder Schlittensohie besteht, liegt dieser Symmetriepunkt im Zentrum des Trägers. Falls der Träger aus zwei Rädern, Kufen oder Schlittensohlen besteht, liegt der Symmetriepunkt in der Mitte zwischen beiden. Bei drei Rädern liegt der Punkt im Zentrum des mittleren Rades usw.
  • Erfindungsgemäß werden diese Aufgaben des weiteren durch Verwendung einer Kostenmetrik, die in hier als "raumvariante Metrik" bezeichnet wird, gelöst.
  • Diese Aufgaben werden erfindungsgemäß weiterhin durch ein hier als "Richtungspfeilen folgen" bezeichnetes Verfahren gelöst.
  • Weiterhin werden diese Aufgaben erfindungsgemäß durch Verwendung der raumvarianten Metrik in einem mehrdimensionalen Konfigurationsraum gelöst.
  • Das Verfahren des Differentialbudding schließt Identifizieren eines Gebiets im Konfigurationsraum ein, das von einer Änderung von Bedingungen im Aktionsraum betroffen ist. Exakt selektierte Zustände, die als Perimeter bezeichnet werden und dieses Gebiet definieren, werden dann auf einer "Filterhalde" ("sifting heap") angeordnet, von der aus sie dem Budding unterzogen werden.
  • Wird ein Hindernis hinzugefügt, umschließt der Perimeter die Vorderkante des Hindernisses und umgibt eine Gruppe von Zuständen, die mittels Richtungspfeilen mit der Hinterkante des zusätzlichen Hindernisses verbunden sind.
  • Werden Hindernisse entfernt, sind die Perimeterzustände Nachbarn der weggenommenen Hinderniszustände.
  • Werden Ziele hinzugefügt, sind die Perimeterzustände die Zustände der zusätzlichen Ziele selbst.
  • Im Fall teilweise erkannter Veränderungen der Bedingungen werden die veränderten Bedingungen während des Durchlaufens einer vorausberechneten Strecke erkannt. Die meisten Änderungen der Bedingungen können als hinzugekommenes Hindernis, weggenommenes Hindernis, hinzugekommenes Ziel oder weggenommenes Ziel behandelt werden. In einer der Ausführungsformen der Erfindung trifft der Gegenstand zunächst auf einen Teil der veränderten Bedingungen und folgt iterativ einer neu berechneten Strecke, bis die veränderten Bedingungen ausreichend berücksichtigt sind, d.h., bis eine neue Strecke gefunden ist.
  • Weitere Aufgaben und Vorteile der Erfindung werden im folgenden deutlich gemacht.
  • KURZE BESCHREIBUNG DER ZEICHNUNG
  • Ausführungsbeispiele der Erfindung sind in der Zeichnung dargestellt und werden im folgenden näner beschrieben. Es zeigen:
  • Fig. 1a einen groben Ablaufplan zur Darstellung des Konzepts des Verfahrens zur Streckenplanung;
  • Fig. 1b einen detaillierteren Ablaufplan von Kästchen 154 von Fig. 1a;
  • Fig. 2 eine als Konfigurationsraum verwendete Datenstruktur;
  • Fig. 3 einen Ablaufplan einer alternativen Ausführungsform des "Budding" genannten Streckenplanungsverfahrens;
  • Fig. 4 einen knappen Ablaufplan des Differentialbuddingverfahrens;
  • Fig. 5 und 6 Ablaufpläne mit näheren Details des Kästchens 110 in Fig. 4;
  • Fig. 7 und 8 Ablaufpläne mit näheren Details des Kästchens 120 in Fig. 4;
  • Fig. 9 und 10 Ablaufpläne mit näheren Details des Kästchens 130 in Fig. 4;
  • Fig. 11 einen Ablaufplan für die Behandlung von Phantom-Veränderungen der Bedingungen;
  • Fig. 12 eine schematische Darstellung eines Fahrzeugs im Aktionsraum;
  • Fig. 13 eine Transformation einer Nachbarschaft in einen Aktionsraum;
  • Fig. 14 a, b, c und d eine Transformation eines Hindernisses vom Aktionsraum in den Konfigurationsraum;
  • Fig. 15 ein Schirmbild einer Sun-Workstation, auf der eine Simulation abläuft;
  • Fig. 16 eine Erläuterung des Vorrangs bei der Suche eines gegebenen Satzes von Nachbarn;
  • DETAILLIERTE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORM A. Definition einiger Begriffe
  • Ein Roboter hat Freiheitsgrade. Die Freiheitsgrade sind die unabhängigen Parameter, die zur Festlegung seiner Position in seinem Aktionsraum erforderlich sind. Es folgen einige Beispiele. Eine Scharniertür hat 1 Freiheitsgrad. Anders gesagt: jede Stellung kann durch einen Parameter, einen Öffnungswinkel, gekennzeichnet werden. Ein Roboter, der sich frei durch eine Fabrikhalle bewegt, hat zwei Freiheitsgrade, beispielsweise die x- und y-Ortskoordinaten. Ein Gegenstand im Raum kann als Gegenstand mit sechs Freiheitsgraden angesehen werden. Die 6 unabhängigen Parameter, die angegeben werden müssen, sind drei Ortskoordinaten und drei Orientierungswinkel. Daher muß ein Roboter, der einen Gegenstand in eine beliebige Position und Orientierung im Raum bringen soll, mindestens sechs Freiheitsgrade haben. Ein Beispiel für einen im Handel erhältlichen Roboter mit sechs Freiheitsgraden ist der von Unimation, Inc. hergestellte Puma 562.
  • Ein Rotations-Freiheitsgrad ist ein Freiheitsgrad, der einem Winkel um eine Rotationsachse eines Robotergelenks entspricht. Ein Rotations-Freiheitsgrad ist ein periodischer Parameter mit Werten von 0º bis 360º; das heißt, 360º entsprechend derselben Konfiguration des Roboters wie 0º. Translations-Freiheitsgrade entsprechen nichtperiodischen Parametern, die Werte über einen unendlichen Bereich annehmen können. Gewöhnlich sind die Bereiche sowohl der Rotations- als auch der Translations- Freiheitsgrade durch die Reichweite des Roboters begrenzt.
  • Der "Konfigurationsraum" eines Roboters ist der von den Parametern des Roboters abgedeckte Raum. Der Konfigurationsraum hat für jeden Freiheitsgrad des Roboters eine Dimension. Ein Punkt im Konfigurationsraum soll hier als "Zustand" bezeichnet werden. Jeder "Zustand" in einem n-dimensionalen Konfigurationsraum ist durch einen Satz von n Werten der n Freiheitsgrade des Roboters gekennzeichnet. Ein Roboter in der durch den Wertesatz gekennzeichneten Position befindet sich in einer bestimmten Konfiguration. Die Menge von Zuständen im Konfigurationsraum entspricht der Menge aller möglichen Roboterkonfigurationen.
  • Zur Berechnung wird der Konfigurationsraum "diskretisiert". Das heißt, daß für Berechnungen nur eine begrenzte Anzahl von Zuständen verwendet wird.
  • Figur 2 zeigt eine Datenstruktur 203, die als Konfigurationsraum eines Roboters mit zwei Freiheitsgraden verwendet wird. Die Datenstruktur 203 ist eine MxN-Matrix von Konfigurationszuständen. Die Zustände werden durch ihre Indizes (i,j) gekennzeichnet, wobei i einen Zeilenindex und j einen Spaltenindex darstellen. Jeder Zustand (i,j) ist ebenfalls eine Datenstruktur, wie bei 201 gezeigt, und hat ein Kosten- bis-zum Ziel-Feld 202 und ein Richtungspfeil-Feld 204. Diese Felder werden, wie nachstehend beschrieben, mittels "Budding" gefüllt. Das Kosten-bis-zum Ziel-Feld 202 enthält im allgemeinen eine Zahl, die die Kosten des Übergangs vom derzeitigen Zustand zum nächstgelegenen "Zielzustand" darstellt. "Zielzustände" stellen potentielle Endpunkte der zu planenden Strecke dar.
  • Die Kosten eines Übergangs im Konfigurationsraum sind eine Darstellung eines "Kriteriums" oder einer Beschränkung im Aktionsraum. Ein Kriterium sind Kosten, die ein Anwender optimieren möchte. Beispiele von Kriterien, die ein Anwender wählen kann, sind: Kraftstoffmenge, Zeit, Entfernung, Verschleiß von Roboterteilen und Gefahr.
  • Das Richtungspfeil-Feld 204 kann null oder mehr Pfeile enthalten, die eine Richtung des besten Übergangs vom derzeitigen Zustand in einen Nachbarzustand in Richtung auf den Zielzustand im Konfigurationsraum anzeigen, wodurch man eine Strecke mit den niedrigsten Gesamtkosten erhält.
  • Pfeile werden aus Mengen zulässiger Übergänge zwischen benachbarten Zuständen innerhalb des Konfigurationsraums ausgewählt. Der Begriff "Nachbarzustand" wird hier für einen Zustand verwendet, der von einem gegebenen Zustand um einen einzigen zulässigen Übergang entfernt liegt. Ein Satz von Pfeilen könnte {nach oben, nach unten, rechts, links} sein, wobei "nach oben" beispielsweise einen Übergang zum Zustand direkt über dem derzeitigen Zustand bedeuten würde. Eine weiterer Satz von Pfeilen könnte {NORD, SÜD, OST, WEST, NO, NW, SO, SW} sein. Und ein dritter Satz von Pfeilen könnte {(0,1), (1,0), (0,-1), (-1,0), (1,1), (1,-1), (-1,1), (-1,-1), (1,2), (-1,2), (1,-2), (-1,-1), (2,1), (-2,1), (2,-1), (-2,-1)} sein. Es ist anzumerken, daß die Pfeile "nach oben", "NORD" und "(-1,0)" alle Repräsentationen desselben Übergangs im Konfigurationsraum sind. Im allgemeinen kann ein Fachmann eine Reihe von Sätzen zulässiger Übergänge je nach den Anforderungen bestimmter Anwendungen ersinnen. Sobald eine Gruppe zulässiger Übergänge ersonnen ist, kann jede eindeutige symbolische Repräsentation des Satzes zulässiger Übergänge als Richtungspfeile verwendet werden. Im Fall der Richtungen (1,2), (-1,2), (1,-2), (-1,-2), (2, 1), (-2,1), (2,-1) und (-2,-1) erfordert der Übergang zu einem "Nachbar"-Zustand in einer zweidimensionalen Matrix 203 tatsächlich einen "Rösselsprung", ein Begriff, der aus dem Schachspiel bekannt ist. Beispielsweise stellt (1,-2) den Zug "einen Schritt nach unten und zwei nach rechts" in die Nachbarrichtung dar.
  • Im Konfigurationsraum ist eine Metrik definiert. Die "Metrik" gibt für jeden Zustand im Konfigurationsraum die Kosten eines Übergangs zu irgendeinem benachbarten Zustand an. Diese Metrik kann durch eine Funktion angegeben werden. Beispielsweise kann eine lokal euklidische Metrik wie folgt definiert werden: Bei einem Zustand (i,j) werden die Kosten eines Übergangs in einen von (i,j) um den Richtungspfeil (di,dj) entfernten Nachbarn aus durch di di+dj dj gegeben. In anderen Fällen ist es bequemer, die Metrik im voraus zu berechnen und zu speichern. Hindernisse können in der Metrik durch Übergänge mit unendlichen Kosten dargestellt werden. Bin Übergang zwischen zwei beliebigen Zuständen muß als Serie von Übergängen von Nachbar zu Nachbar dargestellt werden. Die Kosten einer beliebigen Strecke von einem Ausgangszustand zu einem Zielzustand sind die Summe der Kosten der Übergänge von Nachbar zu Nachbar entlang der Strecke.
  • Beim Budding wird eine als Halde bezeichnete Standard-Datenstruktur verwendet, um eine Anordnung der Zustände zu speichern. Dies ist nur eines von vielen möglichen Anordnungssystemen, jedoch gilt die Halde als wirksamster Ansatz für Implementierungen mit einer geringen Zahl von parallelen Prozessoren. Die Halde ist ein symmetrischer binärer Baum von Knoten, die jeweils einen Konfigurationszustand darstellen. In der bevorzugten Ausführungsform speichern die Knoten tatsächlich die Indizes entsprechender Konfigurationszustände. In der Halde hat jeder übergeordnete Zustand niedrigere Kosten bis zum Ziel als jeder seiner beiden untergeordneten Zustände. Daher ist der Zustand an oberster Stelle der Halde, der mit dem niedrigsten Kosten-bis- zum Ziel-Wert. Halden sind bekannte Datenstrukturen, die mit bekannten Verfahren verwaltet werden. Eine Beschreibung von Halden und Haldenverwaltung findet sich in Aho et al. "The Design and Analysis of Computer Algonthms". (Addison-Wesley 1974), S. 87-92. In einer anderen Ausführungsform können beim Budding andere Arten des Anordnens von Zuständen verwendet werden. Zum Beispiel kann eine Schlange verwendet werden. Dies bedeutet, daß beim Budding Knoten nicht unbedingt in der Reihenfolge niedrigerer Kosten entwickelt werden.
  • B. Übersicht über das Budding
  • Fig. 1a gibt einen allgemeinen Überblick über die Schritte der Erzeugung einer Menge von Sollwerten mit dem erfindungsgemäßen Verfahren.
  • Im Kästchen 150 wird der Konfigurationsraum erstellt und zulässige Richtungspfeile angegeben. Ein Fachmann kann hierfür verschiedene Möglichkeiten ersinnen.
  • Eine der Optionen, die das Verfahren bietet, ist die interaktive Spezifikation von Aspekten des Konfigurationsraums. Die Anzahl von Zuständen in einem Konfigurationsraum kann so gewählt werden, daß sie wiedergibt, wie fein oder grob ein Anwender eine Strecke planen will. Der Satz Richtungspfeile kann umfassender gewählt werden, um eine feinere Steuerung der Richtung zu erhalten. Der Satz Richtungspfeile kann weniger umfassend gewählt werden, wenn die Geschwindigkeit der Streckenplanung eine wichtigere Rolle spielt als die Feinsteuerung der Richtung.
  • Andere Möglichkeiten, den Konfigurationsraum und Richtungspfeile zu spezifizieren, sind ihre Codierung in einem Programm oder Festverdrahtung in einer Schaltung. Diese Optionen bieten weniger Flexibilität, sie können jedoch zu einer effizienteren Verarbeitung führen.
  • Im Kästchen 151 wird eine "Hintergrundmetrik" durch ein Kriterium eingebracht. Eine Hintergrundmetrik gilt im gesamten Konfigurationsraum ohne Berücksichtigung lokaler Veränderungen, die sich auf ein bestimmtes Problem beziehen. Eine weitere Option, die das Verfahren bietet, ist die interaktive Spezifikation der Übergangskosten.
  • Im Kästchen 152 werden Hindernisse und Beschränkungen vom Aktionsraum in den Konfigurationsraum transformiert. Diese Transformation generiert Hinderniszustände und/oder Beschränkungszustände. Darüber hinaus oder alternativ kann die Transformation Hindernisse und Beschränkungen als Teil der Metrik darstellen. Die Kästchen 151 und 152 sind in Fig. 1a als separate Schritte dargestellt, in Wirklichkeit können sie jedoch kombiniert werden.
  • Im Kästchen 153 werden Ziele von Punkten im Aktionsraum aus in einen oder viele Zielzustände im Konfigurationsraum transformiert.
  • Im Kästchen 154 erfolgt das "Budding". Der Begriff "Budding" wird im folgenden erläutert. Durch Budding werden die Richtungspfeil-Felder des Konfigurationsraums mit Richtungspfeilen gefüllt.
  • Im Kästchen 155 wird ein Ausgangszustand festgelegt. Der Ausgangspunkt im Aktionsraum kann von einem Anwender eingegeben oder, falls zutreffend, automatisch detektiert werden. Dieser Ausgangspunkt muß dann in einen Zustand im Konfigurationsraum transformiert werden. Werden Robotercodierer gelesen, oder wird der Befehl WHERE in Val II verwendet, so erhält man die Parameter des Ausgangszustandes unmittelbar, ohne daß Transformationen nötig sind. Der WHERE-Befehl setzt die Gelenkcodiererwinkel wieder in Grad um.
  • Im Kästchen 156 folgt das Verfahren den im Kästchen 154 erstellten Richtungspfeilen vom im Kästchen 155 angegebenen Ausgangspunkt zum Zielpunkt. Die durchlaufenen Wegzustände im Kästchen 156 werden in 157 an einen Roboter gesandt. Der Weg kann in Form von Sollwerten übertragen werden. Jeder Sollwert kann in diesem Fall ein Parameter eines MOVE POINT()-Befehls in Val II sein. Die Sollwerte können Transformationen der durchlaufenen Wegzustände im Kästchen 156 in den Aktionsraum sein. Bei einer entsprechenden Anwendung können die Sollwerte die Wegzustande selbst sein. Wie weiter unten näher erläutert wird, ist es bei einigen Anwendungen nicht nötig, zum Lenken des Roboters die Sollwerte zu verwenden. Sie können auch als Anweisungen an Personen verwendet werden.
  • Das im Ablaufplan der Fig. 1a und 1b beschriebene Verfahren ist auf eine Vielzahl unterschiedlicher Situationen anwendbar.
  • Obwohl das gegebene Streckenplanungsproblem das einer Bewegung von einem Ausgangspunkt zu einem Zielpunkt ist, wird die Lösung tatsächlich durch Ausbreiten von Kostenwellen, ausgehend am Ziel in Richtung Start erhalten. Die beim "Budding" berechneten Übergangskosten für ein Bewegen vom Zustand "a" zum Zustand "b" stellen die Kosten dar, die das Folgen der Wegzustände über b nach a mit sich bringt.
  • "Ausbreiten von Kostenweilen" ist hier das Schicht für Schicht Abhandeln unbearbeiteter Zustände. Wenn zum Planen des Budding eine Warteschlange verwendet wird, werden unbearbeitete Zustände nach dem FIFO-Prinzip ("first in, first out") abgehandelt. Wenn eine Halde verwendet wird, wird immer erst der niedrigste Kostenknoten dem Budding unterzogen.
  • Kostenkriterien können entsprechend den Erfordernissen einer bestimmten Anwendung gewählt werden, z.B.: Minimierung der Zeit, Minimierung der durchlaufenen Strecke, Minimierung einer Gelenkbewegung. Die Übergangskosten der Bewegung sind nicht symmetrisch. Ein Übergang vom Zustand A in den Zustand B kann aufwendiger sein als ein Übergang vom Zustand B in den Zustand A.
  • Die Metrik für Übergangskosten zwischen Zuständen des Konfigurationsraums unterscheidet sich von dem Kostenkriterium für Bewegungen im Aktionsraum, weil Kostenwellen sich vom Zielzustand zum Ausgangszustand ausbreiten, mit anderen Worten, die Übergangskosten hängen mit Übergängen im Konfigurationsraum zusammen.
  • Wenn sich die Bewegungskosten in Abhängigkeit vom Ort im Konfigurationsraum ändern, wird eine "raumvariante Metrik" benötigt.
  • Fig. 1b ist eine Erweiterung des Kästchens 154 der Fig. 1a.
  • In Kästchen 150 von Fig. 1a sind ohne-Kosten-Werte U dem Kosten-bis- zum-Ziel-Feld jedes Konfigurationszustandes zugewiesen, und alle Richtungspfeil-Felder sind gelöscht.
  • Im Kästchen 152 werden unendlich-Werte INF in dem Kosten-bis-zum- Ziel-Feld für Konfiguarionszustände gesetzt, die Hindernisse repräsentieren. Außerdem sind die Grenzen des Aktionsraums Hindernisse.
  • Kästchen 153 weist den Kosten-bis-zum-Ziel-Feldern von Konfigurationszuständen, die Ziele repräsentieren, eine Null 0 zu. Dies können eines oder viele Ziele sein. Auch in Kästchen 153 werden die Indizes der Ziele einer Halde zugefügt. Für das Hinzufügen und Entfernen von Zuständen zu bzw. von einer Halde werden Standardverfahren zur Haldenverwaltung verwendet. Daher ist der Zustand mit den niedrigsten Kosten immer der oberste Zustand der Halde.
  • Kästchen 14 von Fig. 1b überprüft, ob die Halde leer ist. Ist die Halde leer, nimmt der Algorithmus den NO-Zweig 15 zum Kästchen 16. Kästchen 16 entnimmt der Halde das Element mit den niedrigsten Kosten (oberster Zustand), wobei eine Standard-Operation zum Löschen der Halde verwendet wird.
  • Kästchen 17 überprüft, ob alle Nachbarzustände untersucht worden sind. Nachbarzustände sind Zustände, die unmittelbar an den obersten Zustand grenzen. Wenn die Nachbarzustände nicht untersucht worden sind, nimmt das Verfahren den NO- Zweig 181 von Kästchen 17 aus.
  • In Kästchen 18 werden die Übergangskosten zwischen dem obersten Zustand und seinen Nachbarzuständen unter Ausnutzung der Metrikfunktion berechnet. übergänge zu Hinderniszuständen können als "INF" repräsentiert werden. Kästchen 18 berechnet die Übergangskosten Stück für Stück als Teil der Schleife, die die Kästchen 17, 18, 19, 121, 122 und 125 einschließt.
  • Kästchen 19 vergleicht die Summe aus den Übergangskosten und dem Inhalt des Kosten-bis-zum-Ziel-Feldes des obersten Zustandes mit dem Inhalt des Kosten-bis-zum-Ziel-Feldes eines aktuellen Nachbarzustandes. Wenn ein Zustand sich in seiner Anfangsbedingung befindet, ist der Inhalt des Kosten-bis-zum-Ziel-Feldes U, ohne Kosten. Eine Möglichkeit, "U" zu implementieren, ist dem Kosten-bis-zum-Ziel- Feld einen Wert zuzuweisen, der den größtmöglichen Wert für den Konfigurationsraum übersteigt und nicht gleich INF ist. Wenn der Vergleich in Kästchen 19 ein Vergleichsergebnis "< "liefert, nimmt das Verfahren Zweig 124 zu Kästchen 121. Das Folgen von Zweig 124 soll im weiteren als "einen Zustand verbessern" bezeichnet werden.
  • In Kästchen 121 wird das Kosten-bis-zum-Ziel-Feld des Nachbarzustandes mit den neuen (niedrigeren) Kosten-bis-zum-Ziel, d.h. der Summe aus den Übergangskosten und dem Inhalt des Kosten-bis-zum-Ziel-Feldes. Außerdem fügt Kästchen 121 eine Pfeilanzeige zum obersten Zustand in das Richtungspfeil-Feld des Nachbarzustandes ein.
  • In Kästchen 122, das auf Kästchen 121 folgt, werden die Indizes (i, j) des Nachbarzustandes zu der Halde hinzugefügt.
  • Das Verfahren kehrt jetzt zum Kästchen 17 zurück. Diese Rückkehr führt zu einer Schleife. Das Verfahren führt Kästchen 17, 18, 19, 121 und 122 für jeden der Nachbarzustände aus, wenn es sich nicht um ein Hindernis handelt. Für ein Hindernis nimmt das Verfahren Zweig 126 zum Kästchen 125. Da die Übergangskosten unendlich sind, wird Zweig 127 von Kästchen 125 aus genommen, um die Steuerung an Kästchen 17 zurückzugeben.
  • Der oben beschriebene Prozeß der Untersuchung aller Nachbarn eines ersten Zustandes, des Zuweisens entsprechender Kosten und Richtungspfeile an Nachbarn und des Hinzufügens "verbesserter" Nachbarzustände zu der Halde wird im weiteren als "Budding" eines Zustandes bezeichnet.
  • Nach dem Budding des aktuellen obersten Zustandes sind alle Nachbarzustände untersucht worden, so daß der "Ja"-Zweig 128 von Kästchen 17 aus genommen wird. Wenn die Halde bei Kästchen 14 nicht leer ist, wird Zweig 15 genommen.
  • In Kästchen 16 wird der nächste oberste Zustand geholt. Dieses ist das Element mit den niedrigsten Kosten, das oben auf der Halde liegt.
  • Wenn keine Auswirkung auf irgendeinen Nachbarn eines obersten Zustandes erreicht werden kann, werden während dieser Iteration keine Änderungen am Konfigurationsraum vorgenommen. Wenn die Summe aus den Übergangskosten zu einem aktuellen Nachbarzustand und den Kosten-bis-zum-Ziel der obersten Zustände größer als die zuvor vorhandenen Kosten-bis-zum-Ziel der Nachbarn sind, wird Zweig 124 nicht genommen. Es ist keine Verbesserung möglich. Stattdessen wird Zweig 129 genommen, wobei die Steuerung an Kästchen 17 zurückgegeben wird. Das Folgen von Zweig 129 wird im weiteren als "sich nicht auswirken" auf einen anderen Zustand bezeichnet.
  • Es ist möglich, daß Kästchen 19 mehr als eine gleichwertige Strecke von einem aktuellen Nachbarzustand aus ergibt, was Zweig 121 entspricht. Wenn eine gleichwertige Strecke gefunden wird, wird in Kästchen 120 einem Nachbarn ein "alternativer Pfeil" hinzugefügt, aber nicht der Halde. Das Richtungspfeil-Feld kann mehr als einen Pfeil enthalten, wie in 204 von Fig. 2 gezeigt wird.
  • Wenn eine Halde einmal leer ist, wird Zweig 130 genommen und das Budding ist abgeschlossen.
  • Wenn das Budding aller Zustände des Konfigurationsraums beendet ist, kann einer Strecke von jeder beliebigen Ausgangsposition zum Ziel gefolgt werden, indem einfach den Richtungspfeil-Werten gefolgt wird. Die Kosten in jedem Konfigurationszustand ergeben die gesamten Kosten, die für das Erreichen des Ziels von diesem Zustand aus erforderlich sind.
  • Es können Fälle eintreten, bei denen transformierte Hindernisse den Ausgangszustand vollständig vom Zielzustand trennen. In solchen Fällen gibt es nach Abschluß des Budding keine Pfeile am Ausgangszustand. Dies gibt an, daß es von diesem Ausgangszustand aus keine Strecke zum Ziel gibt.
  • Ein Fachmann könnte eine Anzahl Möglichkeiten zur Bestimmung, welche Gebiete im Konfigurationsraum einem Hindernis im Aktionsraum entspricht, erdenken. Eine einfache Möglichkeit dieser Bestimmung ist, jeden Zustand des Konfigurationsraums Stück für Stück im Aktionsraum zu simulieren und zu überprüfen, ob jeder Zustand dem Auftreffen auf das Hindernis entspricht. Übliche Körpermodellierungsalgorithmen können verwendet werden, um zu bestimmen, ob der Gegenstand, für den eine Strecke geplant ist, auf das Hindernis im Aktionsraum trifft. Ein solcher Satz Algorithmen wird durch die Darstellung von Flächen implementiert, wobei die B-rep- Technik in dem von SILMA, 211 Grant Road, Los Altos, CA 94022, vertriebenen Silma-Paket verwendet wird.
  • Manchmal ist ein Konfigurationsraum periodisch. Wenn beispielsweise der Gegenstand, für den eine Strecke geplant wird, ein Roboter ist, können die Achsen des Konfigurationsraums die Gelenkwinkel des Roboters sein. In diesem Fall ist der Konfigurationsraum einem Torus topologisch gleichwertig, und Strecken können sich um seine Ränder herum wickeln.
  • Zustände mit gleichen Kosten-bis-zum-Ziel liegen auf als gleich erscheinenden, vom Ziel her kommenden Kostenwellenfronten. Aus diesem Grund wird in der bekannten Technik der Begriff "Ausbreiten von Kostenwellen" verwendet, um den Prozeß des Zuweisens von Richtungspfeilen an Zustände im Konfigurationsraum zu beschreiben.
  • Eine effiziente Technik, die mit Budding verwendet werden kann, ist "zeitige Streckenerkennung". Das Merkmal "zeitige Streckenerkennung" nutzt die Tatsache, daß die optimale Strecke mitgeteilt werden kann, sobald die Kostenwellen sich gerade außerhalb des Ausgangszustandes ausgebreitet haben, da keine weiteren BuddingÄnderungen das Gebiet zwischen dem Start und dem Ziel beeinflussen.
  • Fig. 3 zeigt die zusätzlichen Schritte, die für die zeitige Streckenerkennung erforderlich sind. Fig. 3 ist die gleiche wie Fig. 1b, außer daß mehrere Schritte hinzugefügt worden sind. In Kästchen 301 überprüft das Verfahren, ob der Wert des Kosten-bis-zum-Ziel-Feldes des Zustandes oben auf der Halde größer als das Kostenbis-zu m-Ziel-Feld des Ausgangszustandes ist. Bei negativem Ergebnis der Überprüfung durch Kästchen 301 läuft das Budding weiter wie gewöhnlich, entlang Zweig 302. Bei positivem Ergebnis der Überprüfung durch Kästchen 301 folgt das Verfahren Zweig 303 zum Kästchen 304, wo die Strecke mitgeteilt wird. Nach Mitteilung der Strecke bei Kästchen 304 wird das normale Budding fortgesetzt. Wenn nicht das gesamte Kostenfeld benötigt wird, ist es möglich, nach dieser zeitigen Streckenerkennung zu stoppen. Diese Art der zeitigen Streckenerkennung ist nicht möglich, wenn beim Budding statt einer Halde eine Warteschlangenstruktur verwendet wird, weil beim Verwenden einer Warteschlangenstruktur die kürzeste Strecke erst bestimmt werden kann, nachdem der gesamte Konfigurationsraum dem Budding unterzogen worden ist.
  • Eine andere effiziente Technik ist, mit dem Budding sowohl von den Zielals auch den Ausgangszuständen aus zu beginnen. Die Strecke ist dann gefunden, wenn die sich ausdehnenden Kostenwellen sich treffen. Gewöhnlich muß für das Budding des Ausgangszustands eine andere Metrik als für das Budding der Zielzustände verwendet werden. Dies ergibt sich daraus, daß Budding vom Ausgangszustand aus in der tatsächlichen Bewegungsrichtung im Aktionsraum erfolgt, was im wesentlichen das Aufrufen der gleichen Metrikfunktion ist, wobei die obersten und Nachbarzustände ausgetauscht sind. Im Gegensatz dazu erfolgt Budding vom Zielzustand aus in einer der Bewegung im Aktionsraum entgegengesetzten Richtung.
  • C. Überblick über das Differentialbudding
  • Fig. 4 gibt einen allgemeinen Überblick über die Schritte des "Differentialbudding", eines Verfahrens zur Aktualisierung eines Konfigurationsraums bei Veränderungen der Hindernisse und Ziele. Der resultierende Konfigurationsraum liefert die erforderlichen Informationen zur Berechnung einer Reihe von Sollwerten, die eingehalten werden müssen, um eine optimale Strecke zu erhalten.
  • Im Kästchen 400 wird ein mit Richtungspfeilen und Kosten-bis-zum Ziel gefüllter Konfigurationsraum angenommen. Ebenso wird vorausgesetzt, daß Informationen über veränderte Ziele und Hinderniszustände verschafft werden. Diese Zustände sind bereits vom Aktionsraum auf den Konfigurationsraum transformiert. Es ist zu beachten, daß das Verfahren funktioniert, auch wenn der Konfigurationsraum nur initialisiert ist, alle Kosten-bis-zum-Ziel auf UNCOSTED (ohne Kosten) gesetzt und keine Richtungspfeile vorhanden sind.
  • Im Kästchen 410 werden die Informationen über neu hinzugekommene Hindemiszustände und neu weggenommene Zielzustände zum Initialisieren der entsprechenden Zustände im Konfigurationsraum verwendet.
  • Im Kästchen 420 werden alle Zustände, die von den Zuständen des hinzugekommenen Hindernisses und des weggenommenen Ziels "beeinflußt" werden, mit UNCOSTED-Werten und ohne Richtungspfeile initialisiert. "Beeinflußte" Nachbarn sind solche, die sich auf Strecken befinden, die auf diese hinzugekommenen Hindernisse oder weggenommenen Ziele oder durch diese hindurch weisen. Der "Perimeter" von Zuständen um diesen Bereich herum wird erfaßt und der Halde zum späteren "Budding" hinzugefügt.
  • Im Kästchen 430 werden Informationen über neu weggenommene Hinderniszustände und neu hinzugekommene Zielzustände zum Initialisieren der entsprechenden Zustände im Konfigurationsraum verwendet. Die Halde wird aufgebaut, so daß das "Budding" stattfinden kann.
  • Im Kästchen 440 werden die Zustände, die sich aufgrund der Kästchen 410, 420 und 430 auf der Halde angesammelt haben, mit "Budding" abgearbeitet, wodurch man einen stabilen (gültigen) Konfigurationsraum erhält. Von einem gegebenen Ausgangszustand aus kann eine optimale Strecke von Sollwerten ausgelesen werden, indem man den Richtungspfeilen im Konfigurationsraum bis zum Zielzustand folgt.
  • Aus Effizienzgründen werden zwei spezielle Strukturen verwendet: eine Filterhalde und ein Filter-Array. Die "Filterhalde" ist eine normale Halde, mit der Ausnahme, daß sie höchstens eine Kopie eines Tupels (Zustandes) in der Halde behält, auch wenn viele Anforderungen erfolgen, weitere Kopien hinzuzufügen. Wann immer das Wort "Halde" hier verwendet wird, ist eine "Filterhalde" gemeint. Das "Filter- Array" (das zum Speichern eindeutiger Zustände des Perimeters dient) ist in gleicher Weise ein normales Array, mit der Ausnahme, daß es höchstens eine Kopie eines Tupels (Zustandes) behält. Einige der Arrays, auf die hier Bezug genommen wird, sind vom Filtertyp und einige nicht. In beiden Fällen erfolgt das Filtern durch Verwalten von Flags in jedem Zustand des Konfigurationsraums, welche melden, ob ein Zustand sich in der Halde oder im Perimeter-Array befindet. Nun müssen nur noch diese Flags korrekt geändert werden, wenn Zustände der Halde oder dem Perimeter hinzugefügt oder daraus entfernt werden.
  • Das im Kästchen 410 dargestellte Verfahren wird durch den Ablaufplan in Fig. 5 und 6 näher erläutert. Das im Kästchen 420 dargestellte Verfahren wird durch den Ablaufplan in Fig. 7 und 8 näher erläutert. Das im Kästchen 430 dargestellte Verfahren wird durch den Ablaufplan in Fig. 9 und 10 näher erläutert.
  • i. Prüfung auf hinzugekommene Hindernisse und weggenommene Ziele.
  • Das Verfahren "Prüfung auf hinzugekommene Hindernisse und weggenommene Ziele" im Kästchen 410 besteht aus drei Hauptteilen.
  • Der erste Teil ist in den Kästchen 500, 510 und 520 dargestellt. Kästchen 500 prüft, ob das Ende der Liste "hinzugekommene Hindernisse" erreicht ist. Ergibt die Prüfung im Kästchen 500 "Ja", geht die Steuerung an Kästchen 530 über. Ergibt die Prüfung im Kästchen 500 "Nein", geht die Steuerung an Kästchen 510 über. Das Kästchen 510 holt sich den nächsten Hinderniszustand "S" aus der Liste hinzugekommener Hindernisse. Danach löscht Kästchen 520 das Richtungspfeil-Feld und setzt das Kosten- bis-zum-Ziel-Feld auf INF im Zustand "S". Nach dem Kästchen 520 geht die Steuerung wieder an Kästchen 500 über.
  • Somit stellen die Kästchen 500, 510 und 520 eine Schleife dar, die jeden Zustand "hinzugekommenes Hindernis" ("S") im Konfigurationsraum so initialisiert, daß er keine Richtungspfeile und INF (INFINITE = unendliche) Kosten-bis-zum-Ziel hat.
  • Der zweite Teil des Verfahrens "Prüfung auf hinzugekommene Hindernisse und weggenommene Ziele" in Kästchen 410 ist in den Kästchen 530, 540 und 550 von Fig. 5 und in den Kästchen 600, 610, 620, 630, 640 und 650 von Fig. 6 dargestellt. Außerdem ist zu beachten, daß Linie 501 von Fig. 5 mit Linie 601 von Fig. 6, Linie 502 von Fig. 5 mit Linie 602 von Fig. 6 und Linie 503 von Fig. 2 mit Linie 603 von Fig. 6 verbunden sind.
  • In diesem zweiten Teil des Kästchens 410 erhält man die "Vorderkante" des Hindernisses und die "Hinterkante" des hinzugekommenen Hindernisses. Die "Vorderkante" enthält diejenigen Nachbarzustände, die sich auf der "Zielseite" des hinzugekommenen Hindernisses befinden. Diese Zustände sind Nachbarn des Hindemisbereichs, haben andere Kostenwerte als INFINITE oder UNCOSTED und zeigen nicht auf einen der Hinderniszustände. Die "Hinterkante" enthält diejenigen Nachbarzustände, die sich nicht an der Vorderkante befinden. Diese Zustände haben Richtungspfeile, die in das hinzugekommene Hindernis weisen.
  • Das Kästchen 540 bedeutet eine Prüfung auf das Ende der Liste "hinzugekommene Hindernisse". Wenn das Ende erreicht ist, geht die Steuerung über Linie 501/601 an das Kästchen 660 über. Ist das Ende noch nicht erreicht, geht die Steuerung an das Kästchen 550 über, wo ein hinzugekommenes Hindernis "A" abgerufen wird.
  • Danach wird in Kästchen 600 bestimmt, ob alle Nachbarzustände "N" des Hinderniszustandes "A" berücksichtigt worden sind. Ist dies der Fall, geht die Steuerung wieder über Linie 603/503 an Kästchen 540 über. Wenn ein Nachbarzustand "N" nicht berücksichtigt worden ist, geht die Steuerung an Kästchen 610 über, wo dieser Zustand "N" aufgerufen wird.
  • Kästchen 620 bedeutet eine Prüfung, ob der Zustand "N" einen Richtungspfeil enthält, der auf "A" weist. Enthält der Zustand "N" keinen solchen Richtungspfeil, geht die Steuerung auf Kästchen 640 über. Im anderen Fall wird der Zustand "N" der Halde im Kästchen 630 hinzugefügt. Wird der Zustand "N" der Halde im Kästchen 630 hinzugefügt, so wird "N" als Teil der "Hinterkante" des hinzugekommenen Hindernisses betrachtet. Nach dem Kästchen 630 geht die Steuerung wieder an Kästchen 600 über.
  • Im Kästchen 640 wird "N" daraufhin überprüft, ob in seinem Kosten-bis- zum-Ziel-Feld INF steht. Hat "N" keine Kosten-bis-zum-Ziel vom Wert INF, geht die Steuerung wieder an Kästchen 600 über. Hat "N" andere Kosten-bis-zum-Ziel als INF, wird es der "Perimeter-Liste" in Kästchen 650 hinzugefügt und gilt als Teil der "Vorderkante" des Hindernisses.
  • Der dritte Teil des Verfahren "Prüfung auf hinzugekommene Hindernisse und weggenommene Ziele" in Kästchen 410 ist in den Kästchen 660, 670 und 680 von Fig. 6 dargestellt. Diese drei Kästchen bilden eine Schleife. Im Kästchen 660 wird bestimmt, ob das Ende der Liste "weggenommene Ziele" erreicht ist. Ist dies der Fall, ist das Verfahren "Prüfung auf hinzugekommene Hindernisse und weggenommene Ziele" beendet. Ist das Ende nicht erreicht, wird der nächste Zielzustand "G" in Kästchen 670 abgerufen. Danach wird dieser Zielzustand "G" der Halde in Kästchen 680 hinzugefügt, und die Steuerung geht wieder an Kästchen 660 über. Somit wird in dieser Schleife jedes der weggenommenen Ziele in der Liste "weggenommene Ziele" der Halde hinzugefügt.
  • ii. Einfluß löschen.
  • Das Verfahren "Einfluß löschen" in Kästchen 420 besteht aus zwei Hauptteilen. Mit dem ersten Teil wird der "Einfluß-Perimeter" aufgrund der Zustände neu hinzugekommener Hindernisse und weggenommener Ziele ermittelt, und mit dem zweiten Teil wird der Perimeter aufgenommen und auf die Halde gelegt.
  • Der erste Teil des Verfahrens "Einfluß löschen" in Kästchen 420 ist in den Kästchen 700, 710, 720, 730, 740, 750, 760 und 770 von Fig. 7 und in den Kästchen 800, 810 und 820 von Fig. 8 dargestellt. Es ist zu beachten, daß Linie 701 von Fig. 7 mit Linie 801 von Fig. 8, Linie 702 von Fig. 7 mit Linie 802 von Fig. 8, Linie 703 von Fig. 7 mit Linie 803 von Fig. 8 und Linie 704 von Fig. 7 mit Linie 804 von Fig. 8 verbunden sind.
  • Zu Beginn des Verfahrens "Einfluß löschen" besteht die Halde aus Nachbarzuständen an der Hinterkante hinzugekommener Hindernisse und weggenommener Ziele. In Kästchen 700 wird die Halde daraufhin geprüft, ob sie leer ist. Ist sie leer, geht die Steuerung über Linie 701/801 an Kästchen 830 über.
  • Ist die Halde nicht leer, wird in Kästchen 710 ein Mindestkostenzustand "S" von der Halde abgerufen und eine variable "uncost"-Flag, die "S" entspricht, auf "NEIN" gesetzt. In Kästchen 720 wird dann bestimmt, ob alle Nachbarn "N" von "S" berücksichtigt worden sind. Ist dies der Fall, geht die Steuerung an Kästchen 760 über.
  • Sind nicht alle Nachbarn berücksichtigt worden, wird die variable "uncost"-Flag in Kästchen 730 geprüft. Hat sie den Wert "Nein", wird "S" im Kästchen 740 dem Perimeter hinzugefügt, falls dies nicht bereits geschehen ist. Hat sie den Wert "Ja", wird in Kästchen 750 das Kosten-bis-zum-Ziel-Feld von "S" auf UNCOSTED gesetzt; das Richtungspfeil-Feld von "S" wird gelöscht und alle Nachbarn des "Bag"- Array werden in die Halde entleert, die sie filtert, d.h. sie speichert keine doppelten Zustände.
  • In Kästchen 760 wird der nächste Nachbar "N" abgerufen. In Kästchen 770 wird das Kosten-bis-zum-Ziel-Feld von "N" auf INF oder UNCOSTED geprüft. Hat es keinen dieser beiden Werte, geht die Steuerung über Linie 702/802 an das Kästchen 820 über. Ist es entweder auf INF oder UNCOSTED gesetzt, geht die Steuerung über Linie 403/503 an Kästchen 500 über.
  • In Kästchen 800 wird "S" daraufhin geprüft, ob es einen Richtungspfeil enthält, der auf "N" weist. Falls nicht, geht die Steuerung an Kästchen 820 über. Falls ja, wird die "S" zugeordnete "uncost"-Flag auf "JA" gesetzt.
  • Im Kästchen 820 wird der Nachbar "N" vorübergehend im Bag-Array gespeichert. Die Steuerung geht nun wieder über Linie 804/704 an Kästchen 720 über.
  • Somit wird im ersten Teil des Verfahrens "Einfluß löschen" des Kästchens 420 jeder Zustand "S" in der Halde identifiziert, der auf einen Nachbarn "N" weist, dessen Kosten-bis-zum-Ziel entweder INFINITE oder UNCOSTED sind. Ein solcher Zustand "S" muß daher über Richtungspfeile mit der Hinterkante eines neuen Hindernisses oder eines weggenommenen Ziels "verbunden" sein. Ein Nachbar, der nicht INFINITE oder UNCOSTED ist, ist ein Kandidat für die Ausweitung der Suche und wird vorübergehend im "Bag" gespeichert. "Bag" ist ein Standard-Array, das Zustände enthält. Wenn alle Nachbarn von "S" daraufhin untersucht worden sind, ob "S" verbunden ist, werden alle Nachbarn von "S", die sich im "Bag" befinden, der Halde hinzugefügt ("entleert"), wo sie gefiltert werden, und "S" wird wieder initialisiert, so daß es auf UNCOSTED gesetzte Kosten-bis-zum-Ziel und keine Richtungspfeile hat. Ist "S" nicht verbunden, "Nein"-Verzweigung von Kästchen 730, dann muß "S" Teil des Perimeters sein, und die Nachbarn im "Bag" werden der Halde NICHT hinzugefügt.
  • Der zweite Teil des Verfahrens "Einfluß löschen" des Kästchens 420 ist in den Kästchen 830, 840 und 850 von Fig. 8 dargestellt. In Kästchen 830 wird geprüft, ob die in einem Filter-Array gespeicherte Perimeter-Liste leer ist. Falls ja, ist das Verfahren "Einfluß löschen" beendet. Falls nein, wird ein Perimeter-Zustand "P" in 840 abgerufen und in 850 der Halde hinzugefügt, falls er sich nicht bereits in der Halde befindet. Nach dem Kästchen 850 geht die Steuerung wieder an Kästchen 830 über. Somit liest dieser zweite Teil des Kästchens 420 die Zustände in der "Perimeter-Liste" und speichert sie in der Halde.
  • Daher könnte man sagen, daß die Perimeter-Liste einen beeinflußten oder "betroffenen Bereich" des Konfigurationsraums umgibt, und diese Begriffe wurden hier verwendet. Der Begriff "beeinflußt", wie er hier verwendet wird, bezieht sich speziell auf den Schritt 420 "Einfluß löschen" und unterscheidet sich vom Begriff "betroffen", der allgemeiner verwendet wird, wie nachstehend erläutert wird. Dieser Sprachgebrauch soll jedoch nicht besagen, daß der davon umgebene Bereich die einzigen Zustände enthält, die aufgrund des Differentialbudding verändert werden können. Die Kosten-bis- zum-Ziel- oder Richtungspfeil-Werte von Zuständen am oder außerhalb des Perimeters können sich aufgrund des Differentialbudding der Halde im Kästchen 440 der Fig. 1 ändern.
  • iii. Prüfen auf weggenommene Hindernisse und hinzugekommene Ziele.
  • Das Verfahren der "Prüfung auf weggenommene Hindernisse und hinzugekommene Ziele" von Kästchen 430 besteht aus drei Hauptteilen.
  • Der erste Teil ist in den Kästchen 900, 910 und 920 dargestellt. In Kästchen 900 wird bestimmt, ob das Ende der Liste "weggenommene Hindernisse" erreicht ist. Ist dies der Fall, geht die Steuerung an Kästchen 930 über. Ist das Ende nicht erreicht, wird aus der Liste in Kästchen 910 ein nächste Hinderniszustand "S" abgerufen. In diesem Zustand "S" wird das Richtungspfeil-Feld gelöscht und das Kosten-bis-zum- Ziel-Feld auf UNCOSTED gesetzt. Dieser erste Teil ist dann eine Schleife, die jeden Zustand "weggenommenes Hindernis" im Konfigurationsraum so initialisiert, daß er keine Richtungspfeile und auf UNCOSTED gesetzte Kosten-bis-zum-Ziel hat. Dies sind angemessene Werte, weil diese nun unbelegten (weggenommenen) Hinderniszustände keine angenommenen Kosten oder Pfeile haben. Diese weggenommenen Hinderniszustände können als der vom Entfernen von Hindernissen betroffene Bereich bezeichnet werden, und dieser Sprachgebrauch wird hier verwendet. Es sei jedoch bemerkt, daß die Kosten-bis-zum-Ziel- und Richtungspfeil-Werte von Zuständen außerhalb dieses "betroffenen Bereichs" sich infolge von Budding in Kästchen 440 immer noch ändern können. Die das weggenommene Hindernis umgebenden Zustände können als Perimeter bezeichnet werden; sie erfordern jedoch eine weniger komplexe Behandlung als der Perimeter der weggenommenen Ziele und hinzugekommenen Hindernisse.
  • Der zweite Teil des Kästchens 430 ist in den Kästchen 930, 940 und 950 von Fig. 9 und 1000, 1010, 1020 und 1030 von Fig. 10 dargestellt. Linie 901 von Fig. 9 ist mit Linie 1001 von Fig. 10, Linie 902 von Fig. 9 mit Linie 1002 von Fig. 10 und Linie 903 von Fig. 9 mit Linie 1003 von Fig. 10 verbunden.
  • Dieser zweite Teil des Kästchens 430 beginnt oben in der Liste weggenommener Hindernisse bei 930. Wie im Kästchen 900 wird im Kästchen 940 eine Prüfung durchgeführt, um festzustellen, ob das Ende der Liste "weggenommene Hindernisse" erreicht ist. Ist dies der Fall, so geht die Steuerung über Linie 901/1001 an Kästchen 1040 über. Ist das Ende noch nicht erreicht, wird in 950 ein nächster Hinderniszustand "R" abgerufen. Danach wird im Kästchen 1000 bestimmt, ob alle Nachbarn von "R" berücksichtigt worden sind. Falls ja, geht die Steuerung über Linie 1003/903 an das Kästchen 940 über. Falls nein, wird in 1010 ein nächster Nachbarzustand "N" von "R" abgerufen. Hat "N" ein Kosten-bis-zum-Ziel-Feld mit dem Wert UNCOSTED oder INF, geht die Steuerung wieder an Kästchen 1000 über. Hat "N" ein anderes Kosten- bis-zum-Ziel-Feld als UNCOSTED oder INF, wird "N" der Halde in 1030 hinzugefügt.
  • Somit werden in diesem zweiten Teil des Kästchens 430 alle Nachbarn eines weggenommenen Hindernisses, welche andere Kosten-bis-zum-Ziel als "INFINITE" oder "UNCOSTED" haben, der Halde hinzugefügt, wo sie gefiltert werden. Diese Zustände bilden gemeinsam eine Kante, die an das weggenommene Hindernis angrenzt. Diese Nachbarzustände unterstützen (über den Buddingprozeß von Kästchen 440) das Füllen des geleerten Bereichs, in dem sich die Zustände "weggenommenes Hindernis" befinden.
  • Der dritte Teil des Kästchens 430 ist in den Kästchen 1040, 1050, 1060 und 1070 von Fig. 10 dargestellt. In Kästchen 1040 wird eine Prüfung durchgeführt, um festzustellen, ob das Ende der Liste "hinzugekommene Ziele" erreicht ist. Ist dies der Fall, endet das Verfahren "Prüfung auf weggenommene Hindernisse und hinzugekommene Ziele". Ist das Ende noch nicht erreicht, wird in 1050 ein nächster Zielzustand "G" abgerufen. In 1060 wird das Richtungspfeil-Feld für das Ziel "G" gelöscht und das Kosten-bis-zum-Ziel-Feld auf null gesetzt. Dann wird in 1070 das Ziel "G" der Halde hinzugefügt, und die Steuerung geht wieder an Kästchen 1040 über.
  • Somit bildet dieser dritte Teil des Kästchens 430 eine Schleife, die jeden neu hinzukommenden Zielzustand aus der Liste "hinzugekommene Ziele" entnimmt, die Richtungspfeile löscht, das Kosten-bis-zum-Ziel-Feld auf null setzt und jeden Zielzustand der Halde hinzufügt. Somit sind die hinzugekommenen Zielzustände sowohl der "betroffene Bereich" als auch der Pen.meter nach dem hier verwendeten Sprachgebrauch. Es sei jedoch bemerkt, daß die Kosten-bis-zum-Ziel- und Richtungspfeil-Werte von Zuständen außerhalb dieses "betroffenen Bereichs" sich infolge von Budding in Kästchen 440 immer noch ändern können.
  • Zusammenfassend läßt sich also feststellen, daß unter dem "betroffenen Bereich" nach dem hier verwendeten Sprachgebrauch Zustände zu verstehen sind, die als Teil des Schrittes 420 "Einfluß löschen" gelöscht worden sind, und den Zuständen weggenommener Hindernisse und hinzugekommener Ziele entsprechende Zustände, die "beeinflußt" werden, sind diejenigen, die während des Schrittes 420 "Einfluß löschen" gelöscht werden.
  • Diferentialbudding kann auch den Fall behandeln, bei dem einige neue Informationen entdeckt worden sind, während ein Gegenstand sich bereits auf einer vorgegebenen Strecke bewegt. Dies tritt ein, wenn der Gegenstand keinen oder einen fehlerhaften optischen Sensor hat, aber einen Umgebungs- oder Tastsensor irgendeiner Art, oder wenn Diskretisierung des Konfigurationsraums zu einigen Fehlern bei der Bewegung führt, die entlang des Weges korrigiert werden müssen. Es kann auch eintreten, wenn gespeicherte Information veraltet. In vielen Fällen kann ein Gegenstand eine Umgebung durch einfaches Umherbewegen erlernen, wobei er Informationen über neue Hindernisse oder Ziele oder weggenommene Hindernisse oder Ziele, so wie er sie antrifft, erhält und dieses Wissen in seinen Konfigurationsraum aufnimmt. Der Gegenstand kann sich auch an eine sich ändernde Umgebung anpassen, selbst wenn die optischen Detektoren nicht perfekt sind. In solchen Fallen können neue Informationen als zugefügte oder weggenommene Hindernisse oder Ziele betrachtet werden. Neue Hindernisse können durch Auftreffen auf verschiedene Teile der Hindernisse beim Folgen iterativ entwickelter neuer Strecken entdeckt werden.
  • Fig. 11 ist ein Ablaufplan, der den iterativen Ansatz für das Behandlung von unerkannten oder nur teilweise erkannten Veränderungen der Bedingungen.
  • In Kästchen 1101 bestimmt das Verfahren einen neuen Zustand in einer vorberechneten Strecke, indem Richtungspfeil-Werten von einem aktuellen Zustand aus gefolgt wird.
  • In Kästchen 1102 wird mit diesem Verfahren ein auf dem nächsten Zustand basierender Sollwert an eine Bewegungssteuerung für den Roboter gesandt.
  • In Kästchen 1103 wird eine Prüfung durchgeführt, um festzustellen, ob ein Sensor in Verbindung mit der Bewegung zum nächsten Zustand neue Informationen detektiert hat. Sind keine neuen Informationen detektiert worden, geht die Steuerung wieder an Kästchen 1101 über.
  • Werden neue Informationen detektiert, gibt es zwei Möglichkeiten. Wenn die neuen Informationen kein absolutes Hindernis für die Bewegung darstellen, kann die Steuerung wahlweise über die gestrichelte Linie 1104 wieder an das Kästchen 1101 übergehen. Die gestrichelte Linie 1104 stellt eine Situation dar, in der die Bewegung der Berechnung einer neuen optimalen Strecke vorgezogen wird. Mit anderen Worten: Die gestrichelte Linie 1104 wird gewählt, wenn die Bewegung wichtiger ist als eine absolut optimale Strecke.
  • Wenn die gestrichelte Linie 1104 genommen wird, könnte ein Prozessor neue Informationen in einen Konfigurationsraum einfügen, noch während die Bewegung stattfindet. Eine solche Parallelverarbeitung könnte sich als vorteilhaft erweisen, wenn die neuen Informationen die Bewegung auf der vorherberechneten Strecke nicht unmittelbar betreffen. Wird das Verfahren beispielsweise auf die Steuerung von Notdienst- Einsatzfahrzeugen angewandt, so könnte ein solches Fahrzeug einen Verkehrsstau auf einer Gegenfahrbahn melden. Diese Meldung muß das Weiterfahren des Fahrzeugs, das den Stau meldet, nicht beeinträchtigen. In diesem Fall des Notdienst-Einsatzfahrzeuges ist der Näherungssensor die Sicht des Fahrers.
  • Wird die gestrichelte Linie 1104 nicht gewählt und werden neue Informationen detektiert, geht die Steuerung an Kästchen 1105 über. Im Kästchen 1105 werden die neuen Informationen in den Konfigurationsraum aufgenommen. In 1106 erfolgt Differentialbudding, zum Beispiel unter Verwendung der Kästchen 410-440 von Fig. 4.
  • Nach 1106 geht die Steuerung wieder an Kästchen 1101 über.
  • D. Vorrang bei der Suche von Nachbarn
  • Die Suche der Nachbarn in Kästchen 17 muß in spezieller Reihenfolge erfolgen, sobald es mehr Nachbarn gibt als den Satz {(1,0), (0,1), (-1,0), (0,-1)}. Die Suche von Kästchen 17 sollte niemals das Suchen eines Nachbarn zulassen, der jenseits eines durch ein Hindernis blockierten Nachbarn liegt. Sei beispielsweise der Satz von Nachbarn {(1,0), (0,1), (-1,0), (0,-1), (1,1), (1,-1), (-1,1), (-1,-1), (2,1), (1,2), (2,-1), (1,-2), (-2,1), (-1,2), (-2,-1) (-1,-2)}, dann sollte der Nachbar (1,1) niemals gesucht werden, bevor nicht sowohl (0,1) als auch (1,0) gesucht worden und frei von Hindernissen sind. Wenn sowohl (0,1) als auch (1,0) blockiert sind, sollte angenommen werden, daß (1,1), das jenseits von ihnen liegt, nicht sicher erreicht werden kann. In gleicher Weise sollte (2,1) nicht gesucht werden, bevor nicht (1,1) gesucht worden und frei von Hindernissen ist. Nachbar (0,1) braucht kein zweites Mal gesucht zu werden, um festzustellen, daß es sicher ist, Nachbar (2,1) zu suchen, weil (1,1) erst gesucht wird, wenn (0,1) freigegeben ist. Vorrang bei der Suche ist notwendig, um im Konfigurationsraum sichere Strecken zu finden, aber es bringt auch den Vorteil mit sich, daß die Suche von Kästchen 17 effizienter wird, weil nicht immer alle Nachbarn gesucht werden. Fig. 16 zeigt den Vorrang bei der Suche unter den Nachbarn in dem Satz {(1,0), (0,1), (-1,0), (0,-1), (1,1), (1,-1), (-1,1), (-1,-1), (2,1), (1,2), (2,-1), (1,-2), (-2,1), (-1,2), (-2,-1) (-1,-2)}. Die gestrichelten Linien in Fig. 16 geben die Tatsache wieder, daß das Bild sich um die Enden wickelt, wobei (-1,0) an beiden Enden erscheinen kann.
  • Während dieses Beispiel einen speziellen Vorrang für eine spezielle Anwendung erläutert hat, wird es für den Fachmann möglich sein, andere Arten des Vorrangs zu entwerfen, die für andere Anwendungen sinnvoll sind.
  • Entsprechend dem gewählten Vorrang kann eine Repräsentation der Nachbarzustände in einem Nachbarspeicher gespeichert werden, wobei eine Baumstruktur verwendet wird. Wenn ein blockierter Nachbarzustand während der Suche gefunden wird, brauchen keine Subbäume dieses blockierten Nachbarzustandes mehr gesucht zu werden. Diese Subbäume können übersprungen werden. So wird bei Verwendung von Standardverfahren zur Baumbehandlung eine höhere Effizienz erreicht.
  • E. Anwendung von "Budding" und Differenüalbudding" beim Manövrieren eines Fahrzeugs
  • Eine mögliche Anwendung von "Budding" und Differentialbudding" ist Manövrieren eines Robotfahrzeugs. Unter dem Wort "Manöver" sollen hierbei kleine Bewegungen verstanden werden, d.h. Bewegungen, deren Größe ungefähr in der Größenordnung des Robotfahrzeugs liegen, im Gegensatz zu großen Bewegungen, wie sie mit einer elektronischen Straßenkarte geplant würden. Ein Robotfahrzeug kann beispielsweise in einen engen Parkplatz manövriert werden, in drei Zügen gewendet oder normal gewendet werden. Solche Manöver sind für die Bedienperson eines Robotfahrzeugs wegen der unvollkommenen Kenntnis über die Größe und Manövrierbarkeit des Fahrzeugs häufig schwierig zu planen.
  • Im folgenden wird ein Beispiel für die Anwendung von Budding und Differentialbudding beim Manövrieren eines Robotfahrzeugs gegeben. Es geht bei dem Beispiel um ein gewöhnliches Auto mit Vorderradantrieb.
  • Das Auto kann als Roboter mit drei Freiheitsgraden betrachtet werden. Drei Parameter (x, y, &phi;) sollen dabei als Achsen eines Konfigurationsraums für das Auto verwendet werden, wobei x und y einen Ort des Autos in kartesischen Koordinaten definieren und &phi; seinen Winkel.
  • Der "kartesische Punktort" des Autos (x, y) soll ein Punkt in der Mitte zwischen den nicht angetriebenen Rädern sein. Bei den meisten Autos ist dieser Punkt das Heckdifferential des Autos, weil in den meisten Autos der Antrieb über die Vorderräder erfolgt. Dieser spezielle Punkt ist gewählt worden, weil er bei der Berechnung zu gewissen Vorteilen führt, wie im nachstehenden beschrieben werden soll. Es kann jedoch jeder Punkt, der eindeutig mit der Position des Fahrzeugs zusammenhängt, gewählt werden.
  • Zusätzlich zu einem Punktort, den das Auto haben soll, soll es auch innerhalb eines Rechtecks mit einer Breite und einer Länge gehalten werden. Es wird auch angenommen, daß das Rechteck relativ zu einem festen Winkel einen Winkel aufweisen soll.
  • Fig. 12 erläutert einen schematischen Aktionsraum eines Autos 1202, mit einer Kreuzung 1201 bei seinem kartesischen Punktort. Zwei Hindernisse 1203, 1204, die geparkte Autos sein können, sind dargestellt.
  • Das Auto 1202 soll an einem Ort (x, y) beim kartesischen Punktort 1201 und unter einem Winkel &phi; stehen, der hier mit ungefähr 2350 dargestellt ist. Bei diesem Beispiel werden die 235º von einem festen Bezugswinkel von 0º aus gemessen, der parallel zum Bordstein 1206 verläuft und eine Richtung von Kästchen 1204 zum Kästchen 1203 hat. Die für dieses Beispiel gewählten Einheiten sind willkürlich, wobei das Auto 1202 3 Einheiten lang ist. Die Diskretisierung, durch das Gitter angedeutet, ist so gewählt, daß die x- und y-Achsen im Konfigurationsraum jeweils vier Zustände pro Abstandseinheit haben. Somit ist das Auto 12 Zustände lang. Die Diskretisierung ist auch so gewählt worden, daß der Winkel &phi; 64 verschiedene Werte annehmen kann. Mit anderen Worten, die periodische Achse &phi; im Konfigurationsraum hat entlang der Achse 64 Zustände, wobei jeder Zustand einem Inkrement von 5,625º entspricht. Dem Fachmann wird deutlich sein, daß andere Einheiten und Diskretisierungsstufen gewählt werden können. Insbesondere ergibt eine feinere Diskretisierung genauere Berechnungen der Bewegung zu Lasten längerer Berechnungszeit, während eine gröbere Diskretisierung weniger genaue Berechnungen bei kürzerer Berechnungszeit ergibt.
  • Um das Beispiel zu vereinfachen, wird angenommen, daß die Vorderräder parallel laufen und drei mögliche Lagen haben: 45º nach links , geradeaus und 45º nach rechts. Die Radlagen werden verwendet, um zu bestimmen, wie sich das Auto 1202 bewegt, aber sind bei dieser Ausführungsform kein Parameter des Konfigurationsraums. Bei wirklichen Autos brauchen die Räder nicht immer genau parallel zu stehen. Angesichts des gegebenen Diskretisierungsgrades können solche Sekundäreffekte jedoch vernachlässigt werden. Bei wirklichen Autos können die Vorderräder mehr Lagen einnehmen als im vorliegenden Beispiel zugelassen sind. Die Techniken des vorliegenden Beispiels können in einfacher Weise angepaßt werden, um Sekundäreffekte und mehr Radwinkel zu berücksichtigen.
  • Fig. 13 erläutert schematisch die Form einer Transformation der Nachbarschaft einer gegebenen Position des Autos, so wie die Transformation im Aktionsraum aussehen würde. Angenommen wird, daß die Front des Autos nach dir 3 weist. Ader 1351 gibt den Vorwärtsweg und 1350 den Rückwärtsweg des kaatesischen Punktortes des Autos an, wenn die Vorderräder um 45º nach links gedreht sind. Ader 1361 gibt den Vorwärtsweg und 1360 den Rückwärtsweg des kartesischen Punktortes des Autos an, wenn die Vorderräder um 45º nach rechts gedreht sind. Ader 1371 gibt den Vorwärtsweg und 1370 den Rückwärtsweg des kartesischen Punktortes des Autos bei in Geradeaus-Richtung stehenden Vorderrädern an.
  • Wenn ein wirkliches Auto erst vorwärts und dann rückwärts fährt, bei festem Winkel des Lenkrades, wiederholt es nicht exakt seinen Weg. Wegen der Diskretisierung des Konfigurationsraums repräsentieren die Wege 1350, 1351, 1360, 1360, 1361, 1371 und 1370 in geeigneter Weise die möglichen Wege des Autos bei den angenommenen Winkeln der Vorderräder. Wenn die Diskretisierung zu Rundungsfehlern führt, wobei das Auto in einer Position stehenbleibt, die nicht beabsichtigt war, kann es dennoch den Richtungspfeilen von seiner neuen Position zum Ziel folgen.
  • Wenn angenommen wird, daß der maximal mögliche Winkel für die Vorderräder 45º ist, definieren die Adern 1350/1351 und 1360/1361 äußere Grenzen für alle möglichen Wege , die der kartesische Punktort des Autos von der gegebenen Position aus einnehmen kann. Die Form von Fig. 11 soll im weiteren als "Doppelkegelform" angedeutet werden. Das heißt, daß der Satz von Nachbarn eines bestimmten Zustandes im Konfigurationsraum einem Doppelkegel um eine diesem Zustand entsprechende Position im Aktionsraum entspricht.
  • Die Doppelkegelform illustriert die Brauchbarkeit der Wahl der Mitte zwischen den nicht angetriebenen Rädern als kartesischen Punktort. Dieser kartesische Punktort ist ein Drehpunkt des Autos. Mit anderen Worten, wenn dieser kartesische Punktort gewählt wird, treffen sich die Adern 1350 und 1360 bei einem einzigen Tangentenpunkt, statt zwei Schnittpunkte zu bilden.
  • Andere Fahrzeugarten können andere Drehpunkte haben.
  • Fig. 13 erläutert schematisch den Ort von 24 einen beliebigen Punkt im Aktionsraum umgebenden Nachbarpunkten. Es sei bemerkt, daß die von der aktuellen Position ausgehenden Linien den Richtungspfeilen entgegengesetzt sind, die beim Budding zugewiesen würden. Somit entspricht Nachbar dir 7, was bezüglich der aktuellen Lage vorwärts und nach links ist, einem Richtungspfeil-Wert, der einer Rückwärtsbewegung des Autos bei nach links gedrehten Rädern entspricht. Nachbar dir 19, was bezüglich der aktuellen Lage rückwärts und nach links ist, entspricht einem Richtungspfeil-Wert, der einer Vorwärtsbewegung des Autos bei während des ganzen Weges nach links gedrehten Rädern entspricht.
  • Die Nachbarpunkte von Fig. 13 sind an die spezielle Diskretisierung angepaßt, die für dieses Beispiel gewählt worden ist. Mehr Nachbarn würden eine genauere Bewegung zulassen. Weniger Nachbarn würden eine weniger genaue Bewegung zulassen. Wenn die Räder des Autos mehr Winkel einnehmen dürften, d.h. wenn sie mit einem fei neren Diskretisierungsgrad repräsentiert würden, würde die Doppelkegelform auf jeder Ader mehr Adern mit Nachbarn haben. Es können auch genug Nachbarn hinzugefügt werden, um den Raum zwischen den Adern 1350/1351 und 1360/1361 an den äußeren Grenzen zu füllen. Diese zusätzlichen Nachbarn minimieren die Übergangskosten zum aktuellen Zustand. In einem solchen Fall könnte der Radwinkel eher als stetig als als diskretisiert betrachtet werden.
  • Die obige Diskussion von Nachbarschaften kann auf andere Beispiele der Streckenplanung verallgemeinert werden. Im allgemeinen kann die Zahl von Nachbarn eines bestimmten Zustandes abhängig vom Zustand variieren. Mit anderen Worten, die Nachbarschaft ist "raumvariant". Zusätzlich kann die Nachbarschaft um den Zustand herum je nach der Anwendung jede beliebige Form annehmen.
  • Die Anordnung dieser 24 Nachbarpositionen bezüglich der aktuellen Position ist in TABELLE 1 aufgelistet. Wie in dieser Tabelle gezeigt wird, sind die Nachbarpunkte eine Funktion des Winkels &phi; des Autos. Der Winkel &phi; wird in der Tabelle mit "carangle" bezeichnet und nimmt die Werte 0-64 an. Die Nachbarpositionen werden mit dir 0, dir 1, ...dir 23 bezeichnet, was den Nachbarpositionen in Fig. 13 entspricht. Neben der Bezeichnung jedes der Nachbarpunkte stehen in TABELLE I vier Zahlen. Die erste Zahl stellt einen vom kartesischen Punktort des Autos von einem aktuellen Punkt bis zum Nachbarpunkt zurückgelegten Abstand dar. Die nächsten drei Zahlen stellen den Differentialwert (dx, dy, d&phi;) der Position dar, wobei dx, dy und d&phi; als jeweilige Zahlen von Zuständen dargestellt sind.
  • So stellt beispielsweise dir 0 bei carangle 0 in TABELLE I eine Bewegung des kaatesischen Punktortes von 0,250 Einheiten dar, einen Übergang von 1 Zustand in der x-Richtung und einen Übergang von 0 Zuständen in der y- und der &phi;-Richtung. Ebenso sehen wir bei carangle 0 , daß dir 23 eine Bewegung des kartesischen Punktortes von 1,017, einen Übergang von -4 Zuständen in der x-Richtung, einen Übergang von 0 Zuständen in der y-Richtung und einen Übergang von 3 Zuständen in der &phi;- Richtung darstellt.
  • Bei einem gegebenen carangle können eventuell zwei Nachbarpunkte nicht unterscheidbar sein. Bei carangle 0 stellt beispielsweise dir 4 eine Bewegung des kartesischen Punktortes von 0,250 dar, einen Übergang von 1 Zustand in der x-Richtung und Übergänge von 0 Zuständen in der y- und der &phi;-Richtung. Bei carangle 0 ist dir 4 somit nicht von dir 0 unterscheidbar. Dies ist ein aus dem Diskretisierungsgrad des Konfigurationsraums herrührender Artefakt. Der Übergang mit den höheren Kosten wird in Kästchen 19 von Fig. 1a niemals gewählt werden. Bei einer alternativen Ausführungsform kann diese Redundanz der Nachbarschaft beseitigt werden, indem höhere-Kosten-redundante Nachbarn von der Suche ausgeschlossen werden.
  • Somit definiert TABELLE I einen Satz Nachbarschaften, die bezüglich des Zustandes variieren, auch "raumvariante Nachbarschaft" genannt.
  • Die in dieser Ausführungsform zu minimierende, gewählte Kostenfunktion ist der von dem kartesischen Punktort des Autos zurückgelegte Abstand. Wegen dieser Wahl der Kostenfunktion geben die Abstandswerte in TABELLE I auch die Übergangskosten von den den angegebenen Nachbarpositionen entsprechenden Zuständen aus zur angegeben aktuellen Position an. TABELLE 1 definiert also sowohl eine raumvariante Metrik als auch eine raumvariante Nachbarschaft. Der Begriff "Metrik" wird auf die hier eingeführte Metrik so angewendet, daß er bedeutet, daß die Übergangskosten &ge; 0 sind, unabhängig davon, ob Symmetrie der Übergangskosten vorliegt oder für die Übergangskosten eine Dreieckungleichheit gilt.
  • Der Fachmann könnte andere zu minimierende Kostenfunktionen wählen, beispielsweise die Anzahl Drehungen des Lenkrades oder die zum Folgen einer bestimmten Strecke notwendige Zeit.
  • Wenn für den Konfigurationsraum andere Parameter gewählt worden wären, wäre der Satz Nachbarn anders gewählt worden. Die Doppelkegelform von Fig. 13 ist beispielsweise symmetrisch, weil angenommen wird, daß das Auto vollkommene Reaktion aufweist. Wenn das Auto keine vollkommene Reaktion aufweist, könnte Geschwindigkeit ein vierter Parameter im Konfigurationsraum werden. Bei höheren Geschwindigkeiten ist es nicht sinnvoll anzunehmen, daß sich die Richtung des Autos unmittelbar umkehrt. Daher werden einige der Nachbarschaften eine Transformation haben, die wie eine verschmälerte Ausführung nur eines Kegels des Doppelkegels aussieht. Wenn beispielsweise das Auto sich mit 30 m/h vorwärts bewegt, sollte dir 0 nach dir 11, was einer Rückwärtsbewegung des Autos entspricht, aus der Nachbarschaft entfernt werden. Gleichermaßen würden die maximal zulässigen Radwinkel bei 30 m/h kleiner sein als die im Ruhezustand zulässigen Winkel, daher würde dir 16 bis dir 19 einem maximalen Radwinkel von weniger als 45º entsprechen. In diesem Beispiel sollten zusätzliche Nachbarn, außer dir 15, dir 19 und dir 290 hinzugefügt werden, um zusätzlichen Möglichkeiten zur Bewegung des Autos zu entsprechen.
  • Beim "Budding" müssen die Nachbarn in der Doppelkegel-Nachbarschaft entsprechend einem Vorrang gesucht werden, wie oben in Abschnitt D beschrieben, wobei kein Nachbar gesucht wird, wenn er jenseits eines Nachbars liegt, der durch ein Hindernis blockiert ist. Im Falle von Fig. 12 kann der Vorrang die Suche aller Nachbarn auf einer Ader des Doppelkegels einschließen, von der Mitte ausgehend, bis ein Hindernis erreicht wird oder bis zum Ende der Ader, und dann das Suchen einer anderen Ader. Andere Arten des Vorrangs können gewählt werden. Wenn beispielsweise redundante Nachbarn entfernt werden, sollte der weggenommene redundante Nachbar hinsichtlich des Vorrangs bei der Suche als blockiert oder nichtblockiert betrachtet werden, in Abhängigkeit davon, ob ein festgehaltener redundanter Zustand blockiert ist. Mit anderen Worten, wenn dir 4 aus TABELLE I für die Suche nach carangle 0 entfernt wird, wird die Suche bei Kästchen 17 von Fig. 1b dann und nur dann dir 5 suchen, wenn dir 0 nichtblocklert ist.
  • Jetzt soll die Transformation von Hindernissen in den Konfigurationsraum beschrieben werden.
  • Die Hindernisse 1203 und 1204 haben im Konfigurationsraum , abhängig von dem Winkel &phi; des Autos 1201, unterschiedliche Form. Fig. 14a, b, c und d zeigen &phi;-Ebenen des Konfigurationsraums, die Hindernisgebiete für gleichartige Hindernisse wie 1203 und 1204 darstellen.
  • Fig. 14a zeigt die Konfigurationsraumsebene für &phi; = 180º. Das Auto ist schematisch als 1401a gezeichnet, wobei es unter dem Winkel &phi; = 180º dargestellt wird. Gebiete 1402a entsprechen der Größe tatsächlicher Hindernisse im Aktionsraum. Gebiete 1403a entsprechen zusätzlichem Raum, den der kartesische Punktort des Autos wegen des von der Oberfläche des Autos eingenommenen Raumes nicht erreichen kann. Gebiete 1404a entsprechen Gebieten, die der kartesische Punktort des Autos wegen der gewählten Grenzen des Aktionsraums nicht erreichen kann, beispielsweise Bordsteinkanten einer Straße. Gebiet 1405a stellt das Gebiet dar, in dem sich der kartesische Punktort des Autos frei bewegen kann. Fig. 14b-14d geben den gleichen Konfigurationsraum wieder wie Fig. 14a, aber für die Ebenen für &phi; = 90º, 270º bzw. 235º.
  • Fig. 15 ist ein Schirmbild einer auf einer Sun-Workstation laufenden Simulation. Das Schirmbild zeigt eine Überlagerung von Bildern des Autos 1202, wie es sich durch die zu Zuständen entlang eines das Auto parallel parkenden Weges gehörende Positionen bewegt. Hindernisse 1503 stellen geparkte Autos dar. Der von den Hinterrädern gefolgte Weg wird mit 1501 bezeichnet. Der Drehpunkt des Heckdifferentials bewegt sich entlang 1502. 1504 bezeichnet die Front des Autos.

Claims (16)

1. Vorrichtung zum Planen einer Strecke, der ein Fahrzeug (1501, 1502, 1504) durch einen gegebenen Aktionsraum von einem Ausgangspunkt zu einem Zielpunkt folgen soll, wobei die Strecke ein gegebenes Kostenkriterium erfüllt, das Fahrzeug auf mindestens einem Rad und einem drehbaren oder gleitenden Träger bewegbar ist, das genannte Rad nahezu an einem Ende des Fahrzeugs positioniert ist und steuerbar ist und der genannte Träger nahezu am anderen Ende des Fahrzeugs positioniert ist, dadurch gekennzeichnet, daß die Vorrichtung Mittel zum Speichern einer internen Repräsentation einer nahen Umgebung des Fahrzeugs umfaßt, Mittel zur Repräsentation einer Lage des Fahrzeugs in dem gegebenen Aktionsraum, wobei die Lage in bezug auf einen festen Punkt des Fahrzeugs gemessen wird, und Mittel zum Berechnen einer auf der internen Repräsentation beruhenden Manövriertrajektorie.
2. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß der feste Punkt bezüglich des Trägers bei einem Symmetriepunkt positioniert ist.
3. Vorrichtung nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß die Speichermittel einen Speicher zum Speichern einer Repräsentation eines einem diskretisierten Teilsatz aller Positionen des Fahrzeugs in dem gegebenen Aktionsraum entsprechenden diskretisierten Konfigurationsraums umfassen, wobei die Repräsentation beim Konfigurationsraum ein Feld von Zuständen einschließt und hierbei jeder Zustand Kosten-bis-zum-Ziel- und Richtungspfeil-Felder hat, wobei das Feld eine erste und eine zweite Dimension zum Darstellen der Lage des Fahrzeuges in dem gegebenen Aktionsraum entlang einer ersten bzw. entlang einer zweiten kartesischen Achse hat und eine dritte Dimension zum Darstellen der Lage des Fahrzeuges entsprechend einer Winkelorientierung des Fahrzeuges, und daß die Berechnungsmittel Mittel zum Ausbreiten von Kostenwellen im Konfigurationsraum umfassen und Mittel zum Bestimmen einer Strecke von einem Ausgangszustand zu einem Zielzustand im Konfigurationsraum auf der Basis der Kostenwellen.
4. Vorrichtung nach Anspruch 3, dadurch gekennzeichnet, daß die Ausbreitungsmittel Rechenmittel umfassen, um wiederholt:
a) alle Nachbarzustände eines Zustandes im Konfigurationsraum zu untersuchen;
b) Nachbarzustände des Zustandes zu verbessern durch Zuweisung geeigneter Kostenbis-zum-Ziel- und Richtungspfeil-Werte an den Zustand;
c) verbesserte Nachbarzustände zu einer Speicherdatenstruktur zu addieren; wobei die Schritte a), b), c) im folgenden als "Budding" eines Zustandes bezeichnet werden..
5. Vorrichtung nach Anspruch 4, dadurch gekennzeichnet, daß "Budding" eines Zustandes das Aufsuchen von Zuständen entsprechend einem Vorrang beinhaltet, bei dem, wenn ein erster Nachbarzustand von einem Hindernis blockiert wird, kein zweiter Nachbarzustand jenseits des ersten Nachbarzustandes aufgesucht wird.
6. Vorrichtung nach Anspruch 5, dadurch gekennzeichnet, daß eine Repräsentation von Nachbarzustanden in einem Nachbarspeicher in einer Baumstruktur entsprechend dem genannten Vorrang gespeichert wird, wobei Subbäume von Nachbarzustanden, die blockiert sind, während der Suche nicht berücksichtigt werden.
7. Vorrichtung nach Anspruch 3, dadurch gekennzeichnet, daß die Bestimmungsmittel Rechenmittel beinhalten, um Werten in den Richtungspfeil-Feldern zu folgen.
8. Vorrichtung nach einem der Ansprüche 3, 4, 5, 6 und 7, dadurch gekennzeichnet, daß das Fahrzeug ein Auto ist, dessen Lage entlang der ersten und zweiten kartesischen Achsen entsprechend einer Position des Heckdifferentials des Autos gemessen wird.
9. Vorrichtung nach einem der Ansprüche 3, 4, 5, 6, 7 und 8, dadurch gekennzeichnet, daß jeder Zustand in der Repräsentation des Konfigurationsraums einen Satz von Nachbarzuständen hat, der innerhalb einer einem Doppelkegel entsprechenden Form im Aktionsraum liegt.
10. Vorrichtung nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß das Fahrzeug ein Auto ist und die Manövriertrajektorie ein Weg zum parallel Einparken zwischen zwei geparkten Autos ist.
11. Vorrichtung nach Anspruch 10, dadurch gekennzeichnet, daß der Weg ein Weg zum Wenden in drei Zügen ist.
12. Vorrichtung nach einem der Ansprüche 1 bis 11 und ausgeführt als Fahrzeug.
13. Verfahren zum Planen einer Strecke, der ein Gegenstand (1501, 1502, 1504) durch einen gegebenen Aktionsraum von einem Ausgangspunkt zu einem Zielpunkt folgen soll, wobei die Strecke ein gegebenes Kostenkriterium erfüllt, der Gegenstand auf mindestens einem Rad und einem drehbaren oder gleitenden Träger bewegbar ist, das genannte Rad nahezu an einem Ende des Fahrzeugs positioniert ist und steuerbar ist und der genannte Träger nahezu am anderen Ende des Fahrzeugs positioniert ist, wobei das Verfahren den Schritt des Ausbreitens von Kostenwellen in einer Konfigurationsraumrepräsentation des Aktionsraums umfaßt, dadurch gekennzeichnet, daß der Ausbreitungsschritt den Schritt des Budding in einer Nachbarschaft mindestens eines Zustandes im Konfigurationsraum umfaßt, wobei ein Vorrang verwendet wird, bei dem, wenn ein erster Nachbarzustand von einem Hindernis (1503) blockiert wird, kein zweiter Nachbarzustand jenseits des ersten Nachbarzustandes aufgesucht wird.
14. Verfahren nach Anspruch 13, dadurch gekennzeichnet, daß der Ausbreitungsschritt den Schritt des Budding in raumvarianten Nachbarschaften mindestens zweier Zustände umfaßt.
15. Verfahren nach Anspruch 14, dadurch gekennzeichnet, daß eine Form der Nachbarschaften sich mit dem Zustand des Konfigurationsraums andert.
16. Verfahren nach Anspruch 14, dadurch gekennzeichnet, daß Nachbarn jeweiligen Zahlen von Übergängen entlang jeweiligen Parameterachsen des Konfigurationsraums entsprechen und die jeweiligen Zahlen sich mit dem Zustand des Konfigurationsraums ändern.
DE68921857T 1988-12-23 1989-12-18 Methode und Vorrichtung zur Steuerung der Fortbewegungsrichtung eines Fahrzeuges und mit so einer Vorrichtung ausgestattetes Fahrzeug. Expired - Fee Related DE68921857T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US29013088A 1988-12-23 1988-12-23

Publications (2)

Publication Number Publication Date
DE68921857D1 DE68921857D1 (de) 1995-04-27
DE68921857T2 true DE68921857T2 (de) 1995-11-09

Family

ID=23114661

Family Applications (1)

Application Number Title Priority Date Filing Date
DE68921857T Expired - Fee Related DE68921857T2 (de) 1988-12-23 1989-12-18 Methode und Vorrichtung zur Steuerung der Fortbewegungsrichtung eines Fahrzeuges und mit so einer Vorrichtung ausgestattetes Fahrzeug.

Country Status (4)

Country Link
EP (1) EP0375055B1 (de)
JP (1) JPH02238506A (de)
KR (1) KR900010515A (de)
DE (1) DE68921857T2 (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5220497A (en) * 1987-11-20 1993-06-15 North American Philips Corp. Method and apparatus for controlling high speed vehicles
EP0546633A2 (de) * 1991-12-11 1993-06-16 Koninklijke Philips Electronics N.V. Bahnführung in unbestimmter Umgebung
DE60226817D1 (de) 2001-08-23 2008-07-10 Nissan Motor Fahrassistenzsystem
AT514588B1 (de) * 2013-08-29 2015-02-15 Tech Universität Wien Verfahren zur Steuerung eines Fahrzeuges
DE102014219936A1 (de) * 2014-10-01 2016-04-07 Bayerische Motoren Werke Aktiengesellschaft Ein Trajektorien-Planungsverfahren zur Ermittlung eines Steuerprofils für ein Kraftfahrzeug
CN111684379B (zh) * 2018-12-26 2023-12-22 百度时代网络技术(北京)有限公司 自动驾驶车辆的三点转弯的最优规划器切换方法
AU2020420252A1 (en) * 2020-01-09 2022-07-28 Honda Motor Co., Ltd. Control device and work machine

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5719864A (en) * 1980-07-09 1982-02-02 Nec Corp Route searching system
US4530056A (en) * 1982-10-28 1985-07-16 Modular Automation Corp. Automated guided vehicle system
JPS61263851A (ja) * 1985-05-17 1986-11-21 Nippon Denso Co Ltd 自動車の自動幅寄せ装置
JPS63200208A (ja) * 1987-02-14 1988-08-18 Fujitsu Ltd 移動経路探索方法
JPS63273915A (ja) * 1987-05-06 1988-11-11 Toyota Autom Loom Works Ltd 走行コ−ス作成装置

Also Published As

Publication number Publication date
KR900010515A (ko) 1990-07-07
EP0375055A3 (en) 1990-09-12
DE68921857D1 (de) 1995-04-27
EP0375055A2 (de) 1990-06-27
EP0375055B1 (de) 1995-03-22
JPH02238506A (ja) 1990-09-20

Similar Documents

Publication Publication Date Title
DE68913260T2 (de) Differenzierte entwicklung: verfahren und gerät zur wegplanung mit beweglichen hindernissen und zielen.
DE3853616T2 (de) Verfahren und Gerät zur Wegplanung.
DE102016111691A1 (de) Halbautonomes Fahrzeug und Verfahren zum Steuern eines halbautonomen Fahrzeugs
DE102019108795A1 (de) Fahrzeugwegidentifikation
DE4334701C2 (de) Navigationssystem sowie Navigationsverfahren mit einem Wegbestimmungsprozeß, der in der Lage ist, einen gewünschten Weg schnell und vollständig zu bestimmen
EP3475936B1 (de) Verfahren zum überprüfen einer kollision zwischen zwei fahrerlosen transportfahrzeugen, fahrerloses transportfahrzeug und system mit mehreren fahrerlosen transportfahrzeugen
DE112016003567T5 (de) Steuerverfahren für einen sich bewegenden Körper, sich bewegender Körper und Steuersystem für einen sich bewegenden Körper
EP1105782A2 (de) Verfahren und anordnung zur ermittlung eines weges um eine vorgegebene bezugsposition
DE102014205170A1 (de) Verfahren und Vorrichtung zum Ermitteln einer Trajektorie für ein Fahrzeug
EP2641061B1 (de) Verfahren zur automatischen ermittlung einer begrenzung einer teilfläche einer gesamtfläche
DE112019000873T5 (de) System und Verfahren zum Erzeugen eines Zielpfades für ein Fahrzeug
DE102015001247A1 (de) Verfahren zur Bereitstellung von Information über zumindest ein Objekt in einem Umgebungsbereich eines Kraftfahrzeugs und System
DE102020128307A1 (de) Kooperatives abbilden für autonome fahrzeuge, roboter oder multiagentensysteme
DE68921857T2 (de) Methode und Vorrichtung zur Steuerung der Fortbewegungsrichtung eines Fahrzeuges und mit so einer Vorrichtung ausgestattetes Fahrzeug.
DE102018219773A1 (de) Verfahren zum Kartographieren einer örtlichen Verteilung von Ereignissen eines vorbestimmten Ereignistyps in einem vorbestimmten Umgebungsbereich eines Kraftfahrzeugs sowie dazu ausgelegtes Steuergerät und Kraftfahrzeug
WO2018077641A1 (de) Bestimmung einer trajektorie mit multi-resolution grid
EP3575912A1 (de) Mähroboter
EP3809316A1 (de) Vorhersage eines strassenverlaufs auf basis von radardaten
DE69023832T2 (de) Verfahren und Gerät zur Feststellung möglicher Kollisionen durch den Gebrauch von Angaben geometrischer Hubvolumenstrukturen.
DE68906648T2 (de) Verfahren für parzellenorientierte Streckenplanung sowie Navigationssystem mit einem Streckenplaner zur Durchführung eines derartigen Verfahrens.
DE102020201000B3 (de) Computerimplementiertes Verfahren und System zum Erhalten eines Umfeldmodells und Steuergerät für ein automatisiert betreibbares Fahrzeug
EP2741161B1 (de) Selbstfahrendes bodenbearbeitungsgerät und verfahren zur positionsbestimmung bei einem selbstfahrenden bodenbearbeitungsgerät
WO2020001690A1 (de) Verfahren und system zur erkennung von hindernissen
DE102021203809B4 (de) Fahrverlaufsschätzung in einem Umfeldmodel
DE102016122031A1 (de) Ressourcensparende Karte für ein Fahrerassistenzsystem eines Kraftfahrzeugs

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: KONINKLIJKE PHILIPS ELECTRONICS N.V., EINDHOVEN, N

8320 Willingness to grant licences declared (paragraph 23)
8328 Change in the person/name/address of the agent

Representative=s name: VOLMER, G., DIPL.-ING., PAT.-ANW., 52066 AACHEN

8339 Ceased/non-payment of the annual fee