TELEMATIKA, Vol. 12, No. 02, JULI, 2015, Pp. 107 – 122 ISSN 1829-667X
PENGENDALIAN PID PADA ROBOT MIROSOT UPN “VETERAN” YOGYAKARTA BERBASIS SENSOR GYROSCOPE DAN ACCELEROMETER 1)
1)
2)
Awang Hendrianto Pratomo , Dessyanto Boedi Prasetyo , Nuryono Setyo Widodo , dan 1) Indra Aprillinfanteri Army 1) Teknik Informatika Universitas Pembangunan Nasional “Veteran” Yogyakarta Jl. Babarsari No. 2 Tambak bayan, Yogyakarta 2) Program Studi Teknik Elektro, Fakultas Teknologi Industri Universitas Ahmad Dahlan Yogyakarta e-mail :
[email protected],
[email protected],
[email protected],
[email protected]
Abstract MiRoSoT Robot movement is influenced by the speed control from right and left wheels. Wheels speed control on MiroSot robot is determined by parameter PID (Proportional Integral and Derevative) value. PID value determined by robot position and angle. MiroSot robot movement is still not stable and can not move in accordance with the instruction have been made. Instability of the robot movement in the game is affected by friction wheels against the ground, friction gear and robot load. In this study, implemented a gyroscope and accelerometer sensors to stabilize robot movement. Based on both sensors are controlled by using a microcontroller ATmega64. Speed control system based on gyroscope and accelerometer sensor is obtained that the robot is able to face a certain angle more precisely. The accelerometer sensor is used as a parameter for the braking system, so the robot is able to move more stable without the loss of power from the motor during a reduction speed from the strategy control. . Keywords : MiroSot, Robot Soccer, Microcontroller, PID control Abstrak Pergerakan Robot MiRoSoT dipengeruhi oleh pengaturan kecepatan roda kanan maupun roda kiri. Pengaturan kecepatan roda pada robot MiroSot ditentukan oleh parameter nilai PID (Proporsional Integral dan Derevative). Penentuan nilai PID dipengaruhi oleh kedudukan dan sudut robot. Dalam pergerakannya robot MiroSot masih belum stabil dan belum dapat bergerak sesuai dengan perintah yang telah dibuat. Ketidak stabilan robot dalam permainan dipengaruhi oleh gaya gesekan roda terhadap lapangan, gesekan gear dan beban robot. Pada penelitian ini menggunakan sensor GyroScope dan Accelerometer untuk menstabilkan pergerakan robot. Berdasarkan kedua sensor tersebut dikendalikan menggunakan mikrokontroler ATmega64. Sistem kendali kecepatan berdasarkan sensor gyroscope dan accelerometer diperoleh bahwa robot mampu menghadap ke sudut tertentu dengan lebih tepat sesuai dengan arah yang diperintahkan oleh strategi. Sensor accelerometer digunakan sebagai parameter sistem pengereman, sehingga robot mampu bergerak lebih stabil tanpa adanya loss power dari motor saat melakukan pengurangan kecepatan yang diperintahkan strategi. Kata Kunci : MiroSot, Robot Sepak Bola, Microcontroller, Kendali PID
1. PENDAHULUAN Robot Sepak Bola merupakan teknologi yang telah berkembang dari teknologi robot yang dapat bergerak otomatis tanpa dikendalikan oleh manusia (Weiss, 2009) yang menggabungkan beberapa teknologi baru seperti sistem kecerdasan buatan, sistem penglihatan dengan waktu yang sebenarnya, pengendalian robot, komunikasi nirkabel dan pengendalian beberapa robot (Bing et al., 2012). Robot Sepak Bola ini dimasukkan kedalam cabang kompetisi yang dilaksanakan oleh kedua organisasi yaitu FIRA (The Federation of Pengendalian PID…(Awang HP)
TELEMATIKA
ISSN 1829-667X
■
108
International Robot-soccer Association) dan RoboCup, dalam kompetisi dari kedua organisasi tersebut peserta kompetisi dituntut agar mengembangkan kontrol dan strategi dalam permainan sepak bola (FIRA, 2014). MiRoSoT bergerak dengan menggunakan kedua rodanya yang berada di sebelah kanan dan kiri robot dengan penggerak berupa DC motor di setiap rodanya (Jabson et al., 2008). Untuk menggunakan dan mengendalikan sumber daya perangkat keras yang telah dibuat seperti pengendalian motor, menerima perintah yang dikirim oleh komputer utama, maka dibutuhkan mikrokontroler (Andriana, 2011; Jabson et al., 2008). Robot dapat memainkan suatu permainan sepak bola dengan cara menjalankan perintah-perintah yang dikirimkan melalui gelombang radio. Sehingga dalam menjalankan suatu robot dibutuhkan suatu fungsi-fungsi dasar dalam satu kesatuan berbentuk strategi sebagai perintah untuk bergeraknya suatu robot di lapangan. Maka dari itu rancangan strategi yang baik sangatlah penting untuk dapat memenangkan pertandingan Robot Sepak Bola, terutama jika kemampuan secara teknis tim lawan seperti perangkat keras robot dan sistem penglihatan yang digunakan sebanding (Kim et al., 2007). Menurut Caprari et al., 2001 dalam pertandingan robot sepak bola akan mendapat gangguan seperti gesekan roda terhadap lapangan, gesekan gear, beban robot yang dapat menggangu kestabilan pergerakan robot itu sendiri. Berdasarkan masalah tersebut supaya robot dapat bergerak dengan stabil, maka diperlukan pemasangan perangkat tambahan berupa sensor gyroscope dan sensor accelerometer. Kedua sensor tersebut dapat digunakan sebagai parameter dalam merubah nilai kecepatan pada roda sebelum dikirimkan sebagai nilai yang kendali kecepatan roda kanan dan kiri. Sensor yang dapat digunakan untuk menstabilkan pergerakan yaitu sensor gyroscope dan sensor accelerometer (Mitra, 2013). Gyroscope merupakan sensor fisik yang dapat mendeteksi dan mengukur pergerakan sudut pada suatu objek (Trusov, 2011). Accelerometer merupakan sensor yang dapat mengukur percepatan suatu benda terhadap gravitasi (Wiryadinata dan Widada, 2008). Berdasarkan kedua sensor tersebut dapat mengetahui pergerakan robot dari sumbu-sumbu putar yang terdapat pada sensor sehingga dapat menstabilkan pergerakan robot dengan menangani eror yang terdeteksi oleh sensor gyroscope dan sensor accelerometer. Untuk menyetabilkan pergerakan robot MiRoSoT yang dimiliki oleh Teknik Informatika UPN “V” Yogyakarta,maka diperlukan sensor accelerometer yang dapat mendeteksi percepatan yang dialami oleh robot dan sensor gyroscope yang berguna untuk mendeteksi kecepatan sudut oleh robot. Kedua-dua sensor tersebut dapat di integrasikan sebagai sarana untuk mendeteksi kesalahan pada pergerakan robot baik pergerakan secara linear maupun angular. Pada penelitian ini dapat dirumuskan masalahnya adalah bagaimana membuat sistem kendali pada mikrokontroler untuk mengendalikan pergerakan Micro-Robot Soccer Tournament UPN “Veteran” Yogyakarta menggunakan sensor accelerometer dan gyroscope. Dalam penelitian ini mempunyai tujuan untuk membuat robot MiroSot UPN “Veteran” Yogyakarta dapat bergerak secara linear maupun angular, dan penerapan sensor accelerometer dan gyroscope sebagai sarana untuk menstabilkan pergerakan pada robot MiroSot UPN “Veteran” Yogyakarta. . 2. Studi Literatur Robot Sepak Bola merupakan teknologi yang telah berkembang dari teknologi robot yang dapat bergerak otomatis tanpa dikendalikan oleh manusia (Weiss, 2009) yang menggabungkan beberapa teknologi baru seperti sistem kecerdasan buatan, sistem penglihatan real time, pengendalian robot, komunikasi nirkabel dan pengendalian beberapa robot (Bing et al., 2012). Dalam pengembangannya Robot Sepak Bola dapat dijadikan beberapa topik penelitian misalnya sistem multi agen dan strategi, pengendalian robot, sensor fusion, pengendalian kecerdasan, komunikasi, pemrosesan gambar, mekatronika dan kecerdasan buatan. Robot Sepak Bola ini dimasukkan kedalam cabang kompetisi yang dilaksanakan oleh kedua organisasi yaitu FIRA (The Federation of International Robot-soccer Association) dan RoboCup, dalam kompetisi dari kedua organisasi peserta kompetisi dituntut agar mengembangkan kontrol dan strategi dalam permainan sepak bola. Dua organisasi FIRA dan RoboCup masing-masing organisasi memiliki liga yang berbeda, di dalam organisai FIRA semua robot yang ikut kompetisi dari liga NaroSot yang berukuran 4,5 cm x 4,5 cm x 5 cm sampai liga Humanoid dikendalikan secara terpusat. Kemudian untuk organisasi RoboCup liga Humanoid dengan ukuran tinggi sampai 180 cm dikendalikan sepenuhnya bergerak dan pengendalian dilakukan di dalam robot itu sendiri (Weiss, 2009).
109
■
TELEMATIKA Vol. 12, No. 02, JULI, 2015 : 107 – 122
2.2. Micro-Robot Soccer Tournament (MiRoSoT) MiRoSoT merupakan robot yang berukuran kecil yang memiliki sistem kendali secara otomatis dan terpusat pada komputer utama yang saling berhubungan dengan menggunakan alat pendukung berupa kamera untuk mendeteksi posisi maupun pergerakan robot dan sistem komunikasi untuk mengirim perintah ke robot (Gambar 1) (Egly et al, 2010). MiRoSoT merupakan kategori perlombaan yang diadakan oleh organisasi FIRA dan MiRoSoT dibagi menjadi 2 liga yaitu Middle League dan Large League. Dari kedua liga jika dilihat dari segi dimensi robot hanya berukuran 7,5 cm x 7,5 cm x 7,5 cm dan memiliki berat tidak boleh lebih dari 650 g. Dari kedua liga yang membedakan adalah jumlah robot yang bermain yaitu 5 robot setiap tim untuk Middle League dan 11 robot setiap tim untuk Large League, kemudian untuk ukuran lapangan juga berbeda yaitu 220 cm x 180 cm untuk Middle League dan 400 x 280 cm untuk Large League. Untuk pengenalan identitas robot pada sisi atas robot diberi warna yaitu warna kuning dan biru digunakan untuk identitas tim, dan tidak boleh menggunakan warna orange karena warna orange digunakan sebagai warna bola (FIRA, 2014).
Gambar 1 Sistem MiRoSoT. 2.2. Mikrokontroler Atmel AVR ATmega64 Fitur yang disediakan oleh ATmega64, yaitu 64 Kbytes program yang dimasukkan kedalam sistem dengan kemampuan dapat membaca sekaligus menulis, 2 Kbytes EEPROM, 4 Kbyte SRAM, 53 jalur I / O, 32 register, RTC (Real Time Counter), 4 Timer / Counter yang fleksibel dengan mode perbandingan dan PWM (Pulse Width Modulation), 2 USART, 10 bit ADC dengan tahap masukan diferensial sesuai dengan pilihan kenaikan yang dapat diprogram, pemantau timer dengan dengan oscillator internal yang dapat diprogram, sebuah port serial SPI, IEEE (Institute of Electrical and Electronics Engineers) std. 1149.1 sesuai dengan antarmuka tes JTAG (Joint Test Action Group) dan juga digunakan untuk mengakses sistem debug on-chip dan pemrograman dan 6 mode software yang dapat dipilih untuk menghemat daya, yaitu 5 mode sama seperti pada mikrokontroler Atmel AVR ATmega8 ditambah dengan Mode Extended Standby, yang hanya menjalankan oscillator utama dan timer asynchronous dalam waktu operasinya. Harsono et al., 2009., Mikrokontroler Atmel ATmega8 digunakan untuk memantau suhu pada jaringan lokal, diamana ATmega8 dipadukan dengan sensor suhu LM35D yang mempunyai tegangan keluaran yang linier dan sebanding dengan suhu celcius yaitu 10mV/oCelsius antara 0o – 100o Celsius. Kemudian tegangan dari sensor suhu LM35D diproses di dalam mikrokontroler Atmel ATmega8 kemudian data yang diproses di tampilkan kedalam layar LCD (Liquid Crystal Display) dengan ukuran 16 karakter x 2 baris dan data bisa di simpan di database web server dengan lokal komputer dan tersambung dengan koneksi jaringan lokal dan kemudian ditampilkan kedalam halaman website sehingga dapat diakses dan dilihat dengan web browser melalui komputer, laptop, handphone yang terhubung dengan jaringan lokal. Di dalam penelitian yang dibuat oleh Arjenaki et al., 2012 menjelaskan bahwa, mikrokontroler Atmel ATmega8 digunakan untuk mengendalikan sensor dan gerak motor dalam
Pengendalian PID…(Awang HP)
TELEMATIKA
ISSN 1829-667X
■
110
memilah buah tomat berdasarkan kematangan, ukuran dan kecacatan permukaan menggunakan kamera industri. Di dalam jurnal ATmega8 digunakan untuk mengendalikan sensor infa merah agar dapat menjaga kecepatan conveyor belt agar jarak antara buah tomat yang akan dilihat kamera sama. Kemudian kamera yang terhubung ke komputer memproses gambar dari buah tomat apakah sesuai dengan kriteria tes atau tidak selanjutnya komputer mengirim sinyal ke mikrokontroler agar menggerakan mesin pemilah kedalam kelompok buah yang baik atau tidak. 2.3. Kinematika dan Dinamika Gerak Suatu benda dikatakan bergerak jika posisinya berubah terhadap titik tertentu.Gerak pada benda pada dasarnya memiliki dua jenis yaitu gerak kinematika dan gerak dinamaika. Gerak kinematika merupakan pergerakan suatu benda atau partikel tanpa memperlihatkan penyebab yang mengakibatkan benda tersebut bergerak. Sedangkan pada gerak dinamika merupakan pergerakan suatu benda dengan memperhatikan penyebab yang membuat benda tersebut bergerak (Aprianto, 2013). Pada robot yang diteliti faktor yang mempengaruhi pergerakan robot adalah jarak, kecepatan dan percepatan. Konsep yang digunakan pada robot MiRoSoT adalah jika kecepatan roda kanan dan kiri bergerak dengan kecepatan tertentu maka untuk menentukan kecepatan laju robot adalah kecepatan roda kiri ditambah kecepatan roda kanan kemudian dibagi dua (Kim et al, 2011). 2.4. Sistem Kendali pada Robot Sistem kendali pada robot dapat dibagi menjadi dua metode, yaitu sistem kendali berulang secara terbuka (open loop control system) dan sistem kendali berulang secara tertutup (close loop control system). Open loop control merupakan sebuah sistem kendali yang bekerja dengan mengendalikan nilai masukan yang telah ditetapkan tanpa mengukur efek dari keluaran sistem, jadi nilai masukan yang sudah ditetapkan tadi tidak akan berubah walaupun nilai dari keluaran membuat output dari sistem salah, diagram dari open loop control dapat dilihat di Gambar 2 (Omirou, 2008). Close loop control bekerja dengan cara menggunakan nilai keluaran sebagai pertimbangan nilai masukan, sehingga sistem dapat mengeluarkan nilai sesuai dengan nilai yang diinginkan. Pada metode close loop control nilai keluaran bisa disebut dengan nilai umpan balik, sehingga nilai umpan balik dapat memperkecil kesalahan sehingga sistem dapat mengeluarkan nilai yang diinginkan, diagram dari close loop control ditunjukkan dalam Gambar 3 (Jury, 2000).
Gambar 2. Diagram sistem kendali terbuka
Gambar 3. Diagram sistem kendali tertutup Pada Robot Sepak Bola, diterapkan sistem yang sederhana yaitu SENSE-DECIDEACT dalam mengendalikan robot terutama pada robot MiRoSoT. Untuk SENSE pada MiRoSoT yaitu terletak pada sistem penglihatan di mana kamera mengambil dan mengirim data berupa gambar ke komputer utama dan kemudian mengolahnya untuk mengetahui posisi dari robot
111
■
TELEMATIKA Vol. 12, No. 02, JULI, 2015 : 107 – 122
dan bola. Kemudian DECIDE merupakan pengambilan keputusan terhadap informasi apa yang telah di terima, di dalam MiRoSoT DECIDE dimplementasikan pada strategi yang telah dibuat. Komputer utama mengambil keputusan berdasarkan informasi yang di dapat dan disamakan dengan kondisi-kondisi yang telah dibuat ke dalam strategi sehingga dapat menentukan aksi apa yang harus di lakukan oleh robot. Dalam ACT sendiri terdapat 2 sub yaitu Control dan Actuation, di mana untuk ACT : Control atau aksi yang diberikan untuk kontrol dilakukan di dalam komputer utama sehingga memerlukan informasi berupa posisi robot dan bola yang kemudian memutuskan untuk memilih aksi sesuai dengan kondisi, dan dengan menggunakan aksi yang tepilih komputer utama mendapatkan perhitungan kecepatan robot dan siap untuk dikirim ke robot dengan sistem komunikasi. Kemudian untuk ACT : Actuation merupakan aksi untuk menggerakan robot dari data kecepatan yang telah diterima robot menjadi pergerakan fisik dari robot. ACT : Actuation juga dapat berupa pergerakan fisik robot berdasarkan umpan balik dari robot dan diolah oleh robot itu sendiri (Kim et al, 2011). 2.5. Sistem Kendali Menggunakan Gyroscope Pergerakan pada robot MiRoSoT yang digunakan sebagai penelitian, menggunakan satu sumbu putar berupa sumbu z atau sumbu yaw pada sensor gyroscope. Kendali pada robot dengan menggunakan sensor gyroscope hanya berdasarkan nilai keluaran sensor dari ketiga sumbu yang ada pada gyroscope, yaitu sumbu x atau roll, sumbu y atau pitch dan sumbu z atau yaw. Dari ketiga sumbu tersebut dapat digunakan sebagai acuan derajat pergerakan robot agar sesuai dengan derajat pergerakan yang diperintahkan ke robot itu sendiri (Ahmadi et al, 2004). Keluaran dari sensor gyroscope berupa nilai kecepatan sudut dari perubahan gerak pada setiap sumbunya, pada robot biasanya gyroscope dapat dijadikan sebagai sensor untuk mengetahui arah hadap suatu robot (Krass, 2006). Dalam penelitian yang dilakukan oleh Baltes et al, 2004 menjelaskan bahwa dalam mengendalikan langkah kaki pada robot humanoid membutuhkan umpan balik dari sensor gyroscope, dalam penelitiannya sensor gyroscope digunakan untuk mengatur pergerakan langkah kaki agar berada didalam zona yang aman sehingga robot dapat berjalan tanpa jatuh. Sensor gyroscope tersebut juga digunakan untuk memprediksi jika robot akan jatuh dan menentukan nilai kompensasi yang digunakan untuk menghindari jatuh. Gyroscope biasanya pada robot digunakan untuk menstabilkan pergerakan suatu robot yang menggunakan dua roda, seperti kereta monorail dengan dua roda, mobil dengan dua roda dan sepeda tak berawak, seperti salah satu penelitian yang diambil oleh Spry dan Girard, 2008, menjelaskan bahwa gyroscope digunakan untuk menstabilkan sebuah kendaraan yang memiliki dua buah roda seperti sepeda dikarenakan kendaran yang memiliki dua roda dengan penempatan roda di depan dan di belakang agar dapat menggunakan kendaraan tersebut memerlukan keseimbangan yang baik agar bergerak dengan semstinya. Dalam kasusnya sumbu yang digunakan untuk menstabilkan pergerakan kendaraan tersebut menggunakan sumbu x atau sumbu roll yang digunakan umpan balik.. 3. Metodologi Penelitian Metode yang dibuat untuk pengembangan sistem MiRoSoT UPN Veteran Yogyakarta menggunakan salah satu model yang biasa diimplementasikan untuk pengembangan perangkat lunak yaitu model air terjun termodifikasi (Modified Waterfall), dapat dilihat pada Gambar 4. Tahapan yang dilakukan secara berurutan yaitu dari analisa kebutuhan sistem yang menetapkan komponen-komponen yang digunakan untuk membangun sistem, termasuk perangkat keras dan perangkat lunak yang diperlukan. Tahap kedua berupa proses desain yang mendefinisikan tahapan desain arsitektur dan menghasilkan spesifikasi penerapan masing-masing komponen pada sistem. Tahap ketiga merupakan proses implementasi yang berupa penerapan langsung dari desain yang telah dibuat. Tahap yang keempat berupa pengujian dari sistem yang telah buat. Yang terakhir merupakan maintenance yang berupa pemeliharaan pada sistem (Munassar dan Govardhan, 2010).
Pengendalian PID…(Awang HP)
TELEMATIKA
ISSN 1829-667X
■
112
Gambar 4. Metodologi pengembangan sistem. 3.1. Flowchart Sistem Pada bagian ini, akan menjelaskan bagan alur dari semua proses yang berlangsung pada sistem robot MiRoSoT, dari diterimanya data RF, diolahnya data kecepatan, pengambilan nilai dari sensor, pengkombinasian data dengan nilai sensor sampai pengiriman data kecepatan yang sudah diolah maupun tidak diolah ke board slave. Sehingga jalannya sistem dapat di lihat secara jelas dan berurutan. Lebih jelasnya mengenali flowchart sistem secara keseluruhan dapat dilihat pada Gambar 5. 3.1.1. Flowchart proses program utama Terlihat pada Gambar 6. bahwa program utama berisi perintah-perintah untuk mengkombinasikan data sensor dengan data kecepatan sehingga data kecepatan yang akan dikirm ke board slave data kecepatan yang dapat menstabilkan gerak robot.
Gambar 5. Flowchart proses keseluruhan sistem pada board master.
Gambar 6. Flowchart program utama.
3.2. Flowchart proses olah data sensor gyroscope (Get_Gyro_Rates()) Pada Gambar 7 menggambarkan proses mikrokontroler mengambil data dari sensor yang digunakan yaitu sensor gyroscope, di mana sensor ini mendeteksi kecepatan putar suatu benda. Dari kecepatan putar tersebut dapat dijadikan informasi berupa derajat putar suatu benda sehingga dalam proses ini juga terdapat proses perhitungan derajat putar terhadap robot.
113
■
TELEMATIKA Vol. 12, No. 02, JULI, 2015 : 107 – 122
Gambar 7. Flowchart proses olah data sensor gyroscope. 3.3. Flowchart proses olah data sensor accelerometer (Get_Accel_Values()) Pada Gambar 8 menggambarkan proses mikrokontroler mengambil data dari sensor yang digunakan yaitu sensor accelerometer, di mana sensor ini mendeteksi percepatan gerak suatu benda. Data yang keluar dari sensor accelerometer tidak langsung digunakan, harus dilakukan filter terlebih dahulu sebelum sehingga data dapat dianalisis lebih jelas.
Gambar 8. Flowchart proses olah data sensor accelerometer. 3.4. Flowchart kirim data ke board slave (convert_3digit()) Pada bagian ini, proses yang terjadi adalah setelah data di kombinasikan kemudian data dikirim ke board slave namun harus melalui konversi kedalam 3 digit data kecepatan terlebih dahulu. Pengkonversian ini harus dilakukan karena panjang bit yang harus dikirim sepanjang 6 bit, jadi jika ada data kecepatan berjumlah 1 digit dan 2 digit harus dikonversi kedalam 3 digit data kecepatan baik kiri maupun kanan. Prosesnya dapat dilihat pada Gambar 9. yang berupa flowchart.
Pengendalian PID…(Awang HP)
TELEMATIKA
ISSN 1829-667X
■
114
Gambar 9. Flowchart proses konversi ke 3 digit dan pengiriman ke board slave. 3.5. Kalman Filter Pada Accelerometer Fungsi dari kalman filter sendiri berguna untuk menghilangkan nilai gangguan pada nilai yang dihasilkan oleh sensor. Dalam kasus ini kalman filter digunakan untuk merubah nilai yang terlihat tidak beraturan sehingga dapat dilihat secara jelas dan dapat dengan mudah digunakan untuk analisis pergerakan robot. Kalman filter yang digunakan merupakan kalman filter yang sederhana sehingga mudah di gunakan dan mudah untuk dipahami, rumus dari kalman filter dapat dilihat pada Persamaan 1 dan Persamaan 2.
= + ݍ.............................................................................................................. + ݎ ݏ = ݏ+ ൫݇ × (݈ܽܿܿ݁௫ − )ݏ൯ ( = 1 − ݇) × ....................................................................................................
(1)
݇=
(2)
Pada Persamaan 1 terdapat dua rumus yang dapat menghasilkan nilai prediksi dari kalman filter dan Persamaan 2 digunakan untuk merubah nilai keluaran sensor ke nilai tanpa gangguan. Dari persamaan diatas terdapat variabel antara lain s merupakan nilai yang sudah difilter, p untuk nilai perkiraan eror, q untuk nilai gangguan proses, r untuk nilai gangguan sensor, k untuk nilai kalman gain dan accelx untuk nilai dari sensor. 4. Hasil dan Pembahasan 4.1. Proses Pengambilan Data Accelerometer Robot MiRoSoT yang digunakan sebagai penelitian telah terpasang sensor salah satunya yaitu sensor accelerometer dimana sensor tersebut dapat menghasilkan nilai suatu percepatan pada tiga sumbu putar terhadap gravitasi bumi. Dalam mengaplikasikan proses ini terdapat pada fungsi Get_Accel_Values(), sensor ini dapat dikendalikan oleh mikrokontroler ATmega64 dengan menggunakan pin SDA dan SCL sebagai jalurnya. Sensor accelerometer dapat diatur nilai maksimum dalam pedeteksiannya, dalam penelitian ini accelerometer diatur dengan nilai maksimumnya yaitu ±16 g dimana 1 g nya bernilai 9,8 m/s2. Peseudocodenya dapat dilihat pada Pseudocode 1
115
■
TELEMATIKA Vol. 12, No. 02, JULI, 2015 : 107 – 122
FUNCTION Get_Accel_Values INPUT : ACCEL_XOUT_H (data accel ACCEL_XOUT_L (data accel ACCEL_YOUT_H (data accel ACCEL_YOUT_L (data accel ACCEL_ZOUT_H (data accel ACCEL_ZOUT_L (data accel OUTPUT : accel_x (data percepatan accel_y (data percepatan accel_z (data percepatan
sumbu sumbu sumbu sumbu sumbu sumbu sumbu sumbu sumbu
x high) x low) y high) y low) z high) z low) x) y) z)
READ ACCEL_XOUT_H, ACCEL_XOUT_L, ACCEL_YOUT_H, ACCEL_YOUT_L, ACCEL_ZOUT_H, ACCEL_ZOUT_L; ACCEL_XOUT_H = mpu6050_read(MPU6050_ACCEL_XOUT_H); ACCEL_XOUT_L = mpu6050_read(MPU6050_ACCEL_XOUT_L); ACCEL_YOUT_H = mpu6050_read(MPU6050_ACCEL_YOUT_H); ACCEL_YOUT_L = mpu6050_read(MPU6050_ACCEL_YOUT_L); ACCEL_ZOUT_H = mpu6050_read(MPU6050_ACCEL_ZOUT_H); ACCEL_ZOUT_L = mpu6050_read(MPU6050_ACCEL_ZOUT_L); ACCEL_XOUT = (float)((ACCEL_XOUT_H<<8)|ACCEL_XOUT_L)/2048; ACCEL_YOUT = (float)((ACCEL_YOUT_H<<8)|ACCEL_YOUT_L)/2048; ACCEL_ZOUT = (float)((ACCEL_ZOUT_H<<8)|ACCEL_ZOUT_L)/2048; accel_x = (float) (ACCEL_XOUT * one_g) - offset_accel_x; accel_y = (float) ACCEL_YOUT * one_g; accel_z = (float) (ACCEL_ZOUT - offset_accel_z)* one_g; if(accel_x <= bts_ats_a_x & accel_x >= bts_bwh_a_x) accel_x = 0; if(accel_x < 0) { accel_x = accel_x * pengaccelxm; } else if(accel_x >= 0) { accel_x = accel_x * pengaccelxp; }; p=(float)p+q; k=p/(p+r); s=(float)s+(float)(k*(float)(accel_x-s)); p=(float)(1-k)*p; ENDFUNCTION
Pseudocode 41. Fungsi pengambilan nilai Accelerometer Pada pseudocode diatas membaca nilai yang telah di deteksi oleh sensor dan kemudian dimasukkan ke variabel pada masing-masing sumbu yaitu x, y, z dan kemudian dibagi dengan nilai sensitifitas yang sesuai dengan nilai maksimum yang sudah diatur tadi yaitu jika nilai makimumnya 16 g sensitifitasnya adalah 2048, sehingga variabel ACCEL_XOUT, ACCEL_YOUT, ACCEL_ZOUT, accel_x, accel_y, accel_z, k, s, p dapat digunakan ketika fungsi ini terpanggil. 4.2.
Proses Pengambilan Data Gyroscope
Pada proses ini diimplementasikan pada fungsi Get_Gyro_Rates() yang merupakan fungsi membaca nilai hasil deteksi sensor gyroscope yang tersimpan pada register dan menghitungnya sampai menjadi besar sudut putar pada sumbu z. Pada penerapannya di robot, sumbu pada sensor gyroscope yang digunakan adalah sumbu z di mana sumbu putar ini Pengendalian PID…(Awang HP)
TELEMATIKA
ISSN 1829-667X
■
116
terletak tegak lurus terhadap robot, sehingga dapat mendeteksi besar kecepatan sudut putar robot. Sensor ini dapat dikendalikan oleh mikrokontroler ATmega64 dengan menggunakan pin SDA dan SCL sebagai jalurnya, pin yang digunakan sama karena sensor accelerometer dan gyroscope terdapat di dalam satu perangkat sensor. Pada penelitian ini sensor gyroscope diatur dengan nilai maksimumnya yaitu ±500o/s. FUNCTION Get_Gyro_Rates INPUT : GYRO_ZOUT_H (data gyro sumbu z high) GYRO_ZOUT_L (data gyro sumbu z low) GYRO_ZOUT (data mentah gyro sumbu z) OUTPUT : GYRO_ZRATE (data kecepatan sudut putar sumbu z) dgyro_z (data kecepatan sudut yang sudah dikurangi offset) angle_z (data mentah besar sudut putar sumbu z) sudut_z (data besar sudut) READ GYRO_ZOUT_H, GYRO_ZOUT_L, GYRO_ZOUT, ACCEL; GYRO_ZOUT_H = mpu6050_read(MPU6050_GYRO_ZOUT_H); GYRO_ZOUT_L = mpu6050_read(MPU6050_GYRO_ZOUT_L); GYRO_ZOUT = ((GYRO_ZOUT_H<<8)|GYRO_ZOUT_L); GYRO_ZRATE = (float)GYRO_ZOUT/65.5; dgyro_z = (float)GYRO_ZRATE - offset_gyro_z; IF (dgyro_z <= batas_atas_z & dgyro_z >= batas_bawah_z) THEN dgyro_z = 0; ENDIF angle_z = angle_z+(float)(dgyro_z*0.01); angle_180p = 180/penggyrop; IF(angle_z > (180/penggyrop)) THEN sdt_180 = (float)(180/penggyrop) - angle_z; abs_180 = fabs(sdt_180); angle_z = (float)(angle_180p + sdt_180) * (sdt_180/abs_180); ENDIF IF(angle_z < sdt_180 abs_180 angle_z ENDIF
(-180/penggyrop)) THEN = (float)(-180/penggyrop) - angle_z; = fabs(sdt_180); = (float)(angle_180p - sdt_180) * (sdt_180/abs_180);
sudut_z = (float)angle_z * penggyrop; ENDFUNCTION
Pseudocode 2. Fungsi Pengambilan data Gyro Pada Pseudocode diatas terdapat fungsi untuk membaca hasil dari sensor yang telah tersimpan di register yaitu dengan fungsi mpu6050_read, kemudian variabel yang sudah diisi hasil high dan low dijadikan satu menjadi data mentah kedalam GYRO_ZOUT dan pada GYRO_ZRATE terdapat perhitungan dimana data mentah tadi dijadikan nilai kecepatan sudut putar dengan membaginya dengan sensitifitas yang sesuai dengan nilai maksimum yang telah ditentukan yaitu 65,5. Variabel dgyro_z merupkan pengurangan nilai gyro dengan nilai offset yang telah ditentukan dengan cara pengambilan uji coba nilai keluaran dari gyroscope pada saat diam, begitu pula pada variabel batas_atas_z dan batas_bawah_z. Jika nilai dgyro_z berada diantara nilai batas_atas_z dan batas_bawah_z maka nilai variabel dgyro_z akan dinolkan. Untuk perhitugan konversi dari kecepatan sudut putar menjadi besar sudut putar terdapat pada variabel angle, sedangkan variabel sudut merupakan perhitungan pengalian terhadap nilai besar sudut putar dengan faktor kalibrasi agar sesuai dengan posisi sudut yang
117
■
TELEMATIKA Vol. 12, No. 02, JULI, 2015 : 107 – 122
benar, nilai faktor kalibrasi ini ditentukan dengan cara pengujian hingga nilai pengali dapat menyesuaikan nilai besar sudut putar terhadap robot. 4.3. Pengujian Sensor Gyroscope Pada Tabel 1 dan Tabel 2 merupakan daftar pengujian pergerakan turning robot tidak menggunakan gyroscope dan menggunakan gyroscope, pengujian ini dilakukan dengan cara menjalankan fungsi turning pada strategi dengan sudut-sudut pengujian ke robot yang tidak dilengkapi dengan gyroscope maupun menggunakan gyroscope kemudian diambil waktu dengan satuan detik, untuk mengambil data sudut didapat pada aplikasi vision.
Tabel 1 Perbandingan pergerakan turning robot 30o Uji
1 2 3 4 5
Tanpa Gyro Sudut Waktu Vision (detik) o () 40 0,58 32 0,60 37 0,44 26 0,47 37 0,56
60o Dengan Gyro Sudut Waktu Vision (detik) o () 26 0,74 35 0,66 32 0,64 29 0,67 26 0,65
Tanpa Gyro Sudut Waktu Vision (detik) o () 65 0,74 62 0,74 50 0,76 52 0,80 70 0,62
Dengan Gyro Sudut Waktu Vision (detik) o () 69 0,84 64 0,81 73 0,84 62 0,86 71 0,89
Tabel 2 Lanjutan perbandingan pergerakan turning robot 90o Uji
1 2 3 4 5
Uji
1 2 3 4 5
Tanpa Gyro Dengan Gyro Sudut Sudut Waktu Waktu Vision Vision (detik) (detik) o o () () 96 0,94 90 1,05 84 0,99 96 1,04 104 0,90 84 1,05 88 0,80 97 1,10 86 0,87 91 1,02 150o Tanpa Gyro Dengan Gyro Sudut Sudut Waktu Waktu Vision Vision (detik) (detik) o o () () 157 1,20 160 1,44 156 1,29 150 1,51 150 1,27 152 1,33 154 1,36 149 1,37 160 1,37 151 1,38
120o Tanpa Gyro Sudut Waktu Vision (detik) o () 125 1,04 120 1,06 120 0,97 126 1,07 125 1,17 180o Tanpa Gyro Sudut Waktu Vision (detik) o () -175 1,63 -175 1,63 -176 1,43 -178 1,36 -178 1,47
Dengan Gyro Sudut Waktu Vision (detik) o () 123 1,38 120 1,35 130 1,23 125 1,23 125 1,31 Dengan Gyro Sudut Waktu Vision (detik) o () -175 1,71 176 1,73 -175 1,66 -178 1,71 180 1,81
Untuk membandingkannya dilakukan pengambilan data dengan robot yang telah dilengkapi dengan gyroscope, data dapat dilihat pada Tabel 1 dan Tabel 2 pada kolom Dengan Gyro, pada data robot menggunakan gyroscope sudut yang dihasilkan pada vision dan pada gyroscope saling mendekati dengan sudut yang diuji. Dari data tersebut dapat disimpulkan bahwa dengan menggunakan sensor gyroscope robot dapat berhenti dengan tepat sesuai dengan sudut yang diinginkan. Pengujian berikutnya dilakukan dengan menaruh robot dengan jarak tertentu terhadap titik tujuan kemudian di ambil data berupa waktu tempuh dari titik awal sampai titik tujuan. Data pengujian dapat dilihat pada Gambar 10 sampai Gambar 13 dengan ditampilkan kedalam grafik bar dengan sumbu horizontal merupakan data jarak (cm) dan sumbu vertikal merupakan data waktu (detik).
Pengendalian PID…(Awang HP)
TELEMATIKA
■
ISSN 1829-667X
Gambar 10 Perbandingan waktu tempuh robot dengan fungsi positioning sudut 0
o
Gambar 11 Perbandingan waktu tempuh robot dengan fungsi positioning sudut 30
o
Gambar 12 Perbandingan waktu tempuh robot dengan fungsi positioning sudut 60
o
118
119
■
TELEMATIKA Vol. 12, No. 02, JULI, 2015 : 107 – 122
Gambar 13 Perbandingan waktu tempuh robot dengan fungsi positioning sudut 90
o
Dari data pada Gambar 10 sampai Gambar 13 dapat dilihat waktu yang dibutuhkan untuk mencapai titik tertentu dengan jarak yang berbeda. Jika dibandingkan, waktu yang dibutuhkan untuk pergerakan tanpa menggunakan gyroscope dengan pergerakan dengan gyroscope lebih cepat menggunakan robot yang dilengkapi dengan gyroscope, dikarenakan dalam bergerak robot mampu mengendalikan arah sesuai dengan sudut yang dikirim oleh strategi positioning. 4.2. Pengujian Sensor Accelerometer Sensor accelerometer digunakan untuk parameter dalam sistem pengereman. Berikut perbandingan data dari pergerakan robot tanpa sistem pengereman dengan data yang menggunakan sistem pengereman, dapat dilihat pada Gambar 4 dan15.
Gambar 4 Penurunan kecepatan tanpa sistem pengereman
Pengendalian PID…(Awang HP)
TELEMATIKA
ISSN 1829-667X
■
120
Gambar 15 Nilai accelerometer tanpa sistem pengereman Pada Gambar 8 memperlihatkan grafik dengan data kecepatan, kecepatan yang di eksekusi dalam artian kecepatan yang dikirim ke motor akan sesuai dengan kecepatan yang diterima robot. Kemudian pada Gambar 9 menampilkan grafik dari data sensor accelerometer pada sumbu x. Pada Gambar 8 penurunan kecepatan dilakukan antara 27 – 40 ms, sedangkan pada Gambar 9 sensor hanya mengalami penurunan kecepatan secara perlahan. Kondisi seperti ini yang mengakibatkan robot jika mengelami penurunan kecepatan akan berjalan tanpa ada tenaga (loss power) dari motor. Kemudian untuk grafik dengan menggunakan sistem pengereman dapat dilihat pada Gambar 16 dan Gambar 17.
Gambar 16 Penurunan kecepatan dengan sistem pengereman
121
■
TELEMATIKA Vol. 12, No. 02, JULI, 2015 : 107 – 122
Gambar 17 Nilai accelerometer menggunakan sistem pengereman Pada Gambar 10 memperlihatkan grafik penurunan kecepatan dengan menggunakan sistem pengereman, terlihat pada saat ada penurunan kecepatan antara 27 – 40 ms kecepatan yang dijalankan merupakan kecepatan dari sistem pengereman yang berupa reverse breaking maupun force stop, sehingga robot akan berhenti seketika dan akan menjalankan kecepatan yang diterima tanpa adanya loss power pada motor. Hal ini dapat dilihat pada grafik nilai yang keluar dari sensor pada Gambar 11 bahwa pada sampiling time kisaran 30 ms mengalami penurunan percepcepatan yang cepat dikarenakan sistem pengereman berjalan. 5. Kesimpulan Berdasarkan dari hasil penelitian, perancangan dan implementasi yang telah dilakukan sebelumnya, maka dapat diambil beberapa kesimpulan bahwa Robot MiRoSoT UPN “Veteran” Yogyayakarta mampu bergerak liniear maupun angular secara stabil dengan menggunakan sensor accelerometer dan gyroscope. Dengan sensor gyroscope robot mampu menghadap dengan lebih tepat sesuai dengan sudut yang diperintahkan. Sensor accelerometer digunakan untuk parameter sistem pengereman sehingga robot mampu bergerak lebih stabil tanpa adanya loss power dari motor DC pada saat melakukan pengurangan kecepatan yang diperintahkan dari strategi.
DAFTAR PUSTAKA Andriana, Y. 2011. Aplikasi Mikrokontroler AT89C51 untuk Pengendalian Kecepatan Motor DC dengan menggunakan Gelombang Radio sebagai Media Transmisi. UNDIP Semarang, Indonesia. Arjenaki, O. O., Moghaddam P. A. & Motlagh, A. M. 2013. Online Tomato Sorting based on Shape, Maturity, Size, and Surface Defects using Machine Vision. Turkish Journal of Agriculture and Forestry, Urmania, Iran 37 : 62-68. Aprianto, M. C. 2013. Kinematika dan Dinamika : Pengantar. Sekolah Tinggi Teknolgi Dr. Khez Muttaqien.. Baltes, J., McGrath, S., dan Anderson, J. 2004. The Use of Gyroscope Feedback in the Control of the Walking Gatis for a Small Humanoid Robot. Departement of Computer Science University of Manitoba Winnipeg, Canada. Bing, FU., Pi-xu, Z. & Cheng-fei, W. 2012. A Cooperative Strategy for Shooting in Robot Soccer Competition Based on The Multi-Suppose Tree. Procedia Engineering, China, 29 : 1462-1466. Caprari, G., Estier, T. & Siegwart, R. 2001. Fascination of Down Scaling – Alice the Sugar Cube Robot. Swiss Federal Institute of Technology Lausanne, Switzerland. Egly, U., Novak, G. & Weber, D. 2010 Decision Making for Mirosot Soccer Playing Robots. Vienna, Austria. FIRA. 2014. FIRA MiroSot Game Rules for Middle League and Large League. FIRA. Pengendalian PID…(Awang HP)
TELEMATIKA
ISSN 1829-667X
■
122
Jabson, N. G., Leong, K. G. N., Licarte, S. W., Oblepias, G. M. S., Palomado, E. M. J. & Dadios, E. P. 2008. The Autonomous Golf Playing Micro Robot: With Global Vision and Fuzzy Logic Controller. International Journal on Smart Sensing and Intelligent System, Manila, Philippines 1(4) : 824-841. Harsono, D., Sunardi, J. & Biantara, D. 2009. Pemantauan Suhu dengan Mikrokontroler ATmega8 pada Jaringan Lokal. BATAN Yogyakarta, Indonesia ISSN 1978-0176 : 415422. Jury, F. D. 2000. Fundamentals of Closed Loop Control. Ficher-RoseMount Mashalltown, Lowa, USA. Kim, J-H., Shim, H-S., Kim, H-S., Jung, M-J. & Vadakkepat, P. 2007. Micro-Robot Soccer System Action Selection. Taejon-shi, Republic of Korea. Kim, J-H., Kim, D-H., Kim, Y-J. & Seow, K-T. 2011 Soccer Robotics. Springer Tracts in Advanced Robotics, Heidelberg, Germany, ISSN 1620-7438, ISBN 3-540-21859-9 11. Kras, M. 2006. Gyro Programming for FRC Robots. First Robotics Competition Contro System, Hauppagen. Mitra, S. 2013. Autonomous Quadcopter Docking System. Ithaca, New York. Omirou, A. 2008. Open and Closed-Loop Control Systems - Motor Speed. Frederick University Cyprus, Cyprus. Trusov, A. A. 2011. Overview of MEMS Gyroscopes: History, Principles of Operations, Types of Measurements. Irvine, California, USA. Weiss, N. 2009. Adaptive Supervision of Moving Objects for Mobile Robotics Applications. Robotics and Autonomous Systems, Dortmund, Germany 57 : 982-995. Wiryadinata, R. & Widada, W. 2008. Error Correction of Rate-Gyroscope Calibration for Inertial Navigation System Algorithm. Yogyakarta, Indonesia, ISSN 1907-5022.