Strategie

<< Click to Display Table of Contents >>

Navigation:  Funktionsblockbibliothek > Navigation > Wegbefahrer >

Strategie

Previous pageReturn to chapter overviewNext page

pathdriver_path1

Der Wegbefahrer Funktionblock erzeugt einen Weg, der zunächst die Wegpunkte gradlinig verbindet.

 

Der Roboter wird mittels eines virtuellen Wegpunktes (hier als roter Punkt eingezeichnet) geführt. Von der aktuellen Roboterposition ausgehend wird der virtuell Wegpunkt so auf dem Weg plaziert, das der Abstand zwischen Roboter und virtuellem Wegpunkt dp (distance virtual point) entspricht. Der virtuelle Wegpunkt kann sich auf dem Weg nur in Richtung des Wegendes bewegen, d.h. entfernt sich der Roboter vom virtuellen Wegpunkt, so bleibt dieser unverändert. Durch die Regelung auf den virtuellen Punkt kommt es zu einer Glättung des Weges. Diese Glättung ist um so größer, je größer der Abstand dp ist.

 

Winkelgeschwindigkeitsparametrierung

Die Winkelgeschwindigkeit ω(dφ) wird über den Funktionsblockdialog abhängig vom Winkelfehler dφ angegeben. dφ ist der Winkel zwischen aktueller Roboterorientierung und der Verbindung Robotermittelpunkt zu virtuellem Wegpunkt.

 

Geschwindigkeitsparametrierung

Die Geschwindigkeit wird ebenfalls in Abhängigkeit von dφ angegeben, bezeichnet als v(dφ). Damit besteht die Möglichkeit die Bewegung zu verlangsamen, wenn der Roboter nicht mehr korrekt ausgerichtet ist.

 

Um die Geschwindigkeit verlangsamen zu können, wenn der Weg abknickt, gibt man die Geschwindigkeit auch als Funktion v(dn) des Abstandes zwischen dem virtuellen Punkt und dem nächsten Wegpunkt an. Ein typischer Verlauf von v(dn) ist

pathdriver_v_dn

D.h. die Geschwindigkeit soll abnehmen, je näher der Roboter dem Wegpunkt (und damit der nächsten Biegung) kommt.

 

Allerdings will man den Roboter in Abhängigkeit des Winkels αn abbremsen. αn ist der Winkel zwischen der aktuellen und der nächsten Wegstrecke. Für den Fall das αn 180° ist (d.h. der Weg geht gerade durch den Wegpunkt), soll die Geschwindigkeit nicht verlangsamt werden. Für den Fall das αn gegen 0° geht (ein sehr starker Knick), muss der Roboter auch sehr stark verlangsamt werden. Aus diesem Grund benötigt man die Funktion v(αn). Ein typischer Verlauf von v(αn) sieht so aus

pathdriver_v_a

D.h. je kleiner αn, desto kleiner ist auch die zu fahrende Geschwindigkeit.

 

Die drei Geschwindigkeitsprofile v(dφ), v(dn) und v(α) werden zu der Gesamtweggeschwindigkeit V(dφ,dn,α) verrechnet:

 

Vp(dφ,dn,α) = min(  v(dφ), max( v(dn), v(α) ) )

 

Anfahrt des letzten Wegpunktes

Zum abbremsen bei Erreichen des Wegendes, wird die Geschwindigkeit in Abhängigkeit zum noch zu fahrenden Weg angegeben, bezeichnet als v(d).  Das Ziel wird als erreicht angenommen, wenn die Geschwindigkeit als Funktion des noch zu fahrenden Weges gleich Null ist.

 

Die ungeglättete Geschwindigkeit berechnet sich zu:

 

V(d,dφ,dn,γ) = min( v(d),  Vp(dφ,dn,γ) )

 

Glättung der Geschwindigkeit und Winkelgeschwindigkeit

Es stehen zwei weitere Parameter zur Glättung der Bewegung zur Verfügung.

Die Geschwindigkeitskopplung bezeichnet die Zeit in Millisekunden, die benötigt wird, damit die Kopplung vCC zwischen errechneter Geschwindigkeit Vp(dφ,dn,α) und der ausgegebenen Geschwindigkeit velocity den Wert 1 erreicht.

Die Winkelgeschwindigkeitskopplung bezeichnet die Zeit in Millisekunden, die benötigt wird, damit die Kopplung omegaCC zwischen errechneter Winkelgeschwindigkeit ω(dφ) und der ausgegebenen Winkelgeschwindigkeit omega den Wert 1 erreicht.

 

dv = vCC * ( Vpt - Vpt-1 )

velocity = Vpt-1 + dv

 

domega = omegaCC * ( ω(dφ)t - ω(dφ)t-1 )

velocity = ω(dφ)t-1 + domega

 

Das tiefgestellte t bezeichnet den Wert zum Zeitpunkt t. t-1 bezeichnet den Wert einen Zeitschritt vor t.

 

Bei Neustart wird vCC mit 0 initialisiert und steigt innerhalb der mit der Geschwindigkeitskopplung gegebenen Zeit auf der Wert 1 an.

Bei Neustart wird omegaCC mit 0 initialisiert und steigt innerhalb der mit der Winkelgeschwindigkeitskopplung gegebenen Zeit auf der Wert 1 an.

 

Springt der virtuelle Punkt auf einen neuen Wegabschnitt, so werden vCC und omegaCC ebenfalls wieder auf 0 gesetzt.