Euler-hoeken beheersen voor nauwkeurige 6-as robotbesturing
Hoe wordt oriëntatie in de ruimte voorgesteld met Euler-hoeken?
Als u een 6-as robotarm gebruikt, zoals de Meca500 van Mecademic die in deze handleiding als voorbeeld dient, bent u waarschijnlijk geïnteresseerd in het positioneren van het gereedschap (end-effector) in verschillende oriëntaties. Met andere woorden, u moet uw robot kunnen programmeren om de end-effector te verplaatsen naar een gewenste positie en een gewenste oriëntatie (d.w.z. naar een gewenste pose). U kunt de end-effector altijd handmatig sturen of handhaven naar de gewenste pose, maar deze sogenannte online programmeringsmethode is arbeidsintensief en zeer onnauwkeurig. Het is veel efficiënter om de gewenste pose offline te berekenen en te definiëren. Bovendien moet u, om het gereedschapsreferentiekader te definiëren dat bij uw end-effector hoort (zoals in de afbeelding getoond), de pose van dat gereedschapsreferentiekader ten opzichte van het flensreferentiekader berekenen.
In 3D-ruimte heeft u minimaal zes parameters nodig om een pose te definiëren. De positie van de end-effector van de robot, of meer precies van het TCP (tool center point), wordt doorgaans gedefinieerd als de x, y en z coördinaten van de oorsprong van het gereedschapsreferentiekader ten opzichte van het wereldreferentiekader. Maar hoe definieert u dan de oriëntatie in de ruimte?
Voorstelling van oriëntatie in de ruimte
De voorstelling van oriëntatie in de ruimte is een complex onderwerp. Euler's rotatiestelling stelt dat in (3D) ruimte elke verplaatsing van een star lichaam, waarbij een punt op het lichaam vast blijft, equivalent is aan een enkele rotatie om een as die door dat vaste punt loopt. Een dergelijke rotatie kan worden beschreven door drie onafhankelijke parameters: twee voor de as en één voor de rotatiehoek. Oriëntatie in de ruimte kan echter op verschillende andere manieren worden voorgesteld, elk met zijn eigen voor- en nadelen. Sommige van deze voorstellingen gebruiken meer dan de noodzakelijke minimum van drie parameters.
De meest voorkomende manier om positiecoördinaten te transformeren van het ene Cartesische (3D) referentiekader, F, naar een ander, F', is de rotatiematrix. Deze 3×3 matrix kan daarom worden gebruikt om de oriëntatie van referentiekader F' ten opzichte van referentiekader F weer te geven. Deze voorstelling is echter niet een compacte en intuïtieve manier om oriëntatie te definiëren. Een veel compactere manier is de quaternion. Deze voorstelling bestaat uit een genormaliseerde vector van vier scalaren. De quaternion wordt doorgaans in robotcontrollers gebruikt, omdat het niet alleen compacter is dan de rotatiematrix, maar ook minder gevoelig voor benaderingsfouten. Bovendien veranderen de elementen van de quaternion continu tijdens een interpolatie tussen twee verschillende oriëntaties, wat de discontinuïteiten die inherent zijn aan driedimensionale parameterisaties zoals Euler-hoeken, vermijdt. Niettemin wordt de quaternion zelden gebruikt als communicatiemiddel tussen een gebruiker en de controller van de robot, omdat het niet intuïtief is.
Gedetailleerde definitie van Euler-hoeken
Verreweg de meest voorkomende manier om een oriëntatie in de ruimte aan een gebruiker te communiceren, of om een gebruiker toe te staan een oriëntatie te definiëren, in CAD-software of in een robotcontroller, is het gebruik van Euler-hoeken. Omdat de term Euler-hoeken vaak misbruikt wordt, hebben we deze interactieve tutorial voorbereid.
Euler-hoeken zijn een set (of juist een reeks) van drie hoeken, die bijvoorbeeld aangeduid kunnen worden door α, β en γ. (Vaak worden Euler-hoeken aangeduid als roll, pitch en yaw.) Euler-hoeken worden als volgt gedefinieerd: Overweeg twee Cartesische rechtshandige 3D-referentiekaders, waarvan het ene willekeurig het vaste kader wordt genoemd en het andere het mobile kader. De twee referentiekaders samenvallen initieel. Om de oriëntatie van een derde kader te definiëren (alle drie de kaders delen dezelfde oorsprong), wordt het mobile kader, in de volgorde hieronder getoond, gebracht om te samenvallen met het derde kader door het mobile kader te roteren:
- om de x, y of z as van het vaste kader of de x', y' of z' van het mobile kader, met α graden,
- daarna om de x, y of z as van het vaste kader of de x', y' of z' van het mobile kader, met β graden,
- en tenslotte om de x, y of z as van het vaste kader of de x', y' of z' van het mobile kader, met γ graden.
De volgorde waarin de drie rotaties worden uitgevoerd, is belangrijk. We hebben dus in totaal 216 (6³) mogelijke reeksen: x→y→z, y→y→z, z→y→z, x'→y→z, y'→y→z, z'→y→z, enzovoort. Een reeks van drie rotaties waarbij twee opeenvolgende rotaties om dezelfde as gaan (bijv. y→y→z) kan echter geen algemene oriëntatie beschrijven. Bovendien samenvallen voor de eerste rotatie x met x', y met y' en z met z'. Van al deze 216 combinaties bestaan er daarom slechts twaalf unieke zinvolle geordende rotatiereeksen, of twaalf Euler-hoekconventies: XYX, XYZ, XZX, XZY, YXY, YXZ, YZX, YZY, ZXY, ZXZ, ZYX, ZYZ.
Elk van deze twaalf combinaties is equivalent aan drie andere reeksen. Met andere woorden, elke Euler-hoekconventie kan op vier verschillende manieren worden beschreven. Bijvoorbeeld, de ZYX-conventie is equivalent aan de reeksen z→y→x, x'→y'→z', y→z'→x en y→x→z'. Gelukkig beschrijft niemand Euler-hoeken met reeksen waarbij sommige rotaties om de assen van het mobile kader en andere om de assen van het vaste kader gaan (bijv. reeksen als y→z'→x en y→x→z').
Hoewel er dus twaalf verschillende Euler-hoekconventies zijn, wordt elk doorgaans op twee manieren beschreven: ofwel als een reeks rotaties om de assen van het vaste kader, ofwel als een reeks rotaties om de assen van het mobile kader. Het kan daarom handig zijn om te spreken over vaste en mobile conventies, hoewel ze equivalent zijn. Bijvoorbeeld, de vaste XYZ Euler-hoekconventie wordt beschreven door de x→y→z reeks, terwijl de mobile ZYX Euler-hoekconventie wordt beschreven door de z'→y'→x' reeks, maar beide zijn equivalent, zoals we later zullen zien. In de robotica gebruiken FANUC en KUKA de vaste XYZ Euler-hoekconventie, terwijl ABB de mobile ZYX Euler-hoekconventie gebruikt. Kawasaki, Omron Adept Technologies en Stäubli gebruiken de mobile ZYZ Euler-hoekconventie. Tenslotte worden de Euler-hoeken die in CATIA en SolidWorks worden gebruikt, beschreven door de mobile ZYZ Euler-hoekconventie.
Bij Mecademic gebruiken we de mobile XYZ Euler-hoekconventie en beschrijven we Euler-hoeken dus als de reeks x'→y'→z'. Waarom anders? De reden is dat we vroeger een mechanische grijper aanboden voor het hanteren van asсимmetrische werkstukken (zie video), die werd aangedreven door de motor van gewricht 6. Een 6-as robot uitgerust met zo'n grijper kan slechts twee rotatievrijheidsgraden controleren, ofwel de richting van de as van gewricht 6, dat wil zeggen de richting van de as van symmetrie van het werkstuk. In de gekozen Euler-hoekconventie definiëren hoeken α en β deze richting, terwijl hoek γ wordt genegeerd omdat het overeenkomt met een parasitair rotatie die oncontrolleerbaar is. Onze applet hieronder helpt u Euler-hoeken te begrijpen. U kunt een van de twaalf mogelijke Euler-hoekconventies selecteren door op de x, y en z vakjes van de eerste, tweede en derde rotatie te klikken. (De standaard Euler-hoekreeks is die van Mecademic.) Om te schakelen tussen rotaties om de assen van het vaste of mobile kader, moet u dubbelklikken op een van deze negen vakjes. De assen van het vaste kader zijn grijs getekend, terwijl de assen van het mobile kader zwart zijn. Assen x en x' zijn rood, y en y' groen, en z en z' blauw. Door met de muis over de drie blauwe horizontale pijlen te glijden, verandert u de corresponderende Euler-hoek. Alternatief kunt u de Euler-hoekwaarde (in graden) direct invoeren in het bijbehorende tekstvak onder de pijl. Tot slot kunt u de muis over het referentiekader slepen om het standpunt te veranderen.
| α : | β : | γ : |
| R = Rx(0°) Ry(0°) Rz(0°) = |
|
Euler-hoeken berekenen via rotatiematrices
Met de bovenstaande applet ziet u de oriëntatie van het mobile kader ten opzichte van het vaste kader, voor een gegeven set Euler-hoeken, in het rechtermost subfiguur. Helaas is in de praktijk de situatie meestal omgekeerd. U heeft vaak twee referentiekaders en wilt de Euler-hoeken vinden die de oriëntatie van het ene kader ten opzichte van het andere beschrijven. Voor oriëntaties waarbij ten minste twee assen parallel zijn, kunt u proberen de Euler-hoeken te raden door proberen en fouten. Kijk bijvoorbeeld terug naar de afbeelding aan het begin van deze tutorial en probeer de Euler-hoeken te vinden die door Mecademic worden gebruikt om de oriëntatie van het gereedschapsreferentiekader dat bij de grijper hoort, ten opzichte van het flensreferentiekader te definiëren. Het antwoord is α = −90°, β = 0°, γ = −90°. Niet zo makkelijk te krijgen, toch? Om efficiënter te zijn, moet u dus leren over rotatiematrices. Zoals we al zeiden, kan elke oriëntatie in de ruimte worden voorgesteld met een 3×3 rotatiematrix. Een rotatie van α om de x-as, een rotatie van β om de y-as en een rotatie van γ om de z-as, komen respectievelijk overeen met de volgende drie basale rotatiematrices:
| Rx(α) = |
|
| Ry(β) = |
|
| Rz(γ) = |
|
We zullen de bovenstaande matrices basale rotatiematrices noemen. Om het product van basale rotatiematrices te verkrijgen dat overeenkomt met een reeks rotaties, begin met het opschrijven van de basale rotatiematrix die correspondeert met de eerste rotatie. Als de eerste rotatie bijvoorbeeld om de x (of x') as is, schrijf dan Rx(ψ), waar ψ de draaihoek is. Voor elke volgende rotatie, post-vermenigvuldig (rechts vermenigvuldig) het huidige resultaat met de volgende rotatiematrix, als de rotatie om een as van het mobile referentiekader gaat, of pre-vermenigvuldig (links vermenigvuldig) het huidige resultaat met de volgende rotatiematrix, als de rotatie om een as van het vaste referentiekader gaat. Gebruik onze applet om het resulterende product van basale rotatiematrices te zien. De rotatierreeks x'→y'→z' correspondeert bijvoorbeeld met het product R = Rx(α)Ry(β)Rz(γ). De rotatiematrix die correspondeert met de Euler-hoeken die door Mecademic worden gebruikt, is dus:
| R(α, β, γ) = |
|
Voor een gegeven oriëntatie moet u dus twee dingen doen: allereerst de rotatiematrix vinden die correspondeert met uw oriëntatie. Ten tweede de Euler-hoeken extraheren met behulp van een paar eenvoudige vergelijkingen. Laten we u eerst twee manieren tonen om uw rotatiematrix te vinden. Overweeg het voorbeeld in de onderstaande figuur waar we de rotatiematrix moeten vinden die de oriëntatie van kader F' ten opzichte van kader F vertegenwoordigt. (Herinner u dat we de x-as altijd rood, de y-as groen en de z-as blauw voorstellen.) Hier is het duidelijk dat als we een derde referentiekader uitlijnen met F, wat fungeert als mobile kader, en dit kader dan roteren om zijn z'-as met θ graden, en daarna roteren om zijn y'-as met φ graden, we de oriëntatie van F verkrijgen. De zoekte rotatiematrix is dus:
| Rgewenst = Rz(θ)Ry(φ) = |
|
Alternatief kunnen we de bovenstaande rotatiematrix direct verkrijgen. De eerste, tweede en derde kolom vertegenwoordigen de coördinaten van de eenheidsvectoren langs de x, y en z as, respectievelijk, van kader F', ten opzichte van kader F. Nu u de rotatiematrix heeft die uw gewenste oriëntatie vertegenwoordigt, hoeft u alleen het stelsel van negen scalaire trigonometrische vergelijkingen Rgewenst = R(α, β, γ) op te lossen voor α, β en γ. Gelukkig heeft dit probleem een generieke oplossing en geven we u simpelweg de te gebruiken vergelijkingen. Laat de gewenste oriëntatie van een kader F' ten opzichte van een kader F worden voorgesteld door de volgende rotatiematrix:
| Rgewenst = |
|
De Euler-hoeken (in graden), in overeenstemming met de mobile XYZ-conventie die door Mecademic wordt gebruikt, worden verkregen volgens de volgende twee gevallen:
Geval 1: r1,3 ≠ ±1 (d.w.z. de z'-as van kader F' is niet parallel aan de x-as van kader F).
β = asin(r1,3), γ = atan2(−r1,2, r1,1), α = atan2(−r2,3, r3,3).
Geval 2: r1,3 = ±1 (d.w.z. de z'-as van kader F' is parallel aan de x-as van kader F).
β = r1,390°, γ = atan2(r2,1, r2,2), α = 0.
In het algemene Geval 1 hebben we eigenlijk twee oplossingensets waarbij alle hoeken in het half-open interval (−180°, 180°] liggen. Het is echter nutteloos om beide sets te berekenen, dus wordt alleen de eerste gepresenteerd, waarin −90° < β < 90°. Let ook op dat we de functie atan2(y, x) in onze oplossing gebruiken. Wees gewaarschuwd dat in sommige programmeertalen, in sommige wetenschappelijke rekenmachines en in de meeste spreadsheet-software, de argumenten van deze functie omgekeerd zijn. Ten slotte correspondeert Geval 2 met een zogenaamde voorstellingsingulariteit. Deze singulariteit is aanwezig in elke driedimensionale parameterisatie van oriëntatie in 3D-ruimte (niet alleen in Mecademics keuze van Euler-hoeken). Het is vergelijkbaar met het probleem van het voorstellen van punten op een bol door slechts twee parameters. Bijvoorbeeld, lengtegraad is op aarde niet gedefinieerd op de Zuid- en Noordpool. Met andere woorden, deze singulariteit heeft niets te maken met de singulariteiten van mechanismen (bijv. de zogenoemde gimbal lock), die corresponderen met daadwerkelijke fysieke problemen (bijv. verlies van een vrijheidsgraad).
Oefening
Overweeg de volgende real-life situatie die ons overkwam. We wilden een FISNAR doseringsklep aan de end-effector van onze Meca500 robotarm bevestigen. Natuurlijk was de ingenieur die de adapter ontwierp en bewerkte, niet geïnteresseerd in Euler-hoeken en was alleen bezig met bewerkbaarheid en bereikbaarheid. In zijn ontwerp waren er essentieel twee rotaties van 45°. Ten eerste gebruikte hij twee diametraal tegenoverliggende gegolfde gaten op de robotflens om de adapter te bevestigen, wat de eerste rotatie van 45° veroorzaakte. Ten tweede was de hoek tussen het flensinterfacevlak en de as van de doser 45°.
De bovenstaande figuur toont de werkelijke installatie (links) en het gereedschapsframe (rechts) dat gedefinieerd moest worden. Let op dat bij het gebruik van as-symmetrische gereedschappen het gebruikelijk is om de z-as van het gereedschap uit te lijnen met de as van het gereedschap. Dit is met name nuttig met de mobile XYZ Euler-hoekconventie, omdat de redundante rotatie om het as-symmetrische gereedschap overeenkomt met de derde Euler-hoek, γ. De eerste twee Euler-hoeken definiëren dus de as van het gereedschap, terwijl de derde kan worden gebruikt om de optimale configuratie van de robot te kiezen (d.w.z. ver van singulariteiten).
Terugkerend naar ons voorbeeld, tonen we nu aan dat het onmogelijk is om de Euler-hoeken volgens de mobile XYZ-conventie te bedenken door proberen en fouten. Inderdaad, voor deze keuze van gereedschapsreferentiekader kunnen we de eindoriëntatie voorstellen als een reeks van de volgende twee rotaties: R = Rz(45°)Ry(45°). Hieruit kunnen we de Euler-hoeken volgens de mobile XYZ-conventie extraheren met de eerder beschreven vergelijkingen en verkrijgen: α = −35,264°, β = 30,000°, γ = 54,735°. Bent u nu overtuigd dat u Euler-hoeken beheersen moet voor situaties als deze?
Voorstellingsingulariteiten en oriëntatiefouten
In het geval van de mobile XYZ Euler-hoekconventie, als de z'-as van kader F' parallel is aan de x-as van kader F, zijn er oneindig veel paren van α en γ die dezelfde oriëntatie definiëren. U heeft er duidelijk maar één nodig om uw gewenste oriëntatie te definiëren, dus hebben we willekeurig α gelijk aan nul gesteld. Meer specifiek, als β = 90°, dan correspondeert elke combinatie van α en γ zodanig dat α + γ = φ, waar φ een willekeurige waarde is, met dezelfde oriëntatie, en wordt uitgevoerd door Mecademics controller als {0,90°,φ}. Op dezelfde manier, als β = −90°, correspondeert elke combinatie van α en γ zodanig dat α − γ = φ, waar φ een willekeurige waarde is, met dezelfde oriëntatie, en wordt uitgevoerd als {0,−90°,−φ}. Let echter op dat als u probeert de oriëntatie van een kader F' ten opzichte van een kader F weer te geven en de z'-as van kader F' bijna parallel is aan de x-as van kader F (d.w.z. β is heel dicht bij ±90°), de Euler-hoeken zeer gevoelig zullen zijn voor numerieke fouten. In zo'n geval moet u zoveel mogelijk cijfers na de komma invoeren bij het definiëren van de oriëntatie met Euler-hoeken.
Overweeg de volgende situatie die zorgen heeft veroorzaakt bij verschillende gebruikers van onze Meca500. U stelt de oriëntatie van het gereedschapsreferentiekader ten opzichte van het wereldreferentiekader in op {0°, 90°, 0°}, wat een voorstellingsingulariteit is. Vervolgens houdt u deze oriëntatie en verplaatst de end-effector in de ruimte naar verschillende posities. Op sommige posities, door numerieke ruis, detecteert de controller de voorwaarde r1,3 = ±1 niet (Geval 2, zoals hierboven genoemd) en berekent de Euler-hoeken alsof de oriëntatie niet overeenkwam met een voorstellingsingulariteit. De controller geeft dan zoiets als {41,345°, 90,001°, −41,345°} terug, wat lijkt alsof het volledig fout is en ver weg van {0°, 90°, 0°}. Nou, dat is het niet. In tegenstelling tot positie fouten, die gemeten worden als √(Δx² + Δy² + Δz²), zijn oriëntatiefouten niet direct gerelateerd aan de variaties in de Euler-hoeken, vooral in de buurt van voorstellingsingulariteiten. Om deze zogenoemde niet-Euclidische aard van Euler-hoeken beter te begrijpen, overweeg de bolvormige coördinaten die gebruikt worden om een locatie op aarde weer te geven. Op de Noordpool is de breedtegraad 90° (Noord), maar wat is de lengtegraad? Lengtegraad is op de Noordpool niet gedefinieerd, of het kan elke waarde zijn. Stel u nu voor dat we slechts 1 mm van de Noordpool afwijken in de richting van Greenwich. In dat geval zal de breedtegraad 89,99999999° zijn, maar de lengtegraad heeft nu de waarde 0°. Stel u zich opnieuw voor dat u terugkeert naar de Noordpool en 1 mm in de richting van Tokio beweegt. De nieuwe lengtegraad zal ongeveer 140° zijn. Tussen uw twee locaties is de fout in lengtegraad 140°! De echte hoekfout zal echter ongeveer 0,00000002° zijn. De hierboven beschreven situatie is vergelijkbaar in alle andere Euler-hoekconventies. Afhankelijk van de Euler-hoekconventie treedt de corresponderende voorstellingsingulariteit op wanneer een specifieke as van kader F' parallel is aan een andere specifieke as van kader F. In zo'n voorstellingsingulariteit worden de eerste en derde rotatie afhankelijk. Concluderend, tenzij u Euler-hoeken beheerst (of geavanceerde offline programmeringssoftware gebruikt), en meer specifiek de conventie die voor het programmeren van uw robot wordt gebruikt, zult u nauwelijks in staat zijn om iets anders te programmeren dan eenvoudige pick-and-place operaties. Omdat robotica niet simpel is, doen we ons uiterste best om u de basisprincipes te helpen begrijpen.
Automatisering Besturingssysteem
- Sepro breidt zes-as robot lijn uit met nieuwe compacte modellen voor injectgieten
- NPE 2018: Robots Die Sneller, Slimmer En Meer Collaboratief Zijn
- Star Automation's Borstel‑Wieldende Robot Schittert Op NPE2018
- Efficiëntie Maximeren: Een Multi‑Robot Injectie‑Moulding Cel Produceert Een Complete Shaker Cup In Één Cyclus
- igus Introduceert Goedkope, Hoge-snelheids Montagerobot met ±0,5 mm Precisie
- Schunk Vergroot VS Robotgrijper Assemblage in Morrisville, NC, Versterkt Lokale Productie & Customisatie
- Automatisering van Injectiemoulding: Experts Inzichten & Opkomende Trends
- Wittmann Battenfeld Lanceert WX153: Geavanceerde Robotlijn voor High-Force Injectiemoulding Automatisering
- Universal Robots Benoemt Kim Povlsen tot President om Deense Robotica Leiderschap te Versterken
- GP4: Yaskawa's compacte 6-as robot voor ultra-snelle, nauwkeurige automatisering
- FANUC breidt SCARA robotlijn uit: Zes modellen, 3-20 kg payload, 400-1100 mm reach