Robot Euler-hoeken Beheersen: Een Uitgebreide Gids
Het is lastig om uw hoofd om robotrotaties te krijgen, nietwaar? Euler-hoeken zijn een pijn in de nek. Hier is de essentiële primer om de pijn weg te nemen.
Orientaties! Ze laten me mijn haar uittrekken. Als u ooit de eindpose van een robot heeft moeten programmeren met coördinaten en rotaties, weet u waar ik het over heb.
Op het eerste gezicht lijkt het instellen van de pose van uw robot-eind-effector simpel, nietwaar?
U zegt simpelweg: "Ik wil de robotgereedschap naar deze locatie bewegen en ik wil dat het in deze richting wijst."
Intuitief weet u precies welke orientatie u wilt dat het gereedschap heeft. Maar wanneer het aankomt op het beschrijven van de orientatie met precieze cijfers, wordt deze simpele taak plotseling een warboel van verwarring.
Waarom Robotoriëntaties Moeilijk Te Begrijpen Zijn
Het is makkelijk om de X, Y, Z (translatie) coördinaten van een robotgereedschap te beschrijven.
Om een translatie te beschrijven, voert u simpelweg de coördinaten in — bijv. Punt[X, Y, Z] = [100, 1000, 1500] mm — en er is slechts één locatie waar dit naar kan verwijzen, mits u dezelfde basisfreferentie gebruikt. Het kan alleen 100 mm langs de X-as, 1 meter langs de Y-as en 1,5 meter langs de Z-as betekenen.
Maar hoe beschrijft u de oriëntatie van het gereedschap?
U kunt zeggen:
Rotatie[XYZ] = [5, 45, 15]°
maar u kunt ook zeggen (cijfers afgerond)
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 precies dezelfde oriëntatie!
Wat het nog meer verwardend 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 Simpelweg Niet in Rotaties
Het echte probleem is dat we natuurlijk niet in termen van rotaties denken.
We begrijpen translatiecoördinaten intuïtief omdat we ze in het dagelijks leven gebruiken (bijv. "Het staat op de tweede plank naar beneden, vier boeken vanaf links."). Maar wanneer we een oriëntatie moeten beschrijven, grijpen we naar wijzen met onze vinger en zeggen "Het is in die richting."
Helaas hebben robots nauwkeurigere informatie nodig dan een vaag "het is ergens daar."
Wat we nodig hebben is een solid begrip van Euler-hoeken.
Wat Zijn Euler-hoeken?
Laten we een stap teruggaan en beginnen met de basis.
De meest voorkomende methode voor het beschrijven van robotoriëntaties zijn Euler-hoeken. Euler-hoeken bestaan uit drie getallen die elk een rotatie om één as beschrijven. Er zijn verschillende Euler-hoekconventies, afhankelijk van de volgorde van rotaties.
Eerst laten we dit vereenvoudigen tot een één-as voorbeeld.
Stel u een kompas voor.
Vaak verwijst de wereld Z-as naar de as die zich uitstrekt van de hemel naar de grond. Dus u kunt de naald op een kompas zien als een rotatie om de Z-as (Rot[Z] genoemd). Wanneer u het kompas plat voor u houdt en de pijl wijst naar 135°, betekent dit dat het noorden over uw linkerschouder is, dus u kijkt momenteel naar zuidoost. Het maakt niet uit waar u het kompas plaatst (op de vloer, op uw hoofd, etc.), als het dezelfde oriëntatie heeft, zal de hoek altijd 135° zijn.
Tot nu toe, zo simpel.
Ons kompas heeft slechts één rotatiewaarde (d.w.z. Rot[Z]), maar om een willekeurige 3D-oriëntatie te beschrijven hebben we drie waarden nodig. Hier begint het ingewikkelder te worden.
Andere methoden voor het beschrijven van robotoriëntaties zijn Quaternions of Poses (4×4 matrices).
Laten We Handmatig Aan De Slag
Vanaf nu zal het handig zijn om een interactieve visuele hulpmiddel te hebben.
Ik raad u aan een gratis kopie van RoboDK te downloaden via deze link, wat het heel makkelijk maakt om referentiekaders te visualiseren en de resulterende coördinaten te zien.
Start RoboDK en maak een referentiekader aan met de knop "Add Reference Frame" of selecteer de optie in het Programma-menu. U zou een rood, groen en blauw kader in het midden van het scherm moeten zien.
U kunt het kader als volgt roteren: houd de Alt-toets ingedrukt, klik dan en sleep een van de gebogen pijlen die verschijnen.
Hoe Een Vliegtuig Te Vliegen
Laten we de analogie van een vliegtuig gebruiken, zoals heel duidelijk beschreven op robot-forum.
Stel u het referentiekader voor als een vliegtuig. De punt van de rechte rode pijl (de X-as) is de punt van de neus en de rechte groene pijl (de Y-as) is de linkervleugel.
In dit geval dienen de gebogen pijlen de volgende functies:
- Gebogen rode pijl = Rot[X]: De rol van het vliegtuig, wat het toestaat om te draaien om zijn horizontale as.
- Gebogen groene pijl = Rot[Y]: De pitch van het vliegtuig, wat de neus omhoog of omlaag wijst.
- Gebogen blauwe pijl = Rot[Z]: De gier van het vliegtuig, wat de richting bepaalt waarin het vliegtuig vliegt.
Als de piloot het vliegtuig langzaam links en naar beneden wilde laten draaien, zou het vliegtuig niet gewoon op de Z-as draaien — dat is niet hoe vliegtuigen werken.
In plaats daarvan zou het vliegtuig:
- Zijn neus omlaag kantelen: Rot[Y]
- Het vliegtuig naar links rollen: -Rot[X]
- Naar links gieren: Rot[Z]
Deze gehele beweging zou worden voorgesteld als Rot[XYZ]. Probeer het kader zelf een beetje in RoboDK te bewegen totdat u comfortabel bent met deze concepten.
Dubbelklik vervolgens op de naam van het kader linksboven in het hoofdvenster om het paneel "Frame Details" te openen.
Eén Oriëntatie, Verschillende Mogelijke Rotaties
Met RoboDK, probeer de volgende taken.
Voor elke taak, reset het kader door het "hamburger" menu-icoon (drie horizontale lijntjes) in het Frame Details-paneel te openen en "Reset (set identity)" te selecteren.
- Selecteer het dropdown-menu boven de coördinaten en kies de Stäubli-rotatie (X→Y'→Z'') in plaats van Generic.
- Draai het kader zodat blauw (Z) naar beneden wijst en rood (X) naar achteren wijst (d.w.z. ze zijn allebei omgekeerd van hun startpositie en groen (Y) is hetzelfde als de startpositie), maar doe dit alleen door te draaien om de Y-as.
- Reset het kader en beweeg het weer naar dezelfde rotatie. Maar deze keer gebruik slechts één Z-rotatie en daarna één X-rotatie.
- Reset het kader en beweeg het weer naar dezelfde rotatie. Maar deze keer gebruik slechts één X-rotatie en daarna één Z-rotatie.
Zoals u ziet, kan er meer dan één manier zijn om dezelfde oriëntatie te bereiken.
De eerste methode noemen we Rot[Y], omdat het alleen een rotatie om de Y-as omvat. De tweede methode noemen we Rot[Z, X'], omdat het één rotatie om de Z-as en één rotatie om de nieuwe X-as omvat. De derde noemen we Rot[X, Z']. Het priemteken 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 kader naar dezelfde oriëntatie roteren op meerdere manieren door de volgorde van assen en rotaties te veranderen.
Verschillende robotfabrikanten hebben verschillende combinaties van rotaties gekozen. Bijvoorbeeld, Stäubli gebruikt 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 Universal Robots een oriëntatievector. Maar alle conventies kunnen gebruikt worden om elke oriëntatie in de ruimte voor te stellen.
Verschillende Robotconventies Testen
Hopelijk begint dit nu zin te krijgen. Echter, dit is slechts het begin. Om de Euler-hoekconventies in RoboDK echt te beheersen, vind ik het nuttig om met de software te experimenteren volgens deze gids.
U kunt het effect van uw rotaties in getallen zien in de lichtblauwe, paarse en gele vakjes in het "Frame Details"-paneel.
Standaard wordt de Generic XYZ-conventie gekozen voor nieuwe referentiekaders. Probeer verschillende robotfabrikanten te selecteren in het dropdown-menu boven de gekleurde vakjes. Probeer numerieke waarden in de vakjes in te voeren om hun effect op het referentiekader te zien.
Voor een diepgang tutorial over Euler-hoeken kan ik ook deze pagina van Mecademic aanbevelen.
Industriële robot
- Archimedes: De Emotie-Detecterende AI Robot Uil
- Euler-hoeken beheersen voor nauwkeurige 6-as robotbesturing
- Robotvisie in de Industrie: Van Visie naar Zelf-Programmering
- Wat Is Een Zelf-Programmerende Robot En Waarom Het Belangrijk Is
- Efficiëntie Maximeren: Waarom Ervaren Robotoperators Essentieel Zijn
- Robotica in de productie: een bewezen evolutie van efficiëntie en innovatie
- Robotlassen Beheersen: Een Eenvoudige Gids voor Foutloze Resultaten
- Robotbandtransport Simuleren: Bewezen Best Practices
- Robotautomatisering Inzetten voor Efficiëntie in de Papierindustrie
- Hoe de beste robotpicksoftware te kiezen voor efficiënte automatisering
- Fanuc P-250iA Coating Robot: Ongekende dekking, precisie & efficiëntie