Robot Euler-hoeken: de essentiële primer

Het is moeilijk om je hoofd rond robotrotaties te krijgen, nietwaar? Euler-hoeken zijn een pijn in de nek. Hier is de essentiële inleiding om de pijn weg te nemen.

oriëntaties! Ze laten me gewoon mijn haar uittrekken. Als je ooit de eindpositie van een robot hebt moeten programmeren met behulp van coördinaten en rotaties, weet je waar ik het over heb.

Op het eerste gezicht lijkt het instellen van de pose van de eindeffector van uw robot eenvoudig, nietwaar?

U zegt gewoon “Ik wil het gereedschap van de robot verplaatsen naar dit locatie en ik wil dat het naar binnen wijst dit richting.”

Intuïtief weet u precies welke richting u de tool wilt hebben. Als het echter gaat om het beschrijven van de oriëntatie met behulp van precieze cijfers, wordt deze eenvoudige taak plotseling een puinhoop van verwarring.

Waarom robotoriëntaties moeilijk te begrijpen zijn

Het is gemakkelijk om de X, Y, Z (translationele) coördinaten van het gereedschap van een robot te beschrijven.

Om een ​​vertaling te beschrijven, voert u gewoon de coördinaten in — bijvoorbeeld Punt[X, Y, Z] = [100, 1000, 1500] mm – en er is maar één locatie waarnaar dit zou kunnen verwijzen, ervan uitgaande dat u dezelfde basisreferentie gebruikt. Het kan slechts 100 mm langs de X-as, 1 meter langs de Y-as en 1,5 meter langs de Z-as betekenen.

Maar hoe omschrijf je de oriëntatie van de tool?

Je kan zeggen:
Rotatie[XYZ] = [5, 45, 15]°
je zou echter ook kunnen zeggen (de getallen afronden)
Rot[XY’Z”] = [-7.9, 44.7, 16.2]°
of
Rot[ZY’Z”] = [7.9, 45.2, 5.0]°
of zelfs
Quaternion[q1-q4] = [0.9, -0.1, 0.4, 0.1]

Al deze verwijzen naar exact dezelfde oriëntatie!
Wat het nog verbluffender maakt, is dat verschillende robotfabrikanten verschillende conventies gebruiken. Het kan allemaal een beetje hoofdpijn worden, zelfs als u bekend bent met 3D-geometrie.

Het probleem: we denken gewoon niet in rotaties

Het echte probleem is dat we gewoon niet van nature denken in termen van rotaties.

We begrijpen translatiecoördinaten intuïtief omdat we ze in ons dagelijks leven gebruiken (bijv “Het staat op de tweede plank, vier boeken van links.”). Wanneer we echter een oriëntatie moeten beschrijven, nemen we onze toevlucht tot wijzen met onze vinger en zeggen “Het is in die richting.”

Helaas hebben robots meer precieze informatie nodig dan een vage “het is daar.”

Wat we nodig hebben is een goed begrip van Euler Angles.

Wat zijn Euler-hoeken?

Laten we een stapje terug doen en beginnen bij de basis.

De meest gebruikelijke methode voor het beschrijven van robotoriëntaties zijn Euler-hoeken. Euler Angles bestaat uit drie getallen die elk een rotatie rond één as beschrijven. Er zijn verschillende Euler Angle-conventies, afhankelijk van de volgorde van rotaties.

Laten we dit eerst vereenvoudigen tot een voorbeeld met één as.

Stel je een kompas voor.

Vaak verwijst de Z-as van de wereld naar de as die zich uitstrekt van de lucht naar de grond. Je kunt dus denken aan de naald op een kompas als een rotatie rond de Z-as (genaamd Rot[Z]). Als u het kompas plat voor u houdt en de pijl wijst naar 135°, betekent dit dat het noorden zich over uw linkerschouder bevindt, zodat u momenteel naar het zuidoosten kijkt. Het maakt niet uit waar u het kompas plaatst (op de grond, op uw hoofd, enz.) als het dezelfde oriëntatie heeft, zal de hoek altijd 135° zijn.

Tot nu toe zo eenvoudig.

Ons kompas heeft slechts één rotatiewaarde (dwz Rot[Z]) maar om elke 3D-oriëntatie te beschrijven hebben we drie waarden nodig. Dit is waar het een beetje ingewikkelder begint te worden.

Andere methoden voor het beschrijven van robotoriëntaties zijn Quaternions of Poses (4×4 matrices).

Laten we aan de slag gaan

Vanaf nu is het nuttig voor u om een ​​interactief visueel hulpmiddel te hebben.

Ik raad u een gratis exemplaar van RoboDK aan via deze link, waarmee u heel gemakkelijk referentiekaders kunt visualiseren en de resulterende coördinaten kunt zien.

Start RoboDK en maak een referentieframe met de knop “Referentieframe toevoegen” of door de optie in het programmamenu te selecteren. Je zou een rood, groen en blauw kader in het midden van het scherm moeten zien verschijnen.

U kunt het kader als volgt roteren: houd de Alt-toets ingedrukt en klik en sleep vervolgens een van de gebogen pijlen die verschijnen.

Hoe een vliegtuig te besturen

Laten we de analogie van een vliegtuig gebruiken, zoals heel duidelijk beschreven op het robotforum.

Stel je voor dat het referentieframe een vlak is. De punt van de rechte, rode pijl (de X-as) is de punt van zijn neuskegel en de rechte, groene pijl (de Y-as) is zijn linkervleugel.

In dit geval heeft het verplaatsen van de gebogen pijlen de volgende functies:

  • Gebogen rode pijl = rotten[X]: De rol van het vliegtuig, waardoor het vliegtuig rond zijn horizontale as kan draaien.
  • Gebogen groene pijl = rotten[Y]: De Pitch van het vliegtuig, die de neuskegel omhoog of omlaag wijst.
  • Gebogen blauwe pijl = rotten[Z]: De gier van het vliegtuig, die de richting bepaalt waarin het vliegtuig gaat.

Als de piloot wilde dat het vliegtuig geleidelijk naar links en naar beneden zou draaien, zou het vliegtuig niet alleen op de Z-as draaien – zo werken vliegtuigen niet.

In plaats daarvan zou het vliegtuig:

  1. Zet zijn neuskegel naar beneden: Rot[Y]
  2. Rol het vliegtuig naar links: -Rot[X]
  3. Gier naar links: Rot[Z]

Deze hele beweging zou worden voorgesteld als Rot[XYZ]. Probeer het frame zelf een beetje te verplaatsen in RoboDK totdat u vertrouwd bent met deze concepten.

Dubbelklik vervolgens op de naam van het frame in de linkerbovenhoek van het hoofdvenster om het paneel “Frame Details” te openen.

Eén oriëntatie, meerdere mogelijke rotaties

Probeer met RoboDK de volgende taken.

Stel voor elke taak het frame opnieuw in door het menupictogram “hamburger” (drie horizontale lijnen) in het deelvenster Framedetails te openen en “Reset (identiteit instellen)” te selecteren.

  1. Selecteer het vervolgkeuzemenu boven de coördinaten en kies de Stäubli-rotatie (X->Y’->Z”) in plaats van Generiek.
  2. Draai het frame zodat blauw (Z) naar beneden wijst en rood (X) naar achteren wijst (dwz ze zijn allebei omgedraaid vanuit hun startpositie en groen (Y) is hetzelfde als de startpositie), maar doe dit alleen door te draaien over de Y-as.
  3. Stel het frame opnieuw in en verplaats het vervolgens opnieuw naar dezelfde rotatie. Gebruik deze keer echter slechts één Z-rotatie en vervolgens één X-rotatie.
  4. Stel het frame opnieuw in en verplaats het vervolgens opnieuw naar dezelfde rotatie. Gebruik deze keer echter slechts één X-rotatie en vervolgens één Z-rotatie.

Zoals je kunt zien, kan er meer dan één manier zijn om dezelfde oriëntatie te bereiken.

De eerste methode zouden we Rot kunnen noemen[Y], omdat het alleen een rotatie om de Y-as omvat. De tweede methode zouden we Rot kunnen noemen[Z, X’], aangezien het één rotatie om de Z-as en één rotatie om de nieuwe X-as omvat. De derde zouden we Rot noemen[X, Z’]. Het prime-symbool betekent dat de rotatie plaatsvindt ten opzichte van de laatste beweging in plaats van de statische assen.

Dit is het fundamentele concept achter Euler-hoeken. U kunt een frame op meerdere manieren naar dezelfde richting roteren door de volgorde van de assen en rotaties te wijzigen.

Verschillende robotfabrikanten hebben gekozen voor verschillende combinaties van rotaties. Stäubli gebruikt bijvoorbeeld een XY’Z”-conventie, Adept gebruikt een ZY’Z”-conventie, KUKA gebruikt een ZY’X”-conventie en Fanuc & Motoman gebruiken XYZ-conventie. Aan de andere kant gebruikt ABB Quaternion en gebruikt Universal Robots een oriëntatievector. Maar alle conventies kunnen worden gebruikt om elke oriëntatie in de ruimte weer te geven.

U vindt meer informatie in de documentatie van RoboDK.

Test verschillende robotconventies

Hopelijk begint dit zin te krijgen. Dit is echter nog maar het begin. Om de Euler-hoekconventies in RoboDK echt onder de knie te krijgen, vind ik het handig om met de software te spelen volgens deze handleiding.

U kunt het effect van uw rotaties in cijfers zien in de lichtblauwe, paarse en gele vakken in het deelvenster “Framedetails”.

Standaard wordt de algemene XYZ-conventie gekozen voor nieuwe referentieframes. Probeer verschillende robotfabrikanten te selecteren in het vervolgkeuzemenu boven de gekleurde vakken. Probeer numerieke waarden in de vakken in te voeren om hun effecten op het referentiekader te zien.

About admin

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *