ELEKTRAN, VOL. 1, NO. 1, DESEMBER 2011
28
Pendeteksi Tanjakan Pada Robot DOT.B di Lapangan KRCI 2008 Devisi Expert Menggunakan Hitachi H48C 3-AXIS Accelerometer Tjan Swi Hong Jurusan Teknik Elektro, Politeknik Negeri Bandung Jl. Gegerkalong Hilir, Ds. Ciwaruga, Kotak Pos 1234, Bandung 40012, Indonesia
[email protected] Abstrak— Lapangan devisi expert KRCI 2008 terdiri dari dua lantai. Lantai pertama dan lantai kedua dihubungkan dengan tanjakkan bersudut 15 derajat dan panjang horisontal sekitar 2,62 meter. Kebanyakan algoritma robot di devisi ini memerlukan pendeteksi tanjakan yang andal. Pendeteksi tanjakan harus dapat membedakan antara tanjakan dan uneven floor yang mempunyai sudut kemiringan 26,6 derajat dan panjang horisontal 10 centimeter, juga harus dapat meredam kesalahan pengukuran yang disebabkan oleh pergerakan robot yang dinamis. DOT.B adalah salah satu peserta KRCI dari PNB yang sukses membuat pendeteksi tanjakan menggunakan Hitachi H48C 3-Axis Accelerometer. Kata kunci— KRCI 2008 devisi Expert, Pendeteksi tanjakan, H48C 3-Axis Accelerometer, Dot.B PNB
I. PENDAHULUAN Lapangan KRCI (Kontes Robot Cerdas Indonesia) 2008 devisi expert terdiri dari dua lantai. Lantai pertama dan lantai kedua dihubungkan dengan tanjakan dengan sudut 15 derajat dan panjang horisontal sekitar 2,62 meters [1]. Untuk menyelesaikan masalah di devisi ini, kebanyakan algoritma robot memerlukan pendeteksi tanjakan yang andal. Pendeteksi tanjakan harus dapat membedakan antara tanjakan dan uneven floor yang mempunyai sudut kemiringan 26,6 derajat dan panjang horisontal 10 centimeter , juga harus dapat meredam kesalahan pengukuran yang disebabkan oleh pergerakan robot yang dinamis. Gambar 1 adalah pandangan samping lapangan sedangkan Gambar 2 adalah dimensi uneven floor yang diletakkan di sekitar lapangan. Algoritma pendeteksi tanjakan harus berjalan dengan cepat, menggunakan memori untuk data (data memory) dan memori program (program memory) yang sesedikit mungkin.
Gambar 2 Uneven Floor
II. KAJIAN TEKNOLOGI Ada beberapa metoda untuk mendeteksi tanjakan, antara lain: 1. Menggunakan switch air raksa[4]. Masalah menggunakan sensor ini yaitu: a. Sudut tanjakan tidak cukup untuk meng-ON/OFFkan switch secara andal. b. Sulit untuk membedakan antara tanjakan dan uneven floor . c. Sensor bisa ON/OFF bukan ditanjakan disebabkan oleh pergerakan robot yang dinamis. 2. Menggunakan Encoder untuk mendeteksi kecepatan putaran motor. Jika robot menggunakan kontroller yang terbuka, maka kecepatan motor akan berkurang jika robot naik tanjakan dan sebaliknya akan bertambah jika robot turun. Permasalahannya robot Dot.B menggunakan kontrol motor yang tertutup sehingga variasi kecepatan motor tidak terlihat dengan jelas. 3. Menggunakan Accelerometer. Salah satu cara terbaik untuk mendeteksi tanjakan yaitu menggunakan accelerometer. Ia dapat mengukur sudut tanjakan dengan mengukur gravitasi bumi. Salah satu sensor yang ada di lab yaitu modul Hitachi H48C 3-Axis Accelerometer buatan Paralax. Modul H48C adalah modul terintegrasi yang dapat mengukur gaya gravitasi (g) sebesar ±3g dalam tiga aksis (X, Y, and Z)[3]. Modul ini terdiri dari regulator 3.3-volt untuk H48C, analog signal conditioning, dan ADC (analog to digital converter) MCP3204 (4 channel, 12-bit) untuk membaca tegangan keluaran H48C. Semua komponen dirangkai di papan tercetak dengan ukuran 0.7 x 0.8 inchi yang mudah dihubungkan
Gambar 1 Lapangan KRCI devisi Expert
ELEKTRAN, VOL. 1, NO. 1, DESEMBER 2011 dengan breadboard. Pembacaan hasil pengukukuran modul menggunakan synchronous serial interface [2]. Menghubungkan modul H48C dengan Mikrokontroller hanya memerlukan 3 pin I/O (pin CLK dan DIO dapat dipakai bersama untuk system yang menggunakan lebih dari satu modul H48C). Lihat Gambar 3 untuk rangkaian detailnya.
29 Skematik diagram sistem ini dapat dilihat pada Gambar 5.
Gambar 5. Skematik penditeksi tanjakan Dot.B Gambar 3.Rangkaian modul H48C
Accelerometer H48C menyajikan output secara serempak melalui rangkaian analog conditioning circuitry ke ADC MCP3204 dengan menggunakan teknologi MEMS (Micro Electro-Mechanical System) dan kompensasi internal. Gaya gravitasi pada aksis tertentu ditentukan dengan cara tegangan output pada aksis tadi diukur kemudian dihitung menggunakan rumus sebagai berikut: G = ((axis – vRef) / 4095) x (3.3 / 0.3663) Aksis adalah hasil pengukuran dari ADC, vRef adalah tegangan reverensi ADC, 4095 adalah output maksimum dari ADC 12-bit, 3.3 adalah tegangan H48C, and 0.3663 adalah output H48C untuk 1g saat beroperasi pada tegangan 3.3v. Secara praktis rumus ini dapat disederhanakan menjadi: G = (axis – vRef) x 0.0022 dan jika pengukuran dalam mG mG = (axis – vRef) x 2.2 III. RANCANGAN HARDWARE Sistem ini terdiri dari modul H48C, AVR mikrokontroller[6], konverter TTL-RS232[5], dan LED untuk indikator naik atau turun tanjakan. Konverter TTL-RS232 digunakan untuk menghubungkan mikrokontroller dengan komputer saat pengumpulan data. Lihat Gambar 4 .
Computer UP
H48C
DN
AVR uC
TTLRS232 Data Collection
IV. DATA PENGUKURAN AWAL Data statik (sensor diletakan pada tempat yang tidak bergerak) dan data dinamik (sensor diletakan pada robot yang bergerak) harus diukur untuk memahami karakteristik sensor. Walaupun sensor ini memiliki 3 aksis, untuk mengukur tanjakan satu aksis sudah cukup. Aksis X dipilih untuk keperluan ini. Satuan mG diubah ke sudut menggunakan rumus sebagai berikut: Angle=asin(mG/1000)*180/ Asumsi yang digunakan sebagai berikut: 1. Jika sensor diletakan pada posisi horisontal, output aksis X adalah 0 mG. 2. Jika sensor diletakan pada posisi vertikal, output aksis X adalah 1000 mG. Hasil perhitungan asin dalam satuan radian, sehingga untuk mengubahnya ke dalam satuan derajat harus dikalikan dengan bilangan 180 dan dibagi dengan . Flowchart untuk pengukuran awal dapat dilihat pada Gambar 6. Start Initialize Comm I/O Initialize H48C Read X - axis H48C mG = (X - axis - vRef) x 2.2 Angle=asin(mG/1000)*180/∏ Send Angle To PC
Gambar 4. Blok Diagram Gambar 6. Flowchart Pengukuran Awal
ELEKTRAN, VOL. 1, NO. 1, DESEMBER 2011 Hasil pengukuran data statik adalah sebagai berikut: TABEL 1
X-axis 1 30 46 60 -29 -45 -59
0 30 45 60 -30 -45 -60
Pengukuran di atas sudah dilakukan berulang-ulang dan hasilnya cukup akurat. Pengukuran data secara dinamik adalah sebagai berikut : 1. Skenario pertama, robot mulai berjalan dari lantai pertama, melalui uneven floor, melalui tanjakan dan mencapai lantai kedua. 2. Skenario kedua, robot mulai dari lantai kedua, menuruni tanjakan, mencapai lantai pertama, kemudian belok ke kiri dan belok ke kanan.
30 3. Skenario ketiga, robot bergerak di tengah lapangan pertama dan berkeliling mengitari ruang isolasi. Robot akan belok ke kiri, belok ke kanan dan melalui beberapa uneven floor. Hasil pengukuran dapat dilihat pada Gambar 7 sampai dengan Gambar 9. Pada Gambar 7 langkah 80 dan langkah 140, terdapat spike yang disebabkan oleh uneven floor. Mulai langkah 230, robot naik tanjakan, sedangkan mulai langkah 490 robot mencapai lantai kedua. Gambar 8, langkah 70 robot mulai menuruni tanjakan, langkah 200 robot mencapai lantai pertama. Sisanya robot bergerak ke kiri dan ke kanan. Gambar 9 adalah hasil pengukuran saat robot bergerak ke kiri, ke kanan dan melewati beberapa uneven floor. Gambar-gambar ini menunjukkan bahwa distribusi data sangat lebar mulai dari yang paling rendah -90 derajat sampai yang paling tinggi +90 derajat., misalnya seperti yang terlihat pada Gambar 7 langkah 80. Masalah ini membuat sulit untuk mengolah input tanpa algoritma yang tepat karena yang diperlukan adalah membedakan antara 0 derajat (lantai) dan 15 derajat (tanjakan).
degree
Picture 7. X-axis Going Up the Ramp 100 80 60 40 20 0 -20 1 -40 -60 -80 -100
28 55 82 109 136 163 190 217 244 271 298 325 352 379 406 433 460 487 514
Gambar 7. Robot naik ke tanjakan
Picture 8. X-Axis Going Down the Ramp 100 80 60 degree
40 20 0 -20 1
21
41
61
81 101 121 141 161 181 201 221 241 261 281 301 321 341 361 381
-40 -60 -80 Gambar 8. Robot turun melalui tanjakan
ELEKTRAN, VOL. 1, NO. 1, DESEMBER 2011
31
degree
Picture 9. X-Axis Running in Isolation room 100 80 60 40 20 0 -20 1 -40 -60 -80 -100
67
133 199 265 331 397 463 529 595 661 727 793 859 925 991 1057 1123 1189 1255 1321 1387 1453 1519
Gambar 9. Robot berkeliling di ruang isolasi
V. ANALISA DATA PENGUKURAN AWAL Data di atas dapat dianalisa dengan metoda statistik. Metoda yang umum dipakai termasuk rata-rata dan median. Data ini akan dianalisa sebagai berikut: 1. Rata-rata 20 data terakhir 2. Rata-rata 40 data terakhir 3. Median 20 data terakhir 4. Median 40 data terakhir Gambar 10, Gambar 11 dan Gambar 12 dihitung dengan metoda rata-rata 20 data terakhir (series 1) and 40 data terakhir (series 2). Gambar 13, Gambar 14 dan Gambar 15 dihitung dengan metoda median 20 data terakhir (series 1) dan 40 data terakhir (series 2).
Gambar 10. Rata-rata robot naik ke tanjakan
Gambar 11. Rata-rata robot turun dari tanjakan
Grafik hasil perhitungan rata-rata dan median untuk 20 data terakhir dibandingkan dengan perhitungan 40 data terakhir, lihat Gambar 10, 11, 13 dan 14, sebagai berikut: 1. Semakin banyak data (40 data) yang diolah, semakin lambat respon perubahan sudut. 2. Semakin sedikit data (20 data) yang diolah, semakin tinggi output yang disebabkan oleh spike. Sebagai contoh Gambar 10 dan 13 langkah 80, dan Gambar 11 dan 14 langkah 222. Grafik hasil perhitungan rata-rata dibandingkan dengan hasil perhitungan median, lihat Gambar 10 sampai 15, sebagai berikut: 1. Output dari metoda median lebih tahan dari gangguan (noise) dan lebih stabil dibandingkan dengan metoda rata-rata. 2. Grafik median lebih halus dan lebih sedikit bervariasi dibandingkan dengan rata-rata.
ELEKTRAN, VOL. 1, NO. 1, DESEMBER 2011
32
Gambar 12. Rata-rata robot berjalan di ruang isolasi
Gambar 13. Median robot naik ke tanjakan
Gambar 14. Median robot turun dari tanjakan
Gambar 15. Median robot berjalan di ruang isolasi VI. METODA SIMPLE Berdasarkan hasil analisa di atas, metoda rata-rata dan median 40 data terakhir dapat mendeteksi tanjakan dengan
andal, akan tetapi kedua metoda menggunakan resource yang cukup banyak termasuk: 1. Memori data minimum yang diperlukan adalah 40*2=80 byte (dengan asumsi data disimpan sebagai
ELEKTRAN, VOL. 1, NO. 1, DESEMBER 2011 short integer) + variabel untuk menghitung rata-rata dan median. 2. Memori program. Metoda ini harus mengimplementasikan data struktur FIFO untuk menyimpan 40 data terakhir, disamping itu algoritma untuk menghitung rata-rata dan median. 3. Kecepatan mengeksekusi program. Waktu yang diperlukan untuk menghitung rata-rata/ median minimal harus melakukan pengulangan 1 x total data. Metoda simple adalah algoritma yang dikembangkan untuk meminimisasi tiga kelemahan tersebut dengan tanpa mengurangi kecepatan respon dan keandalan. Flowchart algoritma ini dapat dilihat pada Gambar 16. Algoritma ini hanya menggunakan satu variabel yaitu level (level saat ini), dua pembanding, dan dua proses (menaikkan atau menurunkan level). Semuanya dijalankan hanya satu kali. Dengan demikian, penggunaan algoritma ini akan meminimalkan pemakaian data memory dan program memory juga mempercepat waktu eksekusi program. Gambar 17, Gambar 18 dan Gambar 19 dihitung dengan metoda simple (series 1) dan metoda rata-rata 20 data terakhir (series 2). Grafik hasil dari perhitungan metoda simple dibandingkan dengan hasil perhitungan rata-rata 20 data terakhir, Lihat Gambar 17 dan 18 yaitu output metoda simple mempunyai kecepatan respon yang sama, akan tetapi outputnya lebih tahan terhadap gangguan dibandingkan dengan metoda ratarata Grafik hasil dari perhitungan dengan metoda simple dibandingkan dengan hasil perhitungan rata-rata 20 data dan median 20 data terakhir yaitu: 1. Ketiganya memiliki kecepatan respon yang relatif sama terhadap perubahan sudut. 2. Lihat Gambar 10, 13 and 17. Metoda rata-rata dan median bermasalah dengan uneven floor. Perhitungan Sudut pada Gambar 10 dan 13 langkah 80 (uneven floor) tidak berbeda jauh dai pengukuran di tanjakan. Jadi, sulit untuk membedakan antara uneven floor dengan tanjakan. Gambar 12 langkah 1300, output metoda rata-rata saat mengelilingi ruang isolasi memberikan level yang sangat dekat dengan level yang didapat saat naik tanjakan. 3. Metoda simple tidak mempunyai masalah di atas. Metoda rata-rata dan median 20 data terakhir tidak dapat mendeteksi tanjakan dengan andal, sedangkan metoda simple dapat mendeteksinya dengan andal. Grafik hasil perhitungan rata-rata dan median 40 data terakhir dibandingkan dengan hasil perhitungan metoda simple yaitu: 1. Ketiganya dapat mendeteksi tanjakan dengan andal. 2. Metoda rata-rata dan median memiliki respon yang lebih lambat dibandingkan dengan metoda simple. Metoda ini menghasilkan pendeteksi tanjakan yang andal disamping respon terhadap perubahan sudut yang cepat. Metoda simple telah diimplementasikan pada robot Dot.B dan robot ini dapat mendeteksi tanjakan dengan andal. Setiap
33 kali robot naik ke tanjakan, LED naik akan menyala dan setiap robot turun dari tanjakan LED turun akan menyala. Sedangkan selama berjalan di lantai walaupun melalui beberapa uneven floor, bergerak ke kiri dan ke kanan kedua lampu tidak pernah menyala.
Start
Level=0
Initialize H48C
Read X - axis H48C
mG = (X - axis - vRef) x 2.2 Angle=asin(mG/1000)*180/∏
Level < Angle ?
Simple Method
Y Level=Level+1
N Level > Angle
Y Level=Level -1
?
N
Level >High Limit ?
Y
UP LED ON
N ? UP LED OFF N Level
Y DN LED ON
N ? DN LED OFF
N Gambar 16 Flowchart pendeteksi tanjakan dengan metoda simple
ELEKTRAN, VOL. 1, NO. 1, DESEMBER 2011
34
Gambar 17. Simple dan rata-rata 20 data robot naik ke tanjakan
Gambar 18. Simple dan rata-rata 20 data robot turun dari tanjakan
Gambar 19. Simple dan rata-rata 20 data robot berjalan di ruang isolasi
VII. KESIMPULAN a. Kesimpulan 1. Metoda yang simple dan andal untuk mendeteksi tanjakan menggunakan H48C 3-axis accelerometer untuk robot Dot.B robot telah dikembangkan dengan sukses. 2. Diperlukan jumlah data yang cukup banyak untuk mendeteksi tanjakan dengan andal jika menggunakan metoda rata-rata atau median. 3. Metoda median memiliki ketahanan terhadap gangguan yang lebih baik dibandingkan dengan metoda rata-rata untuk memproses data secara dinamik dari sensor H48C b. Saran Penelitian yang lebih lanjut diperlukan untuk membuktikan
keefektifan algoritma ini untuk robot atau pemakaian yang lain. REFERENSI [1] DIKTI, Paduan KRCI 2008, Kontes Robot Cerdas Indonesia 2008 [2] [3] [4] [5] [6]
KRCI 2008, Robot Cerdas Pemadam Api (Intelligent Fire Fighting Robot) Paralax, Hitachi® H48C 3-Axis Accelerometer Module (#28026) Hitachi, ±3g 3 Axis Accelerometer with IC H48C datasheet MERCURY SWITCH TUTORIAL http://www.societyofrobots.com/sensors_mercury_switch.shtml Texas Instruments, MAX232.MAX232I DUAL EIA-232 DRIVERS/RECEIVERS datasheet ATMEL,8-bit AVR Microcontroller with 32K BytesIn-System Programmable Flash, ATMega32 datasheet