## Balancing Robot Berbasis Fuzzy Logic
Sumantri K Risandriya, ST, MT (1) , Rifqi Amalya Fatekha, S.ST (2) , Irda Zusmaniar (3)
Mechatronics Engineering, Batam Polytechnics Parkway Street, Batam Centre, Batam 29461, Indonesia E-mail: sumantri@polibatam.ac.id

## Abstrak
Balancing robot adalah berupa robot beroda yang memiliki 2 roda pada sisi kanan dan kiri, robot ini harus dapat menjaga keseimbangan. Untuk dapat menjaga keseimbangan secara maksimal terdapat  banyak  metode  yang  akan  digunakan  untuk  menentukan  optimasi  kendali  yang  baik sehingga didapatkan nilai respon yang baik sensor dengan reaksi motor. Pada balancing robot ini menggunkan  metode Fuzzylogic dengan input accellerometer dan gyroscope. Untuk mendapakan respon accellerometer yang  bagus  tanpa  noise  menggunakan KalmanFilter .  Hasil  yang  didapat Robot  dapat  menyeimbangkan  sendiri  dengan  tingkat  keberhasilan  90%  dan  robot  dapat menyeimbangkan sendiri meskipun mendapat gangguan dengan didorong sekalipun.

## Kata kunci : Fuzzy logic, Kalman Filter, Balancing robot dan Accelerometer

## Abstract
Balancing robot is in the form of a wheeled robot that has two wheels on the right and left, the robot must be able to maintain a balance. In order to maintain the maximum balance there are many methods that will be used to determine good control optimization to obtain the value of a good response sensor with the motor reactions . At this balancing robot using the method Fuzzylogic with input accellerometer and gyroscope. To get a good response without noise accellerometer use KalmanFilter. The results obtained robot can balance itself with a success rate of 90% and a robot can balance itself despite being disturbed by even encouraged.

## Keyword : Fuzzy logic, Kalman Filter, Balancing robot and Accelerometer

## 1. Pendahuluan
Balancing Robot  adalah  Robot  yang memiliki 2 Roda yang terdapat pada sisi kanan dan sisi  kiri.    Robot  ini  dituntut  untuk  dapat menyeimbangkan  dirinya  sendiri  tegak  lurus  dan tidak  jatuh  saat  diberi  beban,  didukung  dengan menggunkan  metode fuzzy  logic untuk  dapat menentukan  titik  keseimbangan  pada  Robot  saat berdiri.
Pada  penelitian  ini  akan  dibuat Balancing Robot berbasisi Fuzzy logic dengan pergerakan yang diharapkan  akan  halus  dibandingkan  dengan menggunakan  metode PID .  Hal  ini  dikarenakan pada  output Accelerometer yang  masih  terdapat
noies . Noise tersebut    akan  di fillter dengan menggunkannya  metode Kalman  Fillter sehingga noise dari keluaran Accelerometer akan hilang.
Article History Received 14 August 2015 Accepted 15 September 2015
Jurnal Integrasi vol. 7, no. 2, 2015, 113-118 ISSN: 2085-3858 (print version)

## 2. Dasar Teori
2.1 Fuzzy Logic

## 2.2.1 Fuzzifikasi
Fuzzifikasi yaitu suatu proses untuk mengubah suatu  masukan  dari  bentuk  tegas  ( crisp )  menjadi fuzzy (variabel linguistik). Biasanya disajikan dalam bentuk  himpunan-himpunan fuzzy dengan  suatu fungsi kenggotaannya  masing-masing, seperti pada gambar 2.1.
Gambar 2.1 Fungsi keanggotaan Fuzzy
membership
digunakan untuk menghitung derajat keanggotaan suatu himpunan fuzzy. Yang pertama ada representasi linier  naik  digunakan  untuk  menghitung pemetaan  kenaikan  dari  0  (nol)  ke  1  (satu), berikut rumus fungsi keanggotaan linier naik : Gambar  2.2  menunjukkan  representasi  linier naik dari a yang bernialai 0 (nol) menuju b yang bernilai 1 (satu).
Gambar 2.2 Grafik keanggotaan kurva linear
naik Keanggotaan : 𝜇[𝑥] = { 0;                𝑥 ≤ 𝑎 (𝑥 − 𝑎)/(𝑏 − 𝑎);       𝑎 ≤ 𝑥 ≤ 𝑏 1;                𝑥 ≥ 𝑏 (2.1) (2.1)
Yang kedua ada representasi linier turun digunakan untuk menghitung pemetaan penurunan dari 1 (satu) ke 0 (nol). Berikut rumus fungsi keanggotaan linier turun :
Gambar  2.3  menunjukkan  representasi  linier  turun dari a yang bernialai 1 (satu) menuju b yang bernilai 0 (nol).
Gambar 2.3 Grafik keanggotaan kurva linear turun Fungsi Keanggotaan :
𝜇[𝑥] =   { (𝑏 − 𝑥)/(𝑏 − 𝑎);      𝑎 ≤ 𝑥 ≤ 𝑏 0;                𝑥 ≥ 𝑏 (2.2)
(2.2)
Yang  ketiga  ada  representasi  kurva  segitiga adalah gabungan dari 2 garis linier (naik dan turun). Berikut rumus fungsi keanggotaan kurva segitiga :
Gambar  2.4  menunjukkan  representasi  kurva segitiga dari 2 garis linier naik dan linier turun.
2
Gambar 2.4 Grafik keanggotaan kurva segtiga
Fungsi Kaenggotaan :
𝜇[𝑥]   =   { 0;                            𝑥 ≤ 𝑎 𝑎𝑡𝑎𝑢 𝑥 ≥ 𝑐 (𝑥 − 𝑎)/(𝑏 − 𝑎);            𝑎 ≤ 𝑥 ≤ 𝑏
(𝑐 − 𝑥)/(𝑐 − 𝑏);             𝑏 ≤ 𝑥 ≤ 𝑐
(2.3) (2.3)
Yang  keempat  ada  representasi  kurva  trapesium adalah gabungan dari 2 garis linier (naik dan turun) dan  terdapat  beberapa  titik  yang  memiliki  nilai keanggotaan  1  (satu).  Berikut  rumus  fungsi keanggotaan kurva trapesium :
Gambar  2.4  menunjukkan  representasi  kurva trapesium  dari  2  garis  linier  naik  dan  linier  turun serta  ada  beberapa  titik  yang  memiliki  nilai keanggotaan 1.
Gambar 2.4 Grafik keanggotaan kurva trpesium
Fungsi Keanggotaan :
𝜇[𝑥] =   { 0;         𝑥 ≤ 𝑎 𝑎𝑡𝑎𝑢 𝑥 ≥  𝑑 (𝑥 − 𝑎)/(𝑏 − 𝑎);            𝑎 ≤  𝑥  ≤  𝑏 1;                      𝑏 ≤  𝑥  ≤  𝑐 (𝑑 − 𝑥)/(𝑑 − 𝑐);                       𝑥 ≥  𝑑 (2.4) (2. 4)
Yang  kelima  ada  representasi  kurva  bentuk  bahu adalah daerah yang terletak di tengah-tengah suatu variabel  yang  direpresentasikan  dalam  bentuk segitiga, pada sisi kanan dan kirinya akan naik dan turun.  Himpunan  fuzzy  bahu,  bukan  segitiga, digunakan  untuk  mengakhiri  variabel  suatu  daerah fuzzy,  bahu  kiri  bergerak  dari  benar  ke  salah, sedangkan bahu kanan bergerak dari benar ke salah [3]

## 2.2 Sensor Accelerometer
Accelerometer adalah  alat  yang  digunakan untuk  mengukur  percepatan,  mendeteksi  dan mengukur getaran, dan mengukur percepatan akibat gravitasi . Accelerometer mengukur  percepatan akibat gerakan benda yang melekat padanya. dengan satuan  g  yaitu  unit  percepatan  yang  nilainya sebanding dengan gravitasi bumi diatas permukaan air laut yaitu 9,8m/s 2 . Accelerometer menggunakan hukum  Newton  kedua  tentang  pergerakan  yang terdapat dalam persamaan 2.5.
F⃗  = M. a⃗ (2.5)
Accelerometer digunakan  untuk  mengukur  getaran pada  mobil,  mesin,  bangunan,  dan  instalasi pengamanan.
Gravitasi bumi merupakan percepatan yang konstan selalu  mengarah  lurus  menuju  inti  bumi.  Ketika Accelerometer sejajar  dengan  gravitasi  pada keadaan diam maka percepatan yang terukur adalah 1g,  ketika Accelerometer tegak  lurus  dengan gravitasi  pada  keadaan  diam  maka  percepatan sebesar  0g.  Sehingga  jika Accelerometer pada keadaan  diam  dapat  diukur  pada Accelerometer 2 sumbuberlaku persamaan 2.6 dan 2.7
𝜃 =   cos −1 ( 𝑧 𝑔𝑟𝑎𝑣𝑖𝑡𝑎𝑠𝑖 ) (2.6)
𝜃 =   sin −1 ( 𝑥 𝑔𝑟𝑎𝑣𝑖𝑡𝑎𝑠𝑖 ) (2.7)
Dimana:
x= nilai percepatan terukur pada sumbu yang tegak lurus dengan gravitasi z= nilai percepatan terukur pada sumbu yang sejajar dengan gravitasi
Gambar 2.5 Penempatan sumbu x dan y pada

## Accelerometer
Gambar 2.6  Kuadran pada persamaan trigonometri
Kelemahan dari persamaan 2.5 dan 2.6 adalah nilai keluaran  hanya  efektif  ketika  kemiringan  berada pada  kuadran  ke  1.  sehingga  untuk  menutupi kelemahan perumusan ini adalah dengan menggunakan  persamaan  2.8.  Dengan  keluaran sebesar -180 hingga +180. [1]
𝜃 = 𝑎𝑡𝑎𝑛2 −1 (𝑧, 𝑥) (2.8)
Kelemahan  teori  ini  adalah  hanya  dapat diaplikasikan  ketika Accelerometer pada  keadaan diam, jika Accelerometer bergerak maka fungsi asli sebagai  pengukur  percepatan  akan  bekerja  dan mempengaruhi nilai akhir. Solusi dari permasalahan ini adalah dengan menggunakan kalman filter. [4] Kalman  filter  adalah    teknik  perhitungan matematika  (  algoritma  )  yang  memberikan perhitungan  efisien  dalam  mengestimasi state proses.  Yaitu  dengan  cara  meminimalkan  rata-rata kuadran galat ( Mean Squered Error / MSE ).
Pada  kalman  filter  berfungsi  untuk  memisahkan sinyal dari sinyal yang lain yang tidak dikehendaki, karena  pada  faktaknya  sinyal  yang  dikeluarkan Accelerometer adalah tidak akurat sehingga dengan digunaakannya  filter  terhadapnya,  maka  hasil pengukuran  akan  mendekati  hasil  sebenarnya (hampir tidak ada noise ).[5]
𝑋́ 𝑘 =   𝐾 𝑘 . 𝑍 𝑘 + ( 1 −  𝐾 𝑘 )𝑋́. 𝑘−1 (2.9)
Keterangan :
𝑋́ 𝑘 = 𝑒𝑠𝑡𝑖𝑚𝑎𝑠𝑖 𝑠𝑎𝑎𝑡 𝑖𝑛𝑖 𝐾 𝑘 = 𝑘𝑎𝑙𝑚𝑎𝑛 𝑔𝑒𝑖𝑛
𝑍 𝑘 = 𝑛𝑖𝑙𝑎𝑖 𝑦𝑎𝑛𝑔 𝑑𝑖𝑢𝑘𝑢𝑟
𝑋́. 𝑘−1 = 𝑒𝑠𝑡𝑖𝑚𝑎𝑠𝑖 𝑠𝑒𝑏𝑒𝑙𝑢𝑚𝑛𝑦𝑎

## 3. Perancangan Sistem

## 3.1 Perancangan Prangkat Keras
Gambar  3.1. Perencanaan Konstruksi Robot Balancing.
Gambar 3.2 Bentuk fisik balancing robot
Gambar  3.1  dan  gambar  3.2.  menjelaskan konstruksi balancing robot. Robot ini terdiri dari 2 motor DC sebagai actuator dan sensor accelerometer sebagai  acuan  robot  agar  bisa seimbang  di  tambah  dengan  kalman filter sebagai penghilang noise yang  dihasilkan  pada  sensor accelerometer .
Gambar 3.3 Diagram Blok Robot Gambar 3.3  menjekaskan  system Balancing Robot,  dimulai  dari  input  pada swicth  Start yang digunakan  sebagai switch yang akan  mengaktifkan semua  komponen  pada  robot.  Dan  ada  juga input pada Sensor Accelerometer yang digunakan sebagai sensor  keseimbangan  pada  robot.  Semua input ini akan  dikirimkan  ke Mikrokontroler yaitu Arduino nano . Lalu Mikrokontroler mengirimkan data  pada Driver  Motor untuk  menggerakkan actuator yaitu Motor DC.

## 3.2. Perancangan Perangkat Lunak
Setelah perancagan perangkat keras telah di selesaikan  setelah  itu  akan  dilanjutkan  pada pembuata  perancangan  perangkat  lunak  untuk mengatur proses kerja alat atau kendali yang akan di lakukan. Perancangan lunak sebagai berikut.
Start Setpoint Inisialisasi data Hitung errort dan delta error Fuziffikasi Evaluasi Aturan Defuzifikasi Output PWM = Output PWM + Defuzifikasi Ke-dua motor DC Apakah Body berdiri tegak lurus? END NO YES Gambar 3.4 Diagram Alur ( Flow Chart ) prinsip dasar sistem
 Rancangan Membership
 Input Membership Function Error
Gambar 3.6 Input Membership Function Error
Keterangan : NB  : Negative besar NM  : Negative besar NS  : Negative besar Z : Zero PB  : Positive besar PM  : Positive besar PS  : Positive besar
 Input keanggotaan delta error

## Gambar 3.7 Input Membership Functional Delta
Error
 Output fungsi keanggotaan PWM
Gambar 3.8 Output Membership Fungtional PWM
 Fuzzy Rule
Tabel 3.1 Rule
4.1 Pengambilan data pengujian pertama
Gambar 4.1 Data Perubahan Sensor pengujian pertama
pada  gambar    4.1  ketika balancing robot dijalankan  didapat  perubahan  data  sensor  pada  data 100.62  dengan  detik  ke  7 us perubahan  sensornya menjauh  dari  data set  point dan  ketika  detik  20 us perubahan sensor mendekati data set point , pada start awal balancing robot memiliki error yang besar dan saat  mencapai  detik  8 ms  balancing robot  semakin mendekati set point .  Dari hasil yang di peroleh dilihat pada  perbedaan  antara  setpoint,  sensor, error , delta error dan output fuzzy telah didapat rata – rata sebesar 1.69 % .

## 4.2 Pengambilan data pengujian ke-dua
Gambar 4.2 Data Perubahan Sensor pengujian ke-dua
Gambar  4.2.  pengujian  gerak balancing robot  dan  dapat  dilihat  pada  gambar    4.2  ketika balancing robot dijalankan didapat perubahan data sensor pada data 99.37 Dari hasil yang di peroleh
95 96 97 98 99 100 101 1 2 3 4 5 6 7 8 9 1 01 11 21 31 41 51 61 71 81 92 0 SUD UT JUMLAH DATA YANG DIAMBIL Set Point Sensor 95.5 96 96.5 97 97.5 98 98.5 99 99.5 100 1 2 3 4 5 6 7 8 9 1 01 11 21 31 41 51 61 71 81 92 0 SUD UT JUMLAH DATA YANG DIAMBIL Set Point Sensor
dilihat  pada  perbedaan  antara set  point ,  sensor, error , deltaerror dan output  fuzzy telah  didapat rata – rata sebesar 0.94 % .

## 4.3 Pengambilan data pengujian ketika diberi gangguan kearah kiri
Gambar 4.3 Data perubahan sensor ketika diberi gangguan kearah kiri
Gambar  4.3  merupakan  Grafik  pengujian gerak balancing robot yang diberi gangguan dengan mendorong ke arah kiri , grafik yang condong ke nilai 97.23  sampai    100.51  yang  terdapat  pada  detik  1 us sampai  detik  ke  48 us .  Dari  hasil  yang  di  peroleh dilihat pada perbedaan antara set point , sensor, error , delta error dan output fuzzy telah didapat rata – rata sebesar 1.23 % .

## 4.4 Pengambilan data pengujian ketika diberi
gangguan kearah kanan
Gambar 4.4 Data perubahan sensor ketika diberi gangguan kearah kanan
Gambar 4.4 merupakan Grafik pengujian gerak balancing robot  yang  diberi  gangguan dengan  mendorong  ke  arah  kanan  yang
menghasilkan  grafik  yang  condong  ke  nilai  96.91 sampai  93.38 yang terdapat pada detik 8 us sampai detik  ke  60 us. Dari  hasil  yang  di  peroleh  dilihat pada perbedaan antara setpoint, sensor, error , delta error dan output  fuzzy telah  didapat  rata–rata sebesar 1.67 %.

## 4. Penutup
5.1 Kesimpulan
Berdasarkan  pengujian  dan  analisis  yang telah  dilakukan,  maka  dapat  disimpulkan  beberapa hal sebagai berikut:
1. Robot  dapat  berfungsi  menyeimbangkan dengan  baik,  dengan  persen  keberhasilan 90%
2. Rata-rata  response  time  menuju ke  steady state sampai dengan 800ms, dengan osilasi sudut rata-rata 10 0
3. Tegangan  dan arus battery mempengaruhi pergerakan balancing robot
4. Robot  masih  dalam  kondisi  stabil  walupun didorong ke kiri ataupun ke kanan.

## 5.2   Saran
1. Bisa  di  kembangkan  dengan  menambahkan jenis lintasan yang  menanjak dan menurun.

## Daftar Pustaka
[1] Toar Hendri, “Sistem Kendali Kinematic Pergerkan Robot Manipulator  3DOF”,  Buku  Tugas  Akhir  Diploma  VI,
Jurusan  Teknik  Mekatronik  Politeknik  Negeri  Batam,
Batam, 2013.
[2] Alvianto Ekky, “Implementasi Point To Point (P2P) Pada
Mobile Robot ”, Buku Tugas Akhir Diploma III, Jurusan
Teknik  Mekatronik  Politeknik  Negeri  Batam,  Batam,
2015.
[3] T.Sutojo,Ssi, M.kom, Edy Mulyanto, Ssi, Mkom and DR. Vincent  Suhartono  “ Kecerdasan  Buatan ”  Semarang,
2010, pp 219-227.
[4] Mubarok  Asep,  “  Pendeteksi  Rotasi  Menggunakan Gyroscope Berbasis Mikrokontoler AT8535”, Buku Tugas
Akhir S1, Jurusan Teknik Elektro Universitas
Diponegoro, Semarang.
[5]http://a-research.upi.edu/operator/upload/s_mat-0700767_cha pter3.pdf
92 94 96 98 100 102 1 6 11 16 21 26 31 36 41 46 51 56 61 66 71 76 81 86 91 96 SUD UT JUMLAH DATA YANG DIAMBIL Sensor Set Point 91 92 93 94 95 96 97 1 6 11 16 21 26 31 36 41 46 51 56 61 66 71 76 81 86 91 96 SUD UT JUMLAH DATA YANG DIAMBIL Sensor Set Point