Robotika

Blog komunitas Robot Universitas Gunadarma

Archive for the 'Programming' Category

euclidean untuk pelurusan pada robot maze

Author: DADHANG BUDHIARTO
01 22nd, 2010

perubahan nilai |PQ| membuat perjalanan sedikit bergelombang dikarenakan nilai |PQ| tersebut mempengaruhi nilai dari PWM motor(kecepatan motor pada masing2 roda),

dan pada kasus yang biasa terjadi gelombang tersebut dapat diperhalus lagi dengan menggunakan sistem PID dengan nilai |PQ| sebagai nilai errornya, tapi tenang penggunaan kali ini belum sampai pada penambahan sistem PID

untuk bentuk sederhananya bisa seperti berikut

void euclid(){

r=20cm; //misal jarak untuk referensi untuk pingp

s=20cm; //misal jarak untuk referensi untuk pingq

pingp(); //untuk memanggil pingp dan mengambil jaraknya

pingq(); //untuk memanggil pingq dan mengambil jaraknya

pr=pingp-r ;

qs=pingq-s ;

maxpwm=255; /*bisa diatur sesuai kebutuhan robot, (tiap robot memiliki kecepatan berbeda-beda)*/

if(pingp<pingq){ //posisi robot miring kekiri

for(a=0;a<=pq;a++){

lpwm=maxpwm-pq; rpwm=maxpwm;

}

goto keluar;

}

else if(pingp>pingq){ //posisi robot miring kekanan

for(a=0;a<=pq;a++){

lpwm=maxpwm; rpwm=maxpwm-pq;

}

goto keluar;

}

else if(pingp==pingq){ //posisi robot sejajar tembok

if(pq==0){

goto keluar;}

else if((pingp<20)&&(pingq<20)){

for(a=0;a<=pq;a++){

lpwm=maxpwm-pq; rpwm=maxpwm;

}

goto keluar;}

else if((pingp>20)&&(pingq>20)){

for(a=0;a<=pq;a++){

lpwm=maxpwm; rpwm=maxpwm-pq;

}

goto keluar;

}

}

keluar:

}



Kursi Roda Dengan Laser Vision

Author: Miftah Hazmi
12 11th, 2009

Perkembangan teknologi robotik secara esensi seperti teknologi lainnya adalah sebagai alat untuk membantu segala keperluan manusia tak terkecuali bagi orang cacat sekalipun. Dengan kursi roda yang tidak dikendalikan oleh manusia atau remote namun dengan keadaan lingkungan sekitar kota ini adalah alat yang sangat baik digunakan bagi orang buta. John Spletzer dari Lehigh University Bethlehem, Pennsylvania berpendapat bahwa teknologi dapat diibaratkan seperti tangan, kaki, atau mata sebagai kemampuan untuk beriteraksi dengan lingkungan sekitar. Dari penemuannya ini Spletzer mendapat penghargaan CAREER Award dari National Science Foundation (NSF) karena pengembang Robotic Wheelchair ini. Read the rest of this entry »



System Control PID

Author: DADHANG BUDHIARTO
09 17th, 2008

Sistem PID control

Didalam suatu sistem kontrol kita mengenal adanya beberapa macam aksi kontrol, diantaranya yaitu aksi kontrol proporsional, aksi kontrol integral dan aksi kontrol derivative . Masing-masing aksi kontrol ini mempunyai keunggulan-keunggulan tertentu, dimana aksi kontrol proporsional mempunyai keunggulan risetime yang cepat, aksi kontrol integral mempunyai keunggulan untuk memperkecil error , dan aksi kontrol derivative mempunyai keunggulan untuk memperkecil derror atau meredam overshot/undershot. Untuk itu agar kita dapat menghasilkan output dengan risetime yang tinggi dan error yang kecil kita dapat menggabungkan ketiga aksi kontrol ini menjadi aksi kontrol PID, dan pada penulisan ini sistem kendali yang digunakan adalah sistem kendali PID digital. Dalam kasus robot maze kita dapat menggunakan kendali PID untuk menjalankan robot agar lebih halus dalam menyelesaikan lorong.

Dalam kasus ini missal sensor ping kita namakan ping1, ping2, ping3, ping4, ping5, dari posisi tersebut dapat kita jadikan perbandingan sebagai berikut:

Pingki = ping1 + ping2+ ping3

Pingka = ping3+ ping4+ping5

PV = Pingka – Pingki (nilai kesalahan)

Max_MV = 100 (maximum nilai kesalahan)

Min_MV = -100 (minimum nilai kesalahan)

SP = 0 (nilai awal kesalahan)

Error = SP – PV (nilai kondisi ketika error)

Last_error = nilai untuk kondisi error yang terakhir terjadi.

Var_Kp = nilai untuk konstanta proporsional

Var_Ki = nilai untuk konstanta integral

Var_Kd = nilai untuk konstanta derivatif

MAXSpeed = 255 (nilai untuk kecepatan maximum)

MINSpeed = 0 (nilai untuk kecepatan minimum)

intervalPWM = (MAXSpeed – MINSpeed) / 5;

MAXPWM = MAXSpeed ;

MINPWM = MINSpeed;

Error = SP – PV;

P = (var_Kp * error) / 10;

 

I = I + error;

I = (I * var_Ki) / 10;

 

rate = error – last_error;

D = (rate * var_Kd) / 10;

 

last_error = error;

 

MV = P + I + D;

 

if (MV == 0) {

lpwm = MAXPWM;

rpwm = MAXPWM;

}

else if (MV > 0) { // alihkan ke kiri

rpwm = MAXPWM – ((intervalPWM – 20) * MV);

lpwm = (MAXPWM – (intervalPWM * MV) – 20);

 

 

if (lpwm < MINPWM) lpwm = MINPWM;

if (lpwm > MAXPWM) lpwm = MAXPWM;

if (rpwm < MINPWM) rpwm = MINPWM;

if (rpwm > MAXPWM) rpwm = MAXPWM;

}

else if (MV < 0) { // alihkan ke kanan

lpwm = MAXPWM + ( ( intervalPWM – 20 ) * MV);

rpwm = MAXPWM + ( ( intervalPWM * MV ) – 20 );

 

if (lpwm < MINPWM) lpwm = MINPWM;

if (lpwm > MAXPWM) lpwm = MAXPWM;

if (rpwm < MINPWM) rpwm = MINPWM;

if (rpwm > MAXPWM) rpwm = MAXPWM;

 

}

if (MV>Max _MV) { //belokan kanan siku

BlokKanan(); // belok kanan patah

lpwm = MAXPWM; //

rpwm = MINPWM; //

}

else if(MV<Min_MV) { //belokan kiri siku

BlokKiri(); // belok kiri patah

lpwm = MAXPWM; //

rpwm = MAXPWM; //

Pada dasarnya sistem PID merupakan system yang kompleks, system yang bekerja berdasarkan nilai yang memiliki range yang terbatas dan konstan. Sehingga untuk aplikasinya system PID sangat cocok untuk robot yang memiliki arena yang terbatas seperti arena yang menggunakan garis atau lorong untuk penyelesaian masalahnya . Sistem PID seperti ini sering digunakan untuk algoritma Line Follower, robot maze, system kendali ketinggian untuk robot terbang yang memerlukan penanganan system dengan risetime yang tinggi dan nilai error yang kecil, tetapi sayangnya system ini kurang bagus untuk arena yang luas.



Algorithm Robot Control

Author: DADHANG BUDHIARTO
09 17th, 2008

Fuzzy logic control

Fuzzy logic merupakan logika acak yang menggunakan perbandingan data-data yang didapat oleh sensor yang kemudian dibandingkan, hasil dari perbandingan tersebut akan menentukan jalan dari suatu robot. Apakah robot dalam kondisi miring atau dalam kondisi yang salah. Dalam system Fuzzy untuk mendapatkan suatu hasil yang kita inginkan,dapat menggunakan persamaan matematika. Tetapi kita menerapkan suatu sistem kemampuan manusia untuk mengendalikan sesuatu , yaitu dalam bentuk aturan-aturan  Jika – maka ( If – Then Rules), sehingga proses pengendalian akan mengikuti pendekatan secara linguistik, sistem ini disebut dengan sistem kendali logika fuzzy, yang mana sistemkendali logika fuzzy ini tidak memiliki ketergantungan pada variabel – variabel proses kendali. Sistemini dikembangkan dalam bidang teknik kontrol, terutama untuk sistem nonlinier dan dinamis. Dalam pemanfaatan fuzzy logic disini digunakan untuk robot avoider atau robot wallfollower yang pengendaliannya menggunakan beberapa nilai yang didapat dari beberapa sensor pada robot. Sebagai contoh dalam kasus berikut:

Robot maze dengan 5 sensor Ultrasonic (sensor PING) dan 2 sensor infra merah sharp GP2D15 aktif low.

Dalam kasus ini missal sensor ping kita namakan ping1, ping2, ping3, ping4, ping5, dari posisi tersebut dapat

kita jadikan perbandingan sebagai berikut:

Pingki = ping1 + ping2+ ping3

Pingka = ping3+ ping4+ping5

Jika keadaan Pingki = Pingka, dan S1=S2=0, maka robot dalam keadaan sejajar dengan atau dengan kata lain robot dalam posisi lurus, jadi untuk keadaan ini robot akan bergerak maju lurus. Read the rest of this entry »