DE19522932A1 - Korridorlaufroboter - Google Patents
KorridorlaufroboterInfo
- Publication number
- DE19522932A1 DE19522932A1 DE19522932A DE19522932A DE19522932A1 DE 19522932 A1 DE19522932 A1 DE 19522932A1 DE 19522932 A DE19522932 A DE 19522932A DE 19522932 A DE19522932 A DE 19522932A DE 19522932 A1 DE19522932 A1 DE 19522932A1
- Authority
- DE
- Germany
- Prior art keywords
- vehicle
- corridor
- robot
- distance
- center line
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 claims description 28
- 230000033001 locomotion Effects 0.000 claims description 13
- 230000006870 function Effects 0.000 description 7
- 238000005259 measurement Methods 0.000 description 2
- 239000010813 municipal solid waste Substances 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 238000010521 absorption reaction Methods 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000003651 drinking water Substances 0.000 description 1
- 235000020188 drinking water Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000000523 sample Substances 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0255—Control of position or course in two dimensions specially adapted to land vehicles using acoustic signals, e.g. ultra-sonic singals
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Acoustics & Sound (AREA)
- Aviation & Aerospace Engineering (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
- Manipulator (AREA)
Description
Diese Erfindung betrifft das Gebiet der Steuerung
der von einem Roboter verfolgten Bahn.
Roboter haben inzwischen einen Entwicklungsstand
erreicht, in dem sie eine ganze Reihe von Aufgaben, wie
z. B. Post zustellen, auf Sicherheitspatrouille gehen,
Besucher führen und Lecks aufspüren, ausführen können.
Alle diese Aufgaben erfordern ein grundlegendes Verfahren
zum Lenken eines Roboters um bestimmte Entfernungen
entlang einem Korridor sowie Möglichkeiten, Abzweigungen
und Biegungen zu erfassen. Bisher hat sich die Forschung
auf Verfahren zum Auffinden einer Bahn zu einem gegebenen
Ort konzentriert, so daß Hindernisse umgangen werden. Die
für diese Zwecke erforderlichen Informationen wurden
bisher mit Hilfe von Sonarsensoren gewonnen. Leider
reagiert ein Hindernisumgehungssystem sehr empfindlich
auf Unregelmäßigkeiten im Korridor, wie offene Türen und
Feuerlöscher.
Gemäß dieser Erfindung wird ein Roboter als Reak
tion auf Informationen bezüglich der Breite des Korridors
und Abständen zwischen dem Roboter und dem nächstgelegenen
Objekt unter verschiedenen Winkeln entlang der Mittel
linie eines Korridors oder einer Linie parallel zur
Mittellinie geführt. Die Abstandsinformationen können von
Sonarsensoren auf beiden Seiten des Roboters abgeleitet
werden. Eine Methode der kleinsten Quadrate wird zum
Anpassen von Geraden an die besagten nächstgelegenen
Objekte auf beiden Seiten des Roboters verwendet, um den
Abstand des Roboters von der Mittellinie des Korridors
sowie seine Winkelausrichtung bezüglich des Korridors zu
bestimmen. Dann ist es nur noch notwendig, die Lenkung zu
steuern, um den Roboter mit genauem Kurs entlang dem
Korridor auf die Mittellinie oder auf eine andere Linie
zu bringen.
Bei der Durchführung dieses Verfahrens werden
Abstände, die größer sind als ein gegebener Wert, von den
Berechnungen ausgenommen. So wird zum Beispiel der
größere Abstand, den man beim Durchtritt eines Sensor
strahls durch eine offene Tür erhält, ignoriert.
Während die Sonarstrahlen eine Breite von unge
fähr 22,5° aufweisen, wird die Winkelposition des Robot
ers aufgrund des eben beschriebenen Linienanpassungs
verfahrens mit einer Auflösung von 2° oder 3° bestimmt.
Die Position des Roboters bezüglich einer Linie
entlang einem Korridor wird allgemein aus seinem Abstand
zu jeder Wand bestimmt, der aus unter verschiedenen
Winkeln vorgenommen geeigneten Abstandsmessungen abge
leitet wird, ist jedoch ein Abstand größer als die Breite
des Korridors, so wird er beim Ableiten der Lenkungs
steuerung nicht verwendet. Somit wird sich der Roboter
auch dann entlang der Mitte eines Korridors weiterbe
wegen, wenn sich zum Beispiel auf einer Seite ein großer
Eingang oder Vorraum befindet.
Wird entlang einer Wand auf ein Hindernis wie zum
Beispiel einen Trinkwasserspender gestoßen, so bewirkt
das Linienanpassungsverfahren, daß die Wand näher zu
liegen scheint, so daß der Roboter von ihr wegbewegt
wird.
Fig. 1 stellt die wesentlichen Bestandteile eines
bei dieser Erfindung verwendbaren Roboters dar;
Fig. 2 zeigt eine willkürliche Anfangsposition
eines Roboters in einem Korridor;
Fig. 3 zeigt einen Roboter mit auf jeder Seite in
fünf Winkeln angeordneten Sensoren, wobei die verwend
baren Abstandsmessungen durch Kreuze angedeutet sind;
Fig. 4 gleicht Fig. 3 und zeigt die an die ver
wendbaren Abstände angepaßten Geraden;
Fig. 5 zeigt einen Roboter mit einem Kursfehler
α und einer Abweichung δ von der Mittellinie;
Fig. 6 zeigt den Lenkwinkel θ, der verwendet
wird, um einen Roboter, der eine Abweichung δ und einen
Kursfehler von α aufweist, in einer Entfernung λ′ zur
Mittellinie zu bewegen;
Fig. 7 ist ein Flußdiagramm, das das Anpassen
einer Linie an einen Satz nächstgelegener Objekte dar
stellt;
Fig. 8 ist ein Flußdiagramm, das die Berechnung
von Lenkwinkel und Geschwindigkeit darstellt; und
Fig. 9 ist ein Flußdiagramm zum Führen des
Roboters und zum Bestimmen, wann er eine zugewiesene
Entfernung zurückgelegt hat.
Fig. 1 ist eine schematische Darstellung der
wesentlichen Bestandteile eines Roboters 2, bei dem die
vorliegende Erfindung angewendet werden kann. Ein
Roboter 2 mit der Bezeichnung NOMAD 200 der Firma Nomadic
Technologies, Inc., aus Mountainview, Kalifornien, wurde
bei einem technischen Prototyp mit der vorliegenden
Erfindung verwendet. Der Roboter 2 besteht aus einer
Bodenplatte 4 und einem Turm 6, der derart angebracht
ist, daß er um eine Achse 7 derselben drehbar ist.
Mehrere Sonarsensoren 8, 10, 12, 14, 16 und 18 sind um
den Turm 6 verteilt, um, wie in Fig. 2 und 3 gezeigt
Sonarstrahlen in verschiedenen Winkeln abzustrahlen. Ein
Mikroprozessor 20 liefert Signale zum Speisen der
Sensoren nacheinander, leitet für jeden Sensor den
Abstand zum nächstgelegenen Objekt ab, führt den
Linienanpassungsvorgang durch und führt die Signalverar
beitungsfunktionen aus. Außerdem liefert der Mikro
prozessor 20 Steuersignale an Motoren 22, 24 und 26, die
jeweils über Drehgelenke 34, 36 und 38 mit der Basis 4
verbundene Räder 28, 30 und 32 antreiben. Die Winkel
richtung, in der die Räder 28, 30 und 32, von ihren
jeweiligen Motoren 22, 24 und 26 gesteuert, rollen,
ergibt sich aus dem Betrieb der vom Mikroprozessor
gesteuerten Rotoren 40, 42 bzw. 44. Ein x,y-Register 46
zeigt die x,y-Position des Roboters 2 an.
Ein Roboter 2, der wie in der vorliegenden
Erfindung beschrieben gesteuert wird, erhält neben der
Länge des zurückgelegten Wegs und der Korridorbreite
keine weiteren Informationen über seine Umgebung. Dem
Roboter 2 liegen keine Informationen über die Anzahl von
Türen (die geöffnet oder geschlossen sein können), über
an der Wand angebrachte Gegenstände wie z. B. Feuer
löscher, über im Korridor nahe den Wänden gelagerte
Gegenstände wie z. B. Abfalleimer, über Abzweigungen oder
über vorbeigehende oder auf dem Korridor stehende
Menschen vor.
Aus der Verwendung von Sonarsensoren ergibt sich
ein weiteres Problem. Obwohl sie einige gute Merkmale wie
z. B. einen niedrigen Preis und unter angemessenen
Bedingungen hohe Genauigkeit aufweisen, so ist ihr
Winkelauflösungsvermögen doch schwach. Übliche Sonar
sensoren weisen eine Auflösung von ungefähr 20 Grad auf.
Dies bedeutet, daß man, wenn der Sensor ein Hindernis in
einem bestimmten Abstand meldet, keine weiteren Informa
tionen über die Form oder die relative Ausrichtung
zwischen diesem Hindernis und dem Roboter 2 erhält. Das
Verfahren zur Fortbewegung entlang einem Korridor muß
sich aus diesem Grund auch mit diesen speziellen Sonar
eigenschaften beschäftigen.
Einige Roboter erfordern eine Lenkung wie (10,
5), was bedeutet: Vorwärtsgehen um 10 cm und Linksdrehen
um 5 Grad (es wird angenommen, daß positive Winkel immer
Linksdrehungen und negative Winkel immer Rechtsdrehungen
sind). Andere Roboter erfordern eine indirektere Lenkung
durch die Angabe von Motorgeschwindigkeiten wie (50, -6),
was bedeutet: Vorwärtsgehen mit einer Geschwindigkeit von
50 cm/s (Zentimeter pro Sekunde) und Rechtsdrehung mit
einer Geschwindigkeit von 6 Grad/s. Die Vorliegende
Erfindung kann mit beiden Lenkverfahren arbeiten.
Wie in Fig. 2 angedeutet ist, kennt der Roboter
2 zu Anfang nicht die Abstände von den Wänden 47 und 48
auf beiden Seiten, und er kennt auch nicht die Richtung,
auf die er Kurs nimmt. Für alle Lenkroutinen ist die
Kenntnis dieser beiden Parameter unabdingbar.
Beim ersten Schritt zum Gewinnen dieser Parameter
löst der Roboter 2 seine Sonarsensoren aus. Dies kann in
willkürlicher Reihenfolge und mit einer willkürlichen
Auslösegeschwindigkeit bei einer Verzögerung von z. B.
8 ms (Millisekunden) zwischen aufeinanderfolgenden
Sonarauslösungen erfolgen. Für die folgenden Schritte ist
es wichtig, daß die Winkel der Sonarsensoren bezüglich
der Vorwärtsrichtung des Roboters bekannt sind. Nachdem
für jeden Sensor der Abstand zum nächsten Objekt
abgeleitet worden ist, verwendet der Mikroprozessor 20
die Abstandsinformationen und den Winkel jedes Sensors,
um die Position des nächstgelegenen Objekts unter jedem
Winkel in Weltkoordinaten zu berechnen. Da angenommen
wird, daß der Roboter 2 sich in einem Korridor fort
bewegt, sollten diese Koordinaten bestimmte Stellen der
Wand auf beiden Seiten des Roboters 2 darstellen. Auf
grund der Ungenauigkeit des Sonar (z. B. Geräusche und
Teilabsorption) stimmen diese Anzeigen nicht immer mit
den tatsächlichen Wänden überein. Obwohl eine andere
Auslösereihenfolge verwendet werden kann, wurden die
Sensoren in der Reihenfolge 10, 8, 18, 12, 16 und 14
ausgelöst, wobei der Sensor 8 sich an der Vorderseite
befindet und die anderen Sensoren in der Reihenfolge
entgegen dem Uhrzeigersinn numeriert sind. Fig. 1 zeigt
nur sechs Sensoren, doch führen fünf Sensoren auf jeder
Seite, die wie in Fig. 3 dargestellt einen Winkel von 22°
zwischen sich einschließen, zu einer besseren Leistung.
Beim zweiten Schritt werden die Abstände zu den
nächstgelegenen Objekten gefiltert, um die unbrauchbaren
Meßwerte zu eliminieren. So zeigen zum Beispiel die
Sensoren in Fig. 3 aufgrund der Sonarreflexionen, falls
der Einfallswinkel zu groß ist, bei 45°, 68°, 225° und
248° einen viel größeren Abstand als wirklich vorliegt
an. Ein weiterer Grund, nicht alle Abstände zu berück
sichtigen, liegt vor, wenn der Korridor nicht perfekt
ist. Das bedeutet, daß offene Türen, Feuerlöscher,
Abfalleimer und andere Unregelmäßigkeiten in dem Korridor
vorhanden sein können. Diese Stufe des Filterns elimi
niert die durch diese Dinge hervorgerufenen Auswirkungen
bis zu einem bestimmten Grad. Diese Kürzung der
Sonaranzeigen hängt von der Breite des Korridors ab. In
einem Fall wurden die für die Berechnung geeigneter
Abstände verwendeten Grenzen für die mit Sonar bestimmten
Abstände bei einem 69 Zoll breiten Korridor auf 75 Zoll
festgelegt.
Bei dem dritten Schritt wird eine Anpassung von
Geraden 47′ und 48′ durch die in Fig. 4 mit Kreuzen auf
beiden Seiten des Roboters 2 gezeigten verwendbaren
nächstgelegenen Objekte durchgeführt. Da angenommen wird,
daß die Wände 47 und 48 des Korridors gerade sind (obwohl
dies aufgrund der oben erwähnten Unregelmäßigkeiten nicht
immer zutrifft), liefert eine Gerade durch diese nächst
gelegenen Objekte eine gute Annäherung an die Winkelaus
richtung des Roboters bezüglich der Wände. Dieses Vor
gehen durch Linienanpassung löst auch das Problem des
schlechten Winkelauflösungsvermögens der Sonarsensoren.
Werden mindestens drei Sensoren zur Berechnung der
Ausrichtung des Roboters verwendet, so kann eine annehm
bare Genauigkeit von ungefähr 2-3 Grad erzielt werden.
Diese Linienanpassung wird mit folgenden drei
Formeln durchgeführt:
Winkel = atan (Winkel′) (3)
Die in den obigen Formeln verwendeten Symbole
haben folgende Bedeutung:
Σx Summe der x-Koordinaten des
Sonars
Σy Summe der y-Koordinaten des Sonars
Σxy Summe aus dem Produkt der x- und y-Koordinaten
Σx² Summe der Quadrate der x-Koordinaten
n Anzahl der verwendeten Koordinaten.
Σy Summe der y-Koordinaten des Sonars
Σxy Summe aus dem Produkt der x- und y-Koordinaten
Σx² Summe der Quadrate der x-Koordinaten
n Anzahl der verwendeten Koordinaten.
Diese Gleichungen liefern somit den Abstand des
Roboters von der linken und rechten Wand sowie die
Winkelausrichtung des Roboters bezüglich der Wände.
Selbstverständlich weisen die Winkel der beiden Linien
aufgrund der Unvollkommenheit des Sonars und der Unregel
mäßigkeiten des Korridors nicht unbedingt den gleichen
Wert auf. Tritt zum Beispiel auf der linken Seite eine
Unregelmäßigkeit auf, so wird dieser Winkel bestimmt
einen anderen Wert aufweisen als der Winkel auf der
rechten Seite.
Der vierte Schritt beim Fortbewegungsverfahren
auf dem Korridor besteht deshalb im derartigen Verknüpfen
des Abstands und der Winkelparameter der Linien 47′ und
48′, daß, wie in Fig. 5 gezeigt, einzig die gewünschten
Informationen über die Abweichung δ des Roboters von der
Mittellinie und seinen Kurs α übrigbleiben. Dies ge
schieht dadurch, daß überprüft wird, ob die Abstandspa
rameter jeder Linie für einen Korridor dieser Größe in
einem annehmbaren Bereich liegen. Annehmbare Parameter
sollten die Abstände d₁ und d₂ zu den Linien 47′ bzw. 48′
anzeigen, die nicht größer sind als die Breite des
Korridors. Wenn die Parameter der beiden Linien 47′ und
48′ diese Bedingung erfüllen, werden beide Abstandspara
meter zur Berechnung der Abweichung δ des Roboters von
der Mittellinie des Korridors herangezogen. Dies ge
schieht, indem lediglich die beiden Abstände d₁ und d₂
gemittelt werden. Erfüllt der Abstandsparameter einer der
Linien 47′ und 48′ diese Bedingung nicht, so wird diese
Liniengleichung ignoriert und als Ersatz für diese
Abstandsinformation die bekannte Breite des Korridors
verwendet. Obwohl dies kaum vorkommt, ist es auch mög
lich, daß keine der beiden Liniengleichungen annehmbare
Werte anzeigt. In diesem Fall wird angenommen, daß ein
breiterer Zwischenraum vorliegt, und der Roboter 2 erhält
den Befehl, sich mit geringer Geschwindigkeit geradeaus
zu bewegen.
Bei dem fünften Schritt müssen auch die Winkel der
Linien 47′ und 48′ verknüpft werden. Wenn die Abstands
parameter beider Linien "gute" Werte aufweisen, dann wird
die verknüpfte Winkelausrichtung des Roboters 2 als der
Mittelwert aus den Winkeln der Linien 47′ und 48′ berech
net. Erfüllt der Linienabstandsparameter einer Linie
nicht die Bedingung, dann wird nur der verbleibende
"gute" Wert herangezogen. Nach diesem Schritt sind die
Abweichung δ des Roboters von der Mittellinie oder einer
anderen Linie und seine Winkelausrichtung in dem Korridor
bekannt. Aufgrund der gewählten Winkel der Sonarsensoren
weist eine Abweichung zur rechten Seite von der Mittel
linie einen negativen und eine Abweichung zur linken
Seite einen positiven Wert auf. Ebenso weist ein vom
Roboter eingeschlagener Kurs zur rechten Seite des
Korridors einen positiven und ein Kurs zur linken Seite
einen negativen Winkel auf.
Zur Berechnung des in Fig. 6 dargestellten
Lenkwinkels θ muß bekannt sein, wie schnell, d. h. inner
halb welcher Entfernung entlang dem Korridor, eine
Abweichung und eine falsche Winkelausrichtung berichtigt
sein sollten. Die hier gewählte Entfernung λ ist für das
Lenkverhalten des Roboters von entscheidender Bedeutung.
Wird eine sehr kurze Entfernung gewählt, so werden
Abweichungen fast sofort berichtigt, was jedoch zu
schnellen Lenkwechseln führt, und wenn der Roboter 2
seine Bahnkorrektur auch nur ein wenig überschreitet,
wird er dazu neigen, sich auf einem Zickzack-Kurs entlang
der Mittellinie oder einer anderen Linie zu bewegen. Wenn
hingegen die gewählte Entfernung zu groß ist, wird es zu
lange dauern, bis der Roboter zu der Mittellinie oder
einer anderen Linie zurückgekehrt ist. Für die Entfernung
muß daher ein "guter" Wert gefunden werden. Bei Versuchen
hat sich gezeigt, daß die beste Entfernung λ 10 Zoll
beträgt.
Die folgenden Formeln werden zur Berechnung des
neuen Lenkwinkels θ aus den bisher gewonnenen Informatio
nen verwendet:
Es bleibt nun nur noch, diesen Lenkwinkel durch
Einleiten einer Relativbewegung relative_move (λ′, θ)
anzuwenden; d. h. einer Drehung um θ Grad und Vorwärts
bewegung um Entfernung λ′. Wenn der Roboter 2 Geschwin
digkeitsbewegungen erfordert, wird ein Befehl velo
city_move (λ′, θ) gegeben, bei dem sich der Roboter 2 mit
einer bestimmten Geschwindigkeit über eine Entfernung λ′
bewegt und seine Winkelanzeige mit einer bestimmten
Gradzahl pro Sekunde verändert. Obwohl diese beiden
Betriebsarten üblicherweise ein sehr unterschiedliches
Verhalten zeigen, funktioniert das beschriebene Verfahren
bei beiden Betriebsarten. Es kann erforderlich sein, die
Parameter für velocity_move durch Multiplizieren gewisser
Faktoren zu modifizieren, um die Winkel an die von dem
speziellen Roboter 2 unterstützten tatsächlichen Ge
schwindigkeiten anzugleichen.
Da die Linienanpassung und die Berechnung der
Abweichung δ des Roboters 2 vom Mittelpunkt des Korridors
und seiner Winkelausrichtung nur wenig Zeit in Anspruch
nehmen, können diese Berechnungen viele Male durchgeführt
werden, während sich der Roboter 2 an die Mittellinie
annähert.
Es sei angenommen, daß die x,y-Register 46 die
gegenwärtige x,y-Position des Roboters als rob_x und
rob_y anzeigen. Während sich der Roboter 2 bewegt, werden
diese Register entsprechend aktualisiert. Wenn der
Anfangswert des x,y-Registers zu Beginn der Aufgabe, sich
durch den Korridor fortzubewegen, gespeichert wird, dann
ist es unter Verwendung der Euklidschen Entfernungs
gleichung sehr leicht, die Entfernung, um die sich der
Roboter in der Zwischenzeit entlang des Korridors fort
bewegt hat, zu verfolgen. Angenommen, die Anfangswerte
für x und y werden in den beiden Variablen start_x und
start_y gespeichert. Der Gesamtsteuerkreis (geschrieben
im C-Code) lautet dann wie folgt:
start_x = rob_x;
start_y = rob_y;
while (sqrt(sq(rob_x-start_x) + sq(rob_y-start_y))
< to_go_distance)
theta = calculate_steering_angle();
move_robot(theta);
start_y = rob_y;
while (sqrt(sq(rob_x-start_x) + sq(rob_y-start_y))
< to_go_distance)
theta = calculate_steering_angle();
move_robot(theta);
Die Funktion calculate_steering_angle [BERECHNEN
DES LENKWINKELS] ist das weiter oben beschriebene Lenk
verfahren, und die Funktion move_robot 2 [BEWEGEN ROBOTER
2] ist eine Funktion, die einen Bewegungsschritt des
Roboters 2 ausführt. Es wird angenommen, daß die x,y-
Register (rob_x und rob_y) des Roboters und die Sonar
anzeigen nach jedem Bewegungsschritt aktualisiert werden.
Die eigentliche Bewegung kann auf zweierlei Weise
durchgeführt werden. Die Funktion move_robot 2 kann
möglicherweise eine Routine robot 2 aufrufen, die dem
Roboter 2 den Befehl zum Drehen und Bewegen erteilt. Die
Routine move_robot 2 kann nun einfach warten, bis diese
Funktion abgeschlossen ist, und danach zurückkehren.
Wenn jedoch die Routine robot 2 parallel zu dem
oben beschriebenen Steuerprogramm abläuft und danach
jederzeit unterbrochen werden kann, dann ist es auch
möglich, einfach den Lenkwinkel Theta an diese Funktion
robot 2 weiterzugeben, den gegenwärtigen x/y-Status und
die Sonaranzeigen abzufragen und nach einer kurzen
Verzögerung fast umgehend zurückzukehren.
In diesem Fall beginnt der gesamte Vorgang des
Berechnens des Lenkwinkels und des Ausführens der Routine
move_robot 2 immer wieder von neuem, obwohl kein einziger
move_step wirklich zu Ende geführt wurde. Dieser Stil
entspricht mehr dem Autofahren eines Menschen. Immer
dann, wenn eine Abweichung von der befohlenen Bahn erfaßt
wird, berechnet das Programm den Winkel, um den sich der
Roboter 2 drehen muß, um zur Mittellinie zurückzugehen
Jedoch fährt der Roboter 2 während seiner Rückkehr zur
Mittellinie fort, seine Ausrichtung zu sondieren und
korrigiert gegebenenfalls seine Bahn. Es hat sich heraus
gestellt, daß diese Art der Programmierung des Roboters
2 sehr wirksam ist und zu einem ruckfreien Betrieb führt.
Beide Programmierungsverfahren des Roboters 2
funktionieren jedoch sehr gut und sind zuverlässig.
In jedem Fall muß der Kurs des Roboters, wenn
dieser die Mittellinie oder eine andere Linie erreicht
hat, zu einer Richtung entlang dem Korridors geändert
werden.
Zur Veranschaulichung einer Prozedur zum Berech
nen der Parameter einer Wand wird auf Fig. 7 Bezug
genommen. Wie in einem Block 49 angedeutet, werden die
Programmzeilen 151-175 des Programms in der Programm
tabelle am Ende dieser "Ausführlichen Beschreibung der
Erfindung" dargelegt. In einem Schritt 50 werden die
Sonaranzeigen mit den Zeilen 159-169 in das Koordina
tensystem des Roboters umgewandelt, und ein Schritt 52
zeigt an, daß die Zeilen 113-131 zur Berechnung der
Linienanpassung verwendet werden.
Fig. 8 zeigt die Berechnung des Lenkwinkels e und
der Geschwindigkeit, wie in einem Block 54 gefordert. Wie
bei einem Schritt 56 angedeutet, wird die Prozedur von
Fig. 7 zum Berechnen der Parameter der linken Wand
verwendet, und wie in Schritt 58 angedeutet, wird die
Prozedur von Fig. 7 auch zum Berechnen der Parameter der
rechten Wand verwendet. Ein Schritt 60 deutet an, daß die
Programmzeilen 214-240 der Tabelle zum Verknüpfen der
Parameter der rechten und linken Wand verwendet werden,
und ein Schritt 62 gibt an, daß Programmzeilen 240-247
zum Berechnen der Geschwindigkeit verwendet werden.
Ein Block 64 in Fig. 9 zeigt, daß die Programm
zeilen 347-375 der Tabelle in der Prozedur der
"geführten Bewegung" verwendet werden. Die ursprüngliche
x,y-Position des Roboters 2 wird in Schritt 66 unter
Verwendung der Programmzeilen 360-361 der Tabelle
gesichert. Ein Schritt 68 zeigt, daß der Lenkwinkel Θ und
die Geschwindigkeit wie in Fig. 8 angedeutet berechnet
werden.
In einem Schritt 70 werden die Motoren ange
trieben und die Entfernung von der x,y-Startposition wird
berechnet, und in einem Entscheidungsschritt 72 wird eine
Überprüfung durchgeführt, ob die in Schritt 70 bestimmte
Entfernung gleich der Entfernung ist, um die der Roboter
2 sich bewegen muß. Wenn das nicht der Fall ist, springt
die Prozedur zu Schritt 68 zurück, anderenfalls ist alles
ausgeführt worden.
Obwohl die beschriebene Verwendung von Sensoren
auf beiden Seiten des Roboters 2 vorzuziehen ist, kann
das erfindungsgemäße Verfahren auch mit Sensoren auf nur
einer Seite durchgeführt werden. In diesem Fall wird die
Position der Wand auf dieser Seite durch das schon
beschriebene Linienanpassungsverfahren bestimmt, und der
Abstand von der Wand und die Winkelausrichtung zu der
Wand werden berechnet. Der für die Rückkehr des Roboters
2 zu einer gegebenen Linie entlang dem Korridor benötigte
Lenkwinkel θ wird auf gleiche Weise berechnet.
Obwohl verschiedene Ausführungsformen der vorliegenden
Erfindung hier gezeigt und beschrieben worden sind, soll
dies keine Einschränkung darstellen. Für Fachleute werden
gewisse Modifikationen dieser Ausführungsformen, die von
der zugrundeliegenden Idee und dem Schutzumfang der
beigefügten Ansprüche abgedeckt sein sollen, ersichtlich
sein.
Claims (8)
1. Vorrichtung zum Führen eines Fahrzeugs entlang
einem Korridor zwischen Wänden, mit:
Mitteln zum Bestimmen der Abstände zwischen dem Fahrzeug und mehreren Punkten an jeder Wand;
auf besagte Abstände reagierenden Mitteln zum Festlegen der Abstände zwischen dem Fahrzeug und jeder Wand und der Winkelausrichtung des Fahrzeugs zu der Wand; und
auf die Abstände und die Winkelausrichtung re agierenden Mitteln zum Bewegen des Fahrzeugs zu einer gegebenen Position zwischen den Wänden und zum Drehen des Fahrzeugs in eine gewünschte Winkelausrichtung zu den Wänden.
Mitteln zum Bestimmen der Abstände zwischen dem Fahrzeug und mehreren Punkten an jeder Wand;
auf besagte Abstände reagierenden Mitteln zum Festlegen der Abstände zwischen dem Fahrzeug und jeder Wand und der Winkelausrichtung des Fahrzeugs zu der Wand; und
auf die Abstände und die Winkelausrichtung re agierenden Mitteln zum Bewegen des Fahrzeugs zu einer gegebenen Position zwischen den Wänden und zum Drehen des Fahrzeugs in eine gewünschte Winkelausrichtung zu den Wänden.
2. Verfahren zum Führen eines Fahrzeugs entlang
einem Korridor mit einer gegebenen Breite, mit folgenden
Schritten:
Erhalten der Abstände zwischen dem Fahrzeug und den nächstgelegenen Objekten in mehreren Richtungen auf beiden Seiten des Fahrzeugs;
Identifizieren der nächstgelegenen Objekte in Abständen, die nicht größer sind als die Breite des Korridors;
Anpassen von Geraden durch die derart identifizi erten Objekte auf jeder Seite des Fahrzeugs, um die Positionen der Wände festzulegen;
Bestimmen des Abstands zwischen dem Fahrzeug und jeder der besagten Geraden;
Finden des Mittelwerts der Abstände zwischen dem Fahrzeug und jeder der besagten Geraden zum Feststellen der Lage der Korridormitte;
Ableiten der Abweichung des Fahrzeugs vom Mittel punkt des Korridors aus der Differenz zwischen besagtem Mittelwert und der halben Breite des Korridors;
Bestimmen des Winkels zwischen dem Kurs des Fahr zeugs und jeder der besagten Geraden; und
Verwenden eines Mittelwerts besagter Winkel als Kurs des Fahrzeugs bezüglich der Mittellinie des Korri dors; und
Steuern der Bewegung des Fahrzeugs als Reaktion auf besagte Abweichung und den Mittelwert aus besagten Winkeln.
Erhalten der Abstände zwischen dem Fahrzeug und den nächstgelegenen Objekten in mehreren Richtungen auf beiden Seiten des Fahrzeugs;
Identifizieren der nächstgelegenen Objekte in Abständen, die nicht größer sind als die Breite des Korridors;
Anpassen von Geraden durch die derart identifizi erten Objekte auf jeder Seite des Fahrzeugs, um die Positionen der Wände festzulegen;
Bestimmen des Abstands zwischen dem Fahrzeug und jeder der besagten Geraden;
Finden des Mittelwerts der Abstände zwischen dem Fahrzeug und jeder der besagten Geraden zum Feststellen der Lage der Korridormitte;
Ableiten der Abweichung des Fahrzeugs vom Mittel punkt des Korridors aus der Differenz zwischen besagtem Mittelwert und der halben Breite des Korridors;
Bestimmen des Winkels zwischen dem Kurs des Fahr zeugs und jeder der besagten Geraden; und
Verwenden eines Mittelwerts besagter Winkel als Kurs des Fahrzeugs bezüglich der Mittellinie des Korri dors; und
Steuern der Bewegung des Fahrzeugs als Reaktion auf besagte Abweichung und den Mittelwert aus besagten Winkeln.
3. Verfahren nach Anspruch 2, weiterhin mit folgen
den Schritten:
Ersetzen des die Breite des Korridors überstei genden Abstands zwischen dem Fahrzeug und einer Geraden durch die Breite des Korridors.
Ersetzen des die Breite des Korridors überstei genden Abstands zwischen dem Fahrzeug und einer Geraden durch die Breite des Korridors.
4. Verfahren nach Anspruch 2, weiterhin mit folgen
den Schritten:
Anhalten der Prozedur, falls der Abstand zwischen dem Fahrzeug und beiden Geraden die Breite des Korridors übersteigt; und
Bewegen des Fahrzeugs in seine gegenwärtige Rich tung.
Anhalten der Prozedur, falls der Abstand zwischen dem Fahrzeug und beiden Geraden die Breite des Korridors übersteigt; und
Bewegen des Fahrzeugs in seine gegenwärtige Rich tung.
5. Verfahren nach Anspruch 4, weiterhin mit fol
gendem Schritt:
Reduzieren der Geschwindigkeit des Fahrzeugs.
Reduzieren der Geschwindigkeit des Fahrzeugs.
6. Verfahren nach Anspruch 2, weiterhin mit folgen
dem Schritt:
Ersetzen des Mittelwerts der Winkel durch den Winkel zwischen dem Kurs und einer der besagten Geraden, falls der Abstand zwischen dem Fahrzeug und der anderen Geraden die Breite des Korridors übersteigt.
Ersetzen des Mittelwerts der Winkel durch den Winkel zwischen dem Kurs und einer der besagten Geraden, falls der Abstand zwischen dem Fahrzeug und der anderen Geraden die Breite des Korridors übersteigt.
7. Verfahren nach Anspruch 2, wobei der Schritt des
Steuerns der Bewegung des Fahrzeugs durch Drehen des
Fahrzeugs um einen Winkel θ und durch Vorwärtsbewegen um
eine Entfernung λ′ bewirkt wird, wobei die folgenden
Gleichungen verwendet werden:
und
wobei α der Kurs des Fahrzeugs, λ die Entfernung entlang der Mittellinie, in der sich das Fahrzeug mit einem Kurs entlang der Mittellinie auf der Mittellinie befinden soll, und δ die Abweichung des Fahrzeugs von der Mittel linie ist.
wobei α der Kurs des Fahrzeugs, λ die Entfernung entlang der Mittellinie, in der sich das Fahrzeug mit einem Kurs entlang der Mittellinie auf der Mittellinie befinden soll, und δ die Abweichung des Fahrzeugs von der Mittel linie ist.
8. Verfahren nach Anspruch 2, wobei der Schritt des
Steuerns der Bewegung des Fahrzeugs durch Bewegen des
Fahrzeugs mit einer zu λ′ proportionalen Translations
geschwindigkeit und einer zu θ proportionalen Rotations
geschwindigkeit bewirkt wird, wobei:
wobei α der Kurs des Fahrzeugs, λ die Entfernung entlang
der Mittellinie, in der sich das Fahrzeug mit einem Kurs
entlang der Mittellinie auf der Mittellinie befinden
soll, und δ die Abweichung des Fahrzeugs von der Mittel
linie ist.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/269,298 US5576947A (en) | 1994-06-30 | 1994-06-30 | Robot hallway traveler |
Publications (1)
Publication Number | Publication Date |
---|---|
DE19522932A1 true DE19522932A1 (de) | 1996-01-11 |
Family
ID=23026665
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19522932A Withdrawn DE19522932A1 (de) | 1994-06-30 | 1995-06-23 | Korridorlaufroboter |
Country Status (3)
Country | Link |
---|---|
US (1) | US5576947A (de) |
JP (1) | JPH08171416A (de) |
DE (1) | DE19522932A1 (de) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19817602A1 (de) * | 1998-04-22 | 1999-10-28 | Heinrich Landert | Computerisiertes System für Empfang und Information von Besuchern |
EP1204905A1 (de) * | 1999-07-23 | 2002-05-15 | CMTE Development Limited | System fuer relative navigation in einem fahrzeug |
CN105169610A (zh) * | 2015-08-24 | 2015-12-23 | 铜陵学院 | 基于两轮高速全自动灭火机器人的双核伺服控制系统 |
CN108478969A (zh) * | 2018-04-02 | 2018-09-04 | 南京森林警察学院 | 一种履足混合式森林余火清理机器人 |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR0156722B1 (ko) * | 1995-08-08 | 1998-11-16 | 김광호 | 로보트의 위치인식장치 및 그 제어방법 |
KR0168189B1 (ko) * | 1995-12-01 | 1999-02-01 | 김광호 | 로보트의 환경인식장치 및 그 제어방법 |
EP0939882A4 (de) * | 1996-09-06 | 2001-04-11 | Nomadic Technologies Inc | Verfahren und vorrichtung zur bewegungssteuerung eines beweglichen roboters |
US6853877B1 (en) | 1996-09-06 | 2005-02-08 | Nomadic Technologies | Method and apparatus for mobile robot motion control |
US6948576B2 (en) * | 2002-01-10 | 2005-09-27 | Jorge Angeles | Driving and transmission unit for use in rolling vehicles |
KR100624387B1 (ko) * | 2005-04-25 | 2006-09-20 | 엘지전자 주식회사 | 주행영역 지정이 가능한 로봇 시스템 |
US7539557B2 (en) * | 2005-12-30 | 2009-05-26 | Irobot Corporation | Autonomous mobile robot |
US20080012310A1 (en) * | 2006-07-01 | 2008-01-17 | Lance Weaver | Automatic self-centering duct robot |
US8874261B2 (en) * | 2007-07-25 | 2014-10-28 | Deere & Company | Method and system for controlling a mobile robot |
US20140041321A1 (en) * | 2008-11-17 | 2014-02-13 | Alain Poivet | Building Systems |
US11063553B2 (en) | 2008-11-17 | 2021-07-13 | Kbfx Llc | Solar carports, solar-tracking carports, and methods |
US10277159B2 (en) | 2008-11-17 | 2019-04-30 | Kbfx Llc | Finished multi-sensor units |
US10353400B2 (en) * | 2016-05-23 | 2019-07-16 | Asustek Computer Inc. | Navigation system and navigation method |
CN109085834B (zh) * | 2018-08-27 | 2019-09-03 | 珠海市一微半导体有限公司 | 机器人确定参考边的方法和机器人筛选参考墙边的方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CH619799A5 (en) * | 1973-12-21 | 1980-10-15 | Ito Patent Ag | Orientation device for an appliance system which moves over a surface for the purpose of treating it |
EP0346537A1 (de) * | 1988-06-14 | 1989-12-20 | Shinko Electric Co. Ltd. | Verfahren zur Korrektur des Fahrweges für ein selbstfahrendes fahrerloses Fahrzeug (Roboterfahrzeug) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4821192A (en) * | 1986-05-16 | 1989-04-11 | Denning Mobile Robotics, Inc. | Node map system and method for vehicle |
US5051906A (en) * | 1989-06-07 | 1991-09-24 | Transitions Research Corporation | Mobile robot navigation employing retroreflective ceiling features |
US5111401A (en) * | 1990-05-19 | 1992-05-05 | The United States Of America As Represented By The Secretary Of The Navy | Navigational control system for an autonomous vehicle |
US5307271A (en) * | 1990-09-28 | 1994-04-26 | The United States Of America As Represented By The Secretary Of The Navy | Reflexive teleoperated control system for a remotely controlled vehicle |
KR0161031B1 (ko) * | 1993-09-09 | 1998-12-15 | 김광호 | 로보트의 위치오차보정장치 |
-
1994
- 1994-06-30 US US08/269,298 patent/US5576947A/en not_active Expired - Fee Related
-
1995
- 1995-06-23 DE DE19522932A patent/DE19522932A1/de not_active Withdrawn
- 1995-06-30 JP JP7166599A patent/JPH08171416A/ja active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CH619799A5 (en) * | 1973-12-21 | 1980-10-15 | Ito Patent Ag | Orientation device for an appliance system which moves over a surface for the purpose of treating it |
EP0346537A1 (de) * | 1988-06-14 | 1989-12-20 | Shinko Electric Co. Ltd. | Verfahren zur Korrektur des Fahrweges für ein selbstfahrendes fahrerloses Fahrzeug (Roboterfahrzeug) |
Non-Patent Citations (1)
Title |
---|
JP 63-104111 A. In: Patent Abstr. of Japan, Sect.P, Sect.No.760, Vol.12, No.35, P.52 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19817602A1 (de) * | 1998-04-22 | 1999-10-28 | Heinrich Landert | Computerisiertes System für Empfang und Information von Besuchern |
EP1204905A1 (de) * | 1999-07-23 | 2002-05-15 | CMTE Development Limited | System fuer relative navigation in einem fahrzeug |
EP1204905A4 (de) * | 1999-07-23 | 2003-07-16 | Cmte Dev Ltd | System fuer relative navigation in einem fahrzeug |
CN105169610A (zh) * | 2015-08-24 | 2015-12-23 | 铜陵学院 | 基于两轮高速全自动灭火机器人的双核伺服控制系统 |
CN108478969A (zh) * | 2018-04-02 | 2018-09-04 | 南京森林警察学院 | 一种履足混合式森林余火清理机器人 |
Also Published As
Publication number | Publication date |
---|---|
JPH08171416A (ja) | 1996-07-02 |
US5576947A (en) | 1996-11-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE19522932A1 (de) | Korridorlaufroboter | |
DE102013014519B4 (de) | Intelligentes einparkhilfesystem für fahrzeuge und steuerverfahren für dieses | |
DE102016215601B4 (de) | Fahrzeuglenksteuervorrichtung | |
DE2364002C2 (de) | Orientierungsvorrichtung für ein Gerätesystem, das sich zur Bearbeitung einer Fläche auf dieser bewegt | |
EP1720758B1 (de) | Einparkhilfe | |
DE102018106713A1 (de) | Verfahren zum Steuern eines Fahrzeugspurwechsels, Vorrichtung zum Steuern eines Fahrzeugspurwechsels und dazugehörige Einrichtungen | |
DE102016113902A1 (de) | Feldbasierte Drehmoment-Lenkregelung | |
DE3000031C2 (de) | ||
EP0221423A1 (de) | Verfahren zum automatischen Führen von selbstfahrenden Bodenreinigungsmaschinen sowie Bodenreinigungsmaschine zur Durchführung des Verfahrens | |
DE102012211721A1 (de) | System und Verfahren zum Ableiten einer Einparkkurve für ein Fahrzeug | |
DE102018102894A1 (de) | Lenksteuerungsvorrichtung | |
DE102019212791A1 (de) | Verfahren zur Durchführung von automatischem Valet-Parken | |
EP2193414A1 (de) | Verfahren zur automatischen vermeidung von kollisionen eines fahrzeuges mit weiteren objekten | |
EP2125472A1 (de) | Einparkhalbautomat | |
WO2009106435A1 (de) | Roboterfahrzeug sowie ansteuerverfahren für ein roboterfahrzeug | |
DE3820589A1 (de) | Steuersystem fuer ein selbstgesteuertes kraftfahrzeug oder dgl. | |
EP3147169B1 (de) | Reglerkonfiguration für ein kraftfahrzeug-fahrerassistenzsystem | |
DE69027917T2 (de) | Verfahren zur Neueinstellung eines Fahrzeuges auf eine theorethische Trajektorie durch Änderung der Krümmung der reellen Trajektorie | |
DE102014216577A1 (de) | Verfahren und Vorrichtung zur Unterstützung eines Fahrers eines Kraftfahrzeugs | |
DE102019109006B4 (de) | Störungsvorkompensation für eine positionsregelung in lenkungssystemen | |
EP1558945B1 (de) | Verfahren zur ermittlung von geometriedaten für einparkvorgänge von fahrzeugen | |
DE102021103652A1 (de) | Anhängerkupplungsunterstützungssystem mit dynamischer fahrzeugsteuerverarbeitung | |
DE102020111606A1 (de) | Drehmomentbasierte fahrzeugpfadvorhersage | |
DE102018123896A1 (de) | Verfahren zum Betreiben eines wenigstens teilweise automatisierten Fahrzeugs | |
EP0196498B1 (de) | Ortungs- und Navigationsverfahren für Landfahrzeuge |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8128 | New person/name/address of the agent |
Representative=s name: BERG, P., DIPL.-ING., PAT.-ASS., 80339 MUENCHEN |
|
8139 | Disposal/non-payment of the annual fee |