Lapres invers kinematika robot planar 2 dof

12
Invers Kinematika Robot Planar 2 Dof Dalam fisika, kinematika adalah cabang dari mekanika yang membahas gerakan benda tanpa mempersoalkan gaya penyebab gerakan. Hal terakhir ini berbeda dari dinamika atau sering disebut dengan Kinetika, yang mempersoalkan gaya yang memengaruhi gerakan. Karena relatif sederhana, kinematika biasanya diajarkan sebelum dinamika atau sebelum konsep mengenai gaya diperkenalkan. Kinematika biasanya dibagi dalam dua hal, yakni forward kinematics dan inverse kinematics. Kinematika Forward adalah perhitungan posisi dan orientasi end of effector [EoE] robot sebagai fungsi dari sudut joint. Hal ini banyak digunakan dalam robotika, permainan komputer, dan animasi. Proses sebaliknya dikenal sebagai kinematika invers. FORWARD KINEMATIKA Untuk rantai serial link n, dan biarkan ?i menjadi sudut link i. Mengingat ?0 … ?n, rangka n link relatif ke link 0 adalah: Gambar 1: Robot lengandiatasmenggunakanprinsip- prinsip invers kinematikadalamperencanaangeraknya .

Transcript of Lapres invers kinematika robot planar 2 dof

Page 1: Lapres invers kinematika robot planar 2 dof

Invers Kinematika Robot Planar 2 Dof

Dalam fisika, kinematika adalah cabang dari mekanika yang membahas gerakan benda tanpa mempersoalkan gaya penyebab gerakan. Hal terakhir ini berbeda dari dinamika atau sering disebut dengan Kinetika, yang mempersoalkan gaya yang memengaruhi gerakan.

Karena relatif sederhana, kinematika biasanya diajarkan sebelum dinamika atau sebelum konsep mengenai gaya diperkenalkan. Kinematika biasanya dibagi dalam dua hal, yakni forward kinematics dan inverse kinematics.

Kinematika Forward adalah perhitungan posisi dan orientasi end of effector [EoE] robot sebagai fungsi dari sudut joint. Hal ini banyak digunakan dalam robotika, permainan komputer, dan animasi. Proses sebaliknya dikenal sebagai kinematika invers.

FORWARD KINEMATIKA

Untuk rantai serial link n, dan biarkan ?i menjadi sudut link i. Mengingat ?0 … ?n, rangka n link relatif ke link 0 adalah:

Dimanai ?1Ti(?i) adalah matriks transformasi dari bingkai link i menuju link i – 1.

Gambar 1:Robot lengandiatasmenggunakanprinsip-prinsip invers kinematikadalamperencanaangeraknya.

Page 2: Lapres invers kinematika robot planar 2 dof

Angka di atas adalah skema robot sederhana berbaring pada bidang XY. Robot ini memiliki tiga link masing-masing dengan panjang l1-3. Tiga sendi (lingkaran kecil) menghubungkan tiga link dari robot. Sudut pada masing-masing sendi Ø1-3.Masalah Forward Kinematika dinyatakan sebagai berikut: Mengingat sudut pada setiap sendi robot, di mana tangan robot (Xhand, Yhand, Øhand)?

Untuk robot planar sederhana, solusi untuk masalah forward Kinematika adalah:

Xhand = l1cosØ1 + l2cos(Ø1 + Ø2) + l3cos(Ø1 + Ø2 + Ø3)Yhand = l1sinØ1 + l2sin(Ø1 + Ø2) + l3sin(Ø1 + Ø2 + Ø3)Øhand = Ø1 + Ø2 + Ø3

Untuk kasus ruang lingkup umum, solusinya tidak begitu sepele. Hal ini karena sudut joint (sendi) tidak cukup dengan menambahkan seperti yang mereka lakukan dalam kasus planar.

Denavit dan Hartenberg menggunakan teori screw di tahun 1950 untuk menunjukkan bahwa representasi yang paling kompak transformasi umum antara dua sendi robot diperlukanempat parameter. Inisekarang dikenal sebagai Denavit dan Hartenberg parameter (DH parameter) danmerekaadalah de-facto standar untuk menggambarkan geometri robot.Berikut ini adalah deskripsi dari empat parameter D-H:

a – jarak tegak lurus antara dua sumbu bersama diukur sepanjang saling tegak lurus. Saling tegak lurus ditunjuk sumbu-x.

Gambar2:Skema robot planar pada bidang XY

Gambar3 :Jacques Denavit [kiri] danRichard Hartenberg [kanan]

Page 3: Lapres invers kinematika robot planar 2 dof

a – Putaran yang relative antara dua sumbu bersama diukur dengan saling tegak lurus

d – jarak antara kedua garis tegak diukur sepanjang sumbu sendi

Q – sudut joint(sendi) sekitarsumbu z yang diukur antara dua garis tegak

Belajar prosedur yang tepat untuk menempatkan parameter DH adalah latihan yang khusus di tingkat atas sarjana atau program pascasarjana di robotika.

Setelah parameter telahditetapkan, kitabisamemecahkanmasalah Forward Kinematika dengan memindahkan dari dasar robot ketangan dengan menggunakan transformasi berikut pada setiap sendi:

Transformation = Screwx(a, a)Screwz(d, Q) = Transx(a)Rotx(a)Transz(d)Rotz(Q)

Meskipun parameter DH adalahrepresentasiumum paling kompakpadageometri robot, merekakadangkalaadalahkomputasi yang paling efisien.Dalamprakteknyalebihkhususdankomputasipersamaanefisiendikembangkanuntuksetiap robot tertentu.

Skema di atasadalahbagian planar dari robot SCARA.Berikutpernyataandarimasalah invers kinematika di tingkatposisiuntuk robot ini:

Diketahui : Xhand, Yhand, ØhandCari : Ø1, Ø2 and Ø3B : panjanggarisimajinerq1 : sudutantara X-sumbuimajinerdangarisq2 : interior sudutantaragarisimajinerdan link l1

Page 4: Lapres invers kinematika robot planar 2 dof

Maka kita mempunyai:

B2 = X2 + Y2 (denganteorema Pythagoras) q1 = ATan2(Y/X) q2 = acos[(l12 - l22 + B2)/2l1B] (olehhukumkosinus) Ø1 = q1 + q2 Ø2 = acos[(l12 + l22 - B2)/2l1l2] (olehhukumkosinus) Ø3 = Ø – Ø1 – Ø2

Yang melengkapi solusi untuk Ø1, Ø2 dan Ø3 diberikan X, Y, Ø. Kebanyakan invers kinematika solusi di tingkat posisi dilanjutkan dengan cara yang sama. Dengan menggunakan pengetahuan tentang trigonometri dan geometri, kita dapat merancang sebuah system kerja robot SCARA. Jika kita membayangkan memutar robot SCARA pada sisinya, maka akan terlihat bahwa solusi di atas juga bekerja untuk sebagian besar komponen robot industri yang memiliki enam derajat kebebasan. Solusi inverse kinematika untuk robot kartesian adalah semua sumbu tegak lurus dengan definisi dan karenanya tidak ada sambungan pada gerakan.

Gambar 5: robot SCARA (Selective Compliant Assembly Robot Arm)

Page 5: Lapres invers kinematika robot planar 2 dof

Invers Kinematika Robot Planar 2 DofTujuan :

Mahasiswa dapat memahami prinsip kerja mekanik robot planar 2 dof Memahami cara membangkitkan PWM dengan menggunakan timer 1 pada ATMega

8535Alat dan Bahan :

1 unit Komputer 1 unit DC Power Supply 1 unit Kabel Power 2 unit Kabel jumper (merah dan hitam) 6 unti Kabel Jumper 1 pin 1 unit Modul AVR + LCD 16x2 + input Push Button 1 unit Downloader AVR ISP MKII 1 unti Mekanik Robot Planar

Setting Percobaan :

Kelompok 1 :

1. Eky Arrizal Hamzah (1110121036)2. M. Ishom (1110121038)3. Muh. Dwiki Firdausi (1110121041)

ACC

Page 6: Lapres invers kinematika robot planar 2 dof

Prosedur Percobaan :1. Siapkan peralatan dan komponen yang akan digunakan dalam percobaan. Taruh diatas

meja.2. Sambungkan DC power supply ke sumber tegangan AC dengan menggunakan kabel

power. Nyalakan DC power supply dan atur tegangan output pada 5 volt DC. Sambungkan kabel jumper merah pada output + dan kabel jumper hitam pada output -.

3. Untuk modul AVR, sambungkan PB ke LCD 16x2 dengan menggunakan kabel jumper pin 5x2 DC ke input push button PD5 (OCR1A).

4. Sambungkan output + DC power supply pada input +5 volt dan output – DC power supply pada GND yang ada pada modul AVR.

5. Nyalakan komputer dan buka program AVR dan buat new project dengan cara file – new, kemudian akan muncul kotak dialog yang menunjukkan tipe file maka pilih project dan ok. Selanjutnya pilih tipe chip ATMEL yang akan digunakan untuk percobaan ini.

6. Kemudian akan muncul jendela CodeWizard AVR. Jendela ini dipergunakan untuk men-setting konfigurasi fitur-fitur AVR yang akan kita pergunakan.

7. Pilih tab [Chip] kemudian pilih ATMega 8535 pada menu yang tersedia. Atur clock sesuai dengan nilai xtal yang digunakan. Pada modul ini menggunakan 4.000 MHz.

8. Setelah itu pilih tab [Timer] kemudian atur clock value sebesar 4.000.000 kHz, pilih mode fast PWM Top = OCR1. Untuk opsi out. A pilih inverting, dan B pilih inverting, kemudian isikan pada Inp capture nilai sebesar ffff.

9. Untuk menggunakan LCD 16x2 pilih tab [Alphanumerical LCD] centang “enable alphanumeric support” untuk mengaktifkan fitur ini pada character / line pilih 16 karena percobaan ini menggunakan LCD 16x2. Set connection pada PORT B.

10. Setelah semua fitur yang akan digunakan sudah dipilih, maka selanjutnya men-generate program. Caranya klik program – generate. Save and exit.

11. Tulis program, lakukan build program, lalu program the chip. Jika tidak ada error maka modul siap dijalankan.a. Sudut θ1 dan θ2 praktek dengan memasukkan posisi EoE lalu mengamati sudut yang

terbentuk pada frame robot dan lengan.b. Sudut θ1 dan θ2 teori dengan mengamati output pada LCD 16x2c. Bandingkan hasilnya dan hitung selisih error antara hasil praktek dan teori (program

terlampir)12. Berikut merupakan rumus untuk mencari θ1 dan θ2

13. Berikut adalah program yang kami gunakan

cos θ2 rad = ((xb2 + yb2 – L12 – L22 ) / (2*L1*L2))

sin θ2 rad = (1 – cos2 θ2)1/2

teta 2 rad = acos ((xb2 + yb2 – L12 – L22 ) / (2*L1*L2))

teta 1 rad = atan 2 (yb / xb) – atan 2 ((L2*sin θ2 rad) / (cos θ2 rad))

#include<mega8535.h>

#include<stdio.h>

#include<alcd.h>

#include<math.h>

#include<delay.h>

char [17];int L1=250, L2=250

Page 7: Lapres invers kinematika robot planar 2 dof

Data PercobaanNo. xb t yb t xb p yb p θ1 t θ2 t θ1 p θ2 p Error θ Error EoE

(mm) (mm) (mm) (mm) (°) (°) (°) (°) θ1 (°)

θ2 (°)

x (mm)

y (mm)

1.84,0 420,0 80,3 442,

148,7 54,5 40,0 50,0 8,7 4,5 3,7 22,1

2.170,

0370,0 183,4 363,

232,5 69,3 40,0 70,0 7,5 0,7 13,4 6,8

3.240,

0375,0 254,0 370,

425,1 45,9 30,0 45,0 4,9 0,9 14,0 4,6

4.240,

0410,0 250,4 407,

336,3 37,4 40,0 40,0 6,3 2,6 10,4 2,7

5.275,

0390,0 273,1 384,

038,6 26,5 40,0 20,0 1,4 6,5 1,9 6,0

6.140,

0490,0 133,0 492,

073,2 9,4 80,0 10,0 6,8 0,6 7,0 2,0

7.240,

0380,0 235,0 378,

026,3 47,5 30,0 50,0 3,7 2,5 5,0 2,0

float phi=3.14159;

lcd_init (16);xb=0, yb=0;

while(1){if (PINC.1==1){xb=xb-1; if (xb<=0.0) xb=1E-20;};if (PINC.0==1){xb=xb+1; if (xb=L1+L2) xb=L1+L2;};if (PINC.3==1){xb=yb-1; if (yb<=0.0) xb=1E-20;};if (PINC.2==1){xb=yb+1; if (yb=L1+L2) xb=L1+L2;};

costeta2rad=((pow(xb,2)+pow(yb,2)-pow(L1,2)-pow(L2,2))/(2*L1*L2));sinteta2rad=pow(1-pow(costeta2rad,2),0.5);teta2rad=acos((pow(xb,2)+pow(yb,2)-pow(L1,2-pow(L2,2))/(2*L1*L2));teta1rad=atan2(yb,xb)-atan2(L2*sinteta2rad,L1+L2*costeta2rad);teta1=teta1rad*180/phi;teta2=teta2rad*180/phi;

OCR1A=OCR1A0+((teta1*(teta1(OCR1A90-OCR1A0))/90));OCR1B=OCR1B0+((teta2*(OCR1B0-OCR1B90))/90);

sprintf(kata, “EoE=(%2.1f, %2.1f)” xb,yb);lcd_gotoxy(0,0);lcd_puts(kata);

sprintf(kata, “theta=(%2.1f, %2.1f)” teta1,teta2);lcd_gotoxy(0,1);lcd_puts(kata);delay_ms(20);};

Page 8: Lapres invers kinematika robot planar 2 dof

8.220,

0380,0 213,0 374,

028,7 63,0 30,0 60,0 1,3 3,0 7,0 6,0

9.350,

0300,0 353,0 309,

022,4 37,6 20,0 40,0 2,4 2,4 3,0 9,0

10.120,

0440,0 116,3 437,

451,2 52,4 50,0 60,0 1,2 7,6 3,7 2,6

Error : θ1 = |θ1 t - θ1 p | , θ2 = |θ2 t - θ2 p |Error EoE : xb = | xb t - xb p | , yb = | yb t - yb p |L1 = 250 mmL2 = 250 mm

Tampilan Pada LCD

OCR1A0 = 1940 dec , 794 hexOCR1A90 = 5380 dec , 1504 hexOCR1B0 = 5080 dec , 13d8 hexOCR1B90 = 1300 dec , 514 hex

EoE = ( 240,0 , 410,0 )

Teta = ( 36,3 , 37,4 )

Page 9: Lapres invers kinematika robot planar 2 dof

cosθ 2=√ x2+ y2−L12−L22

2. L 1.L 2

sin θ 2=√1−cos2 θ 2

tanθ 2= sinθ 2cos θ 2

θ 2=atan2( sin θ 2cosθ 2 )

θ 1=atan2( yx )−atan2( L 2. sinθ 2

L1+L 2. cosθ 2 )

Analisa Data

Pada percobaan kali ini, kami melakukan percobaan invers kinematika robot planar 2 dof. Percobaan ini merupakan kebalikan daripada percobaan kinematika robot planar 2 dof. Jika pada percobaan kinematika robot planar 2 dof kita menentukan sudut pada modul minsys ATMega 8535 lalu kita dapatkan posisi titik akhir atau (EoE), maka pada percobaan kali ini, kita harus menentukan posisi EoE pada modul minsys terlebih dahulu, baru kita mendapatkan sudut2 pada mekanik robot planar 2 dof tersebut.

Untuk mencari sudut tersebut, melalui banyak rumus, yang harus dimasukkan ke dalam program ATMega tersebut, rumus-rumusnya secara berurutan yaitu :

Setelah itu kita memasukkan rumus tersebut pada program, dan kita bias mengatur posisi xb dan yb , lalu kita bisa mendapatkan sudut θ1 dan θ2 . Hasil yang kami dapat melalui rumus tersebut adalah hasil teori, untuk hasil praktek, untuk posisi EoE, kami mengukur pada papan kerja, dan untuk sudut, kami mengira-ngira dengan mata kami sebisanya. Hasilnya didata pada table percobaan.

Kesimpulan

Kami menjadi mengerti bagaimana cara kerja invers kinematic robot planar 2 dof Melalui banyak rumus untuk menentukan sudut yang ingin dicari dengan menentukan

posisi EoE terlebih dahulu. Error yang terjadi diakibatkan kesalahan mata melihat.