PatentDe  


Dokumentenidentifikation DE3686379T2 11.03.1993
EP-Veröffentlichungsnummer 0213939
Titel Regler für ein ferngesteuertes Fahrzeug unter Verwendung der verzögerten absoluten Positionsdaten für Lenkung und Navigation.
Anmelder Texas Instruments Inc., Dallas, Tex., US
Erfinder Wand, Martin A., Garland, TX 75040, US;
Christian, Donald J., Richardson, TX 75080, US;
Woodall, Joe D., Euless, TX 76039, US;
Williston, John P., Plano, TX 75075, US;
Rice, Jay H., Dallas, TX 75238, US;
Summerville, David F., Garland, TX 75401, US
Vertreter Prinz, E., Dipl.-Ing.; Leiser, G., Dipl.-Ing.; Schwepfinger, K., Dipl.-Ing.; Bunke, H., Dipl.-Chem. Dr.rer.nat.; Degwert, H., Dipl.-Phys., Pat.-Anwälte, 8000 München
DE-Aktenzeichen 3686379
Vertragsstaaten BE, DE, FR, GB, IT, SE
Sprache des Dokument En
EP-Anmeldetag 29.08.1986
EP-Aktenzeichen 863066775
EP-Offenlegungsdatum 11.03.1987
EP date of grant 12.08.1992
Veröffentlichungstag im Patentblatt 11.03.1993
IPC-Hauptklasse G05D 1/03

Beschreibung[de]

Die Erfindung betrifft steuerbare bewegliche Geräte, etwa steuerbare bewegliche Roboter, und insbesondere steuerbare bewegliche Geräte, die frei umherfahrend betrieben werden können, sowie noch spezieller frei umherfahrende Geräte, die ein Koppelnavigation- bzw. Ausfallannahme-Leitsystem aufweisen.

Bei Fertigungsschwierigkeiten ist der Einsatz von automatisierter Ausrüstung zeit- und kostenwirksam, wobei die für Lohnarbeit aufgewandten Kosten wesentlich gesenkt werden. Außerdem ist es bei der Herstellung von Präzisions-Schaltungen und -Geräten wie etwa Halbleiterschaltungen notwendig, die Schaltungen oder Geräte in einer reinen Umgebung zu fertigen. Es liegt auf der Hand, daß sich eine Verunreinigung leichter bei Automatisierung als bei menschlicher Beteiligung am Fertigungsvorgang vermeiden läßt. Infolgedessen hat es sich gezeigt, daß ein einen Fabrikboden überquerendes bewegliches Transportsystem zur Materialbeförderung dem Einsatz von Fließbändern oder geführten Material-Fördereinrichtungen, etwa solchen, die aufgemalten Streifen, Schienen, Leitkabeln usw. folgen, vorzuziehen ist.

Wünschenswert ist es, über eine frei umherfahrende Material- Fördereinrichtung zu verfügen, die angewiesen werden kann, zu einem Ziel zu fahren, wobei die Material-Fördereinrichtung in der Lage ist, sich ohne Eingreifen einer Bedienungsperson selbst zu diesem Ziel zu leiten. Bei dem frei umherfahrenden System sollte das bewegliche Gerät auch eine Frei-Umherfahr- Betriebsart aufweisen, weshalb es notwendig ist, über ein Leitsystem mit Koppelnavigation zu verfügen, das die Position des Fahrzeugs aufgrund des tatsächlichen Rad-Laufs und seiner früheren Position extrapoliert.

In der Druckschrift GB-A-2 042 217, auf der der Oberbegriff des Patentanspruchs 1 basiert, ist ein selbststeuerndes Fahrzeug beschrieben, das mittels Koppelnavigation entlang eines angewiesenen Pfades fährt und dessen tatsächliche Position von Zeit zu Zeit gemessen und zur Bereitstellung eines Fixpunkts verwendet wird.

In der Druckschrift GB-A-2 129 161 ist eine automatische Transporteinrichtung beschrieben, die mehrere Fahrzeuge mit jeweils einer Infrarot-Signaleinrichtung aufweist, deren Position von einer oder mehreren Kameras beobachtet wird, sowie eine auf die Signale von den Kameras ansprechende Recheneinheit, die die Position, die Geschwindigkeit und die Richtung der Fortbewegung jedes Fahrzeugs berechnet und daraufhin Signale an die Fahrzeuge sendet, um ihre Bewegung zu steuern.

In der Druckschrift FR-A-2 526 181 ist ein selbststeuerndes Fahrzeug beschrieben, das mittels Koppelnavigation fährt und das ein akustisches Signal aus sendet und die Reflexion dieses Signals von feststehenden Markierungen wahrnimmt, um seine Position zu korrigieren.

ÜBERSICHT ÜBER DIE ERFINDUNG

Gemäß der Erfindung wird ein Steuersystem für ein bewegliches Gerät, das im Betrieb einem angewiesenen Pfad folgt, geschaffen, wobei das Steuersystem an dem beweglichen Gerät enthält: eine erste Navigationseinrichtung, die auf die Bewegung des beweglichen Gerätes anspricht, um das Gerät entlang dem angewiesenen Pfad zu führen und Daten zu erzeugen, welche die berechnete Position des Gerätes darstellen, und Mittel zum periodischen Korrigieren der berechneten Positionsdaten durch Bezugnahme auf die tatsächliche Position des Gerätes, dadurch gekennzeichnet, daß das System eine Fernsicht-Einrichtung zur Beobachtung der Position des beweglichen Gerätes und Ableitung von diese Position darstellenden Daten umfaßt, ein Sender zum Senden der Positionsdaten an das bewegliche Gerät vorgesehen ist, Mittel an dem beweglichen Gerät die gesendeten Positionsdaten empfangen, und daß die Mittel zum periodischen Korrigieren der berechneten Positionsdaten ansprechen auf die gesendeten Positionsdaten, die durch die Empfangsmittel empfangen werden, wobei die gesendeten Positionsdaten eine zugeordnete Zeitmarke enthalten und die erste Navigationseinrichtung berechnete Positionsdaten erzeugt, und wobei die Korrekturmittel bei der Korrektur der berechneten Positionsdaten einen Zeitversatz zwischen den Zeiten berücksichtigen, die zu den gesendeten Positionsdaten bzw. zu den berechneten Positionsdaten gehören.

Eine Bewegliche-Fahrzeug-Steuerung dient dazu, ein bewegliches Gerät oder eine bewegliche Vorrichtung zu steuern, die entlang eines angewiesenen Pfades, einer befohlenen Bahn, fährt. Die Bewegliche-Fahrzeug-Steuerung umfaßt ein Koppel- Navigationsverfahren, um die steuerbare bewegliche Vorrichtung ansprechend auf Positionsdaten entlang der befohlenen Bahn zu steuern. Die bewegliche Vorrichtung ermittelt ihre Position und stellt die Positionsdaten bereit. Ein Sichtsystem verschafft der beweglichen Vorrichtung die absolute Position. Die Koppelnavigations-Positionsdaten werden in regelmäßigen Zeitabständen gemäß der absoluten Position modifiziert.

Das Koppelnavigationsverfahren ist mit dem Sichtsystem synchronisiert.

Die Beweglichkeit wird der beweglichen Vorrichtung mittels mehrerer Räder zur Schaffung von Mobilität verliehen. Ein Servomotor-System stellt eine Einrichtung, um die mehreren Räder mit einer steuerbaren Drehgeschwindigkeit zu drehen, und eine Einrichtung bereit, mit der die Fahrtlinie der beweglichen Vorrichtung geändert werden kann, indem der Winkel der Drehrichtung geändert wird, den eine vorbestimmte Anzahl der mehreren Räder mit der Bewegliche-Vorrichtungs-Einrichtung zur Steuerung der Drehgeschwindigkeit der mehreren Räder einschließt.

Das Koppelnavigationsverfahren ermittelt eine mittlere durchfahrene Strecke aus der Anzahl von Drehungen der mehreren Räder und die befahrene Richtung aus dem Winkel der Drehrichtung der mehreren Räder.

Die Positionsdaten und die absoluten Positionsdaten werden miteinander verglichen und die Positionsdaten mittels der Vergleichsergebnisse modifiziert.

Ein Sicht-Navigationssystem liefert die absolute Position der steuerbaren beweglichen Vorrichtung in bestimmbaren Koordinaten und übermittelt die bestimmbaren Koordinaten an die bewegliche Vorrichtung.

Eine Synchronisation wird durch Zeitmarkierung der bestimmbaren Koordinaten und eine Zeitversatz-Einrichtung, mit der der Zeitversatz zwischen der Zeitmarke und dem Zeitpunkt, zu dem die Korrekturmittel die Positionsdaten modifizieren, ermittelt wird und mit der außerdem die Positionsdaten entsprechend des sich aus dem Zeitversatz ergebenden Positionsunterschieds modifiziert werden, geschaffen.

Das Sicht-Navigationssystem gewinnt ein Bild von der beweglichen Vorrichtung, setzt das Bild in eine räumliche Position um und erzeugt aus der räumlichen Position absolute Positionsdaten.

Ein Bild der beweglichen Vorrichtung wird gewonnen, indem ein vorbestimmtes Muster von erleuchteten Punkten, die der beweglichen Vorrichtung zugeordnet sind, bereitgestellt wird, wobei diese erleuchteten Punkte voneinander durch vorbestimmte Abstände getrennt sind, und eine Fernsehkamera ein Bild der erleuchteten Punkte gewinnt.

Diese Vorteile und Gegenstände der Erfindung ergeben sich aus der Beschreibung in Verbindung mit den Figuren:

FIGURENÜBERSICHT

Fig. 1 ist ein Blockdiagramm eines erfindungsgemäßen Fertigungssystems;

Fig. 2 ist ein Blockdiagramm der Steuer- und Navigationsschaltung der Fig. 1;

Fig. 3 ist ein Blockdiagramm des Schnittstellenbausteins der Fig. 4;

Fig. 4 ist ein Blockdiagramm des Bildhistogrammprozessors der Fig. 2;

Fig. 5 ist ein Blockdiagramm des Fenstergenerators der Fig. 2;

Fig. 6 ist ein Blockdiagramm des Bildspeicherbausteins der Fig. 2;

Fig. 7 sind Wellenform-Diagramme, die die Wirkungsweise der Steuer- und Navigationsschaltung 15 der Fig. 1 veranschaulichen;

Fig. 8 zeigen

Flußdiagramme der erfindungsgemäßen Bild- Schwerpunktbildung;

Fig. 9 ist eine isometrische Darstellung einer erfindungsgemäßen Fertigungseinrichtung;

Fig. 10 und 11 veranschaulichen das bei Spiegelbildern auftretende Problem;

Fig. 12 ist ein Flußdiagramm des bei auftretenden Spiegelbildern ausgeführten Programms;

Fig. 13, 14 und 15 veranschaulichen das Problem, das auftritt, wenn bei der Erfindung die Sicht einer Kamera auf eine Leit-Signaleinrichtung verdeckt ist;

Fig. 16 und 17 veranschaulichen die Bestimmung eines verdeckten Bildes;

Fig. 18 ist ein Blockdiagramm eines erfindungsgemäßen beweglichen Roboters;

Fig. 19 ist ein Flußdiagramm eines von dem beweglichen Roboter der Fig. 18 ausgeführten Programms;

Fig. 20 ist ein Blockdiagramm einer erfindungsgemäßen Servosteuerschleife;

Fig. 21 ist ein Blockdiagramm eines erfindungsgemäßen Ausfallannahme-Navigationssystems;

Fig. 22 sind Flußdiagramme des bei der beweglichen Vorrichtung der Fig. 18 verwirklichten Ausfallannahme-Navigationssystems;

Fig. 23 ist ein Flußdiagramm der Ausführung eines erfindungsgemäßen Servofilters;

Fig. 24 bis 27 zeigen ein Bremssystem für die bewegliche Vorrichtung der Fig. 18;

Fig. 28 ist ein Blockdiagramm eines drahtlosen Kommunikationssystems zur Datenübertragung zwischen den Steuer- und Navigationsschaltungen und der beweglichen Vorrichtung;

Fig. 29 ist eine Wellenform des drahtlosen Kommunikationssystems der Fig. 28;

Fig. 30 ist eine Draufsicht auf eine erfindungsgemäße Signaleinrichtung;

Fig. 31 ist eine Schnittansicht einer erfindungsgemäßen Navigations-Signaleinrichtung;

Fig. 32 ist eine Draufsicht auf eine erfindungsgemäße Fertigungseinrichtung;

Fig. 33 ist eine isometrische Ansicht der Fertigungseinrichtung der Fig. 32;

Fig. 34 ist ein Flußdiagramm eines Programms, das erfindungsgemäß zur Positionsbestimmung einer beweglichen Vorrichtung dient, wenn sie außer Sicht der Kamera ist;

Fig. 35 ist ein Blockdiagramm einer Fertigungseinrichtung mit einem erfindungsgemäßen Mehr-Vorrichtungs-System;

Fig. 36 ist ein Flußdiagramm der Bedienerschnittstelle der Fig. 35;

Fig. 37 ist ein Flußdiagramm der Kommunikationslogik der Fig. 35;

Fig. 38 ist ein Flußdiagramm, das die Wirkungsweise der Navigationslogik der Fig. 35 veranschaulicht;

Fig. 39 ist ein Flußdiagramm, das die Wirkungsweise der Fertigungsanlagensteuerung der Fig. 35 veranschaulicht;

Fig. 40 ist ein Flußdiagramm, das die Wirkungsweise der Organisationssteuerung der Fig. 35 veranschaulicht;

Fig. 41 ist ein Flußdiagramm, das die Wirkung der Ladestations-Logik der Fig. 35 veranschaulicht;

Fig. 42 stellt ein Flußdiagramm der Steuerung eines Systems mit beweglichen Vorrichtungen wie das in Fig. 35 gezeigte dar;

Fig. 43 bis 50 veranschaulichen die Aufstellung von Regeln für ein System mit beweglichen Vorrichtungen mehrerer Typen;

Fig. 51 bis 53 veranschaulichen ein Verfahren zur Steuerung der Bewegungen einer beweglichen Vorrichtung in der Umgebung einer Fertigungsanlage mit mehreren Knotenpunkten;

Fig. 54 sind Flußdiagramme, die die Betriebsweise eines Systems mit mehreren beweglichen Vorrichtungen veranschaulichen;

Fig. 55 bis 57 sind Flußdiagramme, die die Navigation und Steuerung einer Mehrfach-Vorrichtung mit einer einzelnen Steuer- und Navigationsschaltung 15 veranschaulichen;

Fig. 58 bis 61 liefern ein Zusammenstoß-Vermeidungssystem für die erfindungsgemäße Mehrfach-Vorrichtung; und

Fig. 62 sind eine Auflistung von Gleichungen.

DETAILLIERTE BESCHREIBUNG DER AUSFÜHRUNGSFORMEN

In Fig. 1, auf die nun Bezug genommen wird, ist ein vereinfachtes Diagramm eines Steuer- und Navigationssystems 2A und einer beweglichen Vorrichtung 21 gemäß der Erfindung gezeigt. Das Steuer- und Navigationssystem 2A enthält mehrere Kameras 1, eine Steuer- und Navigationsschaltung 15, ein Kommunikationssystem 19 und eine Ein-/Ausgabestation für Daten, ein Terminal 17. Jede einzelne der mehreren Kameras 1 in der dargestellten Ausführungsform ist eine Rasterabtast-Fernsehkamera und setzt das von Signaleinrichtungen 3, 5 und 7 ausgesandte Licht in Videosignale um. Die Signaleinrichtungen 3, 5 und 7 sind auf der beweglichen Vorrichtung 21 angebracht und sind bei der Ausführungsform nach Fig. 1 Leuchtdioden, die im Infrarotbereich arbeiten. Das Licht gibt eine optische Information über die Position und Orientierung der beweglichen Vorrichtung 21 wieder, die über eine optische Linse 11, die in der dargestellten Ausführungsform ein über der optischen Linse 11 angebrachtes Infrarotfilter 9 aufweist, auf die mehreren Kameras 1 übertragen wird. Das Infrarotfilter 9 ist zwar nicht notwendig, dämpft aber das durch Fremdlicht in der Umgebung einer Fertigungsanlage verursachte Rauschen, indem das zu den Kameras 1 gelangende Licht auf den infraroten Teil des Lichtspektrums begrenzt wird.

Die mehreren Kameras 1 setzen die optische Information in ein Videosignal um, das über einen Leiter 13 an die Steuer- und Navigationsschaltung 15 gelangt, welche Bedienereingaben vom Terminal 17 empfängt, die Videosignale in Lagebefehle umsetzt und die Lagebefehle, die eine Information über die Position und Orientierung der beweglichen Vorrichtung 21 enthalten, an ein Kommunikationssystem 19 anlegt, das ein Funkgerät oder ein in der Umgebung einer Fertigungsanlage eher bevorzugtes, mit Licht oder im Infraroten arbeitendes drahtloses Kommunikationssystem sein kann. Das drahtlose Infrarot-Kommunikationssystem ermöglicht durch die Verwendung von Leuchtdioden und lichtempfindlichen Dioden einen Informationsaustausch zwischen der Steuer- und Navigationsschaltung 15 und der beweglichen Vorrichtung 21, auf der die Lichtquellen oder Signaleinrichtungen 3, 5 und 7 angebracht sind. Die bewegliche Vorrichtung 21 vergleicht ihre Position mit ihrer befohlenen Position und gibt ihren Rädern oder Beinen 23 Bewegungsbefehle, um ihre Position zu verändern und/oder um außerdem einen Roboterarm 25 für die Ausführung einer befohlenen Arbeit zu bewegen. Die Position des Roboterarms 25 kann mittels einer wahlweise vorhandene Signaleinrichtung 27 oder mittels interner Bezugsmarken innerhalb der beweglichen Vorrichtung 21 bestimmt werden.

STEUER-UND NAVIGATIONSSCHALTUNG 15

In Fig. 2, auf die nun Bezug genommen wird, ist ein vereinfachtes Blockdiagramm der Steuer- und Navigationsschaltung 15 gezeigt. Die mehreren Fernsehkameras 1A bis 1N liefern der Steuer- und Navigationsschaltung 15 und spezieller einem Video-Schnittstellenbaustein (VIM) 31 Bildinformationen. Der Video-Schnittstellenbaustein 31 wählt eine vorbestimmte Fernsehkamera 15 aus, welche eine einzelne aus der Gruppe von Fernsehkameras 1A bis 1N und als solche in Fig. 2 nicht besonders gekennzeichnet ist. Der Video-Schnittstellenbaustein 31 setzt die Bildinformation, die in Form eines Analogsignals vorliegt, dessen Wellenform der Lichtstärke gegen die Rasterabtastposition der ausgewählten Fernsehkamera 1S entspricht, in ein Digitalsignal um, das eine digitale Graustufenwiedergabe der von der ausgewählten Fernsehkamera 1S erzeugten analogen Wellenform liefert.

Die digitale Graustufenwiedergabe der analogen Wellenformen wird in einem als zweidimensionale Anordnung gebildeten Bildspeicherbaustein (PMM) 35 so verarbeitet und gespeichert, daß die Lichtintensität durch ihre Position innerhalb der Speicheranordnung einer Position der Rasterabtastung der ausgewählten Fernsehkamera 15 entspricht. Zusätzlich überführt ein Bus 39 das Digitalsignal an einen Bildhistogrammprozessor (VHP) 33, bei dem das Digitalsignal in ein Signal (im folgenden Raumgebietsignal genannt) umgesetzt wird, das die Raumgebiet-Position der Lichtquellen 3, 5 und 7 und somit der beweglichen Vorrichtung 21 repräsentiert. Aus dem Raumgebietsignal werden die Schwerpunkte des intensiveren, von der ausgewählten Fernsehkamera empfangenen Lichts festgestellt.

Eine Host-Zentralrecheneinheit (CPU) mit Speicher 37 enthält eine Navigations-CPU mit Speicher 37a, eine Kommunikations- CPU mit Speicher 517 und eine Steuer-CPU mit Speicher 505, wobei insbesondere die Navigations-CPU mit Speicher 37a die Schwerpunkte der Lichtquellen mit einem in der Navigations- CPU mit Speicher 37a gespeicherten, erwarteten Muster der an der beweglichen Vorrichtung 21 angebrachten Lichtquellen 3, 5 und 7 vergleicht. Sobald das Muster identifiziert ist, wird die Position einschließlich der Lage und Orientierung der beweglichen Vorrichtung 21 über die Kommunikations-CPU mit Speicher 517 und ein drahtloses Infrarot-Kommunikationssystem 19 an die bewegliche Vorrichtung 21 übertragen.

Das drahtlose Infrarot-Kommunikationssystem 19 enthält eine Anordnung von Infrarot-Leuchtdioden 45, mit denen Licht zu einer Infrarotlicht empfangenden Diode 47 gesandt wird, und überträgt Informationen und Befehle an die bewegliche Vorrichtung 21, die auf deren Lage basieren. Außerdem wird die Host-CPU mit Speicher 37 mit Befehlen von einem Fertigungsanlagen-Steuerungscomputer oder einem Terminal 17 versorgt, damit sie über die Kommunikations-CPU mit Speicher 517 und das drahtlose Infrarot-Kommunikationssystem 19 an die bewegliche Vorrichtung 21 übertragen werden. Ein Bediener kann die Bewegung der beweglichen Vorrichtung 21 auf einem an den Video- Schnittstellenbaustein 31 angeschlossenen Fernsehbildschirm 29 beobachten. Das Bediener-Terminal 17 kann auch dazu verwendet werden, der beweglichen Vorrichtung 21 zu Testzwecken oder zur Handsteuerung direkt Befehle einzugeben.

VIDEO-SCHNITTSTELLENBAUSTEIN 31

Fig. 3, auf die nun Bezug genommen wird, ist ein Blockdiagramm des Video-Schnittstellenbausteins 31 der Fig. 2. Die Videosignale von den mehreren Fernsehkameras 1A bis 1N gelangen über ein Leiterbündel 32 in den Video-Schnittstellenbaustein 31. Die Videosignale sind Analogsignale und gelangen an einen Analogmultiplexer 49, der auf der Basis einer Ausgabe der Navigations-CPU mit Speicher 37a über Ausgangsleitungen 41 einer Steuerregistereinheit (CRU) das Videosignal der vorbestimmten Fernsehkamera 1S zur Verarbeitung auswählt. Die Navigations-CPU mit Speicher 37a wählt das Videosignal einer Fernsehkamera 1S aufgrund seiner Vorherbestimmbarkeit aus, die sich in erster Linie danach richtet, welche Kamera die beste Sicht auf die bewegliche Vorrichtung 21 bietet, wenn ihre letzte bekannte Position und ihre erwartete Bewegungsrichtung nach der Ausführung des letzten Bewegungsbefehls gegeben sind. Das Videosignal wird durch den Analogmultiplexer 49 multiplexiert und an eine Videoklemmschaltung oder Aktivklemmschaltung 51 gelegt, mit der das Videosignal an eine durch ein Klemmspannungspotentiometer 42 erzeugte Referenzspannung angeklemmt wird. Das angeklemmte Videosignal gelangt an einen Pufferverstärker 55 und dann an einen Blink- A/D-Wandler 57, der eine digitale Momentaufnahme des angeklemmten und verstärkten Videosignals aufnimmt.

Referenzspannungen aus D/A-Wandlern 53 und 59, welche von Befehlen abhängen, die auf einem Datenbus 41 von der Steuerregistereinheit der Navigations-CPU mit Speicher 37a vorliegen, kompensieren Bereichsänderungen des Eingangs-Videosignals.

Der Video-Schnittstellenbaustein 31 versieht ferner eine Leitung 40 mit einem Videosignal zum Fernsehbildschirm 29, an dem ein Bediener das Fortschreiten der beweglichen Vorrichtung 21 beobachten kann. Dies geschieht, indem ein Einzelbild der digitalen Bildinformation über einen Datenbus 43 aus dem Bildspeicherbaustein 35 genommen und an eine Rastschaltung 61 angelegt wird, um mittels eines Digital/Analog-Wandlers 63 in ein Analogsignal umgewandelt zu werden. Das Analogsignal gelangt an eine Bild-Zusammensetzeinrichtung oder einen Mischer 65, in dem es mit einem Videoüberlagerungssignal gemischt wird, um eine Kopie des vorher gespeicherten Videosignals zu reproduzieren. Ein Pufferverstärker 67 puffert das reproduzierte Videosignal, bevor es an den Fernsehbildschirm 29 gelangt.

Der Mischer 65 mischt das umgewandelte Analogsignal mit externen Überlagerungseingaben, die von dem Bildspeicherbaustein 35 und der Navigations-CPU mit Speicher 37a bereitgestellt werden, um eine genaue Wiedergabe des Videobildes zu gewinnen. Außerdem ist im Video-Schnittstellenbaustein 31 ein Synchronisier- und Taktgenerator 69 vorgesehen, der die Pixeltakte, die Horizontalsynchronisationsimpulse und die Vertikalsynchronisationsimpulse liefert, mit denen die richtige Synchronisation der Videosignale sichergestellt wird.

Eine Prozessorschnittstelle 71 bildet eine Schnittstelle, die die Ausgabe der Steuerregistereinheit aus der Navigations-CPU mit Speicher 37a an den Video-Schnittstellenbaustein 31 anpaßt. Die Prozessorschnittstelle 71 bildet Zeilenempfänger, so daß die Signale der Steuerregistereinheit richtig empfangen werden, ehe sie an die geeigneten Bausteine innerhalb des Video-Schnittstellenbausteins 31 gelangen.

BILDHISTOGRAMMPROZESSOR 33

Fig. 4 ist ein Blockdiagramm des Bildhistogrammprozessors 33. Das digitale Videosignal gelangt vom Video-Schnittstellenbaustein 31 über einen Datenbus 39 an den Bildhistogrammprozessor 33. Derjenige Anteil des digitalen Videosignals, welcher Synchronisations- und Referenztaktdaten trägt, gelangt an einen Fenstergenerator 73. Der Fenstergenerator 73 erzeugt ein Fenster um die Bilder, die als Abbilder der Lichtquellen oder Signaleinrichtungen 3, 5 und 7 vorhergesagt werden, um den Bereich der Identifikationsprüfung der Objekte, etwa der Lichtquellen oder Signaleinrichtungen 3, 5 und 7, zu verkleinern. Sobald ein Fenster erzeugt wird, gelangt die Ausgabe des Fenstergenerators zusammen mit Daten von einer Video-Schwellenschaltung 920 an einen Reihenprojektionszähler 4, der dazu dient, eine Reihen-Vektoraddition für jede Reihe durchzuführen, wobei die Addition mittels von einer CPU 8 ausgeführter Zeilensprung-Steuersoftware gespeichert und in einem Speicher 6 gespeichert wird. Die Fig. 8 liefern eine detailliertere Anweisung für die mittels der CPU 8 ausgeführten Tätigkeiten. In ähnlicher Weise gelangt die Ausgabe des Fenstergenerators 73 an einen Spaltenadresszähler 2, der die den Rasterspaltenpositionen entsprechenden Speicheradressen (nachstehend als Spaltenadressdaten bezeichnet) erzeugt.

Die Spaltenadressdaten werden auf zwei parallele Pfade verzweigt und gelangen an eine erste und an eine zweite Sammlerrechenschaltung, wodurch die Rechengeschwindigkeit der Sammler auf die Hälfte der Eingangs-Pixelrate reduziert wird. Während der aktive Fensterbereich wirkt, werden Speicherstellen, die der Position der Rasterabtastung der ausgewählten Kamera 1S entsprechen, aufgerufen und getrennt als Funktion des verarbeiteten Videosignals von der Video-Schwellenschaltung 920 inkrementiert. Die erste Sammlerrechenschaltung enthält einen Sammler 922, einen Addierer 14 und eine D-Typ- Rastschaltung 16. Die zweite Sammlerrechenschaltung enthält einen Sammler 924, einen Addierer 22 und eine D-Typ-Rastschaltung 24. Die erste und die zweite Sammlerrechenschaltung arbeiten im Tandembetrieb und verarbeiten alle Spaltendaten, die innerhalb des mittels des Fenstergenerators 73 erzeugten Fensters auftreten. Unter der Steuerung der CPU 8 werden eine D-Typ-Rastschaltung 10 und eine D-Typ-Rastschaltung 18 während dieser Betriebsart (der Sammlung von Daten innerhalb des erzeugten Fensters) in einem zurückgesetzten Zustand gehalten, und die Überträge an Anschlüssen der Addierer 14 und 22 werden durch die Tätigkeit von Invertern 12 und 20 auf logisch Ein gehalten. Wenn eine Steuerleitung 921 aufgrund der Tätigkeit der CPU 8 auf Aus gehalten wird, addiert der Sammler die Graustufenwerte jedes Pixels (Bildelements) in den entsprechenden Spalten.

Die Bildhistogramme werden mittels der Wirkung der CPU 8 auf einen Multiplexer 923 zustande gebracht, welcher das digitale Videosignal in den Sammleradressbus leitet. Mittels der gleichen Wirkung wie oben erzeugt der Sammler ein Histogramm im Sammlerspeicher.

Die in den Sammlern 922 und 924 enthaltene Information wird in der CPU 8 übersetzt und sowohl in ihrem Speicher 6 gespeichert als auch über den Datenbus 41 an die Navigations-CPU mit Speicher 37a übertragen.

FENSTERGENERATOR 73

Der Fenstergenerator 73 ist in Fig. 5 dargestellt, auf die nun Bezug genommen wird, und enthält einen Horizontaladresszähler 77 und einen Vertikaladresszähler 75. Der Horizontaladresszähler 77 und der Vertikaladresszähler 75 empfangen eine Horizontalsynchronisation, eine Vertikalsynchronisation und einen Pixeltakt vom Synchronisier- und Taktgenerator 69, der im Video-Schnittstellenbaustein 31 enthalten ist und der eine Zählung erzeugt, die der Abtastposition der ausgewählten Rasterabtast-Fernsehkamera 1S entspricht. Der Horizontaladresszähler 77 liefert eine Horizontaladresse an einen Horizontalfensterspeicher 88, der einen der Anzahl von Horizontaladressen der Pixel der Mitglieder der mehreren Kameras 1 entsprechenden Speicherumfang hat. Wenn der Horizontaladresszähler 77 seinen Speicherumfang durchläuft, adressiert er alle diejenigen im Horizontalfensterspeicher 88 enthaltenen Speicherplätze, die der Pixellage der Rasterabtastkameras 1 entsprechen. In ähnlicher Weise adressiert der Vertikaladresszähler 75 einen Vertikalfensterspeicher 76, dessen Speicherumfang den Vertikaladressen der Pixel der Mitglieder der mehreren Kameras 1 entspricht. Die CPU 8 stellt über einen Datenbus 925 eine angenäherte Lage jedes zu erzeugenden Fensters ein, indem sie im Horizontalfensterspeicher 88 und im Vertikalfensterspeicher 76 einen logischen Zustand der Start- und Stoppadressen speichert, der J-K-Flip-Flops 79 und 91 umschaltet, um die Fenster an den geforderten Stellen zu erzeugen. Ferner gestattet es diese Technik, so viele Fenster wie nötig zu erzeugen, begrenzt nur durch die Speichergrößen.

Die Fenster dienen dazu, die Vektorsumme des Videosignals zu bilden. Ein Fenster wird gemäß der Koordinaten der Position der Rasterabtastung der ausgewählten Fernsehkamera 1S erzeugt, wie mittels der CPU 8 vorgesehen.

Die gelieferten Daten enthalten eine Startkoordinate und eine Endkoordinate, und jede Koordinate weist eine horizontale und eine vertikale Position auf. Die horizontale Startposition wird mittels der CPU 8 codiert, indem ein der Startposition entsprechendes Bit im Horizontalfensterspeicher 88 gesetzt wird. Die Koordinate des Stopps oder Endes des Fensters wird codiert, indem ein Bit auf die Adresse gesetzt wird, die der Adresse, die der Stopposition im Horizontalfensterspeicher 88 entspricht, gerade vorausgeht. Dies erlaubt es, ein zusätzliches Startbit an einer Stelle einzuschließen, die einem genau an das vorangegangene Fenster angrenzenden Fenster entspricht. Die Ausgabe des Horizontalfensterspeichers 88 erscheint in Form zweier Impulse, von denen einer in einer dem Start entsprechenden Abtastposition und einer beim Stopp des Fensters auftritt. Um mehrere Fensterbereiche zu erzeugen, können zusätzliche Start/Stop-Paare gesetzt werden.

Das J-K-Flip-Flop 79 wird durch die Tätigkeit der Horizontalsynchronisation in den Zustand Aus zurückgesetzt. Entsprechend der Bildschirmkoordinaten schalten die Start/Stopp- Impulse das J-K-Flip-Flop 79 um.

Ein Indexzähler 81 erzeugt einen einzigen Index für jedes Fenster, um die Ergebnisse jeder Vektoraddition in einen getrennten Teil der Sammler 922 und 924 zu leiten.

Ähnlich wird die Startkoordinate für die Vertikalposition im Vertikalfensterspeicher 76 gespeichert, und den Start- und Stoppositionen entsprechende Stellen werden codiert, indem ein Bit im Vertikalfensterspeicher 76 gesetzt wird, das den Start- und Stoppositionen entspricht. Eine Kompensation für benachbarte Fenster und eine Vektorsummen-Speicherindexerzeugung ist vorgesehen.

Eine Zusammensetzung des Vertikalfensters VWIND und des Horizontalfensters wird mittels der Tätigkeit von Taktsignalen erzeugt, die vom Horizontalfensterspeicher 88 und vom Vertikalfensterspeicher 76 erzeugt werden. Ein J-K-Flip-Flop 83 wird dadurch auf den Zustand Ein gesetzt, daß der horizontale Startimpuls und das Vertikalfenster vorhanden sind und daß ein vorangehendes Fenster nicht vorhanden ist. Die vorangehende Funktion wird mittels der Tätigkeit eines Inverters 87 und einer NAND-Torschaltung 84 ausgeführt. Das J-K-Flip-Flop 83 wird auf den Zustand zurückgesetzt, daß das Horizontalfenster, das Vertikalfenster und das Stoppbit vom Horizontalfensterspeicher 88 vorhanden sind. Dieser Vorgang wird wird um eine Taktperiode verzögert und durch die Gegenwart eines benachbarten Fensters gesperrt, das die Wirkung hat, daß das J- K-Flip-Flop 83 im gesetzten Zustand gehalten wird. Die vorangehende Funktion wird mittels der Tätigkeit eines Flip-Flop 79, das die Gegenwart einer Horizontalfensterperiode registriert, und einer NAND-Torschaltung 90 durchgeführt. Ein Flip-Flop 89 führt die Verzögerung um einen Takt durch. Eine AND-Torschaltung 85 verhindert die Tätigkeit bei Gegenwart eines überlagerten benachbarten Fensters, das durch die Gegenwart eines zusätzlichen Startimpulses repräsentiert wird.

Das Signal des Vertikalfensters oder das VWIND-Signal wird mittels der Tätigkeit des Vertikaladresszählers 75 und des Vertikalfensterspeichers 76 erzeugt, wie oben beschrieben. Die Start/Stoppimpulse gelangen mittels der Tätigkeit einer AND-Torschaltung 92, die den Vertikalfenster-Startpuls mit einem HCLR-Signal kombiniert, an ein J-K-Flip-Flop 91. Das HCLR-Signal ist ein eine Taktperiode breiter Zurücksetzimpuls, der einmal pro Zeile auftritt und der vom oben beschriebenen, im Synchronisier- und Taktgenerator 69 erzeugten Horizontalsynchronisations(HORZ SYNC)-Signal erzeugt wird. Dies hat die Wirkung, daß das J-K-Flip-Flop 91 auf Ein geschaltet wird. Die Ausgabe des J-K-Flip-Flop 91 wird zusammen mit einem Vertikalstartsignal VRAM und dem Horizontaltaktsignal HCLR angewandt. Logische Torschaltungen 93, 96 und 95 steuern die Tätigkeit eines J-K-Flip-Flop 97, der die Vertikalfensterperiode bestimmt. Die Tätigkeit eines J-K-Flip-Flop 98, einer D-Typ-Rastschaltung 99 und einer NAND-Torschaltung 94 erzeugen einen letzten aktiven Zeilenmerker, der zum Resynchronisieren der Logik des Indexzählers 81 dient.

BILDSPEICHERBAUSTEIN 35

Der Videobus 39 überträgt das Videosignal von dem Video- Schnittstellenbaustein 31 an den Bildspeicherbaustein 35, der von einer Kombination CPU und Speicher 46 gesteuert wird. Die Kombination CPU und Speicher 46 liefert die CRU-Steuerung an die innerhalb des Bildspeicherbausteins 35 enthaltene Logik und bildet außerdem eine Schnittstelle zur Navigations-CPU mit Speicher 37a der Fig. 1.

Unter Bezugnahme auf Fig. 6 wählt ein Multiplexer 30 entweder die Ausgabe eines Videobildpuffer-RAM 40 oder die Eingabe auf dem Videobus 39, um sie wie vorgeschrieben mittels der Kombination CPU und Speicher 46 zu verarbeiten. Das ausgewählte digitalisierte Videosignal gelangt an eine Binärlogikkarte 34, die ein RAM (Direktzugriffsspeicher) ist, der dazu codiert ist, die im digitalisierten Videosignal codierte Information von einer Grauskala in eine schwarz-weiß codierte Information umzuwandeln. Die von der Binärlogikkarte ausgeführte Tätigkeit ist üblicherweise ein Schwellenvergleich. Der Vergleich ist derart, daß, wenn der in dem digitalisierten Videosignal codierte Lichtstärkepegel über einer Schwelle liegt, ein erster logischer Zustand erreicht wird und daß, wenn er unter der Schwelle liegt, ein zweiter logischer Zustand als Ausgabe der Binärlogikkarte 34 erreicht wird.

Das am Ausgang der Binärlogikkarte 34 vorliegende schwarz und weiß digitalisierte Videosignal gelangt an einen 3·3-Rechenbaustein 36, der eine 3·3-Matrix von logischen Zuständen vergleicht. Dieser 3·3-Rechenbaustein verwendet eine digitale Filtertechnik, welche Rauschen entfernt, indem er eine 3·3- Matrix von im digitalisierten Videosignal codierten Pixelinformationen vergleicht. Wenn das mittlere Pixel im einen Zustand ist und seine benachbarten Pixel in anderen Zuständen sind, wird der Zustand des mittleren Pixels geändert, so daß er mit dem benachbarten Zustand der umgebenden Pixel übereinstimmt. Die Ausgabe des 3·3-Rechenbausteins 36 gelangt an einen Videobildpuffer 1140, der ein Direktzugriffsspeicher ist, und wird unter der Steuerung der Kombination CPU und Speicher 46 und einer Adresszähler-Steuerlogik 44 gespeichert.

Falls von dem Video-Schnittstellenbaustein 31 eine Darstellung über den Fernsehbildschirm 29 ausgewählt ist, ermöglicht ein Multiplexer 1142 die Darstellung als Ausgabe des Videobildpuffers 1140, der verarbeiteten Daten von dem 3·3-Rechenbaustein 36 oder abwechselnd der auf dem Videobus 39 vorliegenden Videodaten. Eine Austastungsverzögerungseinrichtung 26 kompensiert innerhalb des Bildspeicherbausteins 35 erlittene Verarbeitungsverzögerungen.

Theorie der Arbeitsweise

Die Theorie der Arbeitsweise läßt sich unter Bezugnahme auf die Fig. 7 in Verbindung mit den Fig. 1 bis 6 verstehen. Fig. 7a ist eine grafische Darstellung des Analogsignals von der ausgewählten Fernsehkamera 1S, das nach dem Multiplexieren durch den Analogmultiplexer 49 der Fig. 3 an die Aktivklemmschaltung 51 gelangt. Wie an einer früheren Stelle der Beschreibung beschrieben, sind die Fernsehkameras 1 Rasterabtast-Kameras, bei denen Abtastungen über das Blickfeld durchgeführt werden, um ein Bild 100 zu erhalten, das aus mehreren Abtastungen 101 zusammengesetzt ist. Im Falle einer sich vom Hintergrund abhebenden Lichtintensität wird im Bild 100 ein Abbild 103 abgebildet. Mehrfach-Abbildungen wie in einer Abtastung 105 werden zusätzlich abgebildet. Jede erscheinende Abtastung wird multiplexiert und gelangt an die Aktivklemmschaltung 51, deren Ausgangssignal in Fig. 7B dargestellt ist, bei der die Abtastung 105 zwei Zacken 107 und 109 aufweist, die die Lichtstärke repräsentieren.

Das Ausgangssignal der Aktivklemmschaltung 51 ist in Fig. 7C dargestellt, bei der die Wirkung einer zeitlich sprunghaften Digitalisierung durch eine Wellenform 111 dargestellt ist. Die Wellenform 111 ist eine Darstellung der zeitlich Sprunghaften Digitalisierung der Wellenform 105, die das Eingangssignal für die Aktivklemmschaltung 51 ist. Jeder diskrete Abschnitt der dargestellten Ausführungsform bezieht sich auf eine Spannung, die vom Klemmspannungspotentiometer 42 geliefert wird. Die Wirkung der zeitlich sprunghaften Digitalisierung besteht in einer Synchronisation mit dem Pixeltakt. Die Ausgabe der Aktivklemmschaltung 51 gelangt über den Pufferverstärker 55 an den Blink-A/D-Wandler 57, der beim Erscheinen jedes Pixeltakts das abgetastete Videosignal in ein Digitalsignal umsetzt, von dem ein Beispiel durch eine Wellenform 130 der Fig. 7C dargestellt ist. Die von den D/A-Wandlern 53 und 59 erzeugten zeitlich sprunghaften Digitalisierungsspannungen dienen dazu, den Hintergrund des Bildes zu setzen, das quantisiert wird.

In Fig. 7D ist das Ausgangssignal des Synchronisier- und Taktgenerators 69 dargestellt, das ein Feldindexsignal 113 enthält und das mittels eines Abrufs von der Navigations-CPU mit Speicher 37a über die Steuerregistereinheit an den Synchronisier- und Taktgenerator erzeugt wird, um ein einzelnes, für die Navigations-CPU mit Speicher 37a wichtiges Bild anzuzeigen oder abzutasten. Außerdem erzeugt der Synchronisier- und Taktgenerator 69 einen Vertikalsynchronisationsimpuls, der durch eine Wellenform 115 wiedergegeben ist, welche die Vertikalsynchronisation für ein Bild ist, sowie einen Vertikalsynchronisationsimpuls, der mittels einer Wellenform 117 gebildet und wiedergegeben ist, welche die Horizontalsynchronisationsimpulse zeigt, die für den Aufbau eines Bildes wie das in Fig. 7A gezeigte erforderlich sind.

Fig. 7D veranschaulicht ferner die Anzahl von Leitern auf dem Datenbus der Fig. 2. Bei der Gruppe von Schaltungen, die den Video-Schnittstellenbaustein 31, den Bildhistogrammprozessor 33 und den Bildspeicherbaustein 35 enthält, besteht die Leitidee von einem verallgemeinerten Videobus, nämlich dem digitalen Videobus 39. Das wichtigste Merkmal des Videobus 39 besteht darin, daß ein Pixeladressbus nicht erforderlich ist. Die durch die Wellenform 115 dargestellte Vertikalsynchronisation und die durch die Wellenform 117 dargestellte Horizontalsynchronisation synchronisieren alle drei Bausteine. Das Feldindexsignal 113 und eine Fenster-Wellenform 119 können ebenfalls als Pixel-Gültigkeitsadresse verwendet werden, wie des weiteren dargestellt. Bei dieser Konfiguration kann der Videobus 39 größenvermindert sein und ohne Änderungen der Hardware mit einer großen Vielfalt möglicher Bilderzeuger, Videokameras, umgehen. Bei dieser verminderten Anzahl von Anschlüssen können Bausteine leicht so gestaltet sein, daß sie digitale Mehrfacheingaben auswählen. Der Fenstergenerator 73 der Fig. 4 erzeugt Fenster, wie sie durch die Wellenform 119 und insbesondere durch Ausgangsimpulse 121 und 123 dargestellt sind. Der Pixeltakt wird mittels des Synchronisier- und Taktgenerators 69 erzeugt und durch eine Wellenform 125 repräsentiert, und die Videodaten werden durch eine Wellenform 127 repräsentiert, wobei das Ausgangssignal des Blink-A/D-Wandlers 57 durch ein Diagramm 129 dargestellt ist.

Wenn das ausgewählte Bezugsbild digitalisiert ist, wird der Bereich innerhalb des mittels des Fenstergenerators 73 erzeugten Fensters mittels des Bildhistogrammprozessors 33 verarbeitet. Das sich ergebende Abbild (Diagramm 131 der Fig. 7E) wird ferner im Videobildpuffer 1140 gespeichert. Die nach der Verarbeitung die Signaleinrichtungen repräsentierenden Abbilder werden als Störungen etwa an einer Stelle 134 identifiziert. Ein Geisterbild, das sich einer Reflexion oder einer anderen Erscheinung, etwa einem Quantisierfehler, zuschreiben läßt, ist bei 136 dargestellt.

Die horizontale und die vertikale Vektoraddition werden an den im Diagramm 130 gezeigten digitalen Daten ausgeführt, um eine horizontale Vektoraddition, die durch eine Wellenform 133 repräsentiert wird, und eine vertikale Vektoraddition, die durch eine Wellenform 135 repräsentiert wird, zu erhalten. Die Vektoraddition wird mit den Sammlerrechenschaltungen ausgeführt, die Teil des in Fig. 4 dargestellten und dort abgehandelten Bildhistogrammprozessors 33 sind.

Die Vektoradditionen werden mittels der Tätigkeit der CPU 8 mit dem Speicher 6 einer Schwellwertbedingung unterworfen und mittels der Tätigkeit der Schaltungen innerhalb des Bildspeicherbausteins 35 projiziert. Die resultierenden Wellenformen sind in Fig. 7F dargestellt, in der eine Wellenform 137 eine normalisierte Projektion der Wellenform 133 darstellt und eine Wellenform 139 die normalisierte Projektion der Wellenform 135 darstellt. Die Wellenformen werden kombiniert, und Koinzidenzbereiche wie in Bereichen 141 und 143 oder den schraffierten Bereichen repräsentieren Gebiete mit hoher Wahrscheinlichkeit dafür, daß sie ein Abbild einer Signaleinrichtung enthalten. Auf der Grundlage der Intensitäten der Bereiche aller Abbilder innerhalb eines Anwärterfachs kann eine Entscheidung über die genaue Position der Signaleinrichtungen der beweglichen Vorrichtung 21 getroffen werden. Somit erhält man aus der in Fig. 7E dargestellten Information die Lage der beweglichen Vorrichtung 21.

Fig. 8 ist ein Flußdiagramm der Schrittfolgen, die in der Navigations-CPU mit Speicher 37a, der CPU 8 mit Speicher 6 des Bildhistogrammprozessors 33 und der innerhalb des Bildspeicherbausteins 35 enthaltenen Kombination CPU und Speicher 46 programmiert sind.

LEITSTRAHLQUELLEN-SCHWERPUNKTBILDUNG UND TRANSFORMATION

Bei einer Initialisierung (Fig. 8A) befindet sich das Steuer- und Navigationssystem 2A in einem Startzustand 200. Es wird eine Vorhersage getroffen, um in einem Block 201 eine der Fernsehkameras 1A bis 1N zur Abtastung auszuwählen. Nach der Auswahl der ausgewählten Fernsehkamera 1S gelangt das Bild in einem Block 203 über ein Videosignal von der ausgewählten Fernsehkamera 1S an den Video-Schnittstellenbaustein 31. In einem Block 205 wird der Fenstergenerator 73 von der CPU 8 mit einer Fensterinformation der Koordinaten der erwarteten Lage der Anwärterobjekte versehen. In einem Block 207 werden Fenster um die Koordinaten der erwarteten Lage der beweglichen Vorrichtung 21 aufgebaut. Der Bildspeicherbaustein 35 wird in einem Block 209 dazu verwendet, falsche Anwärter und zu große Objekte abzulegen und die Schwerpunkte der Anwärter, die in Fig. 7E in Bereichen 134 und 136 dargestellt sind, zu berechnen und in der Navigations-CPU mit Speicher 37a zu speichern. Die Schwerpunktkoordinaten werden in einem Block 210 in einen Leitebene/Bodenflächen-Raum transformiert.

ERFASSUNG VON LEITSTRAHLQUELLEN-ANZAHL UND SEHNENLÄNGEN

Nach der Transformation der Schwerpunktkoordinaten auf den Bodenflächen-Raum erfolgt eine Zählung der Objektschwerpunkte, um zu bestimmen, wie viele Objekte sichtbar sind. Dies geschieht über einen Anknüpfpunkt P2 in einem Entscheidungsblock 211 der Fig. 8B. In einem Block 212 wird das Abbild beiseite gelegt, falls kein oder nur ein Schwerpunkt festgestellt wird, und es wird über einen Anknüpfpunkt P1 zum Startzustand oder Startpunkt 200 zurückgekehrt. Falls zwei Abbilder sichtbar sind, kann dies bedeuten, daß eine bewegliche Vorrichtung 21 anwesend ist und daß eine der Signaleinrichtungen 3, 5 oder 7 durch einen Gegenstand wie den Roboterarm 25 verdeckt wird, und das dritte Abbild muß rekonstruiert werden. Dies geschieht in einem Block 213 und wird im Zusammenhang mit den Fig. 14 bis 19 erörtert. Falls vier oder mehr Bilder vorhanden sind, muß eine Entscheidung darüber getroffen werden, ob es ein Spiegelbild gibt oder nicht, und wenn es ein Spiegelbild gibt, wird das Spiegelbild beiseite gelegt und nur das Urbild der beweglichen Vorrichtung 21 verwendet. Dies geschieht in einem Block 214 und wird später im Zusammenhang mit den Fig. 11, 12 und 13 erörtert.

In den Situationen, in denen erwartungsgemäß drei Abbilder sichtbar sind, die verdeckte Bildkoordinate gewonnen oder das Spiegelbild ausgefiltert ist, werden dann die drei Sehnenlängen zwischen den Bildern in einem Block 215 gewonnen. In einem Entscheidungsblock 217 wird eine Entscheidung getroffen, mit der sichergestellt wird, daß sich die Sehnenlängen in den richtigen Proportionen befinden. Falls sich die Längen nicht in richtigen Proportionen befinden, kehrt das Steuer- und Navigationssystem 2A an den Anknüpfpunkt P1 und zum Startpunkt 200 zurück, um den Vorgang zu wiederholen. Falls die Sehnenlängen in richtigen Proportionen sind, erfolgt in einem Block 219 eine Ordnung im Uhrzeigersinn der Sehnen von der Hypothenuse her. Die Sehnen werden dann in einem Block 221 in der Reihenfolge abnehmender Länge angeordnet. Falls diese Anordnung im Block 221 nicht vorgenommen werden kann, kehrt das Steuer- und Navigationssystem 2a über den Anknüpfpunkt P1 an den Startpunkt 200 zurück.

Ein Anknüpfpunkt P3 verbindet Fig. 8B mit Fig. 8C, auf die nun Bezug genommen wird.

ERFASSUNG VON POSITION UND ORIENTIERUNG DER BEWEGLICHEN VORRICHTUNG

In einem Block 223 werden die Winkel der Sehnen berechnet, und es wird in einem Entscheidungsblock 225 geprüft, ob einer der Sehnenwinkel 90 Grad beträgt oder ob irgendein anderer vorbestimmter Sehnenwinkel vorliegt. Falls die Sehnenwinkel vorschriftsmäßig sind, wird in einem Block 227 der Umfang oder die Summe der Sehnen berechnet. Falls nicht, kehrt das Steuer- und Navigationssystem 2A über den Anknüpfpunkt P1 zum Startpunkt 200 zurück. Falls der Umfang die richtige Länge hat, wird in einem Block 229 die Bodenflächenkoordinate des Mittelpunkts der Signaleinrichtungs-Hypothenuse berechnet. Falls der Umfang nicht die erwartete Länge hat, kehrt das Steuer- und Navigationssystem 2A über den Anknüpfpunkt P1 zum Startpunkt 200 zurück.

Die Orientierung der beweglichen Vorrichtung 21 wird in einem Block 231 aus Bogen- und Anschlußsehnenwinkeln berechnet. Die Bogensehne wird um 90 Grad gedreht, und der Durchschnitt der Anschlußsehne und der gedrehten Bogensehne wird als entscheidende Orientierung der beweglichen Vorrichtung verwendet. In einem Block 232 erfolgt eine Übertragung der Daten der Orientierung und der Lagefestlegung an die bewegliche Vorrichtung 21.

Damit die Orientierungs- und Lagebestimmung der beweglichen Vorrichtung 21 stattfinden kann, muß wenigstens ein Winkel einen bestimmten, von den anderen beiden Winkeln verschiedenen Wert haben, wie sich aus der Erörterung des Flußdiagramms ergibt. Im Falle der Ausführungsform der Fig. 1 ist der Winkel 90 Grad, und mit dem gegebenen rechten Winkel kann die Orientierung der beweglichen Vorrichtung 21 und ihr Verhältnis zur Lage eines Rasters, das zu einer identifizierbaren Kamera gehört, die eine einzelne aus der Gruppe der Kameras 1A bis 1N ist, und infolgedessen seine Position auf einer Fläche gewonnen werden. Sodann wird der Vorgang über einen Anknüpfpunkt P4 wiederholt, um eine Abfolge von Positionen zu erhalten, und die bewegliche Vorrichtung 21 wird durch ihr internes Leitsystem und die aufeinanderfolgende Aktualisierung ihrer Position über den Boden einer Fabrikanlage, eines Warenhauses oder irgendeines anderen ihr zugewiesenen Einsatzortes geführt.

Anzumerken ist, daß das Winkelverhältnis der Leitstrahlquellen zueinander ein Abbild eines unsymmetrischen Dreiecks liefern soll und daß das optimale Dreieck eines mit Winkeln von 30, 60 und 90 Grad ist.

Fig. 9 veranschaulicht die Schritte der Signaleinrichtungs- Identifizierung und -Transformation bildlich, indem sie mehrere Kameras 1A und 1B zeigt. Jede Kamera hat ein Sichtfeld von einer Höhe aus, die durch Abstandslinien 151 und 153 dargestellt ist. Das Sichtfeld überdeckt eine Ebene, die für die Kamera 1A als Ebene 155 und für die Kamera 1B als Ebene 157 dargestellt ist. Diese Ebenen werden so berechnet, daß sie auf der Höhe von Signaleinrichtungen 159 und 161 liegen. Die Signaleinrichtungsebene liegt jedoch auf einer anderen Höhe als die Bodenfläche 163. Nachdem die Signaleinrichtungsebene bei 155 oder 157 berechnet ist, wird daher die Ebene auf den Bodenflächenraum (Block 210 der Fig. 8A) transformiert, so daß sie mit der Bodenfläche 163 übereinstimmt.

SPIEGELBILDAUSSONDERUNG

Bei der Erörterung der Fig. 8 und insbesondere der Fig. 8B wurde ein Schritt oder Block 214 genannt, der mittels des in Fig. 1 gezeigten Steuer- und Navigationssystems 2A ausgeführt wird und der darin besteht, Spiegelbilder beiseite zu legen, wenn mehr als die erwartete Anzahl von empfangenen und verarbeiteten Abbildern festgestellt wurde. Dieser Schritt ist notwendig, wenn die bewegliche Vorrichtung 21 in Umgebungen betrieben wird, wie sie gewöhnlich in einer Fertigungseinrichtung auftreten. Eine reflektierende Oberfläche, etwa ein Fenster 400 (Fig. 10), spiegelt das Bild der beweglichen Vorrichtung 21 auf die Kamera 1, so daß die Kamera 1 das in Fig. 11 dargestellte Bild, also zwei bewegliche Vorrichtungen 21 und 21R sieht. Die Steuer- und Navigationsschaltung 15 ermittelt, welches Bild das Urbild und welches das Spiegelbild ist, und legt die zum Spiegelbild gehörende Information beiseite. Zur Ausführung dieser Technik der Spiegelbildaussonderung sind die Signaleinrichtungen 3, 5 und 7 in der in Fig. 10 gezeigten Ausführungsform in Gestalt eines unsymmetrischen Dreiecks angeordnet, das, wie durch Abstandslinien 401 angegeben, einen rechten Winkel zwischen einer von der Signaleinrichtung 3 zur Signaleinrichtung 5 gezogenen Linie und einer zwischen den Signaleinrichtungen 5 und 7 gezogenen Linie aufweist. Die drei Signaleinrichtungen bilden ein rechtshändiges, asymetrisches rechtwinkliges Dreieck, und unter Kenntnis dieser Information wird die Steuer- und Navigationsschaltung 15 das Spiegelbild 21R nicht beachten.

Das angewandte Verfahren ist in Fig. 12 dargestellt und beginnt an einem Startpunkt im Block 214, der gleichzeitig der Anschlußpunkt zur Fig. 8B ist. Sämtliche Schwerpunkte der Abbilder werden in einem Block 402 gewonnen. Die Abstände von je einem Abbildschwerpunkt zu einer als Lot gefällten Mittelpunktkoordinate werden in einem Block 403 gewonnen, und in einem Block 405 erfolgt eine Sortierung der Sehnen vom Lotpunkt zu den Schwerpunkten in der Reihenfolge ihrer Länge. In einem Block 407 werden die Abbilder festgestellt, die den kürzesten Mittelliniensehnen entsprechen, welche ein Dreieck richtiger Form und Größe bilden, und die Koordinaten der drei ausgewählten Signaleinrichtungen werden in einem Block 409 gewonnen. In einem Endblock 412 kehrt der Mikroprozessor zur Ausführung des nächsten Schritts zurück, der im Schritt 214 der Fig. 8B erfolgt.

VERFAHREN ZUR FESTSTELLUNG VERDECKTER LEITSTRAHLQUELLEN

In Fig. 13 ist eine Fertigungsanordnung gezeigt, bei der zwei bewegliche Vorrichtungen 21A und 21B unter dem Sichtfeld einer ausgewählten Fernsehkamera 1S arbeiten. Jede bewegliche Vorrichtung 21, sei sie 21A oder 21B, weist drei Navigations- Signaleinrichtungen 3, 5 und 7 und einen Roboterarm 25 auf. In beiden, in den Fig. 13 und 14 gezeigten Fällen ist eine der drei Signaleinrichtungen jeder beweglichen Vorrichtung gegenüber dem Sichtfeld der ausgewählten Fernsehkamera 1S verdeckt. Dieser Zustand tritt ein, wenn die Sicht von einer der Signaleinrichtungen zu der ausgewählten Fernsehkamera 1S verdeckt ist, und die Steuer- und Navigationsschaltung 15 wird im Block 213 der Fig. 8B das Verfahren für verdeckte Leitstrahlquellen durchführen.

Die durch das Verfahren für verdeckte Leitstrahlen gelösten Probleme sind in den Fig. 14 bis 17 veranschaulicht, die im Zusammenhang mit Fig. 13 anzuwenden sind. Die Sicht auf die Leitstrahlquellen, wie sie sich der ausgewählten Fernsehkamera 1S bietet, ist als Sichtfeld 416 gezeigt. Fig. 17 ist eine Detailansicht, bei der zwei Leitstrahlquellen sichtbar und eine dritte Leitstrahlquelle verdeckt ist. Sowohl in der Fig. 14 als auch in der Fig. 17 ist der Lotpunkt mit P markiert. Ein Abbild 414 zeigt, wie das Verdecken der Leitstrahlquelle 3A zwei verschiedene Möglichkeiten eröffnet: sie kann entweder da sein, wo die Leitstrahlquelle 3A dargestellt ist, oder da, wo die Leitstrahlquelle 3AR dargestellt ist. Ein Abbild 415 veranschaulicht den Fall, daß eine der beiden anderen Leitstrahlquellen gegenüber der Sicht der ausgewählten Fernsehkamera 1S verdeckt ist. Im Falle des Abbildes 415 verdeckt ein Roboterarm 25B eine Leitstrahlquelle 5B. Das Steuer- und Navigationssystem 2A muß die genaue Lage der Leitstrahlquelle bestimmen, wobei die Wahl zwischen der Lage der Leitstrahlquelle 5B und der Lage der Leitstrahlquelle 5BR besteht.

Die Lösung des vorstehend erörterten Problems läßt sich unter Bezugnahme auf die Geometrie des von der ausgewählten Fernsehkamera 1S gesehenen Abbildes verstehen. Dies ist in Fig. 15 dargestellt, in der es ein Dreieck mit drei Seiten s1, s2 und s3 gibt, wobei die Seite s1 die Sehne zwischen den Signaleinrichtungen 3 und 5 ist, die Seite s2 die die Signaleinrichtungen 3 und 7 verbindende Sehne ist und die Seite s3 die Signaleinrichtungen 5 und 7 miteinander verbindet. Das Dreieck liegt in einer Ebene 417, die die Leitstrahlquellen 3, 5 und 7 enthält.

VERFAHREN ZUR FESTSTELLUNG VERDECKTER ABBILDER

Die Fig. 16 sind Flußdiagramme von Verfahren zur Feststellung verdeckter Abbilder wie den in Fig. 13 gezeigten. Falls, wie in Fig. 17 dargestellt, die Abbilder zweier Signaleinrichtungen als A und B festgestellt werden, beginnt die Steuer- und Navigationsschaltung 15 in einem Block 420. Die Koordinaten der Abbilder A und B werden in einem Block 421 an die Steuer- und Navigationsschaltung 15 gegeben. Der Abstand zwischen den Abbildern A und B wird in einem Block 423 gewonnen. In der Steuer- und Navigationsschaltung 15 sind die Längen der Sehnen s1, s2 und s3 gespeichert. Im Block 424 vergleicht die Steuer- und Navigationsschaltung 15 den Abstand zwischen den Abbildern A und B mit der Länge jeder Sehne s1, s2 und s3 und wählt diejenige Sehne aus, deren Länge genau der Länge des Abstandes zwischen den Bildern A und B entspricht, und versieht die ausgewählte Sehne mit einem Bezugszeichen D, wie in Fig. 17 dargestellt. Wie in Fig. 16A in einem Block 425 angegeben, werden die nicht ausgewählten Sehnen mit Bezugszeichen E und F versehen. Ein erster Kreis AE mit Radius E wird um A geschlagen, und ein zweiter Kreis BE mit gleichem Radius wird um B geschlagen. Ein dritter Kreis AF mit einem Radius der hänge F wird um A und eine vierter Kreis BF mit gleichem Radius um B geschlagen.

Der nächste Schritt besteht darin, die Koordinaten von Anwärterpunkten C1 und C2 an den Schnittpunkten der Kreise AE und BF zu gewinnen. Dieser Schritt erfolgt in einem Block 427. In einem Block 431 werden die Sehnen AB, AC1 und BC1 im Uhrzeigersinn angeordnet. In einem Block 433 wird beginnend mit der Hypothenuse geprüft, ob die hänge der Sehnen zunimmt oder abnimmt. Falls die Anordnung der Sehnen im Uhrzeigersinn eine Anordnung hervorbringt, die mit der Hypothenuse beginnt und der Länge nach abnimmt, geht das Steuer- und Navigationssystem 2A zu einem Block 439 über, und die Koordinate C1 wird der erste Hauptanwärter und wird mit X1 bezeichnet. Andernfalls geht das Steuer- und Navigationssystem 2A zu einem Block 437 über, in dem C2 als erster Hauptanwärter X1 bezeichnet wird.

In einem Block 441 der Fig. 16B werden die Koordinaten der Schnittpunkte der Kreise AF und BE gewonnen und jeweils mit C3 und C4 bezeichnet. Die Längen der Sehnen (X1, C3) und (X1, C4) werden in einem Block 443 gewonnen. In einem Block 445 wird geprüft, ob die Sehne (X1, C3) kürzer als die Sehne (X1, C4) ist. Falls (XI, C3) kürzer als (X1, C4) ist, wird C4 in einem Block 447 als zweiter Hauptanwärter X2 ausgewählt; falls nicht, wird C3 in einem Block 449 als zweiter Hauptanwärter X2 ausgewählt.

Die Abstände zwischen den Koordinaten des ersten und des zweiten Hauptanwärters X1 und X2 und dem Lotpunkt P werden in einem Block 451 berechnet. Falls die Länge der Sehne PX1 kleiner als die der Sehne von PX2 ist, was in einem Block 453 geprüft wird, ist X2 der Punkt der dritten Signaleinrichtung. Andernfalls ist X1 der Punkt der dritten Signaleinrichtung, wie in einem Block 457 angegeben. Die Ergebnisse der Feststellung liegen in einem Block 459 vor, um das Verfahren für versteckte Signaleinrichtungen zu vervollständigen, und das Steuer- und Navigationssystem 2A kehrt zum Block 215 der Fig. 8B zurück.

DIE BEWEGLICHE VORRICHTUNG 21

Fig. 18 ist ein Blockdiagramm der erfindungsgemäßen beweglichen Vorrichtung 21, wie sie in Fig. 1 gezeigt ist. Ein mit Funk oder anders, etwa mit Infrarotdioden arbeitendes drahtloses Kommunikationssystem 19 empfängt Positionsdaten und Befehle von der Navigations-CPU mit Speicher 37a und überträgt sie an das Herz der beweglichen Vorrichtung 21, eine CPU mit Speicher 52. Die CPU mit Speicher 52 überträgt Anweisungen an einen Roboterarm oder an eine Material handhabende Vorrichtung, etwa den in Fig. 1 dargestellten Roboterarm 25, und versieht außerdem die Navigations-Signaleinrichtungen mit Befehlen wie "Einschalten", "Ausschalten", "Blinken" oder anderen Tätigkeiten. Zusätzlich versieht die CPU mit Speicher 52 mehrere Radaufbauten 58 mit Lenk-, Start-, Stopp- und Drehanweisungen. Jeder Radaufbau enthält einen ersten D/A (Digital nach Analog)-Wandler 60, einen Lenk-Servoverstärker 62, einen Lenkmotor 64, der auf Befehle vom Lenk-Servoverstärker 62 anspricht, einen zweiten D/A-Wandler 72, einen Antriebs-Servoverstärker 70 und einen Antriebsmotor 68, der das Rad 23 zum Drehen bringt. Sowohl der Antriebs-Servoverstärker 70 als auch der Lenk-Servoverstärker 62 sind in Fig. 20 als Servoverstärker 371 dargestellt. Sowohl der erste D/A- Wandler 60 als auch der zweite D/A-Wandler 72 sind in Fig. 20 als D/A-Wandler 372 dargestellt. Sowohl der Lenkmotor 64 als auch der Antriebsmotor 68 sind in Fig. 20 als Motor 376 dargestellt. Eine Batterie 48 versorgt den Aufbau der beweglichen Vorrichtung 21 mit Strom.

PROGRAMMABLAUF DER KOMBINATION CPU MIT SPEICHER 52

Fig. 19 ist ein Flußdiagramm der Folge von Schritten, die innerhalb der CPU mit Speicher 52 der beweglichen Vorrichtung 21 ausgeführt werden. Sie beginnt mit einer Startposition 300, wobei die bewegliche Vorrichtung 21 in einem Block 301 über das mit Funk oder anders arbeitende drahtlose Kommunikationssystem 19 einen Befehl "Gehe zum Ziel" aufnimmt und in einem Block 303 der Empfang dieses Befehls geprüft wird. Das Navigationssystem stellt der beweglichen Vorrichtung 21 in einem Block 305 zuerst die Lageinformation zur Verfügung, und dann findet in einem Block 307 ein Vergleich statt, um zu prüfen, ob die gegenwärtige Position gleich der Zielposition ist. Falls dies der Fall ist, veranlaßt die CPU mit Speicher 52 die bewegliche Vorrichtung 21, anzuhalten und zu warten, bis ein neuer Befehl "Gehe zum Ziel" empfangen wird. Falls die Positionen nicht übereinstimmen, werden die Richtungen und Abstände zur Zielposition in einem Block 309 geprüft, und in einem Block 310 erfolgt eine Aktualisierung der Lenkwinkel und der Geschwindigkeit in Richtung auf die Zielposition, wodurch die bewegliche Vorrichtung 21 in Richtung auf die Zielposition gelenkt wird.

LEIT- UND SERVOSTEUERUNGSSYSTEM DER BEWEGLICHEN VORRICHTUNG

In Fig. 20 ist ein vereinfachter Schaltplan einer Servosteuerschleife 320 gezeigt, von der es innerhalb der beweglichen Vorrichtung 21 für jeden Radaufbau 58 eine gibt und die zur Steuerung der beweglichen Vorrichtung 21 dient. Die Servosteuerschleife 320 enthält die CPU mit Speicher 52. Die CPU mit Speicher 52 versieht den Servoverstärker 371 über den D/A-Wandler 372 mit Geschwindigkeits- und Richtungsdaten in Form digitaler Signale. Der D/A-Wandler 372 wandelt die von der CPU mit Speicher 52 bereitgestellten digitalen Signale in eine Analogspannung oder Befehlsspannung um, die an den Servoverstärker 371 gelangt. Der Servoverstärker 371 bildet einen Puffer für den D/A-Wandler 372 und verstärkt die Befehlsspannung. Die verstärkte Befehlsspannung gelangt dann an einen Motor 376 und bewirkt, daß der Motor 376 eine Achse 374 dreht, die eine Last 23 wie ein Rad oder ein Lenkrad veranlaßt, sich um eine solche Gradzahl zu drehen, wie sie durch die vom Servoverstärker 371 an den Motor 376 gelegte verstärkte Befehlsspannung repräsentiert wird. Ein Achscodierer 333 codiert die Gradzahl der Drehungen und liefert diese Information an eine Codierschnittstelle 370, die das Ausgangssignal des Achscodierers in Signale umwandelt, die für die CPU mit Speicher 52 verwertbar sind.

LEITSYSTEM BEI ANGENOMMENEM AUSFALL

Die bewegliche Vorrichtung 21 soll frei umherfahren können, so daß die Lenkwinkel und die Antriebsgeschwindigkeiten aller Räder aufeinander abgestimmt werden müssen. Fig. 21, die in Verbindung mit den Fig. 18 bis 20 zu benutzen ist, zeigt die Ausführung eines Leitsystems für den angenommenen oder unterstellten Ausfall der beweglichen Vorrichtung 21. Die CPU mit Speicher 52 empfängt über das drahtlose Kommunikationssystem 19 von der Steuer- und Navigationsschaltung 15 eine befohlene Bahn und führt in einem Block 331 einen Positionsvergleich durch. Das Ergebnis dieses Vergleichs dient dazu, einen Radpositionsfehler auszudrücken, der von der CPU mit Speicher 52 dazu verwendet wird, in einem Block 328 Bahnsteuerungs- und Radkoordinations-Befehle aufzustellen, die in der Form digitaler, in Verbindung mit Fig. 20 beschriebener Signale an die Radaufbauten 58 gegeben werden. Die digitalen Signale gelangen an die Servosteuerung im Block 327, die Befehle für einen Servoverstärker mit -mechanik 323 erzeugt, welcher den D/A-Wandler 372, den Servoverstärker 371 und den Motor 376 enthält. Nach der Umwandlung in analoge Signale mittels des D/A-Wandlers 372 gelangt die analoge Befehlsspannung zur Verstärkung an den Servoverstärker 371. Die Servosteuerung 327 empfängt über einen Winkelmeßwertaufnehmer 325 einen Winkel und verwendet diese Information zur Einstellung der Amplitude der an den Servoverstärker mit -mechanik 323 gelegten Befehlsspannung. Außerdem gelangt der vom Winkelmeßwertaufnehmer 325 an jedem Motor 376 gemessene Winkel an eine Positionsschätzeinrichtung 329. Der Winkelmeßwertaufnehmer 325 enthält den Achscodierer 333, ein Leiterbündel 375 und die Codierschnittstelle 370. Die Positionsschätzeinrichtung 329 empfängt ferner eine Gesamtheit von 6 Positionsdaten von 6 Winkelmeßwertaufnehmern 325 und ist für eine bewegliche Vorrichtung 21 mit 3 Rädern bestimmt, bei der jeder Radaufbau 58 sowohl zu Antriebs- als auch Lenktätigkeiten verwendet wird. Die Positionsschätzeinrichtung liefert die Position der beweglichen Vorrichtung 21 an den Positionsvergleicher 331, der Befehle zur Positionsanpassung der beweglichen Vorrichtung 21 erzeugt, bis die befohlene Position erreicht ist. Die bewegliche Vorrichtung 21 empfängt periodisch eine gemessene Position von der Steuer- und Navigationsschaltung 15 und berichtigt die Ausfallannahme-Position dementsprechend. Die Bewegungsgleichung für alle Räder stellt Gleichung 1 dar; Gleichung 2 liefert die Abstimmung der Räder untereinander und Gleichung 3 liefert die Koppelrechnung. Alle Gleichungen finden sich in der Auflistung von Gleichungen (Fig. 62).

Die Fig. 22 sind Flußdiagramme der Programmausführung für die Führung der beweglichen Vorrichtung 21 der Fig. 1, bei der die Steuer- und Navigationsschaltung 15 Befehlsanweisungen an die bewegliche Vorrichtung 21 übermittelt, um sie längs eines vorbestimmten, befohlenen Weges zu verfahren. Außerdem verschafft die Steuer- und Navigationsschaltung 15 der beweglichen Vorrichtung 21 periodisch Positionsdaten, welche die bewegliche Vorrichtung 21 dazu verwendet, Fehler zu berichtigen, die in Navigationsbefehlen vorhanden sind, die in einem von der beweglichen Vorrichtung 21 ausgeführten ind.

Die CPU mit Speicher 52 führt innerhalb des CPU-Abschnitts ein Ausfallannahme-Programm aus, das im Speicher der CPU mit Speicher 52 gespeichert ist und das durch das in den Fig. 22 enthaltene Flußdiagramm dargestellt ist. In einem Block 350 stellt das Steuer- und Navigationssystem 2A die wirkliche Position der beweglichen Vorrichtung 21 auf und überträgt sie über das mit Funk oder anders arbeitende drahtlose Kommunikationssystem 19 an die bewegliche Vorrichtung 21. Die bewegliche Vorrichtung 21 befindet sich, wie in einem Block 351 angegeben, in einer Anhalteposition, in der sie auf den Empfang der wirklichen Positionsdaten von dem Steuer- und Navigationssystem 2A wartet, das in der Ausführungsform der Fig. 1 eher als Meßwertaufnehmer denn als Steuereinrichtung verwendet wird. In einem Block 353 beginnt sich das Fahrzeug, die bewegliche Vorrichtung 21, in einer befohlenen, von der Steuer- und Navigationsschaltung 15 gelieferten Richtung zu bewegen, und speichert extrapolierte Positionen und eine nach jedem Zeitabschnitt markierte Fahrzeug-Referenzzeit. In einem Block 355 empfängt das Fahrzeug, die bewegliche Vorrichtung 21, die wirklichen Positionsdaten zusammen mit der Meßwertaufnehmer-Referenzzeitmarke von der Steuer- und Navigationsschaltung 15, und die CPU mit Speicher 52 sucht nach gespeicherten extrapolierten Daten, die am genauesten zwischen die Daten der wirklichen Position und die extrapolierte radiale Fortbewegung von der Anhalteposition im Block 351 zur gegenwärtigen Position im Block 357 passen.

Die CPU mit Speicher 52 bestimmt dann die Versetzung zwischen der Zeitmarke der passendsten Position aus dem Block 357 und den Meßwertaufnehmerdaten der wirklichen Position in einem Block 359. In einem Block 361 schreitet die bewegliche Vorrichtung 21 in der befohlenen Richtung fort, wobei sie fortlaufend die extrapolierte Position speichert und nach jedem Zeitabschnitt die Referenzzeitmarke erzeugt.

Sobald die bewegliche Vorrichtung 21 die Daten der wirklichen Position mit der Zeitmarke von der Steuer- und Navigationsschaltung 15 empfängt, findet ein Vergleich statt, um zu prüfen, ob eine vorgewählte zeitliche Grenze zwischen Datenpunkten überschritten ist. Falls dem so ist, wird eine Abzweigung 363 von einem Block 365 genommen, und in einem Block 367 ergibt sich ein Fehler der zeitlichen Synchronisation zwischen der Steuer- und Navigationsschaltung 15 und der beweglichen Vorrichtung 21. Daher muß die bewegliche Vorrichtung 21 anhalten und warten und zum Block 350 zurückkehren, bis sie ihre wirkliche Position empfängt. Falls die zeitliche Grenze zwischen den Datenpunkten nicht überschritten ist, schreitet die CPU mit Speicher 52 zu einem Block 369 fort, in dem die CPU mit Speicher 52 eine extrapolierte Position zu der Zeit bestimmt, in der die wirkliche Position unter Verwendung der aus dem Block 359 bekannten Versetzung und der im Speicherteil der CPU mit Speicher 52 gespeicherten extrapolierten Position gemessen wurde. In einem Block 371 werden Abweichungen der bei der Messung der wirklichen Position extrapolierten Position von der gegenwärtig extrapolierten Position abgezogen.

Falls die Abweichungen größer als erwartet sind, etwa 16 Zentimeter Radialabstand oder 5 Grad, wird im Block 367 angenommen, daß ein Synchronisationszeitfehler vorliegt, und die CPU mit Speicher 52 befiehlt der beweglichen Vorrichtung 21, anzuhalten. Falls nicht, wird einer Linie 373 gefolgt und die bewegliche Vorrichtung 21 schreitet in der befohlenen Richtung fort.

Bei der Erörterung des Unterprogramms für verdeckte Bilder, das in Verbindung mit den Fig. 13 bis 17 erörtert wurde, wurde gezeigt, daß es möglich ist, die Position und die Orientierung der beweglichen Vorrichtung 21 zu kennen, wenn eines der Abbilder verdeckt ist. In reflektierenden Umgebungen oder bei einem Zusammentreffen gewisser Sichtbedingungen in der Umgebung kann das Unterprogramm für verdeckte Bilder jedoch ungenau sein. Deswegen wird die bewegliche Vorrichtung 21 einen von der Steuer- und Navigationsschaltung 15 der Figur 1 erhaltenen fehlerhaften Befehl übergehen. Diese Fähigkeit, sich über Befehle hinwegzusetzen, ist in Fig. 22C veranschaulicht, auf die nun Bezug genommen wird.

Während der Ausführung der Blöcke 351, 355 und 365 der Figuren 22A und 22B verläßt die CPU mit Speicher 52 einen Startblock 352 und wartet auf Positionsdaten von der Steuer- und Navigationsschaltung 15. Die Positionsdaten enthalten einen Hinweis darauf, ob es ein verdecktes Bild gibt. Diese Daten werden in einem Block 356 geprüft. Falls es keinen Hinweis auf ein verdecktes Bild gibt, wird das Programm über einen Block 364 verlassen. Falls es einen Hinweis auf ein verdecktes Bild gibt, vergleichen Blöcke 358 und 360 den Winkel von der Steuer- und Navigationsschaltung 15 mit dem Ausfallannahme-Winkel. Der vom Ausfallannahme-Leitsystem bestimmte Winkel wird der beherrschende Winkel, falls die beiden Winkel um 180 Grad auseinander liegen, was auf einen Fehler im Programm für verdeckte Bilder hinweist, und in einem Block 362 werden die Daten von der Steuer- und Navigationsschaltung 15 angepaßt, und zwar auf der Grundlage der Lichtgeometrie und -Information, die in den Positionsdaten, die angeben, welches Abbild verdeckt ist, enthalten und deshalb falsch verarbeitet sind. Dieses Programm der Fig. 22C wird jedesmal ausgeführt, wenn Positionsdaten von der Steuer- und Navigationsschaltung 15 empfangen werden.

GESCHWINDIGKEITSFILTER FÜR EIN SERVOSYSTEM

Die CPU mit Speicher 52 der Fig. 20 führt ein Servofilterprogramm aus, das im Flußdiagramm der Fig. 23, auf die nun Bezug genommen wird, dargestellt ist. In Fig. 23 bringt die CPU mit Speicher 52 in einem Block 376 das Geschwindigkeitsfilter ins Spiel, und die mittels des Achscodierers 333 bestimmte Motorposition oder Achsposition wird in einem Block 377 gelesen. Die ungefilterte Geschwindigkeit wird in einem Block 374 aufgrund der zwischen dem Zeitpunkt eines Lesevorgangs und der zwischen Lesevorgängen liegenden Zeit vom Achscodierer gemessenen Drehung bestimmt. Die CPU mit Speicher 52 arbeitet wie die meisten Mikroprozessoren auf einer zyklischen Zeitbasis, so daß die periodischen Lesevorgänge alle n Zyklen ausgeführt werden können, wobei n eine positive ganze Zahl zwischen 1 und unendlich ist. In einem Block 375 wird die gefilterte Geschwindigkeit gewonnen, indem die zuvor gefilterte Geschwindigkeit mal einer Konstante K1 und die ungefilterte Geschwindigkeit mal einer Konstante K2 zusammengezählt werden. Die Summe ist gleich der gefilterten Geschwindigkeit.

K1 und K2 unterliegen der Bedingung, daß ihre Summe gleich 1 sein muß, und sie werden experimentell bestimmt, indem der Wert des Verhältnisses K1/K2 aufgrund der dynamischen Wirkung des Servosystems eingestellt wird, besonders bei niedrigen oder langsamen Geschwindigkeiten, bei denen sich die Daten vom Achscodierer 333 sehr langsam ändern. Beispielsweise kann sich die Achse in der Ausführungsform der Fig. 20 in jeder von der CPU mit Speicher 52 durchgeführten Abtastperiode um einem viertel Schritt drehen. Die Geschwindigkeit beträgt ohne Filterung 0 Grad je Abtastung für drei Abtastungen und 1 Grad je Abtastung für die vierte Abtastung. Dies hat also zur Folge, daß das Servosystem in jeder vierten Abtastung vorstößt und somit möglicherweise irgendein empfindliches, von der beweglichen Vorrichtung 21 gehandhabtes Material beschädigt. Die Wahl der Konstanten K1 und K2 und die Verwendung des Geschwindigkeitsfilters schalten dieses Problem aus, indem die Geschwindigkeit über alle Abtastungen ausgeglichen wird.

Vor einer Rückkehr zu Block 376 in Fig. 23 ist zu beachten, daß die Eingangs- und Ausgangssignale des digitalen Servosystems quantisiert sind. Im Beispiel der Fig. 20 weist der schrittweise arbeitende Achscodierer 333 eine Quantisierung von +/- einer Zähleinheit auf. Es gibt daher einen minimalen und einen maximalen Wert für die zulässige Geschwindigkeit. Diese Information ist durch die Auflösung des Achscodierers gegeben. Daher wird die gefilterte Geschwindigkeit in einem Block 379 durch die minimale und die maximale Geschwindigkeit auf der Grundlage der Quantisierung des Achscodierers 333 begrenzt.

VERFAHREN ZUR AUSWAHL DER KONSTANTEN K1 UND K2

Setze das Verhältnis von K1 zu K2 gleich einer Konstanten, etwa 1 und erhöhe den Wert, falls das Servosystem zuckt, oder vermindere den Wert des Verhältnisses, falls das Servosystem instabil ist und oszilliert.

BREMSSYSTEM DER VORRICHTUNG

Fig. 24, auf die nun Bezug genommen wird, zeigt ein vereinfachtes Schema eines Lenk-Servosteuerungssystems, in das die Ausführungsformen der Erfindung eingebaut sind. Eine Stromquelle 381 liefert Strom an eine Stromsteuerung 383, die den an den Servoverstärker 62 und den Lenkmotor 64 gelangenden Strom steuert. Eine Schaltung mit bezugspotentialfreiem Kondensator 389 legt den Strom vom Servoverstärker 62 über Relaiskontakte 407 bis 405 und 411 bis 413 an den Lenkmotor 64. Außerdem gelangt Strom von der Stromquelle über Relaiskontakte 393 und 403 und Relaiskontakte 401 bis 397 an einen Kondensator 391, der das Herz der Schaltung ist. Im Falle eines Stromausfalls wird eine Spule 385 aberregt, was dazu führt, daß der Kontakt 411 den Kontakt 409 und der Kontakt 405 den Kontakt 399 berührt, und in ähnlicher Weise dazu, daß der Kontakt 397 den Kontakt 415 und der Kontakt 393 den Kontakt 395 berührt, wodurch die im Kondensator 391 gespeicherte Ladung an den Lenkmotor 64 gelangt und die Lenkung der beweglichen Vorrichtung 21 entkoordiniert. Ferner kann ein Bremsbefehl an eine Spule 387 gelangen, was zur Folge hat, daß die Spule 385 aberregt wird und die im Kondensator 391 gespeicherte Spannung wiederum an den Lenkmotor 64 gelangt. Das vorstehend erörterte Anlegen der Ladung im Kondensator 391 an den Lenkmotor 64 ist in Fig. 25 veranschaulicht.

Fig. 26 zeigt eine vierrädrige Ausführungsform der beweglichen Vorrichtung 21, bei der Räder 23A und B zum Lenken der beweglichen Vorrichtung 21 verwendet werden, indem die Winkel 417 und 418, die die Räder mit der beweglichen Vorrichtung 21 einschließen, verändert werden. Man beachte, daß im Lenkbetrieb der durch eine Abstandslinie 417 repräsentierte Winkel etwa gleich dem durch eine Abstandslinie 418 repräsentierten Winkel ist. In der entkoordinierten Betriebsweise oder im Bremsbetrieb werden die Räder 23A und 23B in eine Richtung gebracht, bei welcher die Bewegung der beweglichen Vorrichtung 21 gehemmt wird. Infolgedessen ist der durch eine Abstandslinie 419 repräsentierte Winkel zu dem durch eine Abstandslinie 420 repräsentierten Winkel entkoordiniert und beziehungslos. Im Idealfall sollen die Winkel gleich groß sein, aber in einander entgegengesetzte Richtungen bezogen auf Mittellinien 425 und 426 durch die Achsen von Rädern 23A und 23C beziehungsweise 23B und 23D weisen.

Fig. 27 ist eine andere Ausführungsform der Erfindung, bei der es nur drei Räder gibt und deren Steuerung mittels Rädern 23C und 23D ausgeführt wird. Abstandslinien 421 und 422 repräsentieren die koordinierte Lenkung der steuerbaren beweglichen Vorrichtung 21, und in Fig. 27B ist der Bremsbetrieb dargestellt, in dem die durch Abstandslinien 423 und 424 repräsentierten Winkel derart sind, daß sie der Vorwärtsbewegung der steuerbaren beweglichen Vorrichtung 21 Widerstand leisten.

EIN DRAHTLOSES KOMMUNIKATIONSSYSTEM

In Fig. 28, auf die nun Bezug genommen wird, ist ein Blockdiagramm des erfindungsgemäßen Kommunikations- und Navigationssystems gezeigt. Wie im Falle der Fig. 1 ist ein Terminal 17 vorgesehen, so daß ein Bediener mit der Steuer- und Navigationsschaltung 15 kommunizieren kann, welche wie an früherer Stelle erörtert die Befehlsschaltungen enthält, die für die Erzeugung von Befehlssignalen zur Übermittlung von Befehlen an die bewegliche Vorrichtung 21 notwendig sind. Die Befehlssignale werden über einen feststehenden Fernmeldebaustein 19A übertragen, der mittels Blinklicht Daten an die bewegliche Vorrichtung 21 überträgt, insbesondere an einen mit der beweglichen Vorrichtung 21 vereinigten Fernmelde- und Navigationsbaustein 19B, der in jeder Signaleinrichtung 3, 5 und 7 der Fig. 1 enthalten ist.

Der mit der beweglichen Vorrichtung 21 vereinigte Fernmelde- und Navigationsbaustein 19B setzt das Blinklicht in digitale Daten um, die an eine Modemsteuerung 19C gelangen, welche die Daten für die Eingabe in die CPU mit Speicher 52 demoduliert.

Die Navigationsschaltung arbeitet dann so wie an früherer Stelle in Verbindung mit den Fig. 18 bis 20 erörtert. Bei der Ausführungsform der Fig. 28 werden außerdem die Daten zur Übertragung an den Bediener über den mit der beweglichen Vorrichtung 21 vereinigten Fernmelde- und Navigationsbaustein 19B und den feststehenden Fernmeldebaustein 19A moduliert, wobei die Steuer- und Navigationsschaltung 15 eine nicht gezeigte Modemsteuerung enthält, die aber mit der als 19C dargestellten Schaltung zur Datendemodulation übereinstimmt.

Fig. 29, auf die nun Bezug genommen wird, ist ein Diagramm der Wellenformen der Übertragung zwischen der beweglichen Vorrichtung 21 und der Steuer- und Navigationsschaltung 15 über den feststehenden Fernmeldebaustein 19A, der in der gezeigten Ausführungsform nahe der Fernsehkamera 1 angebracht ist. Das Navigations-Signaleinrichtungs-Steuersystem ist so ausgeführt, daß es wie in einer Wellenform 433 dargestellt an Blinkstellen 434 und 435 blinkt. Die Daten von der Modemsteuerung 19C sind durch eine Wellenform 440 dargestellt, bei der frequenzmodulierte Daten stoßweise an Stellen 436, 437 und 438 auftreten. Die tatsächliche Datenübertragung ist durch eine Wellenform 439 dargestellt und kann als Wellenform 440 in Verbindung mit der Wellenform 433, mit denen sich die Wellenform 439 ergibt, die die frequenzmodulierten Daten, die über den mit der beweglichen Vorrichtung 21 vereinigten Fernmelde- und Navigationsbaustein 19B übertragen werden, in Bereichen 442, 443 und 445 enthält, optisch empfangen werden. Zusätzlich liefert eine Wellenform 441 in Form einer Darstellung den Empfang von Daten, wie sie von dem feststehenden Fernmeldebaustein 19 A zur beweglichen Vorrichtung 21 übertragen werden, bei der das durch die Wellenform 433 dargestellte Navigations-Signaleinrichtungs-Steuerungssystem nicht benötigt wird und daher nicht Teil der von der Basisstation übertragenen Daten ist.

NAVIGATIONSBAUSTEINE

Fig. 30 ist eine Draufsicht auf den mit der beweglichen Vorrichtung 21 vereinigten Fernmelde- und Navigationsbaustein 19B, der oben auf jeder der Signaleinrichtungen 3, 5 und 7 der Fig. 1 angebracht ist. Mehrere Leuchtdioden 447 sind parabolförmig angeordnet, um eine Bündelung des Lichts zu erzielen, welches in der gezeigten Ausführungsform in Infrarotbereich liegt, um Kommunikations- und Lageinformationen auf eine Empfangsstation zu übertragen. Außerdem ist am Rand des Fernmelde- und Navigationsbausteins 19B eine Licht empfangende Diode 449 angebracht.

Fig. 31 ist eine Schnittansicht des Fernmelde- und Navigationsbausteins 19B von Schnittlinien 31 in Fig. 30 aus und zeigt die Parabolform 450 der Anordnung der Leuchtdioden 447, die dazu verwendet werden, sowohl die Daten und Signaleinrichtungspositionen von der beweglichen Vorrichtung als auch nur die die Daten von der Basisstation, die jeweils als Wellenformen 439 und 441 dargestellt sind, zu übertragen.

VORHERSAGE-ZIELVERFOLGUNGS-KAMERAS FÜR FREI UMHERFAHRENDE ROBOTER.

Fig. 32 stellt eine Draufsicht eines Fabrikbodens oder einer Fertigungsumgebung dar, auf der vier Kamerafelder abgebildet sind, nämlich ein erstes Kamerafeld 451, ein zweites Kamerafeld 453, ein drittes Kamerafeld 352 und ein viertes Kamerafeld 454, welche für die darauf blickenden Kameras stehen, die aus den mehreren Kameras 1 der Fig. 1 ausgewählt sind. Eine gestrichelte Linie 461 stellt einen möglichen Weg der beweglichen Vorrichtung 21 dar, der im ersten Kamerafeld 451 beginnt und im dritten Kamerafeld 452 endet. Solange die bewegliche Vorrichtung 21 im Kamerafeld 1 bleibt, wird die Navigationsverbindung durch die darüberliegende Kamera aufrechterhalten, deren Blickwinkel mit dem ersten Kamerafeld 451 übereinstimmt. Für eine gewisse Zeit, nachdem die bewegliche Vorrichtung diesen Blickwinkel oder das erste Kamerafeld 451 verlassen hat, ist die bewegliche Vorrichtung 21 für keine der Kameras sichtbar. Dieser blinde Bereich ist als Bereich 463 abgebildet. Etwas später gelangt die bewegliche Vorrichtung 21 bei der Ausführungsform der Fig. 32 in das dritte Kamerafeld 452, und es wird eine normale Navigationssteuerung eingerichtet, wie im Zusammenhang mit den Fig. 18 bis 23 erörtert.

Für den Zeitabschnitt, in dem die Navigationsverbindung im blinden Bereich 463 unterbrochen ist, besteht allerdings eine Unsicherheit über die genaue Lage der beweglichen Vorrichtung 21 und über die Richtung, in der sie orientiert ist. In Fig. 32 vollzieht die bewegliche Vorrichtung 21 eine plötzliche Wende, wie durch eine gestrichelte Linie 461 angegeben; sie kann in Wirklichkeit im Verlauf dieser Zeit aber auch mehrere Wenden vollziehen, wie durch eine gestrichelte Linie 456 in Fig. 33 angegeben.

Wenn die bewegliche Vorrichtung 21 ihre Position und ihre Orientierung den Sichtfeldern 451, 452, 453 oder 454 zuwendet, wird diese Information im Speicherteil der Navigations- CPU mit Speicher 37a der Fig. 2 gewonnen und gespeichert. Wenn sich die steuerbare bewegliche Vorrichtung aus dem Sichtfeld herausbewegt, entsteht ein Unsicherheitsradius um die gespeicherte Position. Dieser Radius ist proportional zu und wenigstens gleich der Entfernung, die die bewegliche Vorrichtung 21 erreichen kann, wenn sie sich mit ihrer größtmöglichen Geschwindigkeit fortbewegt. Der von dem mit diesem Unsicherheitsradius geschlagenen, wie bei 455 dargestellten Kreis umschlossene Bereich wird mit dem Sichtfeld jeder der wirksam gemachten Kameras verglichen, deren Sichtfeld dem dritten Kamerafeld 452 und dem zweiten Kamerafeld 453 entspricht. Falls sich die beiden Felder überlappen, ist es durchaus möglich, daß die bewegliche Vorrichtung 21 in das Kamerafeld etwa in einem Bereich 465 eingetreten ist. Wenn dies der Fall ist, wählt der Video-Schnittstellenbaustein 31 das Eingangssignal von dieser Kamera aus und untersucht die Bildinformation auf der Suche nach dem Abbild der beweglichen Vorrichtung 21.

In der Situation, daß es keine Überlappung zwischen den Kamerafeldern gibt, etwa im Bereich 463, umgibt der Unsicherheitsbereich die letzte bekannte Position der beweglichen Vorrichtung 21. Der Unsicherheitsradius wird mit der Zeit regelmäßig schrittweise vergrößert, damit er die Entkommen- Entfernung der beweglichen Vorrichtung 21 stets richtig repräsentiert, bis der Radius auf den maximalen Durchmesser der Fertigungsanlage angewachsen ist. Die Nutzbarkeit der Abtastung vermindert sich dabei auf ein Minimum, da dann keine Kamera von der Betrachtung ausgenommen werden kann. Bei kurzen Ausfällen der Sichtbarkeit, die bei einer typischen Fabrikationsanlage die ganz überwiegende Mehrheit der Fälle bilden, führt jedoch die in Fig. 34 dargestellte Vorgehensweise zu bedeutenden Zeitersparnissen.

Wenn die Navigations-CPU mit Speicher 37a die Darstellung der Fig. 32 und 33 verwirklicht, bedient sie sich der im Flußdiagramm der Fig. 34 gezeigten Vorgehensweisen, wonach in einer Startposition 457 der Positionsalgorithmus ausgeführt und in einem Entscheidungsblock 458 bestimmt wird, ob die Position der beweglichen Vorrichtung 21 zuvor bestimmt wurde oder nicht. Falls nicht, wird zu einem Anknüpfpunkt P3 übergegangen. Falls sie bestimmt wurde, wird die erste Kamera ausgewählt, indem die Kameranummer "n" in einem Block 467 gleich 1 gesetzt wird. Sodann wird in einem Block 469 geprüft, ob das Sichtfeld der ausgewählten Kamera den blinden Bereich oder den "Unsicherheitsbereich" überlappt. Falls sie dies nicht tut, erfolgt ein Sprung zu einem Block 475. Falls jedoch das Sichtfeld der ausgewählten Kamera überlappt, fährt das Positions-Unterprogramm in einem Block 471 fort. Das Sichtfeld der ausgewählten Kamera wird nach der beweglichen Vorrichtung 21 abgesucht, und dann wird in einem Block 473a geprüft, ob die bewegliche Vorrichtung 21 geortet ist oder nicht. Falls die bewegliche Vorrichtung 21 im Sichtfeld der ausgewählten Kamera geortet wurde, geht das Positions-Unterprogramm zu einem Anknüpfpunkt P2 über. Falls nicht, wird in einem Entscheidungsblock 475 geprüft, ob sämtliche Kameras abgesucht wurden oder nicht. Im ungünstigen Fall erhöht die Navigations-CPU mit Speicher 37a bei 477 "n" auf das nächste Kamerafeld, und ein Anknüpfpunkt P1 führt zurück zum Eingang des Blocks 469.

Falls sämtliche der mehreren Kameras 1 abgesucht wurden, werden die Unsicherheitskreise in einem Block 479 vergrößert, und die bewegliche Vorrichtung 21 wird in einem Block 480 als unsichtbar bezeichnet, wonach die Routine über einen Anknüpfpunkt P4 zum Ende des Unterprogramms fortschreitet.

Ein Anknüpfpunkt P3, der der "Nein"-Zweig der im Block 458 getroffenen Entscheidung ist, führt bei der Suche nach der beweglichen Vorrichtung 21 in einem Block 481 zu einer einmaligen geradlinigen Abtastung jedes Kamerafeldes der mehreren Kameras 1. Sodann wird in einem Block 483 gefragt "wurde die bewegliche Vorrichtung 21 oder der Roboter geortet?". Falls die Antwort nein ist, führt ein Anknüpfpunkt P5 zurück zum Block 480, in dem die bewegliche Vorrichtung 21 als unsichtbar bezeichnet wird. Falls die bewegliche Vorrichtung 21 entweder im Block 483 oder im Block 473 geortet ist, führt der Weg zu einem Block 485, der die bewegliche Vorrichtung 21 als sichtbar bezeichnet, und in einem Block 487 wird die Unsicherheitszone 455 auf Null verkleinert. Das geeignete Kamerafeld und die Position der beweglichen Vorrichtung 21 werden in einem Entscheidungsblock 489 festgestellt, und das Unterprogramm endet an einem Block 491.

NETZWERK ZUR STEUERUNG EINES SYSTEMS BEWEGLICHER ROBOTER

In Fig. 1 ist ein Bewegliche-Vorrichtungs-System zur Steuerung einer einzelnen beweglichen Vorrichtung 21 gezeigt. Bei vielen praktischen Anwendungen gibt es jedoch mehr als eine bewegliche Vorrichtung 21 in einer einzelnen Fertigungsanlagen-Umgebung.

Fig. 35 veranschaulicht den Betrieb eines Computernetzwerks zur Steuerung eines- Bewegliche-Vorrichtungs-Systems, unter dem mehr als eine bewegliche Vorrichtung 21 arbeiten. In Figur 35 ist das Terminal 17 an die Steuer- und Navigationsschaltung 15 angeschlossen.

Insbesondere ist das Terminal 17 an eine Bedienerschnittstelle 501 angeschlossen, die mit einem Kommunikationsprozessor 517 Daten austauscht. Außerdem stehen mit dem Kommunikationsprozessor eine Fertigungsanlagensteuerung 503, eine Organisationssteuerung 505 und eine Navigationssteuerung 507 in Verbindung. Da die beweglichen Vorrichtungen 21 batteriebetrieben sind, müssen sie sich regelmäßig bei einer Ladestation zur Wiederaufladung melden. Hierfür kann es innerhalb der Host-CPU mit Speicher 37 eine Ladestationssteuerung 515 geben. Daten vom Kommunikationsprozessor 517 stehen mit Treibern in Verbindung, die innerhalb jeder beweglichen Vorrichtung 21 und insbesondere in der CPU mit Speicher 52 gespeichert sind. Demnach gibt einen ersten Bewegliche-Vorrichtungs-Treiber 509, einen zweiten Bewegliche-Vorrichtungs- Treiber 511 und einen n-ten Bewegliche-Vorrichtungs-Treiber 513.

Fig. 36 ist ein Flußdiagramm für die Bedienerschnittstelle 501, bei dem die Bedienerschnittstelle in einer Startposition 1515 wartet und fortlaufend nach irgendwelchen bei 1517 empfangenen Botschaften sucht. Falls eine Botschaft empfangen wurde, wird die Botschaft in einem Block 519 verarbeitet und der Systemstatus aktualisiert. Falls im Block 1517 keine Botschaften vom Kommunikationsprozessor empfangen wurden, wird in einem Block 521 geprüft, ob irgendwelche Tastaturbefehle empfangen wurden. Falls keine Tastaturbotschaften empfangen wurden, erfolgt in einem Block 523 eine Aktualisierung der Sichtanzeige auf dem Terminal 17. Wenn eine Tastatureingabe empfangen wurde, wird diese Information in einem Block 525 verarbeitet, und die Bedienerschnittstellen-Steuerung geht zum Block 523 über, um die Sichtanzeige auf dem Terminal 17 zu aktualisieren. In einem Block 527 kehrt die Bedienerschnittstellen-Steuerung zur Startposition 1515 zurück, wo sie überwacht, ob irgendwelche neuen Statusbotschaften am Block 1517 eintreffen.

Fig. 37 zeigt die zur Ausführung des in der Navigations-CPU mit Speicher 37a gespeicherten Kommunikationsprozessor-Programms erforderliche Logik. In einem Startblock 529 ist der Kommunikationsprozessor im Ruhezustand und nimmt in einem Block 531 eine Botschaft auf. Falls die Botschaft mehrere Bestimmungsorte hat, werden diese in einem Block 533 bestimmt, und der Kommunikationsprozessor 517 geht zu einem Block 535 über, um die Botschaften an alle angeforderten Ausgangswarteschlangen zu übermitteln, oder die Botschaft wird in einem Block 537 in der entsprechenden Warteschlange abgelegt, falls die Botschaft nur einen einzigen Bestimmungsort hat, und dann werden die abgehenden Botschaften in einem Block 539 übermittelt. Die Kommunikationslogik kehrt dann zur Startposition im Block 529 zurück, um eine Botschaft auf zunehmen.

Die Navigationslogik 507 (die logische Struktur der Navigationssteuerung 507) wird gemäß Fig. 38 ausgeführt. Der beweglichen Vorrichtung 21 dient eine interne Ausfallannahme- Schaltung zur Durchführung ihrer Navigation. Allerdings wird sie in regelmäßigen Zeitabständen mit ihrer wirklichen Position versorgt, so daß irgendwelche Abweichungen zwischen der Ausfallannahme-Position und der gegenwärtigen Position nachträglich ausgeglichen werden können. Hierzu wird das Verfahren der Fig. 38 durchgeführt, bei dem die Navigationssteuerung 507 in einem Block 543 in der Startposition ist und in einem Block 545 das Suchprogramm zum Erkennen und Orten einer beweglichen Vorrichtung ausführt. Sobald die bewegliche Vorrichtung 21 geortet ist, wird ihre Position in einem Block 547 an die bewegliche Vorrichtung 21 übermittelt, und die Navigationssteuerung 507 kehrt an die Startposition im Block 543 zurück.

Fig. 39 ist ein Blockdiagramm der Logik der Fertigungsanlagensteuerung, wobei der Fertigungsanlagensteuerung-Computer 503 in einem Block 551 im Ruhezustand ist. Ein Entscheidungsblock 553 prüft, ob irgendwelche Materialeingänge eingetroffen sind. Falls ja, wird in einem Block 555 ein Befehl erzeugt und an die Organisationssteuerung 505 übermittelt, das Material an eine erste Bearbeitungsstation zu transportieren, und eine Arbeitsanweisung erzeugt. Die Fertigungsanlagensteuerung überwacht in einem Block 557, ob eine bewegliche Vorrichtung 21 an einer bezeichneten Station angekommen ist, und zwar ohne Rücksicht darauf, ob ein Eintreffen von Material im Block 553 erwartet wurde oder ob die Arbeitsanweisung im Block 555 verarbeitet wurde. Falls im Entscheidungsblock 557 festgestellt wurde, daß eine bewegliche Vorrichtung 21 an einer Station angekommen ist, wird der Station, an der die bewegliche Vorrichtung 21 angekommen ist, in einem Block 559 das Signal gegeben, die Bearbeitung aufzunehmen. Falls nicht, oder falls die Bearbeitung im Block 559 angefangen hat, prüft die Fertigungsanlagensteuerung in einem Block 561, ob irgendwelche Stationen angezeigt haben, ihre Bearbeitung sei beendet. Falls die Bearbeitung beendet ist, wird der Organisationssteuerung 505 befohlen, teilweise fertigbearbeitetes Material an die nächstfolgende Bearbeitungsstation oder vollständig fertigbearbeitetes Material zum Auslieferplatz zu befördern, wobei dann die Arbeitsanweisung in einem Block 563 ausgeführt ist und die Fertigungsanlagensteuerung in einem Block 565 zur Startposition 551 zurückkehrt. Falls die Bearbeitung noch nicht beendet ist, nimmt die Steuerung den "Nein"-Zweig vom Block 565 zum Block 565.

Fig. 40 liefert ein Flußdiagramm für die Organisationssteuerung 505, bei dem die Organisationssteuerung 505 in einer Startposition 567 beginnt und in einem Entscheidungsblock 569 nach irgendwelchen neu empfangenen Arbeitsanweisungen sucht. Falls keine neue Arbeitsanweisung empfangen wurde, prüft die Organisationssteuerung 505 in einem Block 571, ob irgendwelche Roboter oder beweglichen Vorrichtungen 21 verfügbar sind.

Falls die neue Arbeitsanweisung in der Warteschlange ist, wird die Arbeitsanweisung in einem Block 573 aufgenommen. Die Organisationssteuerung 505 ordnet dann in einem Block 575 zusätzliche Arbeitsanweisungen derjenigen beweglichen Vorrichtung 21 zu, welche die Arbeit am besten verrichten kann, und die Arbeitspläne werden in einem Block 576 an die bewegliche Vorrichtung 21 gesandt, wonach die Organisationssteuerung 505 in einem Block 577 zur Startposition zurückkehrt. Wie durch einen Pfad 579 angezeigt, fährt die Organisationssteuerung 505 damit fort, Arbeitsanweisungen oder die Verfügbarkeit der beweglichen Vorrichtungen 21 zu überwachen.

Fig. 41 ist die Logik der Ladestationssteuerung 515, wobei sich die Ladestationssteuerung 515 in einem Block 579 in einer Startposition befindet und in einem Bock 581 die zur Zeit wiederaufgeladenen Batterien überwacht. In einem Entscheidungsblock 583 prüft sie, ob irgendwelche neuen Befehle empfangen wurden, und falls dies der Fall ist, verarbeitet sie in einem Block 585 einen neuen Befehl, die Batterien zu entfernen, einzusetzen, wiederaufzuladen usw., und kehrt in einem Block 587 zur Startposition zurück.

STEUERUNG FÜR EIN SYSTEM BEWEGLICHER ROBOTER

Wie im Zusammenhang mit Fig. 35 erörtert, plant die Organisationssteuerung 505 die Bewegung mehrerer beweglicher Vorrichtungen 509, 511-513. Das in Fig. 35 dargestellte System muß in sich abgestimmt sein, um Tätigkeiten und zurückgelegte Wege möglichst klein zu machen.

Die Organisationssteuerung 505 ist mittels der in Fig. 1 gezeigten Vorrichtung verwirklicht und umfaßt ein Datenverarbeitungsprogramm, das in der Host-CPU mit Speicher 37 enthalten ist. In Fig. 42A gibt es sechs mögliche Aufforderungen, die die Organisationssteuerung 505 in die Tat umsetzen kann, wenn sie dazu angewiesen ist. Diese Aufforderungen betreffen eine Anlaufphase (Block 601), einen Materialtransport (Block 603), einen Batteriewechsel (Block 605), ein Parken (Block 607), einen Stellungswechsel (Block 609) und ein Abziehen vom System (Block 611). Die Organisationssteuerung 505 kreist auf der Suche nach Aufforderungen, die in die Tat umzusetzen sind, fortwährend von einem Startblock 600 aus durch die sechs Blöcke.

Beginnend mit der Ruhe- oder Startposition 600 startet die Organisationssteuerung 505 einen Vorgang, bei dem die Organisationssteuerung 505 im ersten Entscheidungsblock 601 prüft, ob eine Aufforderung zur Durchführung einer Anlaufphase bei einer beweglichen Vorrichtung 21, etwa einem Roboter, vorliegt. Falls eine Aufforderung oder eine "Ja"-Antwort vorliegt, wird ein Unterprogramm A in Fig. 42B aufgerufen, und falls keine Aufforderung für die Durchführung einer Anlaufphase bei einer beweglichen Vorrichtung 21 oder eine "Nein"- Antwort vorliegt, geht die Organisationssteuerung 505 bei 603 zum nächsten Entscheidungsblock über.

Der Entscheidungsblock 603 prüft, ob eine Aufforderung zu einem Materialtransport empfangen wurde. Falls eine solche Aufforderung empfangen wurde, wird dem "Ja"-Zweig gefolgt, und die Organisationssteuerung 505 geht zu einem Anknüpfpunkt B über, der sich in Fig. 42C befindet. Falls keine Aufforderung empfangen wurde, wird dem "Nein"-Zweig gefolgt, und die Organisationssteuerung 505 geht zum Block 605 über, welcher prüft, ob eine Aufforderung zu einem Batteriewechsel empfangen wurde. Falls eine Aufforderung zur Durchführung eines Batteriewechsels empfangen wurde, wird dem Ja-Zweig gefolgt und das in Fig. 42D angegebene Unterprogramm ausgeführt, oder falls dem Nein-Zweig gefolgt wurde (keine Aufforderung), geht die Organisationssteuerung 505 zum Entscheidungsblock 607 über.

Der Entscheidungsblock 607 prüft, ob eine Aufforderung empfangen wurde, die bewegliche Vorrichtung 21 zu einem Parkplatz zu überführen. Falls ja, wird natürlich der "Ja"-Zweig beschritten und das in Fig. 42E dargestellte Unterprogramm D ausgeführt, und falls nicht, wird der "Nein"-Zweig beschritten, und die Organisationssteuerung 505 geht zum Entscheidungsblock 609 über. Im Entscheidungsblock 609 prüft die Organisationssteuerung 505, ob eine Aufforderung empfangen wurde, die bewegliche Vorrichtung 21 zu einem anderen Fertigungsplatz zu überführen. Falls "Ja", wird in einem Anknüpfpunkt E das Unterprogramm der Fig. 42F ausgeführt. Falls "Nein", geht die Organisationssteuerung 505 zum Entscheidungsblock 611 über.

Die bewegliche Vorrichtung 21 kann aus der Fertigungsumgebung abgezogen werden, wozu in einem Entscheidungsblock 611 geprüft wird, ob es eine Aufforderung zum Abziehen der beweglichen Vorrichtung 21 vom Boden der Fertigungseinrichtung gegeben hat. Falls "Nein", kehrt die Organisationssteuerung 505 zur Startposition 600 zurück. Falls "Ja", geht die Organisationssteuerung 505 zum in Fig. 42G ausgeführten Anknüpfpunkt F über.

Es ist ersichtlich, daß dieses Programm mehrere Mehrfachaufforderungen umfassen kann, die die Organisationssteuerung 505 ausführen kann, indem die Entscheidungsblöcke aneinandergereiht werden und alsdann die Unterprogramme zur Ausführung von deren Entscheidungen ausgeführt werden.

Am Anknüpfpunkt A in Fig. 42B beginnt die Organisationssteuerung 505 in einem Block 613, mit der beweglichen Vorrichtung 21 Daten auszutauschen. Dieser Datenaustausch wird vom Kommunikationsprozessor 517 der Fig. 35 verwaltet. Falls die adressierte bewegliche Vorrichtung 21 nicht antworten kann, wird in einem Entscheidungsblock 615 entschieden, zurück zur Startposition 613 zu gehen, was bedeutet, daß keine Antwort vorliegt, und den Datenaustausch mit der beweglichen Vorrichtung 21 wieder aufzunehmen. Nach einer gewissen Anzahl von Versuchen im Block 614 kehrt die Organisationssteuerung 505 zur Startposition im Block 600 zurück, um festzustellen, ob eine andere Aufforderung empfangen wurde. Falls die bewegliche Vorrichtung 21 antwortet, wird der Navigations-CPU mit Speicher 37a in einem Block 617 befohlen, damit anzufangen, die steuerbare bewegliche Vorrichtung 21 zu verfolgen. In einem Block 619 erfolgt eine Bestimmung der Lage der steuerbaren beweglichen Vorrichtung 21 auf dem Boden der Fertigungseinrichtung, und dann wird die steuerbare bewegliche Vorrichtung 21 in einem Block 612 zum nächst verfügbaren Zielpunkt bewegt. Nach Vollendung des Blocks 612 kehrt die Organisationssteuerung 505 für die nächste Entscheidung zum Block 603 zurück.

Im Block 603 erfolgt eine Entscheidung aufgrund einer Prüfung, ob eine Aufforderung zur Durchführung eines Materialtransports vorliegt. Falls ja, führt die Organisationssteuerung 505 über den Anknüpfpunkt B das Materialtransport-Unterprogramm aus. In Fig. 42C umfaßt das am Anknüpfpunkt B ausgeführte Unterprogramm in einem Block 623 einen Versuch, einen Materialtransport aufzustellen. Falls die Organisationssteuerung 505 feststellt, daß es keine Möglichkeit gibt, einen Transport zu versuchen, kehrt die Organisationssteuerung 505 zum Block 605 zurück und geht zu der in Fig. 42A dargestellten Schleife über. Falls ein Materialtransport möglich ist, wird in einem Block 625 eine Bahn durch die Fabrikanlage erzeugt, welcher die steuerbare bewegliche Vorrichtung 21 folgen soll. Die bewegliche Vorrichtung 21 wird in einem Block 627 angewiesen, sich gemäß der von der Organisationssteuerung 505 zur Verfügung gestellten Bahninformation durch die Fertigungseinrichtung zu bewegen, und führt dies gemäß seines Navigationserzeugungsprogramms aus, das sein in Verbindung mit den Fig. 18 bis 23 erörtertes Ausfallannahme- Programm umfaßt. Beim Erreichen ihres endgültigen Bestimmungsortes werden die Fertigungsanlagensteuerung 503 und die Bedienerschnittstellensteuerung 501 von der Organisationssteuerung 505 in einem Block 629 davon in Kenntnis gesetzt, daß die bewegliche Vorrichtung 21 ihre endgültige Position erreicht hat.

In einem Block 631 ergeht eine Entscheidung, bei der geprüft wird, ob eine Vorrichtung zum Transport von Material an Bord der beweglichen Vorrichtung 21 ist. Falls ja, wird das Material in einem Block 633 transportiert. Falls nein, wartet die Einheit in einem Block 635, bis der Materialtransport vollendet ist, wonach des Unterprogramm abgeschlossen ist und das Verfahren zum Anknüpfpunkt B zurückkehrt, bis sämtliches Material transportiert wurde, wonach es zum Block 605 der Fig. 42A zurückkehrt.

Der Anknüpfpunkt C wird in Fig. 42D ausgeführt und nur dann benutzt, wenn eine Batteriewechselvorrichtung verfügbar ist. Er umfaßt einen Entscheidungsblock 637, in dem geprüft wird, ob eine Batteriewechselvorrichtung verfügbar und gegebenenfalls einsetzbar ist. Falls die Batteriewechselvorrichtung nicht verfügbar ist, kehrt die Organisationssteuerung 505 zum Block 607 zurück und durchläuft die in Fig. 42A dargestellte Schleife. Falls doch, erzeugt die Organisationssteuerung 505 in einem Block 639 eine Bahn durch die Fertigungseinrichtung, der die bewegliche Vorrichtung 21 folgen soll.

In einem Block 641 steuert die bewegliche Vorrichtung 21 gemäß der Bahninformation durch die Fertigungseinrichtung. Die Organisationssteuerung 505 teilt der Batteriewechselvorrichtung in einem Block 643 mit, daß die bewegliche Vorrichtung 21 ihr endgültiges Ziel erreicht hat. Die Batterie wird dann in einem Block 645 gewechselt, und die Organisationssteuerung 505 kehrt zum Block 607 zurück und durchläuft die in Fig. 42A dargestellte Schleife weiter. Das mit dem Anknüpfpunkt D verbundene Unterprogramm ist in Fig. 42E dargestellt, auf die nun Bezug genommen wird. Sie führt einen Parkvorgang der steuerbaren beweglichen Vorrichtung 21 aus. In einem Block 647 wird geprüft, ob irgendwelche Parkplätze frei sind. Falls nicht, kehrt das Unterprogramm zum Block 609 der Fig. 42A zurück. Falls es welche gibt, wird in einem Block 649 eine Bahn erzeugt, und die bewegliche Vorrichtung 21 wird in einem Block 651 durch die Fertigungseinrichtung zu dem freien Parkplatz bewegt, wonach das Unterprogramm zum Block 609 der Figur 42A zurückkehrt. Fig. 42F zeigt ein Unterprogramm, das eine Aufforderung in die Tat umsetzt, eine bewegliche Vorrichtung 21 zu einem anderen Platz innerhalb der Fertigungseinrichtung zu schicken. Wenn dieser Zweig beschritten wird, wird gemäß Fig. 42F in einem Entscheidungsblock 653 geprüft, ob ein Bestimmungsort frei ist. Falls nicht, kehrt das Unterprogramm zum Block 611 der Fig. 42A zurück. Falls doch, wird in einem Block 655 eine Bahn erzeugt und die bewegliche Vorrichtung 21 in einem Block 657 angewiesen, sich dort entlang zu bewegen und eine Meldung über die Vollendung der Bewegung aus zugeben.

Ein Unterprogramm F zieht die bewegliche Vorrichtung 21 aus der Fertigungseinrichtung ab. Wie gezeigt, muß in einem Entscheidungsblock 659 der Fig. 42G bestimmt werden, ob ein Ausgang zur Verfügung steht. Falls nicht, kehrt das Unterprogramm zum Block 601 der Fig. 42A zurück. Falls doch, wird in einem Block 661 eine Bahn erzeugt und die bewegliche Vorrichtung 21 in einem Block 663 angewiesen, sich zu bewegen und der Organisationssteuerung 505 die Vollendung dieser Bewegung zu melden.

KOORDINATION DER WECHSELWIRKUNG MEHRERER ROBOTER

Fig. 43, auf die nun Bezug genommen wird, ist ein schematischer Plan des Bodens einer Fertigungseinrichtung 700. Punkte 701 bis 708 sind mögliche Zielpunkte für die bewegliche Vorrichtung 21 und werden im folgenden als Knotenpunkte bezeichnet. Linien 709 bis 716 sind mögliche Bahnabschnitte zwischen den Knotenpunkten 701 bis 708, längs derer sich die bewegliche Vorrichtung 21 in der durch Pfeile angegebenen Richtung bewegen kann. Alle anderen Bereiche der Fertigungseinrichtung 700 sind für die steuerbare bewegliche Vorrichtung 21 verboten. Boxen 717 bis 720 sind Plätze innerhalb der Fertigungseinrichtung 700, an denen die bewegliche Vorrichtung 21 einen Dienst ausführen kann. Vorausgesetzt, daß es eine Reihe aneinander anschließender Bahnabschnitte zwischen zwei Plätzen gibt, kann die bewegliche Vorrichtung 21 von dem einen Platz zum anderen fahren.

Wenn es mehreren beweglichen Vorrichtungen 21 erlaubt ist, entlang der gleichen Bahn zu fahren, muß die Ankunft jeder beweglichen Vorrichtung 21 an einem der Knotenpunkte 701 bis 708 zeitlich auf die Ankunft und die Abfahrt anderer beweglicher Vorrichtungen 21 abgestimmt werden, um Stillstände und Zusammenstöße zu vermeiden. Um die Fahrt der beweglichen Vorrichtung 21 durch die Fertigungseinrichtung 700 zu koordinieren, wird ein Satz von Regeln aufgestellt, welche die Ankunft und die Abfahrt der beweglichen Vorrichtung 21 an jedem Knotenpunkt entlang einer bestimmten Bahn regeln. Falls mehrere bewegliche Vorrichtungen 21 den gleichen Knotenpunkt aufsuchen müssen, bestimmen diese Regeln, welche bewegliche Vorrichtung 21 den Knotenpunkt zuerst aufsuchen darf. Sobald ein Satz von Regeln aufgestellt ist, werden diese Regeln befolgt, bis eine bewegliche Vorrichtung 21 einen Knotenpunkt aufsucht, der nicht von einer anderen beweglichen Vorrichtung 21 besetzt ist.

Die Fig. 44 bis 49 dienen dazu, die Aufstellung von Regeln zu veranschaulichen, welche die Ankunft und die Abfahrt der beweglichen Vorrichtungen 21 regeln. Die Fig. 44, 46 und 48 zeigen die Bahnen von beweglichen Vorrichtungen 21, die in diesem Fall Vorrichtungen R1, R2 und R3 sind, und die Figuren 45, 47 und 49 zeigen die Knotenpunkte, an denen sich die Vorrichtungen R1, R2 und R3 in einem bestimmten Zeitabschnitt befinden.

Fig. 44, auf die nun Bezug genommen wird, ist eine Reihe von Bahnabschnitten, denen mehrere, mit R1, R2 und R3 bezeichnete bewegliche Vorrichtungen 21 durch eine typische Fertigungseinrichtung 700 folgen sollen. Punkte 721 bis 728 sind Ziel- Knotenpunkte und Linien 729 bis 736 sind zulässige Bahnabschnitte zwischen den Knotenpunkten. In Fig. 44 wurde lediglich eine Bahn 737 für die mit R1 bezeichnete bewegliche Vorrichtung 21 erzeugt. Die bewegliche Vorrichtung 21 beginnt sich vom Knotenpunkt 721 aus zu bewegen, kommt an den Knotenpunkten 723, 724 und 726 vorbei und hält dann am Knotenpunkt 727. Die Knotenpunktposition der mit R1 bezeichneten beweglichen Vorrichtung 21 für jeden der sechs Zeitabschnitte ist in Fig. 45 angegeben.

In Fig. 45 sind die Regeln aufgestellt, die die Bewegungen der beweglichen Vorrichtungen R1, R2 und R3 regeln. Da die mit R1 für eine Vorrichtung 1 bezeichnete Vorrichtung keinen Knotenpunkt aufsuchen wird, den eine andere bewegliche Vorrichtung 21 aufsuchen wird, sind für die Bahn zu dieser Zeit keine Regeln aufgestellt. In Fig. 44 ist indessen wie bei der Ausführungsform der Fig. 46 und 48 der erste Knotenpunkt der Vorrichtung R1 721 und ihr letzter Knotenpunkt 727.

In den Fig. 46 und 47 befindet sich die als Roboter 1 oder R1 bezeichnete bewegliche Vorrichtung 21 am Knotenpunkt 721 und soll nach 727 fahren. Die Bahnknotenpunkte, die sie auf ihrem Weg zum Knotenpunkt 727 überqueren wird, umfassen den Start-Knotenpunkt 721 und die Knotenpunkte 723, 724, 726 und 727. Ferner befindet sich bei der Ausführungsform der Fig. 46 die zweite, mit R2 bezeichnete bewegliche Vorrichtung 21 an einem Start-Knotenpunkt 722, ihr letzter Knotenpunkt ist der Knotenpunkt 728, und sie soll über eine Bahn 738 fahren. Diese Bahn umfaßt die Knotenpunkte 722, 723, 724, 726 und 728.

In Fig. 47 sind die Knotenpunktpositionen in Bezug auf die Zeit für beide, mit R1 beziehungsweise mit R2 bezeichnete bewegliche Vorrichtungen 21 dargestellt. Fig. 47 liefert außerdem die Regeln, die das Aufsuchen der Knotenpunkte in der Fertigungseinrichtung 700 durch die beiden Vorrichtungen R1 und R2 koordinieren. Wie in Fig. 44 gezeigt, hat die mit R1 bezeichnete bewegliche Vorrichtung 21 bereits eine Bahn durch die Knotenpunkte 723, 724 und 726 ausgewählt. Deshalb muß sich die zweite, mit R2 bezeichnete bewegliche Vorrichtung 21 vom Knotenpunkt 722 zum Knotenpunkt 728 bewegen. Es wird eine Bahn erzeugt, ohne die Bahn für R1 zu ändern.

Während des ersten Zeitabschnitts wird R2 versuchen, sich zum Knotenpunkt 723 zu bewegen. R1 hat jedoch Vorrang bei der Besetzung des Knotenpunkts 723 und wird sich daher während des zweiten Zeitabschnitts bewegen. Deshalb sind die Regeln so, daß R1 vor R2 am Knotenpunkt 723 ankommen muß und R2 nach R1 ankommen muß. Während des zweiten Zeitabschnitts muß R2 warten, ehe sie sich zum Knotenpunkt 723 bewegt. Im dritten Zeitabschnitt kann R2 den Knotenpunkt 723 besetzen. Da R2 nach R1 am Knotenpunkt 723 ankommen muß, ändern sich die Regeln für R2 so, daß sie nach der Abfahrt von R1 ankommt. Die Regeln für R1 ändern sich ferner so, daß sie nach der Ankunft von R2 ankommt. Da die Regeln nun aufgestellt wurden, werden sie auf die Knotenpunkte 724 und 726 angewandt. Indessen gibt es keine Konflikte zwischen R1 und R2 an den Knotenpunkten 727 und 728, weshalb die Regeln nicht länger angewandt werden.

Die Fig. 48 und 49 zeigen die Bahnen für eine dritte bewegliche Vorrichtung 21 oder R3 zusammen mit den früheren Bahnen für die steuerbaren, mit R1 und R2 bezeichneten beweglichen Vorrichtungen 21. R3 wird sich vom Knotenpunkt 728 längs einer Bahn 739 bewegen, an den Knotenpunkten 726, 725 und 723 vorbeikommen und schließlich am Knotenpunkt 722 anhalten. Die Knotenpunkte 726 und 723 sind allen drei beweglichen Vorrichtungen 21 gemeinsam, die in Fig. 48 mit R1, R2 und R3 bezeichnet sind.

Fig. 49 zeigt die Knotenpunktpositionen in Bezug auf die Zeit für alle drei beweglichen Vorrichtungen 21. In Fig. 49 sind die Regeln dargestellt, die das Aufsuchen der Knotenpunkte in der Fertigungseinrichtung für alle Vorrichtungen 21 koordinieren. Wie in Fig. 47 gezeigt, haben R1 und R2 bereits eine Bahn durch die Knotenpunkte 723 und 726 ausgewählt, weshalb eine neue Bahn erzeugt werden muß, um R3 vom Knotenpunkt 728 zum Knotenpunkt 722 zu bewegen, ohne die früheren Bahnen für R1 und R2 zu ändern.

R3 wird sich zuerst zum Knotenpunkt 726 bewegen. Im Hinblick auf den Umstand, daß weder R1 noch R2 den Knotenpunkt 726 während des zweiten Zeitabschnitts besetzen, darf R3 den Knotenpunkt 726 besetzen. R3 wird vor den anderen beweglichen Vorrichtungen 21 am Knotenpunkt 726 ankommen, weshalb die Regeln für R3 als Ankunft vor R1 aufgestellt werden. Die Regeln für R1 und R2 ändern sich natürlich nicht.

Im dritten Zeitabschnitt wird sich R3 zum Knotenpunkt 724 oder zum Knotenpunkt 725 bewegen. Die frühestens mögliche Zeit, zu der R3 den Knotenpunkt 724 besetzen kann, liegt gemäß der früheren, in Verbindung mit den Fig. 46 und 47 erörterten Einrichtung von Bahnen im fünften Zeitabschnitt. R3 muß nach R1 am Knotenpunkt 724 ankommen. Die Regeln setzen außerdem fest, daß R3 an allen Knotenpunkten vor R1 ankommen muß, und werden deshalb für eine Bewegung von R3 zum Knotenpunkt 724 verletzt. Da weder R1 noch R2 den Knotenpunkt 725 irgendwann besetzen werden, kann R3 dem Knotenpunkt 725 während des dritten Zeitabschnitts besetzen.

Wenn eine der mehreren, im Beispiel der Fig. 48 als R1, R2 oder R3 bezeichneten beweglichen Vorrichtungen 21 einen Knotenpunkt aufsucht, der nicht von einer anderen beweglichen Vorrichtung 21 besetzt ist, werden die Regeln für die bewegliche Vorrichtung 21 zurückgesetzt, so daß es für R3 keine Regeln gibt, die ihre Bewegung zum Knotenpunkt 725 regeln, R3 wird sich dann im vierten Zeitabschnitt zum Knotenpunkt 723 bewegen. R3 wird am Knotenpunkt 723 ankommen, nachdem R1 und R2 abgefahren sind, so daß die Regel für R3 lautet, nach Abfahrt von R2 anzukommen. Weil die Regeln für R3 gesetzt wurden, sind sie außerdem auf den Knotenpunkt 722 anwendbar. Mittels der Aufstellung von Regeln aufgrund aller Bewegungen einer beweglichen Vorrichtung 21 wird daher keine bewegliche Vorrichtung 21 einen Knotenpunkt zu der gleichen Zeit besetzen, die für eine zweite bewegliche Vorrichtung 21 zum Besetzen dieses Knotenpunktes bestimmt ist.

Fig. 50 liefert ein Flußdiagramm für die Ausführung der Koordination eines Mehr-Vorrichtungs-Systems in einer Fertigungseinrichtung, wie in Verbindung mit den Fig. 43 bis 49 erörtert. Insbesondere liegt in Fig. 50A die Startposition an einem Punkt 750. Beim Verlassen des Punkts 750 erscheint ein erster Entscheidungsblock, ein Block 751, in dem geprüft wird, ob es weitere Knotenpunkte gibt, die durch einen Bahnabschnitt mit dem gegenwärtigen Knotenpunkt verbunden sind. Falls die Antwort "Nein" ist, wird ein Anknüpfpunkt H benutzt, der zu Fig. 50C hinüberführt. Falls die Antwort "Ja" ist, wird die Organisationssteuerung 505 in einem Block 755 den nächsten mit dem Bahnabschnitt verbundenen Knotenpunkt wiederbeschaffen und in einem Block 753 die Ankunfts- und Abfahrtszeit am nächsten Knotenpunkt berechnen. Das Programm geht dann zu einem Block 757 über, an dem die Ankunftszeit am nächsten Knotenpunkt verglichen wird, um zu bestimmen, ob sie länger als die kürzeste Fahrzeit zum endgültigen Bestimmungsort ist. Falls die Antwort "Nein" ist, wird ein Anknüpfpunkt C zu Fig. 50B gewählt; falls die Antwort "Ja" ist, wird ein Anknüpfpunkt H zu Fig. 50G gewählt.

Bei der Verfolgung des "Nein"-Zweigs und einem Übergehen zu Fig. 50B wird in einem Entscheidungsblock 758 die Frage gestellt: "Wird die gegenwärtige bewegliche Vorrichtung 21 am nächsten Knotenpunkt ankommen, nachdem eine andere bewegliche Vorrichtung 21 von diesem Knotenpunkt abgefahren ist?". Falls die Antwort "Nein" ist, wird dann ein Anknüpfpunkt D zu Fig. 50C am Start eines Blocks 763 gewählt. Falls die Antwort "Ja" ist, ist der nächste Schritt in der Abfolge: "Soll die gegenwärtige bewegliche Vorrichtung 21 gemäß der vorbestimmten Regeln am nächsten Knotenpunkt ankommen, ehe die andere bewegliche Vorrichtung 21 an diesem Knotenpunkt ankommt (Block 759)?". Falls die Antwort "Ja" ist, wird der Anknüpfpunkt H gewählt, der sich in Fig. 50G befindet. Wenn jedoch der "Nein"-Zweig beschritten wird, werden in einem Block 761 die Aufsuch-Regeln für die nächsten Knotenpunkte aufgestellt. Die Regeln setzen fest, daß die gegenwärtige bewegliche Vorrichtung 21 am nächsten Knotenpunkt ankommen muß, nachdem die andere bewegliche Vorrichtung 21 von diesem Knotenpunkt abgefahren ist, wonach zu einem Anknüpfpunkt F übergegangen wird, der sich in Fig. 50E befindet. Indessen bildet Fig. 50C den vom Entscheidungsblock 758 aus beschrittenen Zweig und wird nunmehr erörtert.

In einem ersten Entscheidungsblock (Block 763) lautet die Frage: "Wird die gegenwärtige bewegliche Vorrichtung am nächsten Knotenpunkt ankommen, ehe die andere bewegliche Vorrichtung von diesem Knotenpunkt abgefahren ist?". Falls die Antwort "Nein" ist, wird dann der Zweig über einen Anknüpfpunkt E beschritten, der zu Fig. 50D führt. Falls die Antwort "Ja" ist, geht die Organisationssteuerung 505 zu einem Block 765 über, an dem entschieden wird "Soll die gegenwärtige bewegliche Vorrichtung 21 gemäß der Regeln am nächsten Knotenpunkt ankommen, nachdem die andere bewegliche Vorrichtung 21 von diesem Knotenpunkt abgefahren ist?". Der "Ja"-Zweig vergrößert in einem Block 767 die gegenwärtige Ankunftszeit und geht dann zu einem Anknüpfpunkt B über, der vor dem Block 757 an Fig. 50A anknüpft. Falls das Ergebnis "Nein" lautet, wird in einem Entscheidungsblock 769 geprüft "befindet sich die andere bewegliche Vorrichtung gegenwärtig am nächsten Knotenpunkt?". Der "Ja"-Zweig ergibt einen Programmsprung, um die dem in Fig. 50G dargestellten Zweig H folgenden Blöcke auszuführen. Falls die Antwort "Nein" ist, stellt die Organisationssteuerung 505 in einem Block 781 die Aufsuch-Regeln für den nächsten Knotenpunkt auf.

Die Regeln setzen im Block 781 fest, daß die gegenwärtige bewegliche Vorrichtung am nächsten Knotenpunkt ankommen muß, ehe die andere bewegliche Vorrichtung von diesem Knotenpunkt abgefahren ist, wonach das Programm mit dem in Fig. 50E befindlichen Unterprogramm F fortfährt.

Das Unterprogramm E oder der Zweig E von einem Block 763 aus ist in Fig. 50D dargestellt. Nachdem festgesetzt wurde, daß die gegenwärtige beweglich Vorrichtung nicht an dem Knotenpunkt ankommen wird, ehe eine andere bewegliche Vorrichtung diesen Knotenpunkt verläßt, wird in einem Entscheidungsblock 783 entschieden, ob die gegenwärtige bewegliche Vorrichtung gemäß der Regeln am nächsten Knotenpunkt ankommen soll, ehe eine andere bewegliche Vorrichtung an diesem Knotenpunkt ankommt. Falls das Ergebnis "Nein" lautet, wird die Ankunftszeit der gegenwärtigen beweglichen Vorrichtung in einem Block 785 erhöht, und es geht mit einem Anknüpfpunkt B weiter, der sich in Fig. 50A direkt vor dem Entscheidungsblock 757 befindet. Falls die Antwort "Ja" ist, wird der Anknüpfpunkt H der Fig. 50G gewählt.

Nach Vollendung des Blocks 781 der Fig. 50C nimmt die Organisationssteuerung 505 den in Fig. 50E dargestellten Zweig F und weist einen ersten Entscheidungsblock bei 787 auf, welcher prüft, ob sämtliche beweglichen Vorrichtungen auf Konflikte am nächsten Knotenpunkt untersucht wurden. Falls die Antwort "Nein" ist, wird der in Fig. 50B dargestellte Zweig C beschritten, der die Aufstellung von Regeln zur Konfliktlösung fortsetzt. Falls die Antwort "Ja" ist, geht die Organisationssteuerung 505 zu einem Block 788 über, welcher bestimmt, ob irgendeine bewegliche Vorrichtung den nächsten Knotenpunkt aufsuchen wird. Falls die Antwort "Nein" ist, werden die Regeln für die gegenwärtige bewegliche Vorrichtung am nächsten Knotenpunkt zurückgesetzt. Falls die Antwort "Ja" ist, fährt das Programm mit dem in Fig. 50A dargestellten Zweig B fort.

Andererseits werden, wenn der "Nein"-Zweig beschritten wird, die Regeln in einem Block 789 für den nächsten Knotenpunkt zurückgesetzt und dann in einem Block 790 sämtliche Knotenpunkt-Aufsuchparameter gesichert, die für den nächsten Knotenpunkt erzeugt wurden, und anschließend wird in einem Block 971 der nächste Knotenpunkt zum gegenwärtigen Knotenpunkt.

Das Programm geht dann zu dem in Fig. 50F dargestellten Anknüpfpunkt G über, bei dem in einem Block 792 geprüft wird: "Ist der nächste Knotenpunkt der endgültige Bestimmungsort der beweglichen Vorrichtung?". Falls die Antwort "Nein" ist, geht das Programm zum Beginn von Block 751 über, der in Fig. 50A dargestellt ist. Falls die Antwort "Ja" ist, wird in einem Block 793 gefragt: "Ist die gegenwärtige Ankunftszeit die kürzeste Ankunftszeit?". Falls die Antwort "Nein" ist, geht das Programm zum in Fig. 50G dargestellten Block H über. Falls die Antwort "Ja" ist, werden in einem Block 794 sämtliche Parameter für den aufgesuchten Knotenpunkt und für sämtliche Knotenpunkte auf der gegenwärtigen Bahn gesichert. Die Organisationssteuerung 505 geht zum in Fig. 50G dargestellten Anknüpfpunkt H über.

Fig. 50G prüft in einem Block 795: "Sind irgendwelche weiteren Bahnzuweisungen für den gegenwärtigen Knotenpunkt bestimmt?". Falls die Antwort "Nein" ist, geht das Programm zum Anknüpfpunkt A in Fig. 50A über, der im wesentlichen die Startposition ist. Falls die Antwort "Ja" ist, geht es zu einem Block 797 über, an dem es den Schritt ausführt, eine Sicherheitskopie für einen Knotenpunkt auf der gegenwärtigen Bahn anzulegen. In einem Entscheidungsblock 799 wird geprüft: "Ist dieser Knotenpunkt der erste Knotenpunkt auf der Bahn?". Falls die Antwort "Ja" ist, geht es zu einem Schritt 800 über. Falls die Antwort "Nein" ist, geht es zum Anknüpfpunkt A über, der vor dem Block 751 in Fig. 50A liegt.

Wenn der "Ja"-Zweig von Block 799 zu Block 800 beschritten wird, fragt dieser: "Wurde eine mögliche Bahn festgestellt, der die bewegliche Vorrichtung 21 folgen kann?", wobei der "Ja"-Zweig die Einheit dazu bringt, zu einem Block 801 überzugehen. Falls die Antwort "Nein" ist, bringt der "Nein"- Zweig das System dazu, am Block 803 auszusteigen. Sämtliche Knotenpunkt-Aufsuchparameter, welche gesichert wurden, werden in einem Block 801 in eine Tabelle der endgültigen Bahn kopiert, und dann werden die Befehle erzeugt, mit denen die bewegliche Vorrichtung 21 entlang der endgültigen Bahn zu bewegen ist.

STEUERUNG DER BEWEGUNGEN VON ROBOTERN IN EINER UMGEBUNG MIT MEHREREN KNOTENPUNKTEN.

Wie in Verbindung mit Fig. 35 erörtert, ist die Organisationssteuerung 505 dafür verantwortlich, Bewegungsbefehle für die einzelnen Vorrichtungen 509 bis 513 zu erzeugen, von denen allerdings zahlreiche in der Fertigungseinrichtung 700 verwendet werden. Der Kommunikationsprozessor 517 ist dafür verantwortlich, Bewegungsbefehle über das drahtlose Kommunikationssystem 19 der Fig. 1 an die beweglichen Vorrichtungen 21 zu senden. Jede CPU mit Speicher 52, die in je einer steuerbaren beweglichen Vorrichtung 21 enthalten ist, ist für die Ausführung der Bewegungsbefehle verantwortlich.

Wie in Verbindung mit Fig. 43 erörtert, die ein schematischer Plan eines typischen Fabrikbodens ist, sind die Knotenpunkte 701 bis 708 mögliche Zielpunkte für die bewegliche Vorrichtung 21 entlang der Bahnen 709 bis 716. Die Pfeile an den Linien geben die möglichen Fahrtrichtungen für die bewegliche Vorrichtung 21 an. Alle anderen Bereiche der Fertigungseinrichtung 700 sind als verboten bezeichnet. Um eine bewegliche Vorrichtung 21 durch die Fertigungseinrichtung 700 zu bewegen, muß die Organisationssteuerung 505 zuerst einer beweglichen Vorrichtung 21 Knotenpunkte von einer vorher erzeugten Bahn zuweisen und dann der beweglichen Vorrichtung 21 befehlen, sich zu den Knotenpunkten hin zu bewegen. Die bewegliche Vorrichtung 21 kann jederzeit auf einen Knotenpunkt bewegt werden und speichert mehrere aufeinanderfolgende Bewegungsbefehle, die in ihrem Speicher, der Teil der CPU mit Speicher 52 ist, gepuffert sind. Wenn sich eine bewegliche Vorrichtung 21 von Knotenpunkt zu Knotenpunkt bewegt, benachrichtigt die bewegliche Vorrichtung 21 die Organisationssteuerung 505 von jedem Knotenpunkt, an dem sie vorbeigekommen ist. Wenn die Organisationssteuerung 505 benachrichtigt wurde, daß ein Knotenpunkt passiert wurde, wird die Zuweisung des Knotenpunkts aufgehoben und der Knotenpunkt wird für eine andere bewegliche Vorrichtung 21 zugänglich.

Die Fig. 51 veranschaulichen die Durchführung des oben erörterten Verfahrens, und Fig. 51A ist ein Flußdiagramm der Übertragung von Anweisungen und Befehlen zwischen der Organisationssteuerung 505 und einer beweglichen Vorrichtung 21. Das Verfahren beginnt in einem Block 805. Ein Entscheidungsblock 806 prüft, ob die bewegliche Vorrichtung 21 am endgültigen Zielknotenpunkt angekommen ist. Falls ja, wird der Ausgang an einem Block 809 gewählt. Falls nicht, geht die Organisationssteuerung 505 zu einem Block 807 über, an dem eine Entscheidung getroffen wird, die bestimmt, ob der beweglichen Vorrichtung 21 bereits die maximale Anzahl von Knotenpunkten zugewiesen ist.

Falls die maximale Anzahl von Knotenpunkten zugewiesen worden ist, wird sodann ein Zweig A zu Fig. 51B beschritten, der in einem Block 815 darauf wartet, daß die bewegliche Vorrichtung 21 die nächste Bewegung vollzogen hat. Das System hebt in einem Block 817 die Zuweisungen aller Knotenpunkte auf, an denen die bewegliche Vorrichtung 21 vorbeigekommen ist, und kehrt über einen Anknüpfpunkt 819 zur Fig. 51A zurück.

In einem Block 808 der Fig. 51A wird die Frage gestellt: "Kann der nächste Knotenpunkt der beweglichen Vorrichtung 21 zugewiesen werden?". Falls die Antwort "Nein" ist, wird dann ein Anknüpfpunkt B zu Fig. 51C gewählt, wo das System in einem Block 818 darauf wartet, daß die Zuweisung des Knotenpunkts mittels einer anderen beweglichen Vorrichtung 21 aufgehoben wird. Wenn der Schritt im Block 818 ausgeführt ist, kehrt das System über einen Anknüpfpunkt 821 zu Fig. 51A zurück.

In einem Block 811 wird wie in Fig. 43 dargestellt der Bahnverlauf der beweglichen Vorrichtung 21 für den nächsten Abschnitt bestimmt. Danach wird in einem Block 813 der Bewegungsbefehl an die zu betätigende bewegliche Vorrichtung 21 übertragen. Dieses Verfahren wird fortgesetzt, bis die bewegliche Vorrichtung 21 am endgültigen Zielknotenpunkt angekommen ist, was im Block 806 festgestellt wird.

DAS AUSFÜHRENDE PROGRAMM EINES BEWEGLICHEN ROBOTERS

Es gibt zwei Hauptprogramme, die von der innerhalb je einer beweglichen Vorrichtung 21 enthaltenen CPU mit Speicher 52 ausgeführt werden. Dies sind die ausführenden und die steuernden Befehlsstrukturen. Die ausführende Befehlsstruktur läuft ständig, um eine Systemdienst-Unterstützung für die Entschlüsselung von Nachrichten, Sonderfunktionen und Befehlen und für die Formatierung von zwischen je einer beweglichen Vorrichtung 21 und dem Kommunikationsprozessor 517 übertragenen Botschaften zur Verfügung zu stellen. Das Steuerprogramm läuft mit Unterbrechungen und ist für die zuvor erörterten Ausfallannahme-, Navigations- und Steuersysteme verantwortlich. Bei der Bewegung der beweglichen Vorrichtung 21 durch eine Fertigungseinrichtung 700 wird von allen diesen Systemen Gebrauch gemacht. Ein Befehl von der Host-CPU mit Speicher 37 wird über das Kommunikationssystem 19 an die bewegliche Vorrichtung 21 übertragen. Das ausführende Programm empfängt und entschlüsselt diese Befehle. Im Falle eines Bewegungsbefehls wird dieser formatiert und zur Ausführung in die Ausführungswarteschlange für das Steuerprogramm gegeben. Das ausführende Programm prüft dann nach, ob eine Statusänderung der beweglichen Vorrichtung 21 aufgrund eines ausgeführten Befehls oder einer Statusänderung der beweglichen Vorrichtung 21 eingetreten ist. Falls notwendig, überträgt das ausführende Programm unter Aufschlüsselung der Statusänderungen eine Botschaft an die Navigations-CPU mit Speicher 37a, ehe es zum Empfang eines anderen Befehls von der Host- CPU mit Speicher 37 übergeht. Diese Schleife wird ununterbrochen ausgeführt.

Wenn eine Zeitgeber-Unterbrechung auftritt, steuert das Steuerprogramm die Lenk- und Antriebs-Servos für jede Bewegung, Es berechnet dann die gegenwärtige Position der beweglichen Vorrichtung 21, wobei sie die Daten von der Steuer- und Navigationsschaltung 15 verwendet, was zuvor erörtert wurde, und setzt die Ausfallannahme- und Navigations-Aufforderungen in die Tat um.

Je nach ihrer gegenwärtigen Position und ihrem Status kann der gegenwärtig ausführende Befehl vollzogen sein. Falls dies so ist, wird der nächste Befehl in der Warteschlange zur Ausführung ausgewählt. Das ausführende Programm nimmt von diesem Umstand Kenntnis und stellt die Statusänderungs-Botschaft auf, die an die Host-CPU mit Speicher 37 zu übertragen ist. Das Steuerprogramm der beweglichen Vorrichtung 21 wird dann untätig, während es auf die nächste Zeitgeber-Unterbrechung wartet.

Es wird auf Fig. 52 Bezug genommen, die das ausführende Programm beschreibt, welches in einem Block 850 fortwährend über das Kommunikationssystem 19 empfangene Botschaften überwacht. Wenn keine Botschaft empfangen wird, wird ein Zweig 827 beschritten, und wenn eine Botschaft empfangen wird, geht die CPU mit Speicher 52 zu einem Block 826 über, bei dem die Botschaft nötigenfalls in die Warteschlange der beweglichen Vorrichtung 21 gegeben wird. In einem Block wird dann eine Unterstützung von Sonderfunktionen zur Verfügung gestellt. Ein Entscheidungsblock 831 prüft, ob sich ein Befehlszeiger geändert hat oder nicht. Falls "Nein", geht das Programm zum Block 850 über. Falls sich der Befehlszeiger geändert hat, setzt die bewegliche Vorrichtung 21 die Host-CPU mit Speicher 37 in einem Block 833 von einer Befehlsausführung und von der Position der beweglichen Vorrichtung 21 in Kenntnis. Wenn der im Block 833 angegebene Schritt ausgeführt ist, kehrt das Programm zum Eingang des Blocks 850 zurück.

DAS STEUERPROGRAMM EINES BEWEGLICHEN ROBOTERS

Der Ablauf des vorstehend erwähnten Steuerprogramms ist in Fig. 53 ausgeführt, bei der in einem Block 835 alle Lenk- und Antriebs-Servos gesteuert werden. Die Position der beweglichen Vorrichtung 21 wird in einem Block 837 berechnet, was bereits erörtert wurde, und die Ausfallannahme-Befehle werden in einem Block 839 erzeugt. Ein Entscheidungsblock 841 bestimmt, ob der Befehlszeiger oder die Bahn auf den neuesten Stand gebracht werden müssen. Falls ja, werden sie in einem Block 843 aktualisiert, und falls nicht, fährt das Steuerprogramm in einem Block 845 mit weiterer Datenverarbeitung fort, um eine Statustabelle aufzustellen, die zum ausführenden Programm der beweglichen Vorrichtung 21 gegeben und dorthin übertragen wird. Dies wird übrigens auch dann ausgeführt, wenn eine Aktualisierung der Befehlsposition über den Zweig 847 nicht notwendig ist. Das Steuerprogramm geht dann über einen Zweig 849 zum Eingang des Blocks 835 zurück.

NAVIGATIONSSYSTEM FÜR MEHRERE ROBOTER

Bei dem komplexen System mehrerer beweglicher Vorrichtungen 21, die sich wie in Fig. 43 dargestellt durch die Fertigungseinrichtung bewegen, sagt die Navigations-CPU mit Speicher 37a ständig diejenige bewegliche Vorrichtung 21 voraus, die eine Positionsfestlegung benötigt. Unter Bezugnahme auf Fig. 54A wird in einem Block 851 die bewegliche Vorrichtung mit dem größten Bedarf für eine Positionsfestlegung festgestellt. Über den Kommunikationsprozessor 517 wird in einem Block 853 eine Botschaft an alle beweglichen Vorrichtungen gesendet, die geeigneten Navigations-Leitstrahlquellen einzuschalten, alle anderen Leitstrahlquellen auszuschalten und jeglichen Datenaustausch einzustellen. Der nächste Schritt besteht darin, in einem Block 855 alle Botschaften vom Kommunikationsprozessor einzulesen. In einem Entscheidungsblock 857 wird festgestellt, ob die Botschaft eine Navigationsbestätigung ist. Falls sie es nicht ist, wird die Botschaft in einem Block 859 verarbeitet. Falls doch, erwirbt die Steuer- und optische Navigationsschaltung 15 in einem Block 860 ein Videobild, wonach in einem Block 861 eine Freigabe an die beweglichen Vorrichtungen 21 gesandt wird, damit sie ihren Infrarot-Datenaustausch fortsetzen.

Das Bild von der aus den mehreren Kameras 1 ausgewählten Kamera wird in einem Block 863 untersucht. Nach der Untersuchung des von der ausgewählten Kamera 1S eingegangenen Bildes geht die Navigations-CPU mit Speicher 37a über einen Anknüpfpunkt P2 zu einem Block 864 der Fig. 54B über, in dem das Abbild der beweglichen Vorrichtung 21 untersucht und geprüft wird, ob es erkannt ist. Dieses Verfahren wurde zuvor im Zusammenhang mit der Steuer- und Navigationsschaltung 15 erörtert. Falls die Antwort "Nein" ist, wird in einem Block 865 geprüft, ob sämtliche Kameras, die zu den mehreren Kameras 1 gehören, abgesucht wurden. Falls die Antwort hierzu "Nein" ist, wird in einem Block 867 eine Vorhersage der nächsten, wahrscheinlichsten Kamera getroffen, und das Programm geht zu einem Anknüpfpunkt P3 über, der sich in Fig. 54A direkt vor der Ausführung des im Block 853 enthaltenen Schrittes befindet,

Falls sämtliche Kameras abgesucht wurden, wird der direkt vor dem Block 851 befindliche Anknüpfpunkt P1 gewählt. Falls das Abbild der Vorrichtung erkannt ist, werden ihre Position und ihre Orientierung in einem Block 854 ermittelt, und in einem Block 866 wird diese Position an die bewegliche Vorrichtung 21 gesandt, wonach die Einheit zum Anknüpfpunkt P1 zurückkehrt, um das Verfahren neu zu beginnen.

DER KOMMUNIKATIONSPROZESSOR

Der Kommunikationsprozessor 517 und insbesondere die Schnittstelle ist in Fig. 55A ausgeführt, die in Verbindung mit den Fig. 1 und 35 anzuwenden ist. An einem Block 510 startet der Kommunikationsprozessor 517 das Verfahren und wartet auf eine Navigations-Aufforderung von der Navigationssteuerung 507. Der Kommunikationsprozessor 517 nimmt die Navigations- Aufforderung auf (Block 868) und sendet diese Botschaft in die Ausgangswarteschlange, um sie über das drahtlose Kommunikationssystem 19 zu übertragen (Block 869). Der Kommunikationsprozessor 517 überträgt in einem Block 870 die abgehende Botschaft über ein drahtloses Kommunikationssystem, etwa ein Infrarot-System, bis er die Botschaft der Navigations("NAV")- Aufforderung erkennt. Der Kommunikationsprozessor 517 sendet in einem Block 871 die "NAV"-Aufforderung an alle Bewegliche- Vorrichtungs-Treiber 509 bis 513 und eine Navigationsbestätigung an die Navigationssteuerung 507 und eröffnet den Datenaustausch mit allen Bewegliche-Vorrichtungs-Treibern. Der Kommunikationsprozessor fährt im Block 871 damit fort, alle ankommenden Botschaften in eine Warteschlange einzureihen, sendet aber keinerlei Botschaften über das drahtlose Kommunikations-Verbindungsglied.

In einem Block 872 wartet der Kommunikationsprozessor 517 auf eine Synchronisationsbotschaft von der Navigationssteuerung 507. Der Kommunikationsprozessor 517 erkennt dann in einem Block 873 der Fig. 55B die Synchronisationsbotschaft und versetzt das Kommunikationssystem 19 in die Lage, alle Botschaften in seine Ausgangswarteschlange zu übertragen. In einem Block 874 wird die Botschaft der Positionsfestlegung von der Navigationssteuerung 507 empfangen und in die Kommunikations-Ausgangswarteschlange gegeben, die mit dem Kommunikationssystem 19 verbindet. Die Botschaften der Positionsfestlegung werden in einem Block 875 an die Bewegliche-Vorrichtungs-Treiber 509 bis 513 übertragen, und anschließend kehrt das Programm an die Startposition im Block 510 zurück.

VERFAHREN DES KOMMUNIKATIONSPROZESSORS ZUR AUSGABE VON BOTSCHAFTEN

Das Verfahren der Nachrichtenausgabe ist in Fig. 56 dargestellt, bei der in einem Block 876 die Ausgabewarteschlange davon abgehalten wird, sich ihrer Botschaften zu entledigen, d. h. die Ausgabeschnittstelle ist angehalten. Die Botschaft wird in einem Block 877 zu der beweglichen Vorrichtung (Einrichtung) gesendet, und in einem Block 878 wartet der Kommunikationsprozessor 517 auf eine Navigationsaufforderung. Falls keine empfangen wird, kehrt er zum Anfang des Blocks 876 zurück. Falls eine empfangen wird, hält er das Verfahren der Nachrichtenausgabe in einem Block 879 an und geht dann zum Block "Ausgabeschnittstelle angehalten" im Block 876 über.

VERFAHREN DES KOMMUNIKATIONSPROZESSORS ZUR EINGABE VON BOTSCHAFTEN

In einem Block 811 der Fig. 57 überwacht der Kommunikationsprozessor 517 seine Eingangswarteschlange auf den Empfang von Botschaften. Er prüft in einem Block 882, ob eine Botschaft von der Navigationssteuerung 507 stammt. Falls "Nein", legt er die Botschaft in einem Block 883 in der richtigen Ausgangswarteschlange ab und kehrt dann zum Block 881 zurück. Falls ja, prüft er in einem Block 884 nach, ob die Botschaft eine Navigations-Synchronisations-Botschaft ist. Falls sie dies nicht ist, geht der Kommunikationsprozessor 517 zum Block 833 über. Falls sie es ist, beginnt er das Ausgabeverfahren der beweglichen Vorrichtung 21 in einem Block 885 von neuem und geht zum Block 883 über.

ZUSAMMENSTOSSVERMEIDUNG

Wenn sich die bewegliche Vorrichtung entlang einer Bahn in einer Fertigungseinrichtung 700 bewegt, kann ein gewisser Umfang an dem Koppelsystem gemäßer Abweichung von einer befohlenen Bahn erwartet und in Kauf genommen werden. Wenn sich die mehreren Bewegliche-Vorrichtungs-Treiber 509 bis 513 in einem System bewegen, wird ein Fenster um die gegenwärtige Bahn jeder beweglichen Vorrichtung 21 herum projiziert. Fig. 58 veranschaulicht den ersten Schritt beim Aufbau des Fensters um die Bahn einer beweglichen Vorrichtung 21 herum. Das Fenster erstreckt sich zwischen Punkten 891 und 887 entlang der Bahn der beweglichen Vorrichtung 21 und dient dazu, eine gerade Linie 893 zu umgrenzen, der die Bahn der beweglichen Vorrichtung 21 folgen soll. Die zulässige Abweichung der beweglichen Vorrichtung 21 von der geraden Linie 893 ist durch einen vorgeschriebenen, durch eine Abstandslinie 894 angezeigten Abstand bestimmt.

Fig. 59 veranschaulicht den zweiten Schritt beim Aufbau des Fensters um die Bahn der beweglichen Vorrichtung 21 herum. Der Abstand von der geraden Linie 893 bestimmt die Größe des Fensters, steuert aber nicht denjenigen Abstand der beweglichen Vorrichtung 21, um den sie sich von den Endpunkten der Linie 893 aus bewegen darf. Der Abstand von jedem Endpunkt aus wird dazu verwendet, das Fenster vollständig zu schließen. Ein Radius 901 eines um jeweils einen der Endpunkte 891 und 887 geschlagenen Kreises 1200 ist der Abstand des Bahnabschnitts 893 plus einer Konstanten 904, um Abweichungen in der Bahn der beweglichen Vorrichtung 21 zu gestatten.

In Fig. 60 ist ein schraffierter Bereich 905 das Fenster der beweglichen Vorrichtung 21, das mittels der Abstandslinien 894 und der beiden um die Endpunkte 887 und 891 geschlagenen Kreise errichtet ist. Falls die Position der beweglichen Vorrichtung 21 nicht innerhalb des Fensters liegt, wird die bewegliche Vorrichtung 21 angehalten.

Fig. 61 zeigt den Ablauf eines Steuerprogramms zur Ausführung dieser Funktion. Das System startet in einem Block 907 und geht zu einem Block 909 über, wo es auf die aktuellste Position der beweglichen Vorrichtung 21 wartet. In einem Block 911 wird der Abstand zwischen der beweglichen Vorrichtung 21 und der Linie zwischen den Endpunkten bestimmt, und dann erfolgt in einem Block 981 eine Entscheidung aufgrund der optischen Position der beweglichen Vorrichtung 21 und danach, ob diese Position innerhalb des Teilfensters der Fig. 58 liegt.

Falls sich die bewegliche Vorrichtung 21 nicht innerhalb des Teilfensters der Fig. 58 befindet, wird die bewegliche Vorrichtung in einem Block 917 angehalten, und das Steuerprogramm kehrt zu den Startpositionen zurück.

Falls sich die bewegliche Vorrichtung 21 innerhalb des Teilfensters befindet, wird in einem Block 913 der Abstand zwischen der beweglichen Vorrichtung 21 und jedem Endpunkt berechnet. In einem Block 915 wird bestimmt, ob sich die bewegliche Vorrichtung 21 innerhalb des berechneten Abstands befindet. Wenn dies der Fall ist, wird eine Linie 918 zurück zur Startposition gewählt.

Der Abstand der beweglichen Vorrichtung 21 von der Linie 893 der Fig. 58 wird mittels Gleichung 4 bestimmt, bei der Rx gleich der x-Koordinate der beweglichen Vorrichtung 21, Ry gleich der y-Koordinate der beweglichen Vorrichtung 21, Px gleich der x-Koordinate des Endpunkts und Py gleich der y-Koordinate des Endpunkts sind. Vx ist gleich dem Abstand zwischen den Endpunkten in Richtung der x-Achse, und Vy ist gleich dem Abstand zwischen den Endpunkten in Richtung der y- Achse, Gleichung 5 wird zur Berechnung des Radius verwendet, der um jeden der Endpunkte erzeugt wird. Der Radius ist gleich der Quadratwurzel von (Vx² + Vy²) + der Konstanten 904. Beide Gleichungen 4 und 5 sind in der Auflistung von Gleichungen angegeben.


Anspruch[de]

1. Steuersystem für ein bewegliches Gerät (21), das im Betrieb einem angewiesenen Pfad folgt, wobei das Steuersystem an dem beweglichen Gerät enthält:

eine erste Navigationseinrichtung (329), die auf die Bewegung des beweglichen Gerätes anspricht, um das Gerät entlang dem angewiesenen Pfad zu führen und Daten zu erzeugen, welche die berechnete Position des Gerätes darstellen, und

Mittel (328, 331) zum periodischen Korrigieren der berechneten Positionsdaten durch Bezugnahme auf die tatsächliche Position des Gerätes;

dadurch gekennzeichnet, daß

das System eine Fernsicht-Einrichtung (1) zur Beobachtung der Position des beweglichen Gerätes und Ableitung von diese Position darstellenden Daten umfaßt,

ein Sender (19) zum Senden der Positionsdaten an das bewegliche Gerät vorgesehen ist,

Mittel (330) an dem beweglichen Gerät die gesendeten Positionsdaten empfangen;

und daß die Mittel (328, 331) zum periodischen Korrigieren der berechneten Positionsdaten ansprechen auf die gesendeten Positionsdaten, die durch die Empfangsmittel empfangen werden, wobei die gesendeten Positionsdaten eine zugeordnete Zeitmarke enthalten und die erste Navigationseinrichtung berechnete Positionsdaten erzeugt, und wobei die Korrekturmittel bei der Korrektur der berechneten Positionsdaten einen Zeitversatz zwischen den Zeiten berücksichtigen, die zu den gesendeten Positionsdaten bzw. zu den berechneten Positionsdaten gehören.

2. Steuersystem nach Anspruch 1, dadurch gekennzeichnet, daß die erste Navigationseinrichtung (329) mehrere berechnete Positionen durch Extrapolieren erzeugt, wobei jede Position eine zugehörige Zeitmarke aufweist, und die Korrekturmittel mit Einrichtungen versehen sind, um die gesendeten Positionsdaten mit den berechneten Positionen zu vergleichen und den Zeitversatz zwischen der nächstkommenden berechneten Position und der ges endeten Position zu bestimmen und die berechnete Position entsprechend zu korrigieren.

3. Steuersystem nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß die Sichtmittel enthalten:

eine zweite Navigationseinrichtung (37) zur Gewinnung der Koordinaten des beweglichen Gerätes unter Bezugnahme auf den Bodenbereich, auf welchem es fährt, und zwar diese Koordinaten mit der Zeitmarke für den Zeitpunkt, zu welchem das Gerät sich in dieser Position befand, für die Positionsdaten, die zu dem Gerät gesendet wurden.

4. Steuersystem nach Anspruch 3, dadurch gekennzeichnet, daß die Sichtmittel umfassen:

Mittel (1) zur Gewinnung eines Bildes von dem beweglichen Gerät,

Mittel (15), um aus diesem Bild die Koordinaten von Erscheinungsmerkmalen des beweglichen Gerätes unter Bezugnahme auf den Bodenbereich abzuleiten, und

Mittel zur Erzeugung der Koordinaten des beweglichen Gerätes unter Bezugnahme auf den Bodenbereich ausgehend von den Koordinaten der Erscheinungsmerkmale.

5. Steuersystem nach Anspruch 4, dadurch gekennzeichnet, daß die Mittel zur Gewinnung eines Bildes des beweglichen Gerätes umfassen:

Mittel (3, 5, 7) zum Bereitstellen eines vorbestimmten Musters von erleuchteten Punkten, die dem beweglichen Gerät zugeordnet sind, wobei diese erleuchteten Punkte voneinander durch vorbestimmte Abstände getrennt sind, und Abbildungsmittel (1) zur Gewinnung eines Bildes der erleuchteten Punkte.

6. Steuersystem nach Anspruch 5, dadurch gekennzeichnet, daß die Abbildungsmittel umfassen:

eine Raster-Abtast-Bildaufnahmeeinrichtung (1) zum Umsetzen von Licht, das von den erleuchteten Punkten ausgeht, in elektrische Signale, welche die Lichtintensität darstellen, in Beziehung zu der Raster-Abtast-Position der Raster-Abtast- Bildaufnahmeeinrichtung, und

Identifizierungsmittel, die auf die elektrischen Signale aus der Bildaufnahmeeinrichtung ansprechen, um die Raster- Abtast-Position zu liefern, die durch Bildraster, Zeilen- und Spalten-Koordinaten definiert ist, wobei die Raster-Abtast- Bildaufnahmeeinrichtung einen räumlichen Richtpunkt aufweist.

7. Steuersystem nach Anspruch 6, dadurch gekennzeichnet, daß die Identifizierungsmittel umfassen:

Mittel zum Umsetzen des elektrischen Signals ausgehend von einem Analogsignal im Zeitbereich in ein Digitalsignal im räumlichen Bereich.

8. Steuersystem nach Anspruch 7, dadurch gekennzeichnet, daß die Umsetzmittel umfassen:

Mittel zum Identifizieren von Lichtpunktgruppen ausgehend von dem elektrischen Signal und zum Liefern der Koordinaten der so identifizierten Lichtpunktgruppen und

Mittel zum Umsetzen der Lichtpunktgruppen in entsprechende Schwerpunkte, die identifizierbare Koordinaten aufweisen.

9. Steuersystem nach Anspruch 8, dadurch gekennzeichnet, daß die Umsetzmittel umfassen:

Mittel zum Digitalisieren des elektrischen Signals, um ein erstes Digitalsignal zu gewinnen,

Mittel zum Unterteilen des ersten Digitalsignals in ein Zeilen-Digitalsignal und ein Spalten-Digitalsignal, die den Raster-Koordinaten entsprechen,

Summiermittel zum Durchführen einer Vektor-Aufsummierung des Zeilen-Digitalsignals und des Spalten-Digitalsignals, um ein erstes und ein zweites integriertes Signal zu gewinnen, und

Komparatormittel zum Vergleichen des ersten und des zweiten integrierten Signals mit einem vorbestimmten Schwellwert, um dadurch ein erstes Ordinatensignal und ein zweites Ordinatensignal zu gewinnen.







IPC
A Täglicher Lebensbedarf
B Arbeitsverfahren; Transportieren
C Chemie; Hüttenwesen
D Textilien; Papier
E Bauwesen; Erdbohren; Bergbau
F Maschinenbau; Beleuchtung; Heizung; Waffen; Sprengen
G Physik
H Elektrotechnik

Anmelder
Datum

Patentrecherche

Patent Zeichnungen (PDF)

Copyright © 2008 Patent-De Alle Rechte vorbehalten. eMail: info@patent-de.com