Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Automatisering Besturingssysteem

Berekenen van Euler-hoeken op een 6-assige robot


Hoe wordt oriëntatie in de ruimte weergegeven met Euler-hoeken?

Als u een robotarm met zes assen gebruikt, zoals de Meca500 van Mecademic die in deze zelfstudie als voorbeeld wordt gebruikt, bent u hoogstwaarschijnlijk geïnteresseerd in het positioneren van het gereedschap (eindeffector ) in verschillende richtingen. Met andere woorden, u moet uw robot kunnen programmeren om de eindeffector zowel naar een gewenste positie als naar een gewenste oriëntatie te verplaatsen (d.w.z. naar een gewenste pose ). Natuurlijk kunt u de eindeffector van uw robot altijd joggen of met de hand naar ongeveer de gewenste houding leiden, maar deze zogenaamde online programmeermethode is vervelend en erg onnauwkeurig. Het is veel efficiënter om de gewenste pose offline te berekenen en te definiëren. Trouwens, om het gereedschapsreferentieframe te definiëren gekoppeld aan uw eindeffector (zoals in de afbeelding die hier wordt weergegeven), moet u de positie van dat gereedschapsreferentieframe berekenen ten opzichte van het flensreferentieframe .
In 3D-ruimte heb je minimaal zes parameters nodig om een ​​pose te definiëren. Bijvoorbeeld de positie van de eindeffector van de robot, of beter gezegd van de TCP (gereedschapsmiddelpunt ), wordt meestal gedefinieerd als de xy en z coördinaten van de oorsprong van het gereedschapsreferentieframe ten opzichte van het wereldreferentieframe . Maar hoe definieer je dan oriëntatie in de ruimte?

De representatie van oriëntatie in de ruimte is een complex vraagstuk. Roulatiestelling van Euler stelt dat in de (3D) ruimte elke verplaatsing van een star lichaam zodanig dat een punt op het starre lichaam gefixeerd blijft gelijk staat aan een enkele rotatie om een ​​as die door het vaste punt gaat. Dienovereenkomstig kan een dergelijke rotatie worden beschreven door drie onafhankelijke parameters:twee voor het beschrijven van de as en één voor de rotatiehoek. Oriëntatie in de ruimte kan echter op verschillende andere manieren worden weergegeven, elk met hun eigen voor- en nadelen. Sommige van deze representaties gebruiken meer dan het noodzakelijke minimum van drie parameters.

De meest gebruikelijke manier om positiecoördinaten te transformeren vanuit één Cartesiaans (3D) referentieframe, F , naar een ander, F’ , is de rotatiematrix . Deze 3×3-matrix kan daarom worden gebruikt om de oriëntatie van het referentieframe F' weer te geven met betrekking tot referentiekader F . Hoewel deze representatie vaak noodzakelijk is, zoals we later zullen ontdekken, is het geen compacte en intuïtieve manier om oriëntatie te definiëren.
Een andere, veel compactere manier om oriëntatie te definiëren, is de quaternion . Deze representatievorm bestaat uit een genormaliseerde vector van vier scalairen. Het quaternion wordt over het algemeen gebruikt in robotcontrollers, omdat het niet alleen compacter is dan de rotatiematrix, maar ook minder vatbaar voor benaderingsfouten. Bovendien veranderen tijdens een interpolatie tussen twee verschillende oriëntaties de elementen van het quaternion continu, waardoor de discontinuïteiten worden vermeden die inherent zijn aan driedimensionale parametrisaties zoals Euler-hoeken. Niettemin wordt het 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 gebruikelijke manier om een ​​oriëntatie in de ruimte aan een gebruiker te communiceren, of om een ​​gebruiker in staat te stellen 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 handleiding opgesteld.

Euler-hoeken zijn een set (of liever een reeks) van drie hoeken, die bijvoorbeeld kunnen worden aangeduid met αβ , en γ . (Vaak worden Euler-hoeken aangeduid met rollpitch en yaw .) Euler-hoeken worden als volgt gedefinieerd:Beschouw twee Cartesiaanse rechtshandige 3D-referentieframes, waarvan er één willekeurig de vaste wordt genoemd. frame en de andere wordt de mobiel genoemd kader. De twee referentieframes vallen aanvankelijk samen. Om de oriëntatie van een derde frame te definiëren (alle drie de frames hebben dezelfde oorsprong), wordt het mobiele frame in de onderstaande volgorde samengebracht met het derde frame door het mobiele frame te draaien.

  1. over de xy , of z as van het vaste frame of de x'y’ , of z’ van het mobiele frame, door α graden,
  2. dan over de xy , of z as van het vaste frame of de x'y’ , of z’ van het mobiele frame, door β graden,
  3. en tot slot over de xy , of z as van het vaste frame of de x'y’ , of z’ van het mobiele frame, door γ graden.

De volgorde waarin de drie rotaties worden uitgevoerd, is belangrijk. We hebben dus in totaal 216 (6 3 ) mogelijke reeksen: xyzyyzzjz , x’→yz , y’→yz , z’→yz , enzovoorts. Echter, een reeks van drie rotaties waarin twee opeenvolgende rotaties rond dezelfde as zijn (bijv. yyz ) kan geen algemene oriëntatie beschrijven. Bovendien, voorafgaand aan de eerste roulatie, x valt samen met x ‘, y valt samen met y ', en z valt samen met z ‘. Bijgevolg bestaan ​​er van al deze 216 combinaties slechts twaalf unieke betekenisvolle geordende reeksen van rotaties, ofwel twaalf Euler-hoekconventies :XYX, XYZ, XZX, XZY, YXY, YXZ, YZX, YZY, ZXY, ZXZ, ZYX, ZYZ.
Dat gezegd hebbende, elk van de twaalf combinaties is gelijk aan drie andere reeksen. Met andere woorden, elke Euler-hoekconventie kan op vier verschillende manieren worden beschreven. Bijvoorbeeld de ZYX conventie is gelijk aan de reeksen zyxx ‘→y ‘→z ‘, yz ‘→x en yxz ‘. Gelukkig beschrijft niemand Euler-hoeken met reeksen waarin sommige rotaties rond de assen van het mobiele frame gaan en andere rond de vaste assen (bijvoorbeeld reeksen als yz ‘→x en yxz ').
Dus hoewel er twaalf verschillende Euler-hoekconventies zijn, wordt elke conventie doorgaans op twee verschillende manieren beschreven:ofwel als een opeenvolging van rotaties om de assen van het vaste frame of als een opeenvolging van rotaties om de assen van het mobiele frame. Daarom kan het handig zijn om te praten over vaste en mobiele conventies, hoewel ze gelijkwaardig zijn. De vaste XYZ Euler-hoekconventie wordt bijvoorbeeld beschreven door de xyz volgorde, terwijl de mobiele ZYX Euler-hoekconventie wordt beschreven door de z'y’x’ volgorde, maar beide zijn equivalent, zoals we later zullen zien.
In de robotica gebruiken FANUC en KUKA de vaste XYZ Euler-hoekconventie, terwijl ABB de mobiele ZYX Euler-hoekconventie gebruikt. Verder gebruiken Kawasaki, Omron Adept Technologies en Stäubli de mobiele ZYZ Euler-hoekconventie. Ten slotte worden de Euler-hoeken die worden gebruikt in CATIA en SolidWorks beschreven door de mobiele ZYZ Euler-hoekconventie.

Bij Mecademic gebruiken we de mobiele XYZ Euler-hoekconventie en daarom beschrijven we Euler-hoeken als de reeks x ‘→y ‘→z ‘. Waarom anders zijn? De reden is dat we vroeger een mechanische grijper aanboden voor het hanteren van assymmetrische werkstukken (zie video), die werd aangedreven door de motor van scharnier 6. Een zes-assige robot uitgerust met een dergelijke grijper kan slechts twee roterende vrijheidsgraden besturen, of meer bepaald de richting van de as van verbinding 6, dat wil zeggen de richting van de symmetrieas van het werkstuk. In de gekozen Euler-hoekconventie, hoeken α en β definieer deze richting, terwijl hoek γ wordt genegeerd omdat het overeenkomt met een parasitaire rotatie die onbeheersbaar is.
Ons onderstaande applet helpt u Euler-hoeken te begrijpen. U kunt een van de twaalf mogelijke Euler-hoekconventies selecteren door op de x-, y- en z-vakken van de eerste, tweede en derde rotatie te klikken. (De standaard Euler-hoekvolgorde wordt gebruikt door Mecademic.) Om te schakelen tussen rotaties rond de assen van de vaste of mobiele frames, moet u dubbelklikken op een van deze negen vakken. De assen van het vaste frame zijn grijs getekend terwijl de assen van het mobiele frame zwart zijn. Assen x en x ' zijn in rood getekend, y en j ‘ in groen, en z en z ' in blauw. Als u met uw muis over een van de drie blauwe horizontale pijlen glijdt, verandert de corresponderende Euler-hoek. Als alternatief kunt u de Euler-hoekwaarde (in graden) direct instellen in het overeenkomstige tekstvak onder de pijl. Ten slotte kunt u uw muis over het referentiekader slepen om het gezichtspunt te wijzigen.


α :

β :

γ :


Berekenen van Euler-hoeken via rotatiematrices

Met de bovenstaande applet ziet u de oriëntatie van het mobiele frame ten opzichte van het vaste frame, voor een gegeven set Euler-hoeken, in de uiterst rechtse subfiguur. Helaas is de praktijk in de praktijk echter meestal het tegenovergestelde. U heeft vaak twee referentieframes en u wilt de Euler-hoeken vinden die de oriëntatie van het ene frame ten opzichte van het andere beschrijven.
Voor oriëntaties waarin ten minste twee assen evenwijdig zijn, kunt u proberen de Euler te raden hoeken met vallen en opstaan. Kijk bijvoorbeeld terug naar de afbeelding aan het begin van deze tutorial en probeer de Euler-hoeken te vinden die door Mecademic worden gebruikt en die de oriëntatie bepalen van het gereedschapsreferentieframe dat is gekoppeld aan de grijper, ten opzichte van het flensreferentieframe. Het antwoord is α = −90°, β = 0°, γ =−90°. Niet zo makkelijk te krijgen, toch? Om daarom efficiënter te zijn, moet je toch leren over rotatiematrices.
Zoals we al zeiden, kan elke oriëntatie in de ruimte worden weergegeven met een 3×3 rotatiematrix. Bijvoorbeeld een rotatie van α rond de as x , een rotatie van β rond de as y , en een rotatie van γ rond de as z , komen respectievelijk overeen met de volgende drie rotatiematrices:

RR x (0°) R j (0°) R z (0°) =
1.000 0.000 0.000
0.000 1.000 0.000
0.000 0.000 1.000
R x (α ) =
1 0 0
0 cos(α ) −sin(α )
0 sin(α ) cos(α )
 ,
R j (β ) =
cos(β ) 0 sin(β )
0 1 0
−sin(β ) 0 cos(β )
 ,

We zullen naar de bovenstaande matrices verwijzen als basisrotatiematrices . Om het product van basisrotatiematrices te verkrijgen dat overeenkomt met een reeks rotaties, begint u met het schrijven van de basisrotatiematrix die overeenkomt met de eerste rotatie. Als de eerste rotatie bijvoorbeeld rond de x gaat (of x ') as en schrijf dan R x (ψ ), waarbij ψ is de rotatiehoek. Voor elke volgende rotatie, post-vermenigvuldigen (rechts vermenigvuldigen) het huidige resultaat met de volgende rotatiematrix, als de rotatie om een ​​as van het mobiele referentieframe gaat, of pre-vermenigvuldigen (links vermenigvuldigen) het huidige resultaat met de volgende rotatiematrix , als de rotatie om een ​​as van het vaste referentieframe gaat. Gebruik onze applet om het resulterende product van basisrotatiematrices te zien. Bijvoorbeeld de rotatievolgorde x ‘→j ‘→z ' komt overeen met het product RR x (α )R j (β )R z (γ ). De rotatiematrix die overeenkomt met de Euler-hoeken die door Mecademic worden gebruikt, is dus:

R z (γ ) =
cos(γ ) −sin(γ ) 0
sin(γ ) cos(γ ) 0
0 0 1
 .

Daarom moet u voor een bepaalde oriëntatie twee dingen doen:Ten eerste moet u de rotatiematrix vinden die overeenkomt met uw oriëntatie. Ten tweede moet je de Euler-hoeken extraheren met behulp van een paar eenvoudige vergelijkingen. Laten we u eerst twee manieren laten zien om uw rotatiematrix te vinden.
Beschouw het voorbeeld in de onderstaande afbeelding waarin we de rotatiematrix moeten vinden die de oriëntatie van frame F' weergeeft. met betrekking tot frame F . (Bedenk dat we altijd de x vertegenwoordigen as in rood, de y as in groen, en de z as in blauw.)

Hier is het gemakkelijk te zien dat als we een derde referentieframe uitlijnen met de F , die zal fungeren als een mobiel frame, draai dit frame vervolgens om zijn z '-as op θ graden en draai het vervolgens om zijn y '-as op φ graden, krijgen we de oriëntatie van F . De rotatiematrix die we zoeken is dus:

R (αβγ ) =
cos(β )cos(γ ) −cos(β )zonde(γ ) sin(β )
cos(α )zonde(γ ) + sin(α )zonde(β )cos(γ ) cos(α )cos(γ ) − sin(α )zonde(β )zonde(γ ) −sin(α )cos(β )
sin(α )zonde(γ ) − cos(α )zonde(β )cos(γ ) sin(α )cos(γ ) + cos(α )zonde(β )zonde(γ ) cos(α )cos(β )
 .

Als alternatief kunnen we de bovenstaande rotatiematrix rechtstreeks verkrijgen. De eerste, tweede en derde kolom vertegenwoordigen de coördinaten van de eenheidsvectoren langs de xy en z respectievelijke as van frame F' , met betrekking tot frame F .
Nu je de rotatiematrix hebt die de gewenste oriëntatie vertegenwoordigt, hoef je alleen maar het stelsel van negen scalaire trigonometrische vergelijkingen R op te lossen. gewenstR (αβγ ), voor αβ , en γ . Gelukkig heeft dit probleem een ​​generieke oplossing en geven we je gewoon de vergelijkingen die je kunt gebruiken.
Laat de gewenste oriëntatie van een frame F’ ten opzichte van een frame F worden voorgesteld door de volgende rotatiematrix:

R gewenstR z (θ )R j (φ ) =
cos(θ )cos(φ ) −sin(θ ) cos(θ )zonde(φ )
sin(θ )cos(φ ) cos(θ ) sin(θ )zonde(φ )
−sin(φ ) 0 cos(φ )
 .

De Euler-hoeken (in graden), in overeenstemming met de mobiele XYZ-conventie die door Mecademic wordt gebruikt, worden vervolgens verkregen volgens de volgende twee gevallen:
Geval 1: r 1,3 ≠ ±1 (d.w.z. de z’ as van frame F' is niet parallel aan de x as van frame F ).

β = asin(r 1,3 ),   γ = atan2(−r 1,2r 1,1 ),   α = atan2(−r 2,3r 3,3 ).

Geval 2: r 1,3 = ±1 (d.w.z. de z’ as van frame F' is evenwijdig aan de x as van frame F ).

βr 1,3 90°,   γ = atan2(r 2,1r 2,2 ),   α = 0.

In het algemene geval 1 hebben we eigenlijk twee sets oplossingen waarbij alle hoeken in het halfopen bereik liggen (-180°, 180°]. Het is echter nutteloos om beide sets oplossingen te berekenen, dus alleen de eerste wordt gepresenteerd , waarin −90° < β <90°. Merk ook op dat we de functie atan2(y, x) gebruiken in onze oplossing. Houd er rekening mee dat in sommige programmeertalen, in sommige wetenschappelijke rekenmachines en in de meeste spreadsheetsoftware de argumenten van deze functie zijn omgekeerd.
Merk ten slotte op dat geval 2 overeenkomt met een zogenaamde representatie-singulariteit . Deze singulariteit is aanwezig in elke representatie met drie parameters van oriëntatie in 3D-ruimte (niet alleen in Mecademic's keuze van Euler-hoeken). Het is vergelijkbaar met het probleem van het weergeven van punten op een bol door slechts twee parameters. De lengtegraad is bijvoorbeeld niet gedefinieerd op aarde op de zuid- en noordpool van de aarde. Met andere woorden, deze singulariteit heeft niets te maken met de singulariteiten van mechanismen (bijv. de zogenaamde cardanische vergrendeling ), die overeenkomen met daadwerkelijke fysieke problemen (bijvoorbeeld het verlies van een vrijheidsgraad).

Oefening

Beschouw de volgende real-life situatie die bij ons opkwam. We wilden een FISNAR-doseerventiel bevestigen aan de eindeffector van onze Meca500-robotarm. Natuurlijk gaf de ingenieur die de adapter ontwierp en bewerkte niets om Euler-hoeken en was hij alleen bezorgd om de bewerkbaarheid en bereikbaarheid. In zijn ontwerp waren er in wezen twee rotaties van 45°. Ten eerste gebruikte hij twee diametraal tegenover elkaar liggende schroefdraadgaten 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 dispenser 45°.

De afbeelding hierboven toont de daadwerkelijke installatie (links) en het gereedschapsframe (rechts) dat moest worden gedefinieerd. Houd er rekening mee dat bij het gebruik van assymmetrische gereedschappen het gebruikelijk is om de z-as van het gereedschap uit te lijnen met de as van het gereedschap. Dit is vooral handig bij de mobiele XYZ Euler-hoekconventie, aangezien de redutantrotatie rond het assymmetrische 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. verre van singulariteiten).

Terugkerend naar ons voorbeeld, zullen we nu laten zien dat het onmogelijk is om met vallen en opstaan ​​de Euler-hoeken te bedenken volgens de mobiele XYZ-conventie. Voor deze keuze van het gereedschapsreferentieframe kunnen we de uiteindelijke oriëntatie inderdaad weergeven als een reeks van de volgende twee rotaties: RR z (45°)R j (45°). Vanaf hier kunnen we de Euler-hoeken extraheren volgens de mobiele XYZ-conventie met behulp van de eerder beschreven vergelijkingen en verkrijgen:α = −35,264°, β = 30.000°, γ = 54,735°. Ben je er nu van overtuigd dat je Euler-hoeken moet beheersen voor situaties als deze?

Representatieve singulariteiten en oriëntatiefouten

In het geval van de mobiele XYZ Euler-hoekconventie, als de z’ as van frame F' is evenwijdig aan de x as van frame F , zijn er oneindig veel paren van α en γ dat zal dezelfde oriëntatie definiëren. Vanzelfsprekend heb je er maar één nodig om je gewenste oriëntatie te definiëren, dus hebben we willekeurig α ingesteld gelijk aan nul zijn. Meer specifiek, als β = 90°, dan elke combinatie van α en γ , zoals dan α + γ = φ , waarbij φ een willekeurige waarde is, komt overeen met dezelfde oriëntatie en wordt door de controller van Mecademic uitgevoerd als {0,90°,φ}. Evenzo, als β = −90°, dan elke combinatie van α en γ , zodanig dat α − γ = φ , waarbij φ een willekeurige waarde is, komt overeen met dezelfde oriëntatie en wordt door de controller van Mecademic uitgevoerd als {0,−90°,−φ}. Houd er echter rekening mee dat als u de richting van een kader probeert weer te geven F' ten opzichte van een frame F en de z’ as van frame F' is bijna evenwijdig aan de x as van frame F (d.w.z. β ligt zeer dicht bij ± 90 °), zullen de Euler-hoeken erg gevoelig zijn voor numerieke fouten. In such a case, you should enter as many digits after the decimal point as possible when defining the orientation using Euler angles.
Consider the following situation which has caused worries to several users of our Meca500. You set the orientation of the tool reference frame with respect to the world reference frame to {0°, 90°, 0°}, which is a representational singularity. Then you keep this orientation and move the end-effector in space to several positions. At some positions, because of numerical noise, the controller does not detect the condition r 1,3  = ±1 (Case 2, as mentioned above) and calculates the Euler angles as if the orientation did not correspond to a representational singularity. Thus, the controller returns something like {41.345°, 90.001°, −41.345°}, which seems totally wrong and very far away from {0°, 90°, 0°}. Well it’s not.
Unlike position errors, which are measured as √(Δx 2  + Δy 2  + Δz 2 ), orientation errors are not directly related with the variations in the Euler angles, especially close to representational singularities. To better understand this so-called non-Euclidean nature of Euler angles, consider the spherical coordinates used to represent a location on Earth. At the North Pole, the latitude is 90° (North), but what is the longitude? Longitude is not defined at the North Pole, or it can be any value. Now imagine that we move only 1 mm away from the North Pole in the direction of Greenwich. In this case, the latitude will be 89.99999999°, but the longitude will now have the value of 0°. Imagine once again that you return to the North Pole and move 1 mm in the direction of Tokyo. The new longitude will be approximately 140°. Between your two locations, the error in longitude is 140°! However, the real angular error will be approximately 0.00000002°.
The situation described above is similar in all other Euler angles conventions. Depending on the Euler angle convention, the correspoding representation singularity occurs when a specific axis of frame F’  is parallel to another specific axis of frame F . In such a representation singularity, the first and third rotation become dependant.
In conclusion, unless you master Euler angles (or use sophisticated offline programming software), and more specifically the convention used for programming your robot, you will hardly be able to program anything but simple pick and place operations. Because robotics is not simple, we do our best to help you understand the basics.


Op zoek naar industriële automatiseringsonderdelen? Wij kunnen helpen!

WINKEL ONDERDELEN


Automatisering Besturingssysteem

  1. Injection Molding:nieuwe kleine 6-assige robot
  2. Robots bij NPE:sneller, sterker, slimmer
  3. ‘Artistieke’ robot bij NPE
  4. De robots bezig houden
  5. Voordelige, snelle montagerobot
  6. Robotgrijpers geassembleerd in de VS
  7. Robotvragen? Automatisering Antwoorden
  8. Automatisering:opnieuw ontworpen robotlijn
  9. Universele robot ontvangt nieuwe president
  10. Kleine, snelle robot met zes assen
  11. SCARA Robotlijn uitgebreid
R gewenst =
r 1,1 r 1,2 r 1,3
r 2,1 r 2,2 r 2,3
r 3,1 r 3,2 r 3,3
 .