Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Sistem Kontrol Otomatisasi

Menghitung Sudut Euler pada Robot 6 sumbu


Bagaimana orientasi dalam ruang direpresentasikan dengan sudut Euler?

Jika Anda menggunakan lengan robot enam sumbu, seperti Meca500 milik Mecademic yang digunakan dalam tutorial ini sebagai contoh, kemungkinan besar Anda tertarik untuk memposisikan alatnya (end-effector ) dalam berbagai orientasi. Dengan kata lain, Anda harus dapat memprogram robot Anda untuk menggerakkan end-effector ke posisi yang diinginkan DAN orientasi yang diinginkan (yaitu, ke pose yang diinginkan ). Tentu saja, Anda selalu dapat menggerakkan end-effector robot Anda atau memandunya dengan tangan kira-kira ke pose yang diinginkan, tetapi ini disebut metode pemrograman online membosankan dan sangat tidak tepat. Jauh lebih efisien untuk menghitung dan menentukan pose yang Anda inginkan secara offline. Selain itu, untuk menentukan kerangka referensi alat terkait dengan end-effector Anda (seperti pada gambar yang ditampilkan di sini), Anda perlu menghitung pose kerangka referensi alat tersebut sehubungan dengan bingkai referensi flensa .
Dalam ruang 3D, Anda memerlukan minimal enam parameter untuk menentukan pose. Misalnya, posisi end-effector robot, atau lebih tepatnya  TCP (titik pusat alat ), biasanya didefinisikan sebagai xy dan z koordinat asal kerangka referensi alat sehubungan dengan kerangka referensi dunia . Tapi bagaimana Anda mendefinisikan orientasi dalam ruang?

Representasi orientasi dalam ruang adalah masalah yang kompleks. Teorema rotasi Euler menyatakan bahwa, dalam ruang (3D), setiap perpindahan benda tegar sedemikian rupa sehingga sebuah titik pada benda tegar tetap tetap setara dengan satu putaran terhadap sumbu yang melewati titik tetap. Dengan demikian, rotasi tersebut dapat dijelaskan oleh tiga parameter independen:dua untuk menggambarkan sumbu dan satu untuk sudut rotasi. Orientasi dalam ruang, bagaimanapun, dapat direpresentasikan dalam beberapa cara lain, masing-masing dengan kelebihan dan kekurangannya sendiri. Beberapa representasi ini menggunakan lebih dari tiga parameter minimum yang diperlukan.

Cara paling umum untuk mengubah koordinat posisi dari satu kerangka referensi Cartesian (3D), F , ke yang lain, F’ , adalah matriks rotasi . Oleh karena itu, matriks 3×3 ini dapat digunakan untuk merepresentasikan orientasi kerangka acuan F’ sehubungan dengan kerangka acuan F . Namun, representasi ini, meskipun seringkali diperlukan seperti yang akan kita temukan nanti, bukanlah cara yang ringkas dan intuitif untuk menentukan orientasi.
Cara lain yang jauh lebih ringkas untuk menentukan orientasi adalah angka empat . Bentuk representasi ini terdiri dari vektor yang dinormalisasi dari empat skalar. Angka empat umumnya digunakan dalam pengontrol robot, karena tidak hanya lebih kompak daripada matriks rotasi, tetapi juga kurang rentan terhadap kesalahan aproksimasi. Selain itu, selama interpolasi antara dua orientasi yang berbeda, elemen dari quaternion terus berubah, menghindari diskontinuitas yang melekat pada parameterisasi tiga dimensi seperti sudut Euler. Namun demikian, angka empat jarang digunakan sebagai sarana komunikasi antara pengguna dan pengontrol robot karena tidak intuitif.

Definisi detail sudut Euler

Sejauh ini, cara yang paling umum untuk mengomunikasikan orientasi di ruang angkasa kepada pengguna, atau untuk memungkinkan pengguna menentukan orientasi, dalam perangkat lunak CAD atau pengontrol robot, adalah penggunaan sudut Euler . Karena istilah sudut Euler sering disalahgunakan, kami telah menyiapkan tutorial interaktif ini.

Sudut Euler adalah satu set (atau lebih tepatnya urutan) dari tiga sudut, yang dapat dilambangkan misalnya dengan αβ , dan γ . (Seringkali, sudut Euler dilambangkan dengan gulungannada , dan yaw .) Sudut Euler didefinisikan sebagai berikut:Pertimbangkan dua kerangka referensi 3D tangan kanan Cartesian, yang salah satunya akan disebut sebagai tetap frame dan yang lainnya akan disebut sebagai ponsel bingkai. Dua kerangka acuan awalnya bertepatan. Untuk menentukan orientasi bingkai ketiga (ketiga bingkai memiliki asal yang sama), bingkai seluler dibawa, dalam urutan yang ditunjukkan di bawah, bertepatan dengan bingkai ketiga dengan memutar bingkai seluler

  1. tentang  xy , atau z sumbu bingkai tetap atau x’y’ , atau z’ bingkai seluler, oleh α derajat,
  2. lalu tentang  xy , atau z sumbu bingkai tetap atau x’y’ , atau z’ bingkai seluler, oleh β derajat,
  3. dan terakhir tentang  xy , atau z sumbu bingkai tetap atau x’y’ , atau z’ bingkai seluler, oleh γ derajat.

Urutan di mana tiga rotasi dilakukan adalah penting. Jadi, kami memiliki total 216 (6 3 ) urutan yang mungkin: xyzyyzzyz , x’→yz , y’→yz , z’→yz , Dan seterusnya. Namun, urutan tiga rotasi di mana dua rotasi berturut-turut memiliki sumbu yang sama (mis., yyz ) tidak dapat menggambarkan orientasi umum. Selain itu, sebelum rotasi pertama, x bertepatan dengan x ', y bertepatan dengan y ', dan z bertepatan dengan z '. Akibatnya, dari semua 216 kombinasi ini, hanya ada dua belas rangkaian urutan rotasi unik yang bermakna, atau dua belas konvensi sudut Euler :XYX, XYZ, XZX, XZY, YXY, YXZ, YZX, YZY, ZXY, ZXZ, ZYX, ZYZ.
Konon, masing-masing dari dua belas kombinasi setara dengan tiga urutan lainnya. Dengan kata lain, setiap konvensi sudut Euler dapat dijelaskan dalam empat cara berbeda. Misalnya, ZYX konvensi setara dengan urutan zyxx ‘→y ‘→z ', yz ‘→x dan yxz '. Untungnya, tidak ada yang menjelaskan sudut Euler dengan urutan di mana beberapa rotasi tentang sumbu bingkai bergerak dan yang lainnya tentang sumbu tetap (mis., urutan seperti yz ‘→x dan yxz ').
Jadi, sementara ada dua belas konvensi sudut Euler yang berbeda, masing-masing biasanya dijelaskan dalam dua cara yang berbeda:baik sebagai urutan rotasi terhadap sumbu bingkai tetap atau sebagai urutan rotasi terhadap sumbu bingkai seluler. Oleh karena itu, berbicara tentang konvensi tetap dan seluler akan nyaman, meskipun keduanya setara. Misalnya, konvensi sudut tetap XYZ Euler dijelaskan oleh xyz urutan, sedangkan konvensi sudut ZYX Euler seluler dijelaskan oleh z’y’x’ urutan, tetapi keduanya setara, seperti yang akan kita lihat nanti.
Dalam robotika, FANUC dan KUKA menggunakan konvensi sudut XYZ Euler tetap, sedangkan ABB menggunakan konvensi sudut ZYX Euler seluler. Selain itu, Kawasaki, Omron Adept Technologies, dan Stäubli menggunakan konvensi sudut seluler ZYZ Euler. Terakhir, sudut Euler yang digunakan di CATIA dan SolidWorks dijelaskan oleh konvensi sudut ZYZ Euler seluler.

Di Mecademic, kami menggunakan konvensi sudut XYZ Euler seluler, dan karena itu menjelaskan sudut Euler sebagai deret x ‘→y ‘→z '. Mengapa harus berbeda? Alasannya adalah kami dulu menawarkan gripper mekanis untuk menangani benda kerja aksisimetris (lihat video), yang digerakkan oleh motor sambungan 6. Robot enam sumbu yang dilengkapi dengan gripper seperti itu hanya dapat mengontrol dua derajat kebebasan rotasi, atau lebih khusus arah sumbu sambungan 6, yaitu arah sumbu simetri benda kerja. Dalam konvensi sudut Euler yang dipilih, sudut α dan β tentukan arah ini, sedangkan sudut γ diabaikan karena sesuai dengan rotasi parasit yang tidak dapat dikendalikan.
Aplet kami di bawah ini akan membantu Anda memahami sudut Euler. Anda dapat memilih salah satu dari dua belas kemungkinan konvensi sudut Euler dengan mengklik kotak x, y, dan z dari rotasi pertama, kedua, dan ketiga. (Urutan sudut Euler default adalah yang digunakan oleh Mecademic.) Untuk beralih di antara rotasi sumbu bingkai tetap atau bergerak, Anda perlu mengklik dua kali salah satu dari sembilan kotak ini. Sumbu bingkai tetap digambar dengan warna abu-abu sedangkan sumbu bingkai bergerak berwarna hitam. Sumbu x dan x ' digambar dengan warna merah, y dan y ' dalam warna hijau, dan z dan z ' dengan warna biru. Meluncur di sepanjang salah satu dari tiga panah horizontal biru dengan mouse Anda akan mengubah sudut Euler yang sesuai. Alternatifnya, Anda dapat langsung mengatur nilai sudut Euler (dalam derajat) di kotak teks yang sesuai di bawah panah. Terakhir, Anda dapat menyeret mouse ke bingkai referensi untuk mengubah sudut pandang.


α :

β :

γ :

RR x (0°) R y (0°) R z (0°) =
1.000 0,000 0,000
0,000 1.000 0,000
0,000 0,000 1.000

Menghitung sudut Euler melalui matriks rotasi

Dengan applet di atas, Anda akan melihat orientasi bingkai seluler sehubungan dengan bingkai tetap, untuk sekumpulan sudut Euler tertentu, di subgambar paling kanan. Sayangnya, bagaimanapun, dalam praktiknya, situasinya biasanya sebaliknya. Anda sering memiliki dua kerangka acuan, dan ingin mencari sudut Euler yang menggambarkan orientasi satu kerangka terhadap kerangka lainnya.
Untuk orientasi di mana setidaknya dua sumbu sejajar, Anda dapat mencoba menebak Euler sudut dengan coba-coba. Misalnya, lihat kembali gambar di awal tutorial ini dan coba temukan sudut Euler yang digunakan oleh Mecademic yang menentukan orientasi bingkai referensi alat yang terkait dengan gripper, sehubungan dengan bingkai referensi flensa. Jawabannya adalah α = −90°, β = 0°, γ = −90°. Tidak begitu mudah untuk mendapatkannya, bukan? Oleh karena itu, agar lebih efisien, Anda harus belajar tentang matriks rotasi.
Seperti yang telah kami sebutkan, setiap orientasi dalam ruang dapat direpresentasikan dengan matriks rotasi 3×3. Misalnya, rotasi α tentang sumbu x , rotasi β tentang sumbu y , dan rotasi γ tentang sumbu z , masing-masing sesuai dengan tiga matriks rotasi berikut:

R x (α ) =
1 0 0
0 cos(α ) −sin(α )
0 sin(α ) cos(α )
 ,
R y (β ) =
cos(β ) 0 sin(β )
0 1 0
−sin(β ) 0 cos(β )
 ,
R z (γ ) =
cos(γ ) −sin(γ ) 0
sin(γ ) cos(γ ) 0
0 0 1
 .

Kita akan merujuk matriks di atas sebagai matriks rotasi dasar . Untuk mendapatkan perkalian matriks rotasi dasar yang sesuai dengan urutan rotasi, mulailah dengan menuliskan matriks rotasi dasar yang sesuai dengan rotasi pertama. Misalnya, jika rotasi pertama adalah tentang x (atau x '), lalu tulis R x (ψ ), di mana ψ adalah sudut rotasi. Untuk setiap rotasi berikutnya, kalikan-belakang (kalikan-kanan) hasil saat ini dengan matriks rotasi berikutnya, jika rotasi adalah sekitar sumbu kerangka acuan bergerak, atau kalikan-sebelumnya (kalikankan-kiri) hasil saat ini dengan matriks rotasi berikutnya , jika rotasinya terhadap sumbu kerangka acuan tetap. Gunakan applet kami untuk melihat produk yang dihasilkan dari matriks rotasi dasar. Misalnya, urutan rotasi x ‘→y ‘→z ‘ sesuai dengan produk RR x (α )R y (β )R z (γ ). Jadi, matriks rotasi yang sesuai dengan sudut Euler yang digunakan oleh Mecademic adalah:

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

Oleh karena itu, untuk orientasi tertentu, Anda perlu melakukan dua hal:Pertama, Anda perlu mencari matriks rotasi yang sesuai dengan orientasi Anda. Kedua, Anda perlu mengekstraksi sudut Euler menggunakan beberapa persamaan sederhana. Mari kita tunjukkan dua cara untuk menemukan matriks rotasi Anda.
Perhatikan contoh yang ditunjukkan pada gambar di bawah di mana kita perlu menemukan matriks rotasi yang mewakili orientasi bingkai F’ sehubungan dengan bingkai F . (Ingat bahwa kita selalu mewakili x sumbu berwarna merah, y sumbu berwarna hijau, dan z sumbu berwarna biru.)

Di sini, mudah untuk melihat bahwa jika kita menyelaraskan kerangka referensi ketiga dengan F , yang akan berfungsi sebagai bingkai seluler, lalu putar bingkai ini di sekitar z-nya ‘ sumbu pada θ derajat, lalu putar sekitar y ‘ sumbu pada φ derajat, kita akan mendapatkan orientasi F . Jadi, matriks rotasi yang kita cari adalah:

R diinginkanR z (θ )R y (φ ) =
cos(θ )cos(φ ) −sin(θ ) cos(θ )sin(φ )
sin(θ )cos(φ ) cos(θ ) sin(θ )sin(φ )
−sin(φ ) 0 cos(φ )
 .

Sebagai alternatif, kita dapat memperoleh matriks rotasi di atas secara langsung. Kolom pertama, kedua, dan ketiga mewakili koordinat vektor satuan di sepanjang xy dan z sumbu, masing-masing, dari bingkai F’ , sehubungan dengan bingkai F .
Sekarang setelah Anda memiliki matriks rotasi yang mewakili orientasi yang diinginkan, Anda hanya perlu menyelesaikan sistem persamaan trigonometri sembilan skalar R diinginkanR (αβγ ), untuk αβ , dan γ . Untungnya, masalah ini memiliki solusi umum dan kami hanya akan memberi Anda persamaan untuk digunakan.
Biarkan orientasi bingkai yang diinginkan F’ sehubungan dengan bingkai F diwakili oleh matriks rotasi berikut:

R diinginkan =
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
 .

Sudut Euler (dalam derajat), sesuai dengan konvensi seluler XYZ yang digunakan oleh Mecademic, kemudian diperoleh menurut dua kasus berikut:
Kasus 1: r 1,3 ≠ ±1 (yaitu, z’ sumbu bingkai F’ tidak sejajar dengan x sumbu bingkai F ).

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

Kasus 2: r 1,3 = ±1 (yaitu, z’ sumbu bingkai F’ sejajar dengan x sumbu bingkai F ).

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

Dalam Kasus 1 umum, sebenarnya kita memiliki dua rangkaian solusi yang semua sudutnya berada dalam rentang setengah terbuka (−180°, 180°). Namun, tidak ada gunanya menghitung kedua rangkaian solusi, jadi hanya yang pertama yang disajikan , di mana −90° < β < 90°. Perhatikan juga bahwa kami menggunakan fungsi atan2(y, x) dalam solusi kami. Perhatikan bahwa dalam beberapa bahasa pemrograman, di beberapa kalkulator ilmiah, dan di sebagian besar perangkat lunak spreadsheet, argumen fungsi ini terbalik.
Terakhir, perhatikan bahwa Kasus 2 sesuai dengan apa yang disebut singularitas representasi . Singularitas ini hadir dalam representasi orientasi tiga parameter apa pun dalam ruang 3D (tidak hanya dalam pilihan sudut Euler Mecademic). Ini mirip dengan masalah merepresentasikan titik pada bola hanya dengan dua parameter. Misalnya, bujur tidak ditentukan di Bumi di Kutub Selatan dan Utara di Bumi. Dengan kata lain, singularitas ini tidak ada kaitannya dengan singularitas mekanisme (mis., yang disebut kunci gimbal ), yang sesuai dengan masalah fisik aktual (mis., hilangnya derajat kebebasan).

Latihan

Pertimbangkan situasi kehidupan nyata berikut yang terjadi pada kita. Kami ingin memasang katup pengeluaran FISNAR ke end-effector lengan robot Meca500 kami. Secara alami, insinyur yang mendesain dan membuat adaptor tidak peduli dengan sudut Euler dan hanya peduli dengan kemampuan mesin dan jangkauan. Dalam rancangannya, pada dasarnya ada dua putaran 45°. Pertama, dia menggunakan dua lubang ulir yang berlawanan secara diametris pada flensa robot untuk memasang adaptor, yang menyebabkan putaran pertama sebesar 45°. Kedua, sudut antara bidang antarmuka flensa dan sumbu dispenser adalah 45°.

Gambar di atas menunjukkan instalasi aktual (kiri) dan rangka alat (kanan) yang perlu ditentukan. Perhatikan bahwa saat menggunakan pahat sumbu-simetris, merupakan praktik umum untuk menyejajarkan sumbu z pahat dengan sumbu pahat. Ini sangat berguna dengan konvensi sudut XYZ Euler seluler, karena rotasi redutan di sekitar pahat sumbu-simetris sesuai dengan sudut Euler ketiga, γ. Jadi, dua sudut Euler pertama menentukan sumbu alat, sedangkan yang ketiga dapat digunakan untuk memilih konfigurasi robot yang optimal (yaitu, jauh dari singularitas).

Kembali ke contoh kami, kami akan menunjukkan sekarang bahwa tidak mungkin menghasilkan sudut Euler menurut konvensi XYZ seluler dengan coba-coba. Memang, untuk pilihan kerangka referensi pahat ini, kita dapat menyatakan orientasi akhir sebagai urutan dari dua putaran berikut: RR z (45°)R y (45°). Dari sini, kita dapat mengekstraksi sudut Euler menurut konvensi seluler XYZ menggunakan persamaan yang dijelaskan sebelumnya dan memperoleh: α = −35,264°, β = 30.000°, γ = 54,735°. Apakah Anda sekarang yakin bahwa Anda memang perlu menguasai sudut pandang Euler untuk situasi seperti ini?

Singularitas representasi dan kesalahan orientasi

Dalam kasus konvensi sudut XYZ Euler seluler, jika z’ sumbu bingkai F’ sejajar dengan x sumbu bingkai F , ada pasangan tak terbatas dari α dan γ yang akan menentukan orientasi yang sama. Jelas, Anda hanya memerlukan satu untuk menentukan orientasi yang diinginkan, jadi kami telah menyetel α secara sewenang-wenang menjadi sama dengan nol. Lebih khusus lagi, jika β = 90°, lalu kombinasi apa pun dari α dan γ , seperti α + γ = φ , di mana φ adalah nilai apa pun, akan sesuai dengan orientasi yang sama, dan dikeluarkan oleh pengontrol Mecademic sebagai {0,90°,φ}. Demikian pula, jika β = −90°, lalu kombinasi apa pun dari α dan γ , sehingga α − γ = φ , di mana φ adalah nilai apa pun, akan sesuai dengan orientasi yang sama, dan dikeluarkan oleh pengontrol Mecademic sebagai {0,−90°,−φ}. Namun, perhatikan bahwa jika Anda mencoba merepresentasikan orientasi bingkai F’ sehubungan dengan bingkai F dan z’ sumbu bingkai F’ hampir sejajar dengan x sumbu bingkai F (yaitu, β sangat dekat dengan ±90°), sudut Euler akan sangat sensitif terhadap kesalahan numerik. 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.


Looking For Industrial Automation Parts? We Can Help!

SHOP PARTS


Sistem Kontrol Otomatisasi

  1. Injection Moulding:Robot 6 Sumbu Kecil Baru
  2. Robot di NPE:Lebih Cepat, Lebih Kuat, Lebih Cerdas
  3. Robot ‘Artistik’ Di NPE
  4. Membuat Robot Sibuk
  5. Robot Perakitan Berbiaya Rendah dan Berkecepatan Tinggi
  6. Robot Grippers Dirakit di AS
  7. Pertanyaan Robot? Jawaban Otomatisasi
  8. Otomasi:Garis Robot Didesain Ulang
  9. Robot Universal Menerima Presiden Baru
  10. Robot Enam Sumbu Kecil yang Cepat