Memahami Prinsip Kerja Simple Color Tracking Menggunakan Webcam Dengan Library AForge.NET

ini dia yang mantap... sharing dari tetangga sebelah : http://wangready.wordpress.com


Vidio Hasil

Simple Color Tracking Using AForge.NET by Wang_Ready








Berikut installer demo software simple color tracking.
http://www.mediafire.com/file/304priwevhameq0/simple%20color%20tracking.rar




Schematic dan firmware
Beberapa waktu lalu saat sempat terpikir untuk membuat aplikasi image processing, saya menemukan sebuah library yang saya kira cukup simple untuk diimplementasikan yaitu AForge.NET untuk bahasa C#. Alhamdulillah saat itu ada beberapa perangkat yang tersedia di laboratorium sehigga bisa terealisasi. Berikut uraian saya.
Simple Color Tracking
Abstraksi
Robotics vision adalah salah satu bidang kajian dalam dunia robotika. Salah satu langkah awal untuk memulainya adalah robot mampu mengenali warna. Dalam kesempatan kali ini, robot didisain mampu mengenali warna lalu mengikuti gerak dari warna yang terdeteksi tersebut. Sebagai sensornya digunakan kamera dan aktuator yang digunakan adalah motor servo. Sedangkan otak dari sistem tersebut masih menggunakan PC mengingat harga IC untuk aplikasi real time sangat mahal.
1. Pendahuluan
Penggunaan kamera(digital) dalam dunia robotik dikenal sebagai robotics vision. Seperti halnya pada manusia, kamera dapat didisain sebagai mata pada robot. Dengan mata, robot dapat lebih leluasa “melihat” lingkungannya sebagaimana manusia.
Dalam dua dasawarsa terakhir ini tenologi robotics vision berkembang sangat pesat. Kemajuan ini dicapai berkat perkembangan teknologi IC yang makin kompak dan cepat, dan kemajuan di bidang komputer (sebagai pengolah), baik perangkat keras maupun perangkat lunak. Teknologi optiknya pada dasarnya masih tetap menggunakan teknik yang telah berkembang sejak lebih dari 100 tahun yang lalu, yaitu penggunaan konfigurasi lensa cembung dan cekung.
2. Deteksi Warna
Ada banyak metode yang bisa digunakan untuk dapat mendeteksi warna menggunakan kamera. Diantaranya adalah dengan menggunakan Euclidean Color Filtering. Filter ini memfilter piksel-piksel pada gambar yang berada – di dalam/di luar – dari lingkup RGB (Red Green Blue) dengan pusat dan radius terntentu. Filter tersebut membiarkan piksel-piksel dengan warna yang berada – di dalam/di luar -  dari lingkup yang telah ditentukan dan mengisi sisanya dengan warna tertentu.
Setelah warna difilter maka untuk menghasilkan gambar yang lebih baik maka digunakan Erosion dan Dilatation. Erosion memberikan nilai minimum di sekitar piksel-piksel untuk setiap piksel dari citra hasil. Di sekitar piksel-piksel yang harus diproses, ditentukan oleh penataan elemen: 1 – untuk memproses tetangga piksel tersebut, -1 – untuk melewatinya. Filter sangan berguna terutama untuk pengolahan citra biner. Dimana filter ini menghapus piksel yang tidak dikelilingi dengan jumlah tertentu tetangganya. Ini memberi kemampuan untuk menghapus piksel nois (piksel yang berdiri sendiri) atau menyusutkan objek.
Dilatation, filter ini menetapkan nilai maksimum sekitar piksel untuk setiap piksel dari citra hasil. Di sekitar piksel-piksel yang harus diproses, yang ditentukan oleh penataan elemen: 1 – untuk memproses tetangga, -1 – untuk melewatinya. Filter ini berguna untuk pengolahan citra biner, di mana memungkinkan untuk melebarkan objek terpisah atau menggabungkan objek.
1. Diagram Alur
Input Gambar (dari webcam) –> Konversi data gambar ke dalam bentuk Bitmap (PC) –> Euclidean Color Filtering (PC) –> Erosion (PC) –> Dilatation (PC) –> Deteksi koordinat warna (PC) –> Pengiriman data ke mikrokontroler (PC – mikrokontroler) –> pengontrolan servo oleh mikrokontroler (mikrokontroler).
2. Pemograman
Untuk pemograman digunakan software Visual Studio 2008 dengan menggunakan bahasa C#. Alasan menggunakan bahasa C# adalah karena tersedianya library yang cocok bagi perancang, yaitu AForge.net. Pemograman pada VS 2008 dilakukan dengan menggunakan GUI. Selain itu, digunakan pula software CodeVision AVR sebagai compiler untuk mikrokontroler yang akan mengontrol servo secara mandiri.
3. Sistem Antarmuka PC – Mikrokontroler
Pengiriman data dari PC ke Mikrokontroler menggunakan RS232 dengan Baudrate disesuaikan. Jika posisi warna terdeteksi berada pada koordinat (0,0).
Jika posisi warna terdeteksi tidak berada pada koordinat (0,0).
4. Percobaan
Percobaan dilakukan dengan sejumlah warna. Objek berwarna tersebut digerak-gerakan di depan perangkat webcam-servo yang mempunyai 2 DOF (Degrees Of Freedom). Dengan sumbu Z sekitar 1800 dan sumbu X sekitar 600.
5. Hasil Percobaan
Robot mampu mengikuti arah objek. Jika robot kehilangan objek, maka robot akan bergerak ke arah saat objek terakhir terdeteksi. Proses deteksi warna ini masih terpengaruh oleh intensitas cahaya.
6. Kesimpulan
Kamera dapat mengikuti arah gerak dari objek berwarna yang telah ditentukan walaupun masih terdapat kekurangan pada algoritma juga pada  perancangan software dan hardware.
7. Daftar Pustaka
[1] Aforge.NET-Framework-Documentaion
[2] Lee, Wei-Meng, Practical .NET 2.0 Networking Projects, Apress, 2007.
[3] Pitowarno, Endra, Robotika Desain, Kontrol, dan Kecerdasan Buatan, Andi, Yogyakarta, 2006.
8. Lampiran
Gambar 1. Tampilan software.
Gambar 2. Tampilan setting Euclidean Color Filter.Gambar 3. Foto Perangkat.
Berikut installer demo software simple color tracking.
http://www.mediafire.com/file/304priwevhameq0/simple%20color%20tracking.rar
Berikut beberapa link referensi lainnya.
Berikut Schematic untuk rangkaian kontroler servo.
Berikut link yang bisa didownload yang berisi PCB Project EAGLE beserta firmware (.hex) untuk attiny2313 berdasarkan schematic di atas.
:Contoh Program:
Kode kira2 untuk kotrol servo satu sumbu saja menggunakan proportional control. Tp belum diuji.
PSEUDO CODE
___________________________________________________________
.
.
.
. //kode lainnya
.
.
.


#include


#define port_dir DDRB.3 //pendefinisian port direction
#define pulse_servo PORTB.3 //pendefinisian port pulsa servo
#define HIGH 1 //HIGH = 1
#define LOW 0 //LOW = 0


void my_delay_us(int n); //deklarasi prosedur my_delay_us();


void main(void)
{
int Kp = 10; //set nilai Konstanta proportional,
//dikalibrasi sampai servo bergerak dengan halus
int error; //error dari posisi
int set_point = 4; //set nilai set_point (posisi yang diinginkan)
int pos_update; //variabel posisi dari kamera
int pos_act; //posisi yang harus dicapai
int delay_servo = 1500; //nilai dari delay servo, nilai awal(tengah, 1500us)


port_dir = 1;


.
.
.
. //kode lainnya
.
.
.


while(1)
{
pos_update = (int)getchar(); //terima data dari PC (range 0-9)
error = set_point – pos_update;
pos_act = error * Kp;
delay_servo += pos_act; //nilai posisi yang harus dicapai
//jika arah servo terbalik, maka tanda (+) diganti (-)


if(delay_servo > 20000) delay_servo = 20000; //Set nilai maximum delay posisi servo
if(delay_servo < 300) delay_servo = 300; //Set nilai minimum delay posisi servo pulse_servo = HIGH; my_delay_us(delay_servo); pulse_servo = LOW; my_delay_us(20000 – delay_servo); }; } void my_delay_us(int n) { while(n–) { delay_us(1); } }



Share : 
http://wangready.wordpress.com/2011/02/05/simple-color-tracking-menggunakan-webcam-dengan-library-aforge-net/




Postingan terkait:

Belum ada tanggapan untuk "Memahami Prinsip Kerja Simple Color Tracking Menggunakan Webcam Dengan Library AForge.NET"

Kontes Robot

Kontes Robot