Skip to main content

[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
.

Comments

Popular posts from this blog

HackRF Mayhem Failed to Update - M0 Guru Meditation Hard

I was on Mayhem Portapack v2.0.1 and want to upgrade to the latest stable release v2.1.0. The update went okay using the web upgrade https://hackrf.app/. But then I saw the latest nightly update and want to try it, since it has many new tools that are not yet included in the stable release. But then the update failed :( Disclaimer: I didn't take any photos of the errors, since I was focused on googling the solution. So the error was " Bad Firmware or Failed W/R error" during the upgrade process, and it was stuck. So I had to restart the device, and it was booting to the Mayhem menu, but on the bottom left, which should show the current firmware version, it was showing a  "FLASH ERR"  message. I think I should go back to the stable release, but I can't. Every time I want to flash the stable release version, the portapack will shows an error M0 Guru Meditation - Hard Fault.  There's an issue that was closed on the Mayhem GIT repo that has the same issue a...

Macintosh Classic II Brightness Issue

The Problem My Macintosh Classic II suffers from an issue where the display CRT goes dim after a few minutes on a cold boot. Every time it happens, I need to crank up the cut-off and brightness  pot behind the machine to show the image. The Analyze At first, I thought it must be the brightness issue, so I searched for the Macintosh Classic analog board schematic to check the brightness line. I found the schematic from Bomarc, and the schematic is suitable with my board, since there are two analog board versions.  I started to suspect the resistors and potentiometer on the brightness line. This Macintosh version has software-controlled brightness, so the analog board will get a 22.25 kHz square wave PBM signal from the logic board to control the brightness. I checked and replaced some resistors and cleaned the potentiometer, but nothing seems to work. The signal is there, and no sign of degradation that makes the screen dim after a few minutes.  Brightness Line So I suspec...

Fiberhome HG6145D2 Superadmin Login

Maybe some of you are using In**ehome ISP as your home internet and found out that using the provided login has minimal options to configure the router: user  user1234 I know it’s not the admin login, and that must be a full-control user account that can be used to control this router fully. So I searched and found some posts on the net and most of them are telling me to use: admin %0|F?H@f!berhO3e I tested it and it doesn’t work! But there’s more to it, you need to reset the router first by pressing the reset button on the side of the router. Then after resetting, you can log in using the admin superaccount! But keep in mind, never use the user log in again, because it will lock the super admin login until you reset the router again. Cheers 🍺