RANCANG BANGUN ROBOT PERMAINAN CATUR BERBASIS KAMERA Ian Agung Prakoso - 2204100060 Jurusan Teknik Elektro – FTI, Institut Teknologi Sepuluh Nopember Kampus ITS, Surabaya – 60111
Abstrak - Dalam dunia mekatronika, teknologi robot merupakan salah satu teknologi yang dikembangkan dengan pesat dewasa ini, salah satu contohnya adalah robot manipulator. Robot manipulator merupakan robot yang menyerupai lengan dan memiliki jumlah derajat kebebasan tertentu. Dengan pengaturan robot manipulator secara otomatis maka robot manipulator dibuat tidak hanya untuk kebutuhan industri tetapi juga untuk kebutuhan hiburan seperti robot untuk bermain catur. Pada tugas akhir ini kami membuat robot permainan catur yang akan menunjang sistem permainan catur secara keseluruhan. Robot permainan catur ini dapat memindahkan buah catur sesuai posisi yang diberikan pemain. Perintah gerak buah catur yang diterima akan dipastikan bahwa posisi kotak adalah kosong melalui blok computer vision dan diteruskan ke path planner, kemudian lengan robot akan mengambil dan menempatkan buah catur yang diinginkan pada posisi yang diinginkan. Robot ini menggunakan lengan robot 3 DOF dan gripper yang mengambil dan menempatkan buah catur. Visualisasi kamera digunakan untuk menginterpretasikan koordinat kotak hitam putih pada papan catur dan mendeteksi adanya buah catur pada kotak hitam putih. Pada tugas akhir ini, sistem pemantauan berdasarkan estimasi koordinat pandang mata memiliki keakuratan anatara 95% - 99% dengan jarak antara sensor citra dengan layar monitor adalah 26 – 35 cm. Kata kunci: computer vision, path planner, manipulator 1.
mengetahui keberadaan buah catur pada papan catur yang sebenarnya. Robot permainan catur ini merupakan bagian penunjang pada sistem permainan catur secara keseluruhan. 2.
TEORI PENUNJANG
2.1. Konfigurasi Robot Konfigurasi robot merupakan bentuk geometri dari manipulator robot.[4] Secara umum terdapat lima konfigurasi robot yang digunakan di industri dapat dilihat pada gambar 7, yaitu : Cartesian Robot, Cylindrical Robot, Spherical Robot, Articulated Robot, SCARA (Selectively Compliant Assembly Robot Arm).[4] Konfigurasi cartesian terdiri dari tiga sumbu linear yang saling tegak lurus, yang disingkat dengan PPP. Sedangkan konfigurasi cylindrical terdiri dari satu revolute joint dan dua linear joint yang disingkat dengan RPP. Konfigurasi Spherical atau polar terdiri dari dua revolute joint dan satu linear joint (RRP). Konfigurasi articulated (anthropomorphic) terdiri dari tiga revolute joint (RRR). Konfigurasi SCARA (Selectively Assembly Robot Arm) terdiri dari 2 revolute joint dan satu linear joint (RRP).[4]
(a)
(b)
(c)
PENDAHULUAN
Robot manipulator merupakan robot yang menyerupai lengan dan memiliki jumlah derajat kebebasan tertentu. Manipulator merupakan bagian mekanik yang dapat difungsikan untuk memindah, mengangkat dan memanipulasi benda kerja. Konfigurasi manipulator dapat dibagi menjadi 4 kelompok, yaitu: polar, silindris, cartesian, dan sendi lengan. Konfigurasi sendi-lengan dapat dimodifikasi sedemikian rupa sehingga pengaruh dari gravitasi dapat diabaikan dalam analisa dinamiknya. Bentuk modifikasi tersebut dikenal sebagai manipulator planar[1] atau SCARA. Salah satu konstruksi awal robot permainan catur adalah Turk yang dibuat pada tahun 1976 oleh Wolfgang Von Kompelen yang sebenarnya digerakkan oleh manusia di dalam robot tersebut. Salah satu sistem robot permainan catur adalah chesster [2]. Chesster adalah sebuah tangible interface [3] untuk bermain catur dengan melawan sebuah komputer atau seseorang lawan yang secara geografi terpisah jauh dan terhubung melalui internet. Pada Tugas Akhir ini dibuat sebuah robot yang diaplikasikan di bidang hiburan yaitu robot permainan catur. Robot permainan catur ini menggunakan konfigurasi manipulator SCARA 3 DOF dengan 3 buah motor stepper sebagai penggeraknya dan solenoide untuk menggerakkan end-effector . Tujuan yang ingin dicapai dalam tugas akhir ini adalah membuat robot manipulator untuk untuk menggerakkan buah catur dan sistem image processing untuk
Proceeding Seminar Tugas Akhir Jurusan Teknik Elektro FTI-ITS
(d)
(d)
Gambar 2. (a). Cartesian Robot, (b). Cylindrical Robot, (c). Spherical Robot, (d). Articulated Robot, (e). SCARA
2.2. Analisa Kinematik Robot Tangan 2DOF Forward Kinematic adalah analisa kinematik untuk mendapatkan koordinat posisi (x,y,z) jika diketahui sudut dari tiap joint. Inverse Kinematic adalah analisa kinematik untuk mendapatkan besar sudut dari masing – masing joint jika kita mempunyai data koordinat posisi (x,y,z). Kedudukan ujung lengan dinyatakan sebagai P(x,y) dimana, x = l1 cosθ1 + l2 cos(θ1 + θ 2 ) , y = l1 sin θ1 + l2 sin(θ1 + θ 2 ) Persamaan di atas dapat diperoleh dengan menggunakan analisa kinematik maju. Dan dengan menggunakan analisis invers kinematik maka kita akan mendapatkan,
x 2 + y 2 − l12 − l 22 , 2l1l 2
θ 2 = cos −1
1
dan θ 1 = tan −1
y (l1 + l 2 cos θ 2 ) − x.l 2 sin θ 2 x(l1 + l 2 cos θ 2 ) + yl 2 sin θ 2 α
θ2
β
θ1
Gambar 5. Diagram blok sistem. Gambar 3. Robot Tangan 2 Sendi (2DOF)
3.
PERENCANAAN DAN PEMBUATAN ALAT
2.3. Skala Warna HSV
3.1. Perancangan Sistem
Skala warna HSV merupakan bentuk lain dalam merepresentasikan data pixel dari suatu image yang berwarna selain skala warna RGB. HSV merupakan singkatan dari Hue Saturation Value. Hue adalah nilai yang merepresentasikan warna mulai dari merah, kuning, hijau, cyan, biru, magenta dan kembali ke merah. Kisaran nilai Hue antara 0-360. Saturation adalah nilai yang merepresentasikan derajat keabuan dari suatu warna, mulai dari unsaturated sampai fully saturated. Semakin besar prosentase nilai saturation maka semakin besar derajat keabu-abuannya. Kisaran nilai saturation antara 0% - 100%. Value menyatakan tingkat kecerahan suatu warna. Kisaran nilai value antara 0%-100%. Semakin besar nilai value maka semakin terang warna pixel tersebut.
Robot permainan catur ini adalah suatu sistem penunjang untuk sistem permaianan catur secara keseluruhan. Kita mengasumsikan bahwa player A bermain dengan buah catur putih atau white pieces. Robot permainan catur bekerja dengan menerima input gerakan white pieces dari player A yang berupa posisi awal, posisi akhir, jenis buah catur dan juga menerima inputan image dari kamera kemudian inputan posisi tersebut akan diolah pada blok computer vision menggunakan algoritma image processing sehingga dinyatakan apakah gerakan ini valid dan diketahui jalur perpindahan white pieces. Jalur perpindahan tersebut diolah oleh robot interface menjadi serangkaian data dan perintah yang akan dikirimkan ke robot manipulator melalui komunikasi serial standar RS-232. Robot manipulator kemudian memindahkan white pieces ke posisi akhir yang diinginkan. 3.2. Perancangan Perangkat Keras
Gambar 4. Gambar cone yang merepresentasikan nilai skala warna HSV[25]
Berikut ini adalah penghitungan nilai H (Hue), S (Saturation), V (Value) pada Open CV. V = max (R, G, B )
S = (V − min (R , G , B )) V
untuk V≠0, selain itu S=0
(G − B )* 60 / S → V = R H = 180 + (B − R )* 60 / S → V = G 240 + (R − G )* 60 / S → V = B
jika H<0 maka H=H+360 Dengan skala output 0≤V≤1, 0≤S≤1, 0≤H≤360. Kemudian nilai tersebut dikonversikan pada nilai HSV yang disediakan oleh Open CV sesuai tipe data. Untuk citra 8-bit: V = V*255, S = S*255, H = H/2 (untuk mencukupi nilai 0…255)
Proceeding Seminar Tugas Akhir Jurusan Teknik Elektro FTI-ITS
Perencanaan perangkat keras meliputi perancangan sistem mekanik dan sistem elektrik pada robot permainan catur. Namun secara umum robot ini dirancang dengan spesifikasi : a. Konfigurasi robot menggunakan konfigurasi SCARA 3DOF. b. Robot penggerak kamera pemantau ini menggunakan open loop system untuk sistem kontrol geraknya. Kemudian digunakan motor stepper sebagai penggerak lengan robot dan solenoid sebagai penggerak gripper. c. Kamera webcam sebagai sensor visual. d. Robot ini menggunakan mikrokonroler ATMega 32. e. Robot ini menggunakan komunikasi serial standar RS232. f. Driver motor stepper bertipe bipolar. g. Rangkaian Limit Switch untuk mereset dan inisialisasi robot h. Buah catur hitam didefinisikan sebagai buah catur berwarna merah dan buah catur putih didefinisikan sebagai buah catur berwarna biru. Driver motor stepper yang digunakan bertipe bipolar. Prinsip dasar dari driver bipolar tersebut adalah dengan menggunakan rangkaian H-Bridge sehingga untuk mengendalikan 1 motor stepper dengan 2 kumparan maka driver motor stepper bipolar ini membutuhkan 2 rangkaian H-Bridge. Rangkaian tersebut merupakan rangkaian switching arus yang mengaliri lilitan pada motor stepper. Urutan pemberian data pada motor stepper dapat mengontrol arah putaran motor stepper. Penambahan kecepatan pada motor stepper dengan meningkatkan frekuensi pemberian data pada rangkaian switching arus.
2
Koordinat tersebut dimulai dari titik (0,0) yang berada di sebelah kiri bawah citra.
Gambar 8. Sebuah corner yang terletak di perpotongan kotak hitam-putih
Setelah citra ”dst” didapatkan melalui proses akuisi, maka akan dideteksi corner yang terdapat pada chessboard di dalam citra ”dst”. Corner yang dihasilkan nantinya berjumlah 49. Setiap corner disini didefinisikan sebagai titik tengah dalam setiap 4 kotak dalam chessboard. Gambar 3.18 menunjukkan sebuah corner yang ditandai dengan lingkaran hijau. Deteksi corner menggunakan fungsi Open CV yaitu int cvFindChessboardCorners() dan void cvFindCornerSubPix().
3.3.3 Deteksi buah catur Gambar 6. Driver Stepper bipolar
3.3. Perancangan Perangkat Lunak 3.3.1 Akuisisi Citra oleh Web Camera Program akan mengakuisisi citra tersebut dengan skala RGB dengan nama ”frame” kemudian dilakukan proses Perspective Transform pada Open CV untuk mendapatkan citra baru bernama ”dst”. Perspective Tranform adalah geometric transform yang menggunakan matriks 3x3 dan dapat menghasilkan citra baru dengan bentuk yang melebar,menyempit. Perspective Transform dapat mengubah bentuk rectangle menjadi trapezoid . Dalam hal tampilan chessboard dalam citra yang diakuisisi oleh Web Camera maka dimungkinkan tampilan chessboard tidak terlihat persegi, maka dilakukan Perspective Transform untuk mengubah tampilan chessboard meyerupai kotak persegi lagi. 3.3.2 Inisialisasi chessboard Inisialisasi chessboard diperlukan untuk medapatkan koordinat titik tengah dari tiap kotak hitam-putih dari papan catur. Petak – petak chessboard pada deretan vertikal disebut ”lajur” dan ditandai dengan abjad kecil: a;b;c;d;e;f;g;h, dimulai dari sudut kiri bawah. Sedangkan deretan petak horizontal (mendatar) diberi tanda : 1;2;3;4;5;6;7;8, dimulai juga dari sudut kiri bawah sesuai dengan gambar sebelumnya. Penomoran baris mendatar dimulai dari pihak putih, jadi dalam penulisan buah catur, putih terletak di bawah dan hitam terletak di atas.
Algoritma deteksi buah catur digunakan untuk menentukan kondisi suatu petak apakah kosong ataukah terisi buah catur hitam ataukah terisi buah catur putih. Algoritma deteksi buah catur dibuat menggunakan prinsip filter warna yang diterapkan pada citra berskala RGB yang telah diubah ke dalam skala HSV oleh Open CV. Filter warna menggunakan proses thresholding terhadap nilai Hue, Saturation, Value setiap pixel pada ROI (Region of Interest) citra berskala HSV. Kemudian dilakukan penghitungan jumlah pixel warna merah dan warna biru melalui nilai counter. Algoritma deteksi buah catur ini ditulis menjadi suatu fungsi dengan nilai keluaran bertipe integer. Jika nilai keluaran bernilai ”0” maka petak tersebut kosong. Jika nilai keluaran bernilai ”1” maka petak berisi buah catur hitam (buah catur warna merah). Jika nilai keluaran bernilai ”2” maka petak berisi buah catur putih (buah catur warna biru). 3.3.4 Inverse Kinematik Pada Tugas Akhir ini terdapat 2 buah koordinat kartesian yaitu: koordinat kartesian robot dan koordinat kartesian pixel. Dalam proses gerak robot, kordinat posisi akhir (dalam koordinat kartesian robot ) harus dirubah untuk mendapatkan data pulsa firing sequence setiap motor stepper penggerak. Koordinat posisi akhir dalam koordinat katesian robot tersebut didapatkan dari kalibrasi pixel terhadap koordinat posisi dalam koordinat kartesian pixel chessboard. Inverse Kinematik menggunakan rumus trigonometri pada lengan robot 2 DOF untuk mendapatkan sudut putar dari setiap DOF. Sudut putar setiap DOF itulah yang nantinya akan dirubah menjadi data – data pulsa firing sequence setiap motor stepper.
Gambar 7. Petak – petak pada chessboard
Dalam gambar 3.17 juga terlihat koordinat kartesian yang menyatakan koordinat berdasarkan pixel dari citra yang mempunyai 2 sumbu. Koordinat tersebut dinamakan koordinat pixel, sumbu-x dinamakan sumbu Xp dan sumbu-y dinamakan sumbu Yp.
Proceeding Seminar Tugas Akhir Jurusan Teknik Elektro FTI-ITS
Gambar 9. Koordinat Pixel (dimulai dari pojok kiri bawah) dan koordinat kartesian robot (dimulai dari pojok kiri atas)
3
DOF-2 untuk setiap step motor stepper 2 (gerak rotasi). Misalkan (xi,yi) adalah data hasil pengukuran dimana xi merupakan jumlah step motor stepper sedangkan yi merupakan sudut putar DOF-2. Perhitungan pertama untuk gerakan rotasi searah jarum jam pada DOF-2 dengan memberikan 10 step dan delay per-step sebesar 60 ms untuk setiap gerakan dan persamaan garis lurusnya untuk gerak rotasi searah jarum jam pada DOF-2 adalah y=-2.47937+0.78269x Perhitungan kedua untuk gerakan rotasi berlawanan jarum jam pada DOF-2 dengan memberikan 10 step dan delay per-step sebesar 60 ms untuk setiap gerakan dan persamaan garis lurusnya untuk gerak rotasi berlawanan jarum jam pada DOF-2 adalah y=-2.11365+0.778512 x Gambar 10. Pembagian port-port mikrokontroler.
3.3.5 Path Planner Pergerakan buah catur menggunakan metode Continuous Path dengan jalur pergerakan sesuai pergerakan buah catur pada umumnya. Pergerakan untuk memukul (menangkap) buah catur lawan yang berada pada jalur yang dilaluinya membutuhkan bantuan dari luar untuk memindahkan buah catur lawan tersebut. 3.3.1. Program Mikrokontroler Perancangan program mikrokontroler ini meliputi pengaturan input ke tiga driver motor stepper dan driver solenoid agar robot bergerak ke posisi yang diinginkan sesuai pembacaan data serial yang dikirim dari komputer. Pembagian port-port pada mikrokontroler ditunjukan pada gambar 10. Program pada mikrokontroller melakukan 2 fungsi utama yaitu mengkonversi paket data serial menjadi array data yang menunjukkan jenis motor stepper yang berputar, arah putar motor stepper, kecepatan putar stepper dan keadaan ON/OFF solenoide. Fungsi utama kedua adalah untuk memberikan pulsa atau firing sequence ke driver stepper dan driver solenoid. 4.
PENGUJIAN ALAT
4.1.1 Penghitungan Resolusi Gerak Robot untuk Gerakan Translasi pada DOF-1 Penghitungan resolusi gerak robot untuk gerakan translasi pada DOF-1 merupakan perhitungan panjang kenaikan-penurunan lengan robot dari dasar base untuk setiap step motor stepper 1 (gerak translasi). Misalkan (xi,yi) adalah data hasil pengukuran dimana xi merupakan jumlah step motor stepper sedangkan yi merupakan panjang kenaikan atau penurunan lengan robot. Hubungan antara xi dan yi dihampiri dengan sebuah garis lurus yang dibuat dengan metode Regresi linier sedemikian sehingga errornya sekecil mungkin dengan titik – titik data. Penghitungan pertama untuk gerakan translasi naik dengan memberikan setiap kenaikannya 2000 step dengan delay per-step sebesar 3 ms sehingga persamaan garis lurusnya untuk gerak translasi naik adalah y=0.016+0.000248x Penghitungan kedua untuk gerakan translasi turun dengan memberikan setiap penurunannya 2000 step dengan delay per-step sebesar 3 ms dan persamaan garis lurusnya untuk gerak translasi turun adalah y=0.018+0.000249x 4.1.2 Penghitungan Resolusi Gerak Robot untuk Gerakan Rotasi pada DOF-2 Penghitungan resolusi gerak robot untuk gerakan rotasi pada DOF-2 merupakan perhitungan sudut putar lengan robot pada
Proceeding Seminar Tugas Akhir Jurusan Teknik Elektro FTI-ITS
4.1.3 Penghitungan Resolusi Gerak Robot untuk Gerakan Rotasi pada DOF-3 Penghitungan resolusi gerak robot untuk gerakan rotasi pada DOF-3 merupakan perhitungan sudut putar lengan robot pada DOF3 untuk setiap step motor stepper 3 (gerak rotasi). Misalkan (xi,yi) adalah data hasil pengukuran dimana xi merupakan jumlah step motor stepper sedangkan yi merupakan sudut putar DOF-3. Perhitungan pertama untuk gerakan rotasi searah jarum jam pada DOF-3 dengan memberikan 20 step dan delay per-step sebesar 60 ms untuk setiap gerakan dan persamaan garis lurusnya untuk gerak rotasi searah jarum jam pada DOF-3 adalah y= -9.68166+0.146789x Perhitungan kedua untuk gerakan rotasi berlawanan jarum jam pada DOF-3 dengan memberikan 20 step dan delay per-step sebesar 60 ms untuk setiap gerakan dan persamaan garis lurusnya untuk gerak rotasi berlawanan jarum jam pada DOF-3 adalah y=-8.83001+0.145455x 4.1.4 Kalibrasi Pixel dengan Area Kerja Robot Area kerja robot direpresentasikan dalam koordinat kartesian robot yang mempunyai titik asal (0,0) berada pada sebelah kiri atas pada gambar 9. Koordinat kartesian robot mempunyai sumbu-Y (Yr) dan sumbu-X (Xr). Penentuan koordinat dari tiap petak tidak bisa secara langsung dikarenakan petak-petak catur pada image chessboard berada dalam koordinat pixel chessboard sehingga perlu dilakukan pengubahan (kalibrasi) dari koordinat pixel chessboard menjadi koordinat kartesian robot (dalam satuan cm). Koordinat pixel chessboard dimulai dari sebelah kiri bawah pada gambar 9 mempunyai sumbu-X(Xp) dan sumbu-Y(Yp) (dalam satuan pixel). Panjang 1 pixel (cm) dapat ditentukan dengan persamaan, = JarakTitik Tengah (a1 − a8) (cm/pixel) panjang 1 pixel cm pixel JarakTitik Tengah (a1 − a8)
Persamaan untuk mengubah koordinat suatu titik P(xp,yp) menjadi P(xr,yr)dalam koordinat kartesian robot, x r = ((c − y p )* panjang1 pixel ) + a
(
)
y r = x p * panjang1 pixel + b Setelah dilakukan pengukuran maka didapatkan, a = 20.2 cm, b = 0.3 cm, c = 473.9331 pixel dan panjang 1 pixel = 1/8.93407 cm/pixel ≅ 1/9 cm/pixel. 4.2.1 Pengujian Pengiriman Data Serial Pengujian pengiriman data serial bertujuan untuk mengetahui keberhasilan pengiriman data serial dari PC ke mikrokontroller. Dalam 1 paket data serial mengandung karakter – karakter yang menunjukkan nilai counter dan nilai delay untuk setiap motor
4
stepper. Karakter yang menunjukkan kedua nilai tersebut perlu dirubah menjadi data bertipa integer. Pengujian pengiriman data serial ini tidak hanya menguji proses pengiriman saja tetapi keberhasilan pengubahan karakter menjadi data bertipe integer. Pada mikrokontroller nilai yang ditunjukkan oleh karakter tersebut ditambah 1 sehingga ketika dikirim kembali ke PC, nilai tersebut telah bertambah 1.
4.3.1 Pengujian Inisialisasi Chessboard Pengujian Inisialisasi ChessBoard bertujuan untuk mendapatkan kondisi yang optimal untuk deteksi corner chessboard terutama dari sisi pengaturan pencahayaan. Selain itu, pengujian ini juga bertujuan untuk mendapatkan parameter perspective transform agar tampilan chessboard pada image yang akan diolah mendekati bentuk persegi.
(a)
(b)
Gambar 11. (a) Image sebelum proses Perspective Transform. (b) Image setelah proses Prespective Transform. Pengujian ini dilakukan dengan melewatkan image asli hasil akuisisi citra dari webcam ke proses perspective transform kemudian melalui proses deteksi corner chessboard. Data corner dari chessboard kemudian dioleh sedemikian rupa untuk menghasilkan titik tengah dari tiap petak. Hasil dari proses perspective transform ditunjukkan pada gambar 4.2. Pada pengujian ini didapatkan nilai optimal variabel perspective transform agar tampilan chessboard menyerupai persegi yang ditunjukkan pada tabel 4.9. Tabel 3. Nilai optimal variabel pada proses perspective transform Variabel Nilai dstQuad[0].x -5 dstQuad[0].y (frame->height)*(1.04) dstQuad[1].x ((frame->width)*(1))+5 dstQuad[1].y (frame->height)*1 dstQuad[2].x -10 dstQuad[2].y 0 dstQuad[3].x frame->width dstQuad[3].y 0
Nilai parameter brightness webcam yang optimal adalah 5 Hasil pendeteksian corner dan titik tengah ditunjukkan pada gambar 4.3.
Proceeding Seminar Tugas Akhir Jurusan Teknik Elektro FTI-ITS
(b)
Gambar 12. (a) Hasil Deteksi corner dari chessboard. (b)Hasil Deteksi titik tengah kotak hitam-putih chessboard Setelah data-data corner chessboard didapatkan maka data tersebut diolah sedemikian rupa untuk memperhitungkan letak titiktengah dari tiap petak. Data titik tengah tiap petak yang didapatkan hanyalah sebagai representasi dalam koordinat pixel sehingga tidak dapat digunakan dalam proses inverse kinematik. Oleh karena itu, untuk mendapatkan titik tengah tiap petak dalam koordinat kartesian robot maka titik tengah tersebut diatas harus dirubah melalui kalibrasi pixel. Data – data titik tengah tiap petak dalam satuan pixel ditunjukkan pada table 4.
Baris
Dari tabel 4.7 terlihat bahwa pengujian pengiriman data serial berjalan berhasil semua.
(a)
Baris
Tabel 1. Pengujian Pengiriman Data Serial Data Kirim Data Terima Kategori 1 2 Berhasil 9 10 Berhasil 19 20 Berhasil 99 100 Berhasil 199 200 Berhasil 999 1000 Berhasil 9999 10000 Berhasil 99999 100000 Berhasil 999999 1000000 Berhasil 1234567 1234568 Berhasil
Tabel 4. Titik tengah (x;y) tiap petak dalam pixel Kolom a b c d 1 159;46 212;45 266;45 319;46 2 159;98 212;98 265;98 319;98 3 159;152 212;151 265;151 319;151 4 159;204 212;204 265;204 319;204 5 159;257 212;257 265;257 319;257 6 159;310 212;310 265;310 319;310 7 160;362 212;362 266;362 319;362 8 160;414 212;414 266;414 319;414 Kolom e f g h 1 373;45 426;46 479;46 533;46 2 373;98 426;98 480;98 534;98 3 373;151 426;151 480;151 534;151 4 372;204 426;204 479;204 533;204 5 372;257 426;257 479;257 533;257 6 372;310 426;310 479;310 533;310 7 372;362 425;362 478;362 532;362 8 372;414 425;414 478;414 532;414
4.3.2 Pengujian Deteksi Buah Catur Pengujian deteksi buah catur bertujuan untuk mendapatkan range nilai Hue, Saturation, Value yang optimal dalam pendeteksian buah catur hitam (warna merah) dan pendeteksian buah catur putih (warna biru) serta range nilai counter warna merah dan warna biru untuk penentuan kategori isi tiap petak. Pengujian ini dilakukan pada ROI(Region of interest) dari petak yang ingin dideteksi. Pengujian ini dilakukan dengan cara mengubah nilai threshold data hue dan saturation sampai didapatkan kondisi optimal untuk pendeteksian warna merah dan warna biru tiap pixel. Setelah itu dilakukan pengujian lanjutan dengan mengubah nilai threshold counter merah dan nilai threshold counter biru untuk mendapatkan kondisi optimal dalam penentuan isi dari tiap petak. Hasil pendeteksian isi tiap petak dibagi menjadi 3 kategori: petak kosong, petak berisi buah catur hitam (warna merah), petak berisi buah catur putih (warna biru). Hasil Deteksi warna pada petak hitam dan petak putih ditunjukkan pada gambar 13
5
(a)
(b)
Gambar 13 . Deteksi buah catur pada petak hitam (a) dan petak putih (b) Tabel 5. Range Nilai Hue, Saturation,Value Warna Hue Saturation Value (H) (S) (V) Merah H<10; S>30 V>165 H>150 Biru 80
105
(a)
(b)
(c)
(d)
Tabel 6. Range counter untuk warna merah dan warna biru Warna Counter Merah Counter merah > 190 Biru Counter biru > 280 Gambar 14. (a) Peluang, (b) path bawah1(c) path bawah2 (d) path atas
4.3.2 Pengujian Path Planner Pengujian Path Planner bertujuan untuk mengetahui seberapa akurat algoritma untuk menghasilkan path. Path merupakan titik tengah petak yang merupakan jalur pergerakan dari posisi awal ke posisi akhir sesuai buah catur yang digerakkan. Pengujian ini dilakukan dengan memberikan halangan pada jalur pergerakan buah catur. Pada pengujian ini didapatkan data keberhasilan algoritma path planner yang ditunjukkan pada table 4.15
c4
20
100
d3
20
100
e4
20
100
e8
20
100
a5
20
100
h5
20
100
e1
20
100
Pengujian gabungan bertujuan untuk mengetahui hasil pergerakan yang dilakukan oleh robot manipulator sesuai dengan posisi yang diberikan serta mengetahui repeatability dari robot manipulator. Repeatability adalah kemampuan robot untuk kembali pada posisi yang sama. Pengujian repeability dilakukan dengan menghitung selisih error posisi buah catur hasil pergerakan pada pergerakan yang sama. Selisih error didapat dengan menghitung selisih antara error posisi dengan error posisi pertama. Pada pengujian ini buah catur digerakkan dari d4 ke e4 sebanyak 10 kali lalu dihitung error posisinya menggunakan algoritma template matching pada Open CV. Pengujian hasil pergerakan juga dilakukan dengan menghitung error posisi rata-rata dari 10 pergerakan yang berbeda. Error posisi juga dihitung dengan menggunakan algoritma template matching pada Open CV. Pada pengujian pertama pergerakan manipulator pick and place, buah catur tidak berhasil semua dipindahkan sehingga diperlukan kompensasi nilai counter pulsa yang diberikan ke mikrokontroller sesuai dengan petak pada posisi awal dan petak pada posisi akhir. Untuk proses pick didapatkan nilai kompensasi untuk counter stepper2 sebesar -1 dan nilai kompensasi untuk counter stepper3 sebesar +12.
h7
20
100
Tabel 8. Hasil pengujian repeatability
a8
20
100
c2
20
100
h1
20
95
e7
20
100
Tabel 7. Hasil Pengujian Path Planner Buah Catur
Posisi
Posisi
Type
Awal
Akhir
Pawn
b2
King
Rock
Bishop
Knight
d4
e5
e4
d5
4.3.2 Pengujian Gabungan
Pengujian
Prosentase
a3
20
100
b3
20
100
c3
20
95
d5
20
100
Pengujian ke-
error posisi (pixel)
Selisih error (pixel)
1
54
2
55
1
3
58
4
f6
20
100
f4
20
100
4
54
0
e3
20
100
5
58
4
c3
20
100
6
49
5
b4
20
100
7
47
7
b6
20
100
8
53
1
9
45
9
10
50
4
c7
20
100
Dari table pengujian di atas didapatkan rata – rata keberhasilan algoritma path planner sekitar 99,6%. Hasil Path Planner untuk gerak knight dari d4 ke e6 ditunjukkan pada gambar 14.
Proceeding Seminar Tugas Akhir Jurusan Teknik Elektro FTI-ITS
Nilai rata-rata selisih error adalah 4 pixel. Berdasarkan hasil kalibrasi pixel didapatkan panjang pixel sebesar 1/9 pixel/cm
6
sehingga selisih error rata-rata adalah 0.4444 cm. Nilai repeatibility untuk robot manipulator ini adalah 0.4444cm. Tabel 9. Hasil pengujian error posisi error posisi (pixel)
Pengujian ke-
Pergerakan
1
d4-e4
8
2
d5-e5
10
3
d6-e6
11
4
d1-e1
9
5
d2-e2
7
6
d3-e3
5
7
c4-d4
8
8
c5-d5
9
9
c3-d3
7
10
c2-d2
10
11
c1-d1
11
Pada pengujian error posisi diperlukan nilai kompensasi untuk counter stepper2 pada proses place 1 petak ke kanan sebesar -3 dan nilai kompensasi counter stepper3 pada proses place 1 petak ke kanan sebesar +10. Dari hasil tabel 4.16 didapatkan nilai error posisi rata-rata sebesar 9.5 pixel atau sebesar 1.06 cm. Dari pengamatan langsung pada desain mekanik pada saat pergerakan, didapati bahwa faktor backlash dan spilling sangatlah besar pengaruhnya dalam mengurangi ketepatan pergerakan. Desain mekanik pada Tugas Akhir ini sangat terpengaruh terhadap faktor spilling dan backlash sehingga pasti diperlukan kompensasi untuk setiap pergerakan Nilai repeatability dan nilai rata-rata error posisi dapat diperbaiki dengan cara menambahkan sensor posisi seperti potensiometer pada desain mekanik. 5.
DAFTAR PUSTAKA [1] Pitowarno, Endra, 2006, Robotika Desain, Kontrol dan Kecerdasan Buatan, Yogyakarta, ANDI. [2] Meppelink, David J. dan Martin, Fred., 2003. A Tangible Interface to Computerized Chess. University of Massachusetts Lowell. [3] Ishii, H., Ullmer,B., Tangible Bits:Towards Seamless Interfaces between People, Bits and Atoms, MIT Media Laboratory. [4] Dorf, Richard C. 2000. The Electrical Engineering Handbook, CRC Press LLC. [5] http://www.mathworks.com
BIODATA PENULIS Ian Agung Prakoso dilahirkan di Surabaya 15 September 1986. Penulis menyelesaikan pendidikan dasar di SDN Kepuh Kiriman I Waru kemudian menyelesaikan pendidikan menengah di SLTPN I Waru dan SMAN 5 Surabaya. Pada tahun 2004, penulis memulai pendidikan di jurusan Teknik Elektro, FTI, Institut Teknologi Sepuluh Nopember (ITS) Surabaya. Selama kuliah penulis aktif dalan organisasi Himpunan Mahasiswa Teknik Elektro ITS dan aktif sebagai asisten laboratorium Elektronika Dasar. Email : [email protected] dan [email protected]
PENUTUP
Dari seluruh rangkaian kegiatan perancangan sistem dan pengujian alat penulis memperoleh kesimpulan dan memberikan beberapa saran sebagai berikut. 5.1 Kesimpulan Kesimpulan yang diperoleh dalam Tugas Akhir ini adalah: a. Dalam prosedur Inisialisasi chessboard parameter brightness webcam yang optimal berada pada nilai 4. b. Filter warna HSV dengan metode thresholding cukup baik digunakan dalam pendeteksian warna merah dan biru. c. Rata – rata keberhasilan algoritma path planner sekitar 99,6%. d. Error posisi rata – rata hasil pergerakan sebesar 1.06 cm. e. Nilai repeatibility untuk robot manipulator ini adalah 0.4444cm. 5.2 Saran Beberapa saran yang dapat penulis berikan untuk pengembangan Tugas Akhir ini adalah: a. Desain mekanik diperbaiki untuk mengurangi error gerakan robot akibat backlash dan friction. b. Kontrol gerakan robot sebaiknya menggunakan sistem closed loop dengan menambahkan sensor posisi seperti potensiometer pada desain mekanik.
Proceeding Seminar Tugas Akhir Jurusan Teknik Elektro FTI-ITS
7