Slide Presentasi Tugas Akhir Ian Agung - Digilib ITS

396 downloads 4990 Views 766KB Size Report
RANCANG BANGUN ROBOT. PERMAINAN CATUR. BERBASIS KAMERA. TUGAS AKHIR. Oleh : Ian Agung Prakoso. 2204100060. Dosen Pembimbing :.
TUGAS AKHIR

RANCANG BANGUN ROBOT PERMAINAN CATUR BERBASIS KAMERA 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.

Sistem Permainan Catur yang menjadi latar belakang Tugas 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

Perancangan Perangkat Keras

 

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 Mekanik Robot Permainan Catur Berbasis Kamera Sistem mekanik robot manipulator

Sistem mekanik Gripper

Posisi webcam

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 Keras Rangkaian Sistem Minimum Mikrokontroler ATMega 32  Mikrokontroler ATMega 32 sebagai rangkaian penerjemah data serial dari PC menjadi firing sequence untuk mengontrol motor Stepper dan mengontrol ON/OFF solenoide

Perancangan Perangkat Keras Jalur Komunikasi Serial RS 232

 Komunikasi serial RS-232 antara uc dengan PC menggunakan IC max232

Perancangan Perangkat Keras Rangkaian Driver Motor Stepper

Rangkaian Driver Motor Stepper tipe Bipolar Menggunakan rangkaian H-Bridge Motor Stepper Universal difungsikan sebagai tipe bipolar

Perancangan Perangkat Keras Rangkaian Driver Solenoide

Rangkaian Driver Solenoide menggunakan Transistor Switching

Rangkaian Power Supply untuk driver solenoid

Perancangan Perangkat Lunak  

Program pada PC (MS. Visual C++ 2008 & Open CV) Program Mikrokontroler (Code Vision AVR)

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 Lunak 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”. void cvWarpPerspective( const CvArr* src, CvArr* dst, const CvMat* map_matrix, int flags = CV_INTER_LINEAR + CV_WARP_FILL_OUTLIERS, CvScalar fillval = cvScalarAll(0));

(a) Image sebelum proses Perspective Transform.

(b) Image setelah proses Prespective Transform.

Perancangan Perangkat Lunak Inisialisasi chessboard Inisialisasi chessboard diperlukan untuk mendapatkan koordinat titik tengah dari tiap kotak hitam-putih dari papan catur. int cvFindChessboardCorners( const void* image, CvSize pattern_size, CvPoint2D32f* corners, int* corner_count = NULL, int flags = CV_CALIB_CB_ADAPTIVE_THRESH ); Koordinat Pixel

Setiap corner disini didefinisikan sebagai titik tengah dalam setiap 4 kotak dalam chessboard void cvFindCornerSubPix( const CvArr* image, CvPoint2D32f* corners, int count, CvSize win, CvSize zero_zone, CvTermCriteria criteria);

Sebuah corner

Perancangan Perangkat Lunak 

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, Value setiap pixel pada ROI (Region of Interest) citra berskala HSV.



Kemudian dilakukan penghitungan jumlah pixel warna merah dan warna biru melalui nilai counter

Deteksi buah catur

Perancangan Perangkat Lunak Path 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-reset posisinya 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 Lunak Inverse Kinematik α

θ2

β

θ1

 

Inverse Kinematic adalah analisa kinematik untuk mendapatkan besar sudut dari masing – masing joint jika kita mempunyai data koordinat posisi (x,y,z). P(x,y) dimana, x = l1 cosθ1 + l 2 cos(θ1 + θ 2 ) y = l1 sin θ1 + l 2 sin (θ1 + θ 2 )

 x 2 + y 2 − l12 − l 22 θ 2 = cos  2l1l 2  −1

  

θ 1 = tan −1

y (l1 + l 2 cos θ 2 ) − x.l 2 sin θ 2 x(l1 + l 2 cos θ 2 ) + yl 2 sin θ 2

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 menentukan apakah gerakan robot merupakan gerak motor stepper atau solenoid. Karakter1[i][1] merupakan bagian array yang menentukan jumlah delay ketika motor stepper bergerak. Karakter1[i][2] merupakan bagian array yang menentukan arah gerak motor stepper dan solenoid. Karakter1[i][3] merupakan bagian array yang menentukan 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 stepper dan driver solenoid

Pengujian Alat

Pengujian Alat    

Penghitungan Resolusi Gerak Robot Pengujian Perangkat Keras Pengujian Perangkat Lunak Pengujian Gabungan

Penghitungan Resolusi Gerak Robot (1) Penghitungan Resolusi Gerak Robot untuk Gerakan Translasi pada DOF-1

 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

Penghitungan Resolusi Gerak Robot (2) Penghitungan Resolusi Gerak Robot untuk Gerakan Rotasi pada 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

Penghitungan Resolusi Gerak Robot (3) Penghitungan Resolusi Gerak Robot untuk Gerakan Rotasi pada 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

Penghitungan Resolusi Gerak Robot (4) Kalibrasi Pixel dengan Area Kerja Robot

Persamaan untuk mengubah koordinat suatu titik P(xp,yp) menjadi P(xr,yr)dalam koordinat kartesian robot,

(

)

y r = x p * panjang1 pixel + b

((

)

)

x r = c − y p * panjang1 pixel + a  = JarakTitik Tengah ( a1 − a8) panjang 1 pixel  cm pixel  JarakTitik Tengah ( a1 − a8) 

Koordinat Pixel (dimulai dari pojok kiri bawah) dan koordinat kartesian robot (dimulai dari pojok kiri atas)

Pengujian Perangkat Keras Pengujian Pengiriman Data Serial Tabel .Pengujian Pengiriman Data Serial Data Data Kategori Kirim Terima 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

Pengujian Perangkat Lunak Pengujian Inisialisasi Chessboard Tujuan : Mendapatkan kondisi yang optimal untuk deteksi corner chessboard terutama dari sisi pengaturan pencahayaan. Mendapatkan parameter perspective transform agar tampilan chessboard pada image yang akan diolah mendekati bentuk persegi. 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

Pengujian Perangkat Lunak Pengujian Deteksi Buah Catur Tujuan : 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. Tabel. Range Nilai Hue, Saturation,Value Warna

Hue (H)

Saturation (S)

Value (V)

Merah

H150

S>30

V>165

Biru

80