-         

Seite 1 von 4 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 33

Thema: Lineare Bewegung

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    04.04.2017
    Beiträge
    17

    Frage Lineare Bewegung

    Anzeige

    Hallo,

    ich schreibe gerade ein Konzept, wie ich mit einem 6-Rotationsachsen Roboter Bewegungen realisiere.

    Es gibt ja die Punkt-zu-Punkt(PTP) Bewegung, bei der ein Punkt mit einer unvorhersehbaren Bahn schnellstmöglich erreicht wird.
    Bei einer Linearen Bewegung benutzt man die Interpolation. Man berechnet Zwischenpunkte(Interpolationspunkte) auf der zu fahrenden,
    linearen Strecke. Je dichter die sind, desto kleiner die Abweichung zur Bahn.

    Nach meinem Verständnis ist also die Bewegung zwischen den Interpolationspunkte also auch eine PTP-Bewegung.

    Meiner Meinung nach müsste es doch möglich seine durch die Bewegung der 6 Gelenke exakte lineare Bahn zu fahren, ohne unnötig viele Interpolationspunkte zu bestimmen?
    Ich finde dazu leider nicht im Netz. Irre ich mich da in der Möglichkeit, oder gibt es Ansätze zur Berechnung der Gelenkbewegungen um so eine Lineare Bahn zu fahren?

    Danke!
    Micha

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von i_make_it
    Registriert seit
    29.07.2008
    Ort
    Raum DA
    Alter
    48
    Beiträge
    2.410
    Zitat Zitat von raze92 Beitrag anzeigen
    Nach meinem Verständnis ist also die Bewegung zwischen den Interpolationspunkte also auch eine PTP-Bewegung.
    Da man eine Positions- und Geschwindigkeitsregelung nutzt, theoretisch ja praktisch ist es eine Bahnregleung, da bei einer Graden das Verhältniss der Bewegungsanteile zueinander immer gleich ist und es somit genau 0 Zwichenpunkte gibt.
    Eine Steuerung kann mit absoluten Zwichenpunkten arbeiten um zu prüfen ob eine Achse vor oder nachläuft, oder einfach ständig das integral unter einem inkrementellen Delta berechnen und darüber die Regleabweichung klein halten.


    Zitat Zitat von raze92 Beitrag anzeigen
    gibt es Ansätze zur Berechnung der Gelenkbewegungen um so eine Lineare Bahn zu fahren?
    Inverse Kinematik / Direkte Kinematik
    https://de.wikipedia.org/wiki/Inverse_Kinematik

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    04.04.2017
    Beiträge
    17
    Danke für die Antwort!
    So ganz hab ich das nicht verstanden. Dass man die Gelenkstellungen über Inverse Kinematik ermittelt weißt ich schon.

    Wenn die Bahn eine gerade Linie sein soll, dann führt man Zwischenpunkte ein um die Abweichung gering zu halten. Wie aber kann ich sicher gehen, dass zwischen den Punkten es auch eine gerade Linie ist? Klar kann man viele solche Zwischenpunkte nutzen und bei Abweichungen jedes mal nachregeln.

    Ich hatte halt die Idee, dass man die Geschwindigkeit aller Gelenke so berechnet, dass die Bahn genau eine Linie ist, ohne unnötig viele Zwischenpunkte zu bestimmten. Aber wie man das genau macht weiß noch nicht. Das bisherige Konzept war, dass man viele Zwischenpunkte wählt und jedes mal kurz vor dem erreichen des Zwischenpunktes den neuen Zwischenpunkt der Steuerung übergibt und Der Roboter dann zum nächsten Fährt. Wie man aber berechnet, dass zwischen den Zwischenpunkten die Bahn nicht PTP sein soll sondern Linear(so war die Idee um zu viele Zwischenpunkte zu vermeiden) versuche ich herauszufinden.

    Wahrscheinlich sind meine Gehirnzellen auch nur verknotet.

  4. #4
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    7.397
    Hallo Micha,

    willkommen im Forum.

    .. mit einem 6-Rotationsachsen Roboter Bewegungen ..
    .. Wie aber kann ich sicher gehen, dass zwischen den Punkten es auch eine gerade Linie ist? ..
    Garnicht - im Prinzip. Real und recht theoretisch geht das in ganz wenigen Fällen - genau dann, wenn die Abweichungen der einen Achse (des einen Gelenkarms) die Abweichungen des anderen Gelenkarmes gerade noch im Bereich der Messgenauigkeit kompensieren bzw. wenn die Abweichungen aller Gelenkarme sich gegenseitig kompensieren.

    Schau Dir doch mal den "Gelenkarm" Deines eigenen Körpers an. Nehmen wir an, die Faust sei Dein "TCP" (und fixiert gegen den Unterarm), die Elle-Speiche-Konstruktion sei starr = nicht verdrehbar.
    Wenn Du nun den Oberarm schwenkst (oBdA OArm und Bewegung des Ellenbogens in einer waagrechten Ebene) dann wird Dein TCP eine Schwenkbewegung (=Kreisbahn) durchführen.
    Wenn Du nur den Unterarm schwenkst (oBdA OArm starr und Bewegung des Unterarms in einer Ebene) dann wird der TCP ebenfalls eine Schwenkbewegung durchführen.
    Genaugenommen sind alle diese Einzelbewegungen stets Kreisabschnitte bezogen auf ihr TCP-seitiges Gelenkarmende mit dem Mittelpunkt des gegenüberliegenden Gelenks.

    Die gerade Bahn des TCP ist also zwischen zwei Einzelpunkten der vorgerechneten Bahn - theoretisch und absolut gesehen - nie völlig gerade. Der Trick liegt darin die Gelenkauflösung (messtechnisch und antriebstechnisch) so hoch zu halten, dass die resultierenden Schwankungen innerhalb der tolerierbaren Grenze liegen und die Einzelpunkte der vorgerechneten Bahn möglichst dicht zu setzen; abhängig von Rechnerleistung der Steuerung, Messgenauigkeit der Gelenke etc.

    War das verständlich?
    Ciao sagt der JoeamBerg

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    04.04.2017
    Beiträge
    17
    Das war sehr verständlich. Danke!

    Wie Realisiert man das denn programmtechnisch am sinnvollsten? Misst man die Abweichung der Gerade und wenn sie einen festgelegten Wert überschreitet regelt man nach und berechnet somit weniger Zwischenpunkte bei der Bahnberechnung? Oder Berechnet man mehr lieber mehr Zwischenpunkte um zur Laufzeit nicht nachregeln zu müssen? Oder ist eine Kombination von beiden das A und O?

  6. #6
    Erfahrener Benutzer Robotik Einstein Avatar von i_make_it
    Registriert seit
    29.07.2008
    Ort
    Raum DA
    Alter
    48
    Beiträge
    2.410
    Bei einer Graden ist die Bewegung für alle beteiligten Raumachsen linear und proportional zueinander (anders als bei einer Kreisbahn).
    Wenn man für alle Raumachsen die Steigung hat, benötigt man keine Zwischenpunkte die erreichnet eine Steuerung sich zur Laufzeit dynamisch anhand einer definierten kleinsten Schrittweite, iterativ, bis die Istposition mit der Sollposition (Endpunkt) übereinstimmt.
    Beispiel: wenn sich die Steigungen 1 zu 2 zu 3 verhalten, kann die Steuerung bei einer Startposition 100, 30, 50. zur laufzeit die Positionen 101, 32, 53; 102, 34, 56;..... berechnen.
    Je nach Auflösung der Meßsysteme und Antriebe wird das dann entsprechend genau angefahren.
    Bei Industriesystemen hat dann auch ein Drehgeber mal 5000 Digit auf 360°. Und mit einem Signal multiplizierer (Interpolations und Digitalisierungselektronik) wird das dann bis zu 100 Fach verfeinert.
    Bei dann 50000 Digit auf 360° sind das Auflösungen von einer halben Bogenminute. Das ist dann ein PTP Inkrement das zwar mathematisch noch als solsches gesehen werden kann, aber praktisch ist das Delta so klein, das es ein Bahnsteuerung bleibt.
    Und das Berechnen der Positionen erfolgt bei Industriesteuerungen meist mit 20-100 kHz. Also alle 50 bis 10 Nanosekunden.

    Beim Selbstbau eines 6-Achs Verikal Knickarm Roboters werden die Encoder vermutlich alleine schon wegen den Kosten weniger Auflösung haben und die Signalvervielfachung entfällt meist auch mangels entsprechender Elektronik Kenntnisse.
    Mit zwei handelsüblichen Fensterdiskriminatoren ließe sich der Sinus am A und B Kanal eines Drehgebers in je drei Spannungspegel teilen, und man erhält so eine Verdopplung der Auflösung gegenüber dem reinen Geber mit nachgeschalteten Schmitt Trigger.
    Hat jetzt zwar nicht mit der mathematischen Lösung zu tun aber mit der praktischen Verbesserung der für die Lösung notwendigen Daten.

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    04.04.2017
    Beiträge
    17
    Zitat Zitat von i_make_it Beitrag anzeigen
    Bei einer Graden ist die Bewegung für alle beteiligten Raumachsen linear und proportional zueinander (anders als bei einer Kreisbahn).
    Wenn man für alle Raumachsen die Steigung hat, benötigt man keine Zwischenpunkte die erreichnet eine Steuerung sich zur Laufzeit dynamisch anhand einer definierten kleinsten Schrittweite, iterativ, bis die Istposition mit der Sollposition (Endpunkt) übereinstimmt.
    Das ergibt Sinn. Was ist mit der Orientierung?
    Trotzdem muss doch für jeden Schritt eine Rücktransformation erfolgen. Ist das nicht ein ziemlich großer Rechenaufwand? Ist es da nicht schlauer die Gelenkstellungen schon vorher zu berechnen?

    Zitat Zitat von i_make_it Beitrag anzeigen
    Je nach Auflösung der Messsysteme und Antriebe wird das dann entsprechend genau angefahren.
    Der verbaute Encoder pro Achse hat eine Auflösung von 14-Bit also ca. 0,02° Genauigkeit. Ich hab leider noch keine praktischen Erfahrung bei der Berechnung der Inverse Kinematik. Die Idee war zur Steuerung ein Minirechner wie Arduino, Raspberry Pi etc. zu verwenden. Schaffen es solche Rechner die mögliche Genauigkeit auszunutzen?

    Wenn man sich entscheidet, die Schrittweite zu vergrößern, ist es möglich die maximal mögliche Abweichung zur Bahn zu bestimmen?
    Geändert von raze92 (05.04.2017 um 10:38 Uhr) Grund: Zusätzliche Frage

  8. #8
    Erfahrener Benutzer Robotik Einstein Avatar von i_make_it
    Registriert seit
    29.07.2008
    Ort
    Raum DA
    Alter
    48
    Beiträge
    2.410
    Zitat Zitat von raze92 Beitrag anzeigen
    Was ist mit der Orientierung?
    Die Orientierung und den Offset zwichen dem roboterbezogenen Weltkoordinatensystem und dem roboterbezogenem Polaren Weltkoordinatensystem bestimmst Du in den Systemparamtern des Roboters.
    Willst Du nur in einem Raumquadranten mit positiven Werten für X, Y und Z arbeiten, dann verschiebst Du den Nullpunkt des polaren Koordinatensystems in allen Achsen jeweils soweit ins Plus, bis niemals ein negativer Wert erreicht werden kann.
    Falls Du mit Orientierung A, B und C Ausrichtung des TCP meinst, die ist neben den X, Y und Z Koordinaten des TCP natürlich auch immer mit anzugeben.
    Üblicherweise erfolgt das heutzutage in einer 4Kreuz4 Matrix. Da man damit auch direkt die Transformationen durchführen kann.
    https://prof.beuth-hochschule.de/fil...ng_Teil_03.pdf

    Zitat Zitat von raze92 Beitrag anzeigen
    Trotzdem muss doch für jeden Schritt eine Rücktransformation erfolgen.
    JA per Inverser Kinematik

    Zitat Zitat von raze92 Beitrag anzeigen
    Ist das nicht ein ziemlich großer Rechenaufwand?
    JA.

    Zitat Zitat von raze92 Beitrag anzeigen
    Ist es da nicht schlauer die Gelenkstellungen schon vorher zu berechnen?
    Hat man früher so gemacht, als die Rechner noch langsam und groß waren.
    Als ich 1984 in der ausbildung das erste mal mit Industirerobotern zu tun hatte, waren einige (altere) davon noch so das man entweder hunderte Punkte geteacht hat um mit Synchonen PTP eine Bahnsteuernug zu simmulieren oder das für diese Roboter tatsächlich die Posen entlang der Bahn vorberechnet wurden und dementsprechend viele Datensätze einafach Sequentiel durchfahren wurden.
    Beim synchonen PTP fahren nicht mehr alle Achsen full speed sondern proprtional zueinander. wenn also eine Achse zwichen zwei Posen 500 digit fahren muß und eine andere nur 50 Digit, dann fährt die erste 100% und die zweite nur 10% speed.
    Nur so ist es bei PTP möglich das Verhalten von Bahnsteuerungen zu simulieren und zwichenpunkte zu verschleifen ohne jedesmal auf null zu bremsen und wartezeiten für die langsamste Achse einzufügen.



    Zitat Zitat von raze92 Beitrag anzeigen
    Der verbaute Encoder pro Achse hat eine Auflösung von 14-Bit also ca. 0,02° Genauigkeit.
    Dabei dürfte es sich um die Auflösung eines ADC handeln da Encoder entweder pro Kanal seriell einfach nur ein Rechtecksignal mit geschwindigkeitsabhängiger Frequenz liefern oder pro Kanal einen Sinus.
    Wobei die Kanäle um 90° (beim Sinus) oder um Lambda/4 (ein Viertel der Frequenz) bei digitalen Encodern, zueinander verschoben sind.
    Bei einem ADC mit 14 Bit kann es sein das du die beiden letzten Bit im Signalrauschen verlierst. Das müsstest Du dann erst mal testen.


    Zitat Zitat von raze92 Beitrag anzeigen
    Die Idee war zur Steuerung ein Minirechner wie Arduino, Raspberry Pi etc. zu verwenden. Schaffen es solche Rechner die mögliche Genauigkeit auszunutzen?
    Minirechner mit eigenem OS, haben als Haupthandycap die mangelnde Echtzeitfähigkeit.
    Du hast Tasks vom Kernel, von den Hardwaretreibern, Daemons, etc. und dann mal den oder die Tasks von der Steuersoftware.
    Vom Prinzip her funktioniert das und mit CNC Software wie z.B. Mach3 sieht man auch das es bis zu einer gewissen Geschwindigkeit auch mit der notwendigen Präzission und Wiederholgenauigkeit funktioniert.
    Darüber hinaus werden dann spezielle G-Code Steuerkarten angeboten.

    Zum Einsteigen kann man durchaus damit anfangen. wenn man aber hohe Positioniergenauigkeit, hohe Wiederholgenauigkeit und hohe Geschwindigkeit (kurze Zykluszeiten der Positions- und Geschwindikeitsregelung) haben will, kann man sich darauf einstellen auf eine Lösung mit besserer Echtzeitfähigkeit umsteigen zu müssen.
    Da kommen dann Microkontroller oder proprietäre Singletask Betriebssysteme ins Spiel. (nicht umsonst kostet oft eine Driveunit mit Lizenz mehr als der dazugehörige Arm).

    Zitat Zitat von raze92 Beitrag anzeigen
    Wenn man sich entscheidet, die Schrittweite zu vergrößern, ist es möglich die maximal mögliche Abweichung zur Bahn zu bestimmen?
    Ja kann man berechnen.
    Ist genau der Selbe Aufwand der zur Regelung des eigenlichen Arms notwendig ist, da man bei der Berechnung eigentlich nur das verhalten simuliert.

    Wobei halt nicht nur Entfernung sondern auch Geschwindigkeit maßgeblich sind.

    (das Beispiel nicht real nachmachen)
    Mann fährt mit 50 eine langestreckte Kurve und macht einfach mal für 1 Sekunde die Augen zu.
    Dann das selbe mit Tempo 100. Die gefahrene Strecke und wie weit man aus der Spur getragen wurde unterscheiden sich.
    Jetzt hat man eine Beifahrer, der alle 100 Meter ein Signal gibt. und man macht das selbe nochmal mit 50 und mit 100 Sachen.
    Die Streke die man mit geschlossenen Augen fährt ist also immer gleich. aber wegen der unterschiedlichen Geschwindigkeit unterscheidet sich immer noch die Dynamik und damit die Größe der Abweichung.
    Macht man das ein drittes mal, aber diesmal mit 50 Metern dann wird auch die Abweichung kleiner.
    Das Delta kann man dann soweit verkleinenr bis man an die Grenzen der Sensorauflösung kommt, Sprich Du kannst nicht mehr sagen ob Du aus der Spur getragen wurdest oder nicht, weil beide Durchläufe für Dich gleich aussehen.
    Geändert von i_make_it (06.04.2017 um 07:34 Uhr)

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    04.04.2017
    Beiträge
    17
    Vielen Dank! Soweit hat sich einiges geklärt.

    Ich will eine gerade Bahn fahren. Der Steuerung übergebe ich also Zielpunkt und Zielorientierung und zur Laufzeit wird nun iterativ die zu fahrenden Positionen berechnet. Wie bestimme ich aber die Geschwindigkeit/Beschleunigung? Es kommt ja vor, dass ein Gelenk mal seine Richtung änder muss, dann muss ich doch schon vorher wissen, an welcher stelle das passiert, um so Beschleunigen/Bremsen zu können. Rechne ich schon so weit vor, um entsprechend Anpassung an die Geschwindigkeit machen zu können?
    Geändert von raze92 (05.04.2017 um 15:24 Uhr)

  10. #10
    Erfahrener Benutzer Robotik Einstein Avatar von i_make_it
    Registriert seit
    29.07.2008
    Ort
    Raum DA
    Alter
    48
    Beiträge
    2.410
    Sehr oft definiert man die maximal nutzbare Geschwindigkeit bei geregelter Bahnsteuerung als Bruchteil des Produkts der tatsächlich möglichen Geschwindigkeit und der maximalen Beschleunigung.
    Damit ist dann sichergestellt, das jede Achse in Extremsituationen (z.B. Drehrichtungsumkehr) die Geschwindigkeit zur Einhaltung der Bahn erreichen kann.

    Grade bei Aufgaben wie Lackieren, wo das Einhalten der Geschwindigkeit proportional zur Farbmenge das wichtigste ist, darf es nicht zu Geschwindigkeitsschwankungen kommen. entweder wird die Schichtdicke zu dünn (zu schnell Verfahren)
    oder zu Tropfnasen (extrem zu langsam).
    Das eine ist aufwendige manuelle Nacharbeit das andere ist Ausschuß oder muß komplett entlackt werden um dann noch mal neu bearbeitet zu werden.
    Auch bei der Materialbearbeitung ist so was tödlich fürs Werkstück.
    Beim Entgraten einer Kontour mal wegen Schleppfehler einer Achse ins Werkstück reingefahren und man hat Ausschuß, Bis hin zum zerstörten Werkzeug mit entsprechenden Reparaturzeiten.

    Der Steuerung übergibst Du nur Deine Bahn und die Parameter für Geschwindigkeit und Beschleunigungsrampen/-Kurven am Anfang und Ende.
    den Rest muß die Regelung mit den transformierten Daten rausholen.
    Über die vorher definierten Rampen/Kurven ist ja vorab schnell zu berechnen wo auf der Graden welche Geschwindigkeit zu fahren ist.
    Das Reale System muß halt diesem virtuellen Modell folgen können damit das Ergebniss stimmt.

    Genau das selbe macht auch eine karthesisch aufgebaute Fräsmaschine wenn man der entsprechende im Raum liegende Kurven gibt.
    Bei einem 6-Achs Vertikal Knickarm wird das allerdings noch eine Ecke schwieriger.
    In dem Link aus meinem letzten Post steht ja auch irgendwo das es keine allgemeingültige Lösung gibt.

    ###

    Bei Beschleunigungsrampen, hast Du in gewisser Weise 2 Zwischenpunkte die bei der Bahnplanung vorab zu berechnen sind. Denn dort ändert sich ja die Beschleunigung.
    Am Startpunkt beginnt man, von 0 aus, mit einer monoton steigenden Geschwindigkeit, bis man den Punkt erreicht an dem man die eigentliche Verfahrgeschwindigkeit erreicht hat dann fährt man mit gleichbleibender Geschwindigkeit bis zu dem Punkt ab dem man mit der monoton fallenden Geschwindigkeit beginnen muß um am Endpunkt eine Geschwindigkeit von 0 zu haben.

    Erst wenn man mit Beschleunigungskurven arbeitet, also alle Geschwindigkeiten tangential, knickfrei ineinander übergehen sollen, dann kommen mehr Zwichenpunkte ins Spiel die zu berechnen sind. Dazu muß man dann aber auch für jeden Abschnitt der Spline das Polynom ermitteln mit dem dieser Abschnitt beschrieben wird. Denn nur so kann zur Laufzeit jeder Punkt iterativ berechent werden.

    Je mehr Du Dich mit dem Thema befasst um so mehr wirst Du feststellen, das der mechanische Aufbau, die Antriebe und die Elektronik das kleinste Problem sind. Die Mathematik und diese dann clever in Software zu packen sind der haarige Teil.

    Wenn man schneller zu positiven Ergebnissen kommen will, baut man zum einen erst mal einen Arm den man nur über Achspositionen steuert (der beherscht dann halt keine Graden- und Kreisinterpolation) und zum anderen, parallel einen karthesischen Aufbau (wie eine Fräsmaschine) und fängt dort dann mit Graden- und Kreisinterpolation an. Als Ergebniss kann mam da dann einen 3D-Drucker oder eine kleine Fräse schaffen. Mit den Erkenntnissen aus beiden Projekten kann man dann stückweise das Systemprogramm des Arms erweitern/umbauen.
    Geändert von i_make_it (06.04.2017 um 07:57 Uhr)

Seite 1 von 4 123 ... LetzteLetzte

Ähnliche Themen

  1. Mechanik für stabile lineare Bewegung
    Von Unregistriert im Forum Suche bestimmtes Bauteil bzw. Empfehlung
    Antworten: 17
    Letzter Beitrag: 16.04.2016, 15:26
  2. drehbewegung in "lineare" bewegung umwandeln
    Von jcrypter im Forum Mechanik
    Antworten: 22
    Letzter Beitrag: 18.12.2012, 13:36
  3. Lineare Verstäkung von Wägezellensinal mit OPV
    Von Gert246 im Forum Elektronik
    Antworten: 6
    Letzter Beitrag: 21.03.2007, 19:50
  4. PWM zu Lineare Spannung
    Von Dirk M im Forum Elektronik
    Antworten: 10
    Letzter Beitrag: 01.03.2007, 15:04
  5. Lineare Stormregelung
    Von theodrin im Forum Elektronik
    Antworten: 3
    Letzter Beitrag: 04.12.2006, 21:59

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •