rancang bangun robot permainan catur berbasis … · deteksi corner chessboard terutama dari sisi...
TRANSCRIPT
RANCANG BANGUN ROBOT
PERMAINAN CATUR
BERBASIS KAMERA
TUGAS AKHIR
Oleh :
Ian Agung Prakoso
2204100060
Dosen Pembimbing :
Ir. Djoko Purwanto, M.Eng., Ph.D.
Bidang Studi Elektronika | Jurusan Teknik Elektro
| FTI – ITS | Surabaya
2010
Outline
� Latar Belakang� Tujuan� Perumusan Masalah� Perencanaan dan Pembuatan Alat� Pengujian software dan hardware
Latar Belakang
� 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[1]
[1].Meppelink, David J. dan Martin, Fred., 2003. A Tangible Interface to Computerized Chess. University of Massachusetts Lowell. <URL:http: //teaching.cs.uml.edu/techrpts/Papers/Me ppelinkMartinChesster.pdf >
Sistem Permainan Catur yang menjadi latar belakangTugas Akhir
Tujuan
� Membuat robot manipulator untuk menggerakkan buah catur
� Membuat sistem image processing untuk mengetahui keberadaan buah catur pada papan catur yang sebenarnya.
Perumusan Masalah� Pendeteksian posisi dari papan catur melalui sensor
visual.� Pengubahan sebuah gerakan buah catur yang kita
inginkan menjadi serangkaian urutan perintah dan data untuk menggerakkan lengan robot.
� Pendeteksian keberadaan dan warna buah catur pada kotak hitam atau putih yang kita inginkan.
� Kamera sebagai sensor visual yang digunakan sebanyak 1 buah dan terletak statis di atas papan catur.
� Lengan robot yang digunakan bertipe 3 DOF robot.� Papan catur yang digunakan berukuran 50x50 cm2.
Perencanaan dan Pembuatan
Alat
Diagram Blok Sistem
� Sistem Mekanik� Sistem Elektrik
Perancangan Perangkat Keras
Sistem Mekanik� Konfigurasi robot yang digunakan adalah
konfigurasi SCARA 3 DOF (Degree of Freedom). � Open loop system untuk sistem kontrol geraknya. � Kemudian digunakan motor stepper sebagai
penggerak. Terdapat sensor limit switch sebagai pembatas gerak robot namun bukan sebagai feedback sistem secara keseluruhan.
Perancangan Perangkat Keras
Perancangan Perangkat KerasMekanik Robot Permainan Catur Berbasis Kamera
Sistem mekanik Gripper
Posisi webcam
Sistem mekanik robot manipulator
Perancangan Perangkat Keras
Sistem Elektrik� Rangkaian sistem minimum mikrokontroler ATMega 32
sebagai penyimpan program kontroler.� Rangkaian driver motor stepper bertipe bipolar.� Rangkaian driver solenoid sebagai penggerak gripper� Rangkaian power supply untuk menyuplai tegangan
motor stepper dan solenoide� Rangkaian Limit Switch untuk mereset dan inisialisasi
robot .� Jalur komunikasi serial standar RS232.
Perancangan Perangkat KerasRangkaian Sistem Minimum Mikrokontroler ATMega 32
� Mikrokontroler ATMega 32 sebagai rangkaianpenerjemah data serial dariPC menjadi firing sequence untukmengontrol motor Stepper dan mengontrol ON/OFF solenoide
Perancangan Perangkat KerasJalur Komunikasi Serial RS 232
� Komunikasi serial RS-232antara uc dengan PC menggunakan IC max232
Perancangan Perangkat KerasRangkaian Driver Motor Stepper
Rangkaian Driver Motor Stepper tipe Bipolar Menggunakan rangkaian H-Bridge
Motor Stepper Universal difungsikansebagai tipe bipolar
Perancangan Perangkat KerasRangkaian Driver Solenoide
Rangkaian Driver Solenoide menggunakan Transistor Switching
Rangkaian Power Supply untuk driver solenoid
� Program pada PC (MS. Visual C++ 2008 & Open CV)� Program Mikrokontroler (Code Vision AVR)
Perancangan Perangkat
Lunak
Diagram Alir Program Pada Komputer
Perancangan Perangkat Lunak
Program pada PC� Akuisisi Citra oleh Web Camera *� Inisialisasi chessboard *� Deteksi buah catur *� Path Planner *� Inverse Kinematik **
*Blok Computer Vision**Robot Interface
Perancangan Perangkat LunakAkuisisi 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”.
(a) Image sebelum prosesPerspective Transform.
(b) Image setelah proses
Prespective Transform.
void cvWarpPerspective(const CvArr* src,
CvArr* dst,const CvMat* map_matrix,
int flags = CV_INTER_LINEAR + CV_WARP_FILL_OUTLIERS,
CvScalar fillval = cvScalarAll(0));
Perancangan Perangkat LunakInisialisasi chessboard
Inisialisasi chessboard diperlukan untukmendapatkan koordinat titik tengah dari tiapkotak hitam-putih dari papan catur.
Setiap c orner disini didefinisikan sebagai titik tengah dalam setiap 4 kotak dalam chessboard
Koordinat Pixel
Sebuah corner
int cvFindChessboardCorners(const void* image,CvSize pattern_size,CvPoint2D32f* corners,
int* corner_count = NULL,int flags =
CV_CALIB_CB_ADAPTIVE_THRESH);
void cvFindCornerSubPix(const CvArr* image,
CvPoint2D32f* corners,int count,CvSize win,
CvSize zero_zone,CvTermCriteria criteria);
Perancangan Perangkat LunakDeteksi buah catur
� 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 nilai Hue, Saturation, Valuesetiap pixel pada ROI ( Region of Interest) citra berskala HSV.
� Kemudian dilakukan penghitungan jumlah pixel warna merah dan warna biru melalui nilai counter
Perancangan Perangkat LunakPath Planner
� Pola pergerakan buah catur dengan metode Continuous Path sesuai dengan hasil path yang dihasilkan dari algoritma Path Planner.
� Pergerakan robot harus diinisialisasi pada awalnya agar robot manipulator mulai bergerak pada posisi awal yang telah ditentukan. Inisialisasi menggunakan fungsi dari limit switch.
� Pada Tugas akhir ini setiap robot manipulator selesai melakukan fungsi place maka robot akan me-resetposisinya sendiri kembali ke posisi awal yang telah ditentukan. Kemampuan repeatibility robot ditentukan berdasarkan kemampuan robot untuk kembali mendekati posisi awal yang telah ditentukan.
Perancangan Perangkat LunakInverse Kinematik
� Inverse Kinematic adalah analisa kinematik untuk mendapatkan besar su dut dari masing – masing joint jika kita mempunyai data koord inat posisi (x,y,z).
� P(x,y) dimana,
1θ
2θ β
α
( )21211 coscos θθθ ++= llx ( )21211 sinsin θθθ ++= lly
−−+= −
21
22
21
221
2 2cos
ll
llyxθ( )( ) 22221
2222111 sincos
sin.costan
θθθθθ
ylllx
lxlly
++−+
= −
Perancangan Perangkat Lunak
Program Mikrokontroler� Fungsi Konversi_data ()
� Fungsi Konversi_data() merubah paket data serial yang telah dirubah ke array karakter2[k] menjadi array karakter 1[i][j].
� Karakter1[i][0] merupakan bagian array yang menentu kan apakah gerakan robot merupakan gerak motor stepper atau so lenoid.
� Karakter1[i][1] merupakan bagian array yang menentu kan jumlah delay ketika motor stepper bergerak.
� Karakter1[i][2] merupakan bagian array yang menentu kan arah gerak motor stepper dan solenoid.
� Karakter1[i][3] merupakan bagian array yang menentu kan jumlah
counter (firing sequence) pada motor stepper.
� Fungsi Run_Motor()� Fungsi Run_motor() merupakan fungsi untuk mengirimkan firing
sequence yang berupa pulsa dari mikrokontroler ke driver motor st epper
dan driver solenoid
Pengujian Alat
� Penghitungan Resolusi Gerak Robot� Pengujian Perangkat Keras � Pengujian Perangkat Lunak� Pengujian Gabungan
Pengujian Alat
Penghitungan Resolusi Gerak Robot (1)
� Penghitungan pertama untuk gerakan translasi naik denganmemberikan setiap kenaikannya 2000 step dengan delay per-stepsebesar 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-stepsebesar 3 ms dan persamaan garis lurusnya untuk gerak translasi turun adalah
y=0.018+0.000249x
Penghitungan Resolusi Gerak Robot untuk Gerakan Translasi pada DOF-1
Penghitungan Resolusi Gerak Robot (2)
� Perhitungan pertama untuk gerakan rotasi searah jarum jam pada DOF-2 dengan memberikan 10 step dan delay per-stepsebesar 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-stepsebesar 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
Penghitungan Resolusi Gerak Robot untuk Gerakan Rotasi pada DOF-2
Penghitungan Resolusi Gerak Robot (3)
� Perhitungan pertama untuk gerakan rotasi searah jarum jam padaDOF-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 padaDOF-3 dengan memberikan 20 step dan delay per-step sebesar 60 ms untuk setiap gerakan dan persamaan garis lurusnya untuk gerakrotasi berlawanan jarum jam pada DOF-3 adalah
y=-8.83001+0.145455x
Penghitungan Resolusi Gerak Robot untuk Gerakan Rotasi pada DOF-3
Penghitungan Resolusi Gerak Robot (4)Kalibrasi Pixel dengan Area Kerja Robot
Koordinat Pixel (dimulai dari pojok kiri bawah) dankoordinat kartesian robot (dimulai dari pojok kiri atas)
Persamaan untuk mengubah koordinat suatu titik P(xp,yp) menjadi P(xr,yr)dalam koordinat kartesian robot,
( ) bpixelpanjangxy pr += 1*
( )( ) apixelpanjangycx pr +−= 1*
)81(
)81(1
aaTengahJarakTitik
aaTengahJarakTitikpixel
cmpixelpanjang−−
=
Pengujian Perangkat KerasPengujian Pengiriman Data Serial
Berhasil12345681234567
Berhasil1000000999999
Berhasil10000099999
Berhasil100009999
Berhasil1000999
Berhasil200199
Berhasil10099
Berhasil2019
Berhasil109
Berhasil21
KategoriData Terima
Data Kirim
Tabel .Pengujian Pengiriman Data Serial
Pengujian Perangkat LunakPengujian Inisialisasi Chessboard
Tujuan :�Mendapatkan kondisi yang optimal untukdeteksi corner chessboard terutama dari sisipengaturan pencahayaan. �Mendapatkan parameter perspective transformagar tampilan chessboard pada image yang akan diolah mendekati bentuk persegi.
Tabel 3. Nilai optimal variabel pada proses perspective transform
0dstQuad[3].y
frame->widthdstQuad[3].x
0dstQuad[2].y
-10dstQuad[2].x
(frame->height)*1dstQuad[1].y
((frame->width)*(1))+5dstQuad[1].x
(frame->height)*(1.04)dstQuad[0].y
-5dstQuad[0].x
NilaiVariabel
Pengujian Perangkat LunakPengujian Deteksi Buah Catur
Tabel. Range Nilai Hue, Saturation,Value
V>10560<S<20080<H<115Biru
V>165S>30H<10;H>150
Merah
Value(V)
Saturation(S)
Hue(H)
Warna
Tabel. Range counter untuk warna merah dan warna biru
Counter biru > 280Biru
Counter merah > 190Merah
CounterWarna
Tujuan :�Mendapatkan range nilai Hue, Saturation, Value yang optimal dalam pendeteksian buahcatur hitam (warna merah) dan pendeteksianbuah catur putih (warna biru) serta range nilaicounter warna merah dan warna biru untukpenentuan kategori isi tiap petak.
Pengujian Perangkat LunakPengujian Path Planner (1)Tujuan :
�Mengetahui seberapa akurat algoritma untukmenghasilkan path
�Pengujian ini dilakukan dengan memberikanhalangan pada jalur pergerakan buah catur.
Gambar. Hasil Path Planner
Pengujian Perangkat LunakPengujian Path Planner (2)
Tabel. Hasil PengujianPath Planner
10020c7
10020b6
10020b4
10020c3
10020e3
10020f4
10020f6
10020e7
d5Knight
9520h1
10020c2
10020a8
10020h7
e4Bishop
10020e1
10020h5
10020a5
10020e8
e5Rock
9520c3
10020b3
10020a3
b2Pawn
AkhirAwalType
ProsentasePengujianPosisiPosisiBuahCatur
Dari table pengujian didapatkanrata – rata keberhasilan algoritmapath planner sekitar 99,6%.
Pengujian Penggabungan
Tujuan :� Mengetahui hasil pergerakan yang dilakukan oleh robot
manipulator sesuai dengan posisi yang diberikan.� Mengetahui repeatability dari robot manipulator
Terdiri atas :�Pengujian repeatability�Pengujian error posisi
Pengujian Penggabungan
Pengujian repeatability (1)
� Repeatability adalah kemampuan robot untuk kembali pada posisi yang sama.
� Selisih error didapat dengan menghitung selisih antara error posisidengan 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.
Tabel Hasil pengujian repeatability
45010
9459
1538
7477
5496
4585
0544
4583
1552
541
Selisih error(pixel)
error posisi (pixel)
Pengujian ke-
� Nilai rata-rata selisih error adalah 4 pixel.
� Berdasarkan hasil kalibrasi pixel didapatkan panjang pixel sebesar 1/9 pixel/cm sehingga selisih error rata-rata adalah 0.4444 cm.
� Nilai repeatibility untuk robot manipulator ini adalah 0.4444cm.
Pengujian Penggabungan
Pengujian repeatability (2)
Pengujian PenggabunganPengujian error posisi (1)
� Pengujian hasil pergerakan juga dilakukan denganmenghitung error posisi rata-rata dari 10 pergerakanyang berbeda.
� Error posisi juga dihitung dengan menggunakanalgoritma template matching pada Open CV.
Pengujian PenggabunganPengujian error posisi (2)
Tabel. Hasil pengujian error posisi
11c1-d111
10c2-d210
7c3-d39
9c5-d58
8c4-d47
5d3-e36
7d2-e25
9d1-e14
11d6-e63
10d5-e52
8d4-e41
error posisi(pixel)Pergerakan
Pengujianke-
� Didapatkan nilai error posisi rata-rata sebesar 9.5 pixel atau sebesar 1.06 cm.
Kesimpulan
� Kesimpulan yang diperoleh dalam Tugas Akhir ini adalah:� Dalam prosedur Inisialisasi chessboard parameter
brightness webcam yang optimal berada pada nilai 4.� Filter warna HSV dengan metode thresholding cukup baik
digunakan dalam pendeteksian warna merah dan biru.� Rata – rata keberhasilan algoritma path planner sekitar
99,6%.� Error posisi rata – rata hasil pergerakan sebesar 1.06 cm.� Nilai repeatibility untuk robot manipulator ini adalah
0.4444cm.
Kesimpulan
SEKIAN
terima kasih