|
Überlegungen zur PositioniergenauigkeitAm Beispiel der Industry Robots Modelle : Betrachtungen zur erzielbaren Positionierungsgenauigkeit. Die Positionsbestimmung der Robots erfolgt über ein Impulsrad mit vier Zähnen auf der jeweiligen Motorwelle das seinerseits einen Taster betätigt. Die Tasterstellung wird vom Programm über einen Digitaleingang abgefragt. Bei Unterscheidung von Geschaltet und Nichtgeschaltet ergeben sich pro Umdrehung der Motorwelle 8 Impulse. Die Motoren treiben zur Arm- und Greiferbewegung über ein Schneckenrad eine Schnecke mit 4,75 mm Steigung an. Zur Drehung der Säule wird von der (eingängigen) Schnecke ein Zahnrad mit 60 Zähnen (Schätzwert, Ergebnis einer gewissenhaften Nachzählung : 58 Zähne) angetrieben. Daraus ergeben sich folgende Positionierungswerte pro Impuls : Schnecke : 4,75 mm / 8 = 0,6 mm / Impuls* Zahnrad : 1/8 Zahn / Impuls* * für die Impuls-Bearbeitung stehen dem Programm bei 9V Motorspannung ca. 40 mSek zur Verfügung. Das Einlesen des InputStatus beim seriellen Interface dauert knapp 10 mSek. Wird die Schneckenbewegung 1 : 1 in eine Armbewegung umgesetzt ergibt sich eine (theoretische) Positionierungsgenauigkeit von 0,6 mm. Das trifft z.B. bei iSäule für Arm waagerecht und senkrecht, bei iKnick und iSchweis für Arm waagerecht zu. Wird die Schneckenbewegung zusätzlich noch übersetzt
ergeben sich andere (größere) Werte : Bei der Säulendrehung über das 60er Zahnrad wird die Säule pro Impuls um 360°/60 Zähne/8 Impulse = 0,75° gedreht. Bei einer Ausladung der Säule an der Greiferspitze von 300 mm ist das ein Weg von 300 mm x 2 x 3,14 = Umfang / 60 Zähne / 8 Impulse = 4 mm pro Impuls, bei einem mit iKnick erreichbaren Radius von 450 mm dann 6 mm. Zu berücksichtigen sind noch Anfahr- und Bremsverhalten, sowie das Verhalten des Impulsrädchens. Bei den FishFace.Methoden MoveTo/MoveDelta wird intern ein Bremsprogramm gefahren. Bei soviel Rechnerei erfreulich ist die im praktischen Run-Betrieb erzielbare Positionierungsgenauigkeit, die auch bei der Säule im Endlosbetrieb über viele Zyklen im mm-Bereich bleibt. Beim TeachIn-Betrieb ist der manuelle Einfluß größer. So hat z.B. bei Positionieren in kleinen Schritten der Einfuß der genannten Nebeneffekte eine größere Bedeutung. Das führt in der Regel zu etwas größeren Fahrwegen als es den genannten Impulswegen entsprechen würde. Jedoch wird bei jedem Anfahren von Position 0 die Abweichung durch unbedingtes Anfahren des Endtasters wieder korrigiert. Im Run-Betrieb kann das dann zu abweichenden Fahrwegen führen. Hier ist also ein wenig Fingerspitzengefühl angesagt. Die Modelle sind so konzipiert, daß während des Betriebes kaum relevanten Lageverschiebungen auftreten können. Beim Greifer kann sich schon mal (nach einem harten Anfahren der Endstellung) der Lagerpunkt in den Grundsteinen ein wenig verschieben, im Bedarfsfall hier korrigieren. Besonders zu beachten sind externe Störeinflüsse wie z.B. neben den
Robots laufenden andere Programme, aber auch zerren an der Programmform. Sie können das
Verhalten der Modelle sehr stark - bis zum Crash - beeinflussen. Die Standardversion von
FishFace.DLL fragt die Modellposition bei Fahrbewegungen in einer Endlosschleife
ab. Wird dem FishFace-Prozeß durch das Betriebssystem bei laufendem Modell die Zeit
entzogen, kann keine Positionskontrolle mehr erfolgen.Hier muß es also heißen : Wenn ein
Robot-Programm läuft, muß ruhe auf dem Rechner herrschen. |