## Rancang Bangun Kontroller Virtual Reality dengan Magnetometer Akselerometer Giroskop (MARG) dan Filter Madgwick
Rachmad Sudibyo Danu S, Melania Suweni Muntini, dan Iim Fatimah Jurusan Fisika, Fakultas Matematika dan Ilmu Alam, Institut Teknologi Sepuluh Nopember (ITS)
Jl. Arief Rahman Hakim, Surabaya 60111 Indonesia
e-mail : danu166@gmail.com
Abstrak —Pada  studi  ini  telah  dibuat  dan  dianalisis kontroller Virtual  Reality berbasis  sensor  magnetometer HMC5883L, akselerometer beserta giroskop MPU6050, dan mikrokontroller  Arduino  ATMEGA328.  Keluaran  dari sistem berupa nilai orientasi sudut putar yaw, pitch dan roll , kemudian  diberikan variasi konstanta β untuk mengetahui pengaruhnya  terhadap  nilai  keluaran..  Pengujian  sistem dilakukan  pada  keadaan  statis  dan  dinamis.  Dari  hasil pengujian  semakin  besar  nilai  konstanta  β,  semakin  cepat waktu untuk mencapai keadaan steady-state . Nilai optimum dari  variasi  konstanta  β  yang  diberikan  adalah  0.05 dikarenakan  memiliki Root  Mean  Square  Error yang terkecil diantara variasi lainnya.
Kata  Kunci — Filter  Madgwick, Konstanta  β,  Nilai Orientasi dan Root Mean Square Error .

## I. PENDAHULUAN
IRTUAL  REALITY  (VR)  adalah  istilah  yang digunakan  untuk  menggambarkan  lingkungan  tiga dimensi  yang    dihasilkan  oleh  komputer  yang  dapat dieksplorasi  dan  berinteraksi  dengan  objek  virtual.  VR memanfaatkan  indra  penglihatan  dan  gerakan  seseorang untuk  merasakan  sensasi  dunia  nyata  di  dunia  maya. Untuk itu diperlukan seperangkat alat untuk memanipulasi  persepsi  indra  seseorang.  Alat  ini  berupa Headset VR  yang  umumnya  terdiri  dari  layar,  speaker dan  sensor  yang  dipakai  dikepala  pengguna.  Juga kontroller  VR  yang  bertujuan  mengendalikan  ataupun berinteraksi dengan objek virtual.
Perkembangan smartphone yang pesat banyak dimanfaatkan oleh pengembang VR. Mereka memanfaatkan sensor-sensor yang terdapat di smartphone  untuk  menambahkan  fungsi  smartphone sebagai headset VR dengan begitu banyak kalangan yang dapat  merasakan  teknologi  VR.  Namun,  kekurangan menggunakan  teknologi  VR  dengan smartphone saat  ini adalah  terbatasnya  interaksi  antara  penggunanya  dan objek virtual.
Dalam  sistem  kerjanya, Headset VR  maupun kontroller VR memanfaatkan sensor Inertial Measurement Unit (IMU) sebagai input untuk berinteraksi dengan dunia maya. Sensor IMU merupakan gabungan  dari  sensor-sensor  yang  terdiri  dari  sensor akselerometer  dan  giroskop.  Keluaran  dari  sensor  ini dapat  mengukur  sudut  putar  dengan  menerapkan serangkaian  algoritma.  Tidak  jarang  sensor  IMU  dipadu dengan  sensor  magnetometer  untuk  menambah  akurasi keluaran. Hasil nilai sudut putar  yang  didapat  digunakan untuk  menggerakan  gambar  pada Headset VR.
Sedangkan  pada  kontroller  VR  digunakan  untuk berinteraksi  dengan  objek  virtual  yang  ditampilkan  pada Headset VR.
Banyak  metode  yang  disajikan  untuk  mendapatkan nilai  orientasi,  seperti  filter  kalman.  Namun,  filter kalman  membutuhkan  banyak  memori. Pada tahun  2010 Sebastian O.H. Madgwick memperkenalkan filter efisien dengan  mengembangkan  filter  mahony  yang  kemudian dikenal  filter  madgwick.  Filter  ini  memiliki  kelebihan tidak  membutuhkan  banyak  memory,  efektif  pada low- sampling  rates (10  Hz)  dan  lebih  akurat  dari  filter kalman[1].
IMU  merupakan  gabungan  dari  beberapa  sensor  dan memiliki  beragam  jenis.  Diantaranya  adalah  sensor akselerometer  dan  giroskop,  gabungan  kedua  sensor  ini disebut  IMU  6 degree  of  freedom (DOF),  dikarenakan memilki  tiga  sumbu  pengukuran  akselerometer  dan  tiga sumbu  pengukuran  giro.  Jenis  lain  terdapat  gabungan sensor  magnetometer,  akselerometer  dan  giroskop  atau disebut  juga Magnetic  Angular  Rate  and  Gravity (MARG) atau IMU 9 DOF.
Jenis  sensor  disesuaikan  dengan  kebutuhan.  IMU  6 DOF mengukur sudut putar dengan acuannya adalah nilai gravitasi.    IMU  9  DOF  mengukur  orientasi  dengan acuannya gravitasi dan kutub utara medan magnet bumi. Kelebihan  dari  IMU  9  DOF  memiliki output yang  lebih stabil  jika  dioperasikan  dengan  filter  madgwick, sedangkan  IMU  6  DOF output nya  masih  tedapat drift pada salah satu sumbunya.
Orientasi  masing-masing  sumbu  ( yaw,  pitch,  roll ) secara matematis bisa didapatkan dengan cara mengintegralkan  kecepatan  sudut  dari  setiap  sumbu, yaitu  dengan  menggunakan  sensor  giroskop.  Namun dengan  menggunakan  data  dari  giroskop  sendiri  apabila diintegralkan  akan  menambah  nilai error sehingga  nilai yang  didapat  tidak  akurat.  Untuk  itu,  alasan  digunakan IMU  untuk  mengukur  orientasi  adalah  untuk  mengatasi kekurangan  dari  giroskop.  Sifat drift dari  giroskop dikarenakan  dalam  pengukurannya  giroskop  tidak mempunyai  titik  acuan,  disini  akselerometer  dan magnetometer  akan  mengukur  gravitasi  dan  medan magnet bumi sebagai acuan untuk mengatasi drift .

## II. PERANCANGAN SISTEM
Diagram  blok  perancangan  sistem  IMU  dapat  diamati pada  Gambar  1.  Akselerometer  3  aksis  digunakan  untuk mendeteksi vektor gravitasi Bumi, Magnetometer 3 aksis digunakan untuk mendeteksi vektor arah Utara, keduanya dilihat  dari  sudut  pandang  koordinat  lokal.  Giroskop  3
V
aksis  digunakan  untuk  mendapatkan  kecepatan  sudut yang  digunakan  untuk  meng  update  posisi  vektor gravitasi  dan  utara,  kemudian  semua  masukkan  tersebut diolah  dalam  Algoritma  filter  Madgwick  dengan  luaran ahir berupa sudut yaw, pitch dan Roll.

## Gambar 1. Perancangan umum sistem

## Perancangan Hardware
A.
Kontroller  VR  menggunakan  sensor  MPU-6050  dari InvenSense  dan  HMC5883L  dari  Honeywell  yang dijadikan  dalam  satu  modul.  Sensor  MPU-6050  terdiri dari  MEMS  akselerometer  dan  MEMS  giro  yang digabung  menjadi  satu  IC.  Dengan  range  akselerometer yang digunakan sebesar ±2g dan gyro ±250 o /s sedangkan sensitivitas akselerometer sebesar 16,384 (LSB)/( o /s) dan gyro  131  (LSB)/( o /s).  Beberapa  fitur  tambahan  dari MPU-6050  adalah  terdapat  fitur self - test untuk mengkondisikan  pengukuran  sensor  dalam  keadaan normal,  dan  kalibrasi  memanfaatkan  DMP  yaitu  unit processing yang terdapat pada internal sensor. HMC5883L  merupakan  magnetometer  tiga  sumbu yang  didesain  untuk  mengukur  medan  magnet.  Dengan range  ±8  Gauss  dan  resolusi  sampai  dengan  5  milli- Gauss  Selain  itu  sensor  ini  termasuk low  power consumption.
Untuk melakukan pengambilan data dari  ketiga sensor beserta  komputasi  digunakan  papan  mikrokontroller Arduino  berbasis  ATmega  328.  Mikrokontroller  ini
bekerja  pada  tegangan  5  Volt,  dengan Flash  memory 32KB,  SRAM  2  KB,  dan clock  speed 16MHz.  Untuk sumber  tegangan  Arduino  dan  komunikasi  serial digunakan  papan  FTDI  yang  kemudian  terhubung  pada USB laptop. Gambar 2 adalah skema kontroller VR.

## Perancangan Software
B.
Arduino  IDE  untuk  mengakses  sistem  sensor  dan melakukan komputasi estimasi nilai orientasi sumbu yaw, pitch dan roll dengan  menggunakan  filter  madgwick. Data  yang  telah  diolah  kemudian  ditampilkan  kedalam Serial  Monitor .  Gambar  3  merupakan  diagram  alir  dari perancangan perangkat lunak sistem sensor.
Pengukuran dari giroskop digunakan untuk mengestimasi nilai  orientasi, sedangkan pengukuran dari akselerometer  dan  magnetometer  yang  telah  terkalibrasi kemudian dinormalisasi. Selanjutnya data dari akselerometer  dan  magnetometer  digunakan  untuk menentukan  faktor  koreksi  dari  nilai  orientasi  yang didapat dari pengukuran giroskop.
Setelah  estimasi  nilai  orientasi  giroskop  dan  faktor koreksi didapat, kemudian dimasukkan kedalam algoritma sensor fusion . Nilai orientasi yang baru adalah nilai orientasi lama yang dikurangi dengan faktor koreksi yang  diberi  bobot  konstanta β dan  dikalikan  dengan periode sistem melakukan satu perhitungan.  Konstanta β divariasikan  untuk  mengetahui  pengaruh  terhadap keluaran  system,  variasi  konstanta β yang  digunakan adalah 0.01, 0.05, 0.1, 0.5, 1 dan 2. Setelah nilai orientasi didapat  kemudian  dilakukan  konversi  dari  bentuk quaternion menjadi sudut putar[2].
Gambar 3. Diagram blok sistem kontroller VR

## III. PENGUJIAN DAN ANALISIS
Pada  bab  ini  akan  dipaparkan  hasil  pengujian  sistem beserta analisisnya. Pengujian dilakukan dengan menggunakan  gimbal  elektronik  seperti  pada  Gambar  4. Gimbal  elektrik  yang  digunakan  merupakan 3d  printer yang  telah  dimodifikasi  yang  hanya  dioperasikan  satu motornya saja.

## Gambar 4. Pengujian sistem pada sumbu yaw dengan gimbal elektrik

## Analisis Performa Kondisi Statis dan Dinamis
C.
Untuk  mengetahui  performa  dari sistem  yang  digunakan dengan  menggunakan  filter  madgwick  dihitung Root Mean Square error (RMSe).  Kondisi  statis  merupakan kondisi  ketika  sensor  tidak  diberikan  pergerakan  dan kondisi  dinamis  ketika  sensor  digerakan  dengan kecepatan 5,5 o /detik untuk roll dan 6 o /detik untuk sumbu /detik  untuk  sumbu yaw dan pitch .  Hasil  nilai  RMSe pada  keadaan  statis dan dinamis dirangkum pada tabel 1 dan 2.
Tabel 1. RMSe kondisi statis beta
RMSe (derajat) yaw Pitch roll 0.01 0.1625 0.1512 0.1897 0.05 0.1585 0.1560 0.1786 0.1 0.2298 0.1720 0.1477 0.5 0.2579 0.2079 0.1907 1 0.1863 0.3408 0.3475 2 0.2025 0.6532 0.7597 Tabel 2. RMSe kondisi dinamis beta RMSe (derajat) yaw pitch roll 0.01 1.1716 2.2224 3.9857 0.05 0.3365 1.8993 2.2363 0.1 0.4916 1.8412 5.5798 0.5 1.1501 1.2552 4.3732 1 0.9752 1.3923 5.1141 2 1.5291 1.9417 5.1186
Hasil  pengujian  kondisi  statis  menunjukkan  bahwa dari  semua  variasi  yang  digunakan  RMSe  yang  didapat kurang  dari  0.75 o menunjukkan  bahwa  keluaran  yang didapat  cukup  stabil  dan  akurat.  Untuk  hasil  pengujian kondisi  dinamis  dari variasi  yang diberikan  didapat  nilai RMSe terkecil  pada  sumbu yaw adalah  0.3365 o untuk sumbu pitch 1.2552 o dan untuk sumbu roll 2.2363 o . Pada  variasi  beta  0.01,  0.1,  0.5,  1  dan  2  nilai  RMSe yang  didapat  relatif  lebih  kecil  dari  variasi  beta  0.05. Ketidaksesuaian  estimasi  yang  diperoleh  dari  nilai referensi salah satunya dipengaruhi dari konstanta β yang akan dibahas pada subbab selanjutnya.
Pengaruh Konstanta β D.
Mikrokontroller digunakan untuk melakukan komputasi melakukan iterasi perhitungan untuk mendapatkan  estimasi  nilai  orientasi  yang  optimum, untuk  itu  diperlukan  waktu  agar  nilai  estimasi  yang didapat  memiliki  faktor  koreksi  yang  lebih  kecil  dari perhitungan estimasi sebelumnya. Kecepatan
mengestimasi  atau sampling  rate nilai  orientasi tergantung  dari  konfigurasi  mikrokontroller  dan  sistem yang  digunakan,  pada  percobaan  ini  kecepatan perhitungan  yang  digunakan  adalah  138  kali  per  detik (138 Hz). Pengukuran sampling rate berdasarkan kinerja maksimum dari mikrokontroller yang digunakan.
Waktu  yang  dibutuhkan  untuk  mencapai  keadaan steady-state pada  kondisi  statis  berbeda-beda.  Untuk konfigurasi  sistem  yang  sama  dengan  nilai  β  yang berbeda  didapatkan  waktu  yang  berbeda.  Ketika  nilai  β semakin  kecil,  waktu  yang  dibutuhkan  untuk  mencapai keadaan steady-state semakin besar, sebaliknya jika nilai β semakin besar waktu yang dibutuhkan untuk mencapai keadaan steady-state semakin  kecil.  Hal  ini  dikarenakan nilai  konstanta  β  mempengaruhi  besarnya  faktor  koreksi untuk mengestimasi nilai orientasi yang baru.
Tabel 3. Pengaruh konstanta β terhadap waktu kalibrasi pada kondisi statis
beta waktu kalibrasi(detik) 0.01 5 0.05 4.2 0.1 4.1 0.5 3.4
1 2.5 2 1.6
Semakin  kecilnya  waktu  kalibrasi  tidak  menunjukkan bahwa  sistem  yang  dibuat  semakin  baik.  Dari  variasi  β yang  diberikan,  nilai  β  optimum  ketika  bernilai  0.05 yaitu  sebesar  0.1643 o pada  kondisi  statis  dan  1.4906 o pada  kondisi  dinamis.  nilai  optimum  ditentukan berdasarkan  variasi nilai  konstanta  β yang menghasilkan nilai  estimasi  orientasi  rata-rata  terkecil  dari  ketiga sumbu yaw,  pitch dan roll seperti  yang  terlihat  pada gambar 5 . Semakin besar nilai β dari nilai optimum, nilai keluarannya memiliki rentang fluktuasi yang lebih besar, mengakibatkan  ketika  keluaran  ini  disimulasikan  akan terlihat  tidak  stabil  yang  menunjukkan  berkurangnya akurasi  perhitungan  estimasi  orientasi  seperti  pada  hasil pengujian  kondisi  dinamis  pada  sumbu roll .  Sebaliknya jika  nilai  β  yang  digunakan  lebih  kecil  dari  nilai optimum,  nilai  keluarannya  memiliki  rentang  fluktuasi yang  lebih  kecil  sehingga  terlihat  lebih  stabil  namun membutuhkan waktu yang lebih lama untuk mendapatkan nilai estimasi orientasi yang optimum, pada kondisi dinamis mengakibatkan terdapat jeda antara nilai estimasi  orientasi  keluaran  sistem  dan  nilai  orientasi gimbal elektrik.
Gambar  5.  Pengaruh  konstanta  β  terhadap  rata-rata  RMSe yang dihasilkan pada kondisi statis dan dinamis.

## IV. KESIMPULAN
Berdasarkan hasil pengujian dapat disimpulkan bahwa konstanta  β  mempengaruhi  performa  sistem.  Waktu kalibrasi  sistem  semakin  besar  jika  nilai  konstanta  β semakin  besar,  semakin  cepat  waktu  untuk  mencapai keadaan steady-state .  Dari  variasi  konstanta  β  yang diberikan,  nilai  optimum  konstanta  β  adalah  0,05 dikarenakan memiliki rata-rata nilai RMSe yang  terkecil diantara variasi konstanta β lainnya.

## DAFTAR PUSTAKA
[1] Sebastian  O.  H.  Madgwick.  An  efficient  filter  for  inertial  and inertial/magnetic  sensor  arrays.2010. IEEE  ICORR ,  June  2011, pp. 1-7.
[2] J.  B.  Kuipers. Quaternions  and  Rotation  Sequences:  A  primer with  Applications  to  Orbits,  Aerospace  and  Virtual  Reality. Princeton University Press, 1999.
0.05, 1.49 0.05, 0.16 0 0.5 1 1.5 2 2.5 3 3.5 0 0.5 1 1.5 2 RMS error (deraja t) β dinamis statis