[Final Project] LEGO NXT Gesture Car

Sekedar cerita tentang final year project saya, atau istilah kerenya adalah SKRIPSI. Skripsi yang saya kerjakan mengenai citra digital untuk mengenali bentuk tangan dan posisi tangan manusia diaplikasikan ke pengendalian LEGO NXT. LEGO NXT adalah kit robot yang bisa kita rangkai sendiri, menurut desain dan keinginan kita, selain itu dapat kita program sendiri untuk berjalan sesuai keinginan kita. 

Skripsi saya adalah mendeteksi tangan yang nantinya digunakan untuk pengendali LEGO NXT yang saya buat menyerupai sebuah mobil. Pengguna nantinya dapat mengendalikan LEGO NXT tersebut dengan tangan didepan kamera dengan menirukan gaya menyetir mobil. Selain berjalan, sistem juga dapat mengenali bentuk tangan untuk berhenti. 

Posisi tangan menyetir

Bentuk tangan menyetir adalah tangan menggenggam, sedangkan bentuk tangan untuk menghentikan kendaraan adalah tangan terbuka (5 jari). Pada dasarnya sistem ini adalah sistem untuk mendeteksi jumlah jari, dengan 0 jari = DRIVE, dan 5 jari = STOP.

Pembuatan sistem dibuat menggunakan C# karena didukung EMGUCV, sangat terbantu untuk melakukan preprocessing citra. Preprocessing terdiri dari segmentasi warna kulit, dimana bisa dilakukan degan kalibrasi warna kulit, atau dibuat nilai static. Setelah segmentasi, langkah selanjutnya adalah noise removal, pembuatan kontur dan pendeteksian convex hull/defects.
Noise removal, saya hanya menggunakan operasi morfologi citra seperti biasa, dengan menggabungkan operasi Opening kemudian dilakukan Dilasi. Operasi opening dilakukan untuk menutup daerah kecil – kecil yang dinamakan sebagai noise. Kemudian setelah hilang noisnya, dipertebal menggunakan Dilasi. 
Pendeteksian kontur yang saya pakai adalah sebuah algoritma Border Following, bisa dilihat di jurnal Suzuki Abe (http://tpf-robotica.googlecode.com/svn-history/r397/trunk/Vision/papers/SA-CVGIP.PDF). Saya memakai algoritma ini karena memang algoritma ini yang digunakan oleh library EmguCV unutk mendapatkan kontur. 
Langkah selanjutnya adalah membuat Convex Hull dan defects yang melingkupi tangan, untuk mendeteksi dan mendapatkan bounding box yang nantinya digunakan untuk mendeteksi jumlah jari. Setelah itu tinggal mendeteksi sudut kedua tangan dan dikirimkan ke LEGO NXT. Berikut ini adalah demonya
.

Leave a Reply

Your email address will not be published. Required fields are marked *