Fakultas Ilmu Komputer
Universitas Brawijaya
380
Sistem Kendali Navigasi Ar.Drone Quadcopter Dengan Prinsip Natural
User Interface Menggunakan Microsoft Kinect
Sabitha Wildani Hadi1, Gembong Edhi Setyawan2, Rizal Maulana3 Program Studi Teknik Informatika, Fakultas Ilmu Komputer, Universitas BrawijayaEmail: 1sabitha.swh18@gmail.com, 2gembong@ub.ac.id, 3rizal_lana@ub.ac.id Abstrak
Quadcopter merupakan salah satu jenis dari Unmanned Aerial Vehicle (UAV), yaitu robot yang
dapat terbang dengan empat baling-baling disetiap ujungnya. Untuk menerbangkan quadcopter pada umumnya digunakan remote control atau smartphone. Namun diperlukan keahlian dan pengalaman khusus untuk dapat menerbangkan quadcopter. Berdasarkan permasalahan tersebut maka perlu dikembangkan inovasi dari sistem kendali navigasi pada quadcopter agar lebih mudah digunakan. Sistem yang dibuat pada penelitian ini dibuat menggunakan salah satu bagian dari natural user interface berupa gerakan tubuh dari pengguna yang akan dideteksi menggunakan Kinect. Gerakan dari pengguna akan diubah menjadi sceleton tracking. Data sceleton tracking tersebut akan diolah oleh komputer dengan pemrograman javascript dan akan diteruskan menjadi instruksi untuk menggerakan quadcopter.
Quadcopter yang digunakan dalam penelitian ini adalah Parrot AR.Drone 2.0. Dari hasil pengujian yang
telah dilakukan didapatkan hasil persentase ketepatan gerakan yang berhasil dilakukan pengguna untuk mengendalikan qudcopter sebesar 100%. Selain itu juga diperoleh hasil dari kecepatan gerakan roll,
pitch, dan yaw pada quadcopter berbanding lurus dengan nilai input dari gerakan pengguna yang berarti
kecepatan quadcopter dapat diatur sesuai gerakan yang diberikan oleh pengguna. Untuk delay yang dihasilkan sistem ini pada saat pengguna menggerakan tubuh hingga quadcopter mengikuti instruksi adalah sebesar 0,05 detik.
Kata kunci: Kinect, Sceleton Tracking. UAV, Quadcopter Abstract
Quadcopter is a type of Unmanned Aerial Vehicle (UAV), which is a robot that can fly with four propellers. Quadcopter can controlled with remote control or smartphone, but it takes skill and experience to be able to control quadcopter. Based on that problems, it is necessary to develop new innovation of quadcopter navigation control system which is easier to use. The system built on this research is made using one part of the natural user interface that is user’s body gestures detected using Kinect. User’s gestures will be converted into sceleton tracking. The sceleton tracking data will be processed by computer with javascript programming and will be forwarded into instructions to control quadcopter. Quadcopter used in this research is Parrot AR.Drone 2.0. After performing test on the system, obtained percentage of accuracy of user’s gestures to control quadcopter is 100%. In addition, the results obtained from the speed test of roll, pitch, and yaw on the quadcopter is directly proportional to the input value of the user’s gestures which means the speed of the quadcopter can be adjusted automatically according to the user’s gestures. For the delay on this system when the user moves the body until the quadcopter follows the instruction is 0.05 seconds.
Keywords: Kinect, Sceleton Tracking. UAV, Quadcopter
1. PENDAHULUAN
Saat ini quadcopter atau yang biasa dikenal dengan istilah drone, tengah populer di kalangan masyarakat. Banyak penggunaan quadcopter di berbagai bidang. Selain untuk kegiatan fotografi,
quadcopter juga dapat digunakan pada berbagai
bidang seperti pertanian, medis, keamanan, dan lain sebagainya.
Untuk dapat menerbang qudcopter sesuai dengan keinginan pengguna, dapat digunakan remote control yang menggunakan media transmisi gelombang radio atau Wi-fi. Selain itu
quadcopter juga dapat dikendalikan menggunakan smartphone maupun joystick.
Namun untuk mengendalikan quadcopter
menggunakan perangkat tersebut dibutuhkan proses pembelajaran yang relatif lama serta keahlian khusus.
Dengan munculnya inovasi berupa Natural
User Interface (NUI), cara dalam mengendalikan quadcopter telah berkembang. Menurut Blake (2013) NUI adalah sebuah antarmuka alami yang dirancang untuk dapat digunakan dengan keahlian manusia yang telah ada untuk berinteraksi dengan suatu konten. NUI dapat diimplementasikan dalam bidang apa pun termasuk untuk mengendalikan quadcopter.
NUI merupakan sebuah pendekatan baru dalam cara interaksi antara manusia dengan berbagai hal yang memiliki input alami dari manusia seperti suara, gerakan, dan biosignal. Antarmuka ini memiliki perbedaan dengan cara konvensional dalam meminimalkan durasi dan tingkat kesulitan pembelajaran oleh pengguna dalam mengoperasikan quadcopter. Pendekatan ini hanya memerlukan sedikit proses pembelajaran bagi pengguna dalam percobaan yang pertama kali.
Pada penelitian ini akan dilakukan implementasi dari sistem kendali navigasi
quadcopter atau yang lebih umum dikenal
sebagai drone menggunakan NUI. Quadcopter yang digunakan adalah Parrot AR.Drone. Pemilihan Parrot AR.Drone dikarenakan jenis ini merupakan salah satu quadcopter yang bersifat open source dengan harga terjangkau. Untuk NUI yang digunakan adalah gerakan tuuh dari pengguna. Gerakan dari pengguna akan dideteksi menggunakan sensor kamera Kinect. Pemilihan sensor Kinect ini dikarenakan menurut Zeng (2012) Kinect memiliki kamera RGB dan infrared yang bisa digunakan untuk menghasilkan sceleton tracking dengan proses yang sangat cepat.
Penelitian mengenai sistem kendali
quadcopter menggunakan Kinect juga pernah
dilakukan oleh oleh Sanna et al. (2013) yang membahas mengenai pengendalian quadcopter serta perbandingan antara penggunaan NUI dengan sistem kendali konvensional seperti
joystick, smartphone dan keyboard. Delay yang
dihasilkan pada penelitian ini sebesar 0,3 detik. Selanjutnya penelitian Mashood et al. (2015) juga membahas penggunaan Kinect sebagai sistem kendali quadcopter. Delay yang dihasilkan oleh penelitian tersebut sebesar 0,32 detik.
Berbeda penelitian Mashood et al. (2015)
dan Sanna et al. (2013) yang masih menggunakan perangkat lunak tambahan berupa FAAST (Flexible Action and Articulated
Skeleton Toolkit) sebagai pendeteksi gerakan
tubuh, pada penelitian ini digunakan pemrograman javascript dengan mengambil data langsung pada Kinect driver tanpa melalui FAAST. Penelitian ini memfokuskan pada performa dan akurasi dari sistem.
2. PERGERAKAN QUADCOPTER
Menurut Kusuma, Effendi, dan Iskandar (2012) quadcopter adalah sebuah konfigurasi empat buat motor pada sebuah kerangka berbentuk menyilang. Pada masing-masing ujung kerangka terdapat motor yang terpasang dengan baling-baling untuk membuat aliran udara yang menghasilkan tekanan ke arah bawah sehingga timbul gaya angkat pada quadcopter.
Quadcopter memiliki empat pergerakan yaitu roll (gerakan ke kiri dan kanan searah sumbu y), pitch (gerakan ke depan belakang searah sumbu
x), gaz (gerakan ke atas dan bawah searah sumbu z), serta yaw (gerakan berputar ke kiri dan kanan yang berotasi pada sumbu z )
Gambar 1. Koordinat pada quadcopter
3. PERANCANGAN DAN IMPLEMENTASI Tahap perancangan serta implementasi pada penelitian ini dibagi menjadi tiga tahapan secara berurutan yaitu yaitu komunikasi sistem, gerakan tubuh, dan fungsi kecepatan.
Gambar 2. Tahapan perancangan dan implementasi sistem
3.1 Komunikasi Sistem
Alur komunikasi pada sistem ini diperlihatkan pada gambar 3. Awalnya pengguna akan memberi instruksi pada sistem dengan menggerakkan badan pada Kinect. Data gerakan badan pengguna yang telah diakusisi oleh Kinect akan dikirim melalui USB menuju komputer dan diubah menjadi data sceleton
tracking oleh driver kinect.
Gambar 3. Alur komunikasi pada sistem Setelah itu dibuat suatu program untuk mengubah data sceleton tracking yang telah diperoleh hingga dapat menghasilkan suatu instruksi yang digunakan sebagai parameter untuk menggerakan quadcopter. Selain itu program yang telah dibuat juga akan menampilkan info data navigasi dari quadcopter seperti ketinggian, baterai, kecepatan, dan lain sebagainya.
Pada quadcopter, data dikirim dan diterima melalui jaringan Wi-Fi yang dipancarkan oleh
quadcopter. Data yang dikirim berupa AT command dengan protokol jaringan UDP.
Gambar 4. Implementasi komunikasi sistem 3.2 Gerakan Tubuh
Agar gerakan tubuh dapat digunakan sebagai input dari sistem ini, diperlukan data
joint dari sceleton tracking. Namun tidak
keseluruhan data dipergunakan pada sistem ini. Data yang dipakai pada sistem berfokus pada
tubuh bagian atas khususnya bagian tangan. Total ada sebelas instruksi yang dapat pengguna gunakan untuk mengendalikan quadcopter. Gerakan tersebut seperti pada tabel 1.
Tabel 1. Daftar instruksi quadcopter berdasarkan gerakan tubuh
Gerakan Tubuh Command
Tangan kanan menunjuk
Kinect (lasso hand) Takeoff
Kedua tangan
menggenggam Landing
Kedua tangan direntangkan
ke samping Hover
Kedua tangan dinaikkan Gaz atas
Kedua tangan diturunkan Gaz bawah
Tangan kanan dinaikkan
dan tangan kiri diturunkan Roll kiri Tangan kiri dinaikkan dan
tangan kanan diturunkan Roll kanan Kedua tangan diarahkan ke
depan Pitch depan
Kedua tangan diarahkan ke
belakang Pitch belakang
Tangan kanan diarahkan kedepan dan tangan kiri diarahkan ke belakang
Yaw kiri
Tangan kiri diarahkan kedepan dan tangan kanan diarahkan ke belakang
Yaw kanan
3.3 Fungsi Kecepatan
Tujuan dari fungsi ini adalah menghasilkan kecepatan yang berbeda dari setiap gerakan yang dilakukan oleh pengguna. Dengan demikian pengguna dapat mengendalikan quadcopter dengan mudah. Hal ini dikarenakan jika pengguna dapat mengatur kecepatan dari
quadcopter, maka pengguna tidak perlu takut
dan ragu untuk menggerakkan
Gambar 5. Implementasi gerakan tubuh
quadcopter. Berbeda halnya jika kecepatan
diberi nilai konstan. Pengguna akan kesulitan saat mengendalikan quadcopter. Untuk bisa menghasilkan fungsi tersebut maka diperlukan
sebuah perhitungan berdasarkan nilai dari beberapa joint pada sceleton tracking yang diperlukan. Persamaan yang digunakan untuk perhitungan kecepatan ini didapatkan dari percobaan dan pengamatan secara berulang kali terhadap nilai dari beberapa joint tubuh yang diperoleh dari Kinect. Untuk perhitungan nilai kecepatan pada masing-masing gerakan akan dijelaskan sebagai berikut.
a. Pitch
Parameter yang dipakai adalah nilai koordinat z pada joint tangan kiri, tangan kanan dan bahu bagian tengah. Rumus dari perhitungan kecepatan diperlihatkan pada persamaan 1.
Mula-mula nilai tangan kanan (KananZ) dan tangan kiri (KiriZ) dirata-rata dahulu. Hal ini dikarenakan pada saat menggerakkan tangan ke depan atau belakang, nilai antara tangan kanan dan kiri belum tentu sama. Setelah itu hasil rata-rata (Mean) tersebut di masukan pada perhitungan kecepatan (Vxx) dan digunakan untuk mengurangi nilai dari bahu bagian tengah (BahuZ). Nilai dari Vxx diabsolutkan untuk menghindari adanya nilai negatif.
b. Roll
Parameter yang dipakai adalah nilai koordinat y pada joint tangan kiri, tangan kanan, kepala, dan dada. Rumus dari perhitungan kecepatan diperlihatkan pada persamaan 2. Mula-mula dihitung selisih dari kepala (𝐾𝑒𝑝𝑎𝑙𝑎𝑌) dengan tangan yang posisinya berada di atas kepala (𝑇1) . Jika posisi roll ke kiri maka nilai tangan kanan yang akan dihitung, begitu juga sebaliknya. Setelah itu dilakukan perhitungan terhadap selisih antara dada (𝐷𝑎𝑑𝑎𝑌) dengan tangan yang posisinya berada di bawah dada (𝑇2). Nilai dari T1 dan T2 diabsolutkan untuk menghindari adanya nilai negatif dalam perhitungan. Setelah mendapat nilai selisih antara kepala dan tangan di atasnya (𝑌1) serta dada dengan tangan di bawahnya (𝑌2), selanjutnya kedua nilai tersebut dikurangkan dan selanjutnya dibagi 2 sehingga akan menghasilkan kecepatan gerakan roll (𝑉𝑦𝑦). Nilai dari (Vyy) diabsolutkan untuk menghindari adanya nilai negatif.
c. Gaz
Untuk parameter yang dipakai adalah nilai koordinat y pada joint tangan kiri, tangan kanan, kepala, dan dada. Rumus dari perhitungan kecepatan diperlihatkan pada persamaan 3
.
Mula-mula dihitung rata-rata dari nilai tangan kiri (𝑘𝑖𝑟𝑖𝑌) dan tangan kanan (kananY). Setelahitu nilai tersebut dikurangkan dengan nilai dari acuan (K). Nilai ini akan menyesuaikan kondisi gerakan. Saat gerakan naik maka nilai (K) akan diisi dengan nilai dari kepala sedangkan saat turun akan diisi dengan nilai dada.
d. Yaw
Untuk parameter joint yang dipakai adalah nilai koordinat z pada tangan kiri dan kanan. Rumus dari perhitungan kecepatan diperlihatkan pada persamaan 4. Nilai dari tangan yang berada
dekat dengan Kinect (𝑇1) dikurangkan dengan tangan yang berada jauh dengan Kinect (𝑇2). Lalu nilai tersebut diabsolutkan untuk menghilangkan nilai negatif. Setelah itu nilai tersebut dibagi 2.
4. PENGUJIAN DAN HASIL
Untuk menguji performa dan akurasi dari sistem ini, maka akan dilakukan dua jenis pengujian yaitu pengujian waktu sistem (delay) dan pengujian ketepatan. Untuk pengujian waktu sistem akan digunakan untuk mengetahui seberapa baik performa dari sistem ini. Sedangkan untuk pengujian ketepatan dibagi menjadi dua pengujian lagi yaitu pengujian ketepatan gerakan dan kecepatan.
4.1 Hasil Pengujian Ketepatan Gerakan Pengujian ini dilakukan untuk mengetahui apakah sistem sudah berjalan sesuai dengan perancangan yang diharapkan serta mampu memberikan output yang tepat. Untuk setiap gerakan akan diuji sebanyak sepuluh kali.
Pada pengujian gerakan pitch, dihasilkan grafik seperti pada 6. Gerakan pitch ke depan dan belakang berhasil dilakukan, diperlihatkan dengan berubahnya sudut dari quadcopter pada koordinat sumbu y yang berarti arah gerakan
quadcopter telah benar.
𝑀𝑒𝑎𝑛 =𝐾𝑎𝑛𝑎𝑛𝑍 + 𝐾𝑖𝑟𝑖𝑍 2 𝑉𝑥𝑥 = [𝐵𝑎ℎ𝑢𝑍 − 𝑀𝑒𝑎𝑛] ( 1 ) 𝑌1 = [𝑇1] − 𝐾𝑒𝑝𝑎𝑙𝑎𝑌 𝑌2 = 𝐷𝑎𝑑𝑎𝑌 − [𝑇2] 𝑉𝑦𝑦 = [(𝑌1− 𝑌2)/2] (2) 𝑀𝑒𝑎𝑛 =[𝐾𝑎𝑛𝑎𝑛𝑌 + 𝑘𝑖𝑟𝑖𝑌] 2 𝑉𝑧𝑧 = [𝑀𝑒𝑎𝑛 − 𝐾] (3) 𝑉𝑟𝑜𝑡"=[𝑇1− 𝑇2] 2 (4)
Pada pengujian gerakan roll, dihasilkan grafik seperti pada 7. Gerakan roll ke kiri dan kanan berhasil dilakukan, diperlihatkan dengan berubahnya sudut dari quadcopter pada koordinat sumbu x yang berarti arah gerakan
quadcopter telah benar.
Gambar 6.Grafik sudut gerakan pitch
Gambar 7. Grafik sudut gerakan roll
Pada pengujian gerakan gaz, dihasilkan grafik seperti pada gambar 8. Gerakan gaz ke atas dan bawah berhasil dilakukan, diperlihatkan dengan berubahnya ketinggian dari quadcopter yang berarti arah gerakan quadcopter telah benar.
Gambar 8. Grafik sudut gerakan gaz
Pada pengujian gerakan yaw, dihasilkan grafik seperti pada gambar 9. Gerakan yaw ke kiri dan kanan berhasil dilakukan, diperlihatkan dengan berubahnya sudut dari quadcopter pada koordinat sumbu z yang berarti arah gerakan
quadcopter telah benar.
Gambar 9. Grafik sudut gerakan yaw Untuk pengujian gerakan takeoff, hover, dan landing dilakukan sekaligus secara
berurutan dalam sekali percobaan gerakan karea parameter yang akan diamati sama yaitu ketinggian. Untuk gambar pada gerakan ini ada pada gambar 10. Saat takeoff dilakukan didapatkan ketinggian semakin bertambah pada detik ke 0,05 sampai 1,07. Selanjutnya pada detik ke 1,08 sampai 3,31 nilai dari ketinggian relatif stabil dikarenakan quadcopter berada pada kondisi hover. Lalu pada detik ke 3,32 sampai 4,43 ketinggian semakin berkurang saat
quadcopter mendarat.
Gambar 10. Grafik sudut gerakan takeoff, hover, dan landing
Dari pengujian yang dilakukan didapatkan hasil berupa keseluruhan pengguna dapat mengendalikan quadcopter dengan sukses dari sepuluh kali percobaan pada jarak 1,5 dan 3,8 meter seperti diperlihatkan pada tabel. Sehingga persentase ketepatan pada sistem ini sebesar 100%.
Tabel 2 Hasil pengujian ketepatan gerakan Command Pengguna A Pengguna B 1,5 meter 3,8 meter 1,5 meter 3,8 meter Takeoff 100% 100% 100% 100% Landing 100% 100% 100% 100% Gaz atas 100% 100% 100% 100% Gaz bawah 100% 100% 100% 100% Roll kiri 100% 100% 100% 100% Roll kanan 100% 100% 100% 100% Pitch depan 100% 100% 100% 100% Pitch belakang 100% 100% 100% 100% Yaw kiri 100% 100% 100% 100% Yaw kanan 100% 100% 100% 100% Hover 100% 100% 100% 100%
4.2 Hasil Pengujian Kecepatan
Pengujian ini dilakukan untuk mengetahui apakah input yang diberikan pengguna telah dapat mempengaruhi kecepatan dari quadcopter. Setelah dilakukan pengujian, didapatkan hasil seperti pada gambar 11, 12, 13, dan 14. Pada grafik-grafik tersebut diperlihatkan bahwa nilai dari kecepatan yang diberikan oleh pengguna dapat mempengaruhi kecepatan dari
Saat nilai dari input kecepatan pengguna bertambah besar, secara otomatis kecepatan dari
quadcopter juga akan bertambah. Hal ini
menandakan bahwa fungsi kecepatan otomatis dari sistem ini telah benar. Saat pengguna memberikan kecepatan tinggi maka quadcopter secara otomatis juga akan bergerak dengan cepat, begitu pula sebaliknya saat diberikan kecepatan rendah maka quadcopter akan bergerak dengan pelan.
Gambar 11. Grafik pengaruh input kecepatan pengguna pada kecepatan pitch quadcopter
Gambar 12. Grafik pengaruh input kecepatan pengguna pada kecepatan roll quadcopter
Gambar 13. Grafik pengaruh input kecepatan pengguna pada kecepatan gaz quadcopter
Gambar 14. Grafik pengaruh input kecepatan pengguna pada kecepatan yaw quadcopter 4.3 Hasil Pengujian Waktu Sistem
Pengujian ini dilakukan untuk mengetahui seberapa baik performa dari sistem kendali yang telah dibuat dengan melihat seberapa besar delay yang terjadi saat pengguna memberikan instruksi sampai quadcopter merespon.
Untuk mengetahui waktu delay tersebut dengan akurat, maka akan dilakukan perekaman video pada saat pengguna mengendalikan
quadcopter. Hasil dari video tersebut akan
dianalisis dengan menghitung selisih waktu dari frame gambar antara gerakan pengguna dengan gerakan quadcopter.
Setelah dilakukan percobaan untuk setiap gerakan sebanyak lma kali, didapatkan hasil berupa delay pada sistem ini sebesar 0,05 detik.
Tabel 3. Hasil pengujian delay sistem Command
Percobaan ke-
Rata-rata (detik) 1 2 3 4 5 Gaz atas 0,04 0,06 0,05 0,05 0,06 0,05 Gaz bawah 0,04 0,05 0,05 0,06 0,05 0,05 Roll kiri 0,03 0,05 0,05 0,06 0,05 0,04 Roll kanan 0,05 0,05 0,04 0,05 0,06 0,05 Pitch depan 0,05 0,06 0,06 0,04 0,05 0,05 Pitch belakang 0,05 0,05 0,05 0,06 0,05 0,05 Yaw kiri 0,05 0,04 0,05 0,05 0,04 0,04 Yaw kanan 0,04 0,05 0,06 0,05 0,05 0,05
Total delay sistem 0,05
5. KESIMPULAN
Dari pengujian yang telah dilakukan terhadap sistem ini, maka dapat diambil kesimpulan sebagai berikut.
a. Setelah melakukan pengujian ketepatan gerakan dan kecepatan, dihasilkan persentase ketepatan gerakan sebesar 100%. Sedangkan untuk kecepatan yang dihasilkan oleh quadcopter dapat
berbanding lurus dengan nilai yang diperoleh dari gerakan pengguna, hal ini menandakan saat input dari pengguna semakin besar, maka quadcopter akan bertambah cepat dan begitu pula sebaliknya. Sehingga dapat diambil kesimpulan bahwa sistem yang telah dibuat telah sesuai dengan harapan dan memiliki nilai akurasi yang tinggi.
b. Dari pengujian delay sistem, didapat delay sebesar 0,05 detik. Dari hasil tersebut maka dapat diambil kesimpulan bahwa sistem ini memiliki performa yang sangat baik.
6. DAFTAR PUSTAKA
Camci, E., & Kayacan, E. (2016). Waitress quadcopter explores how to serve drinks by reinforcement learning. Region 10
Conference (TENCON), 2016 IEEE.
Singapore: IEEE.
Kusuma, W., AK, R. E., & Iskandar, E. (2012). Perancangan dan Implementasi Kontrol Fuzzy-PID pada Pengendalian Auto Take-Off Quadcopter UAV. JURNAL
TEKNIK POMITS, 1(1), 1-6.
Mashood, A., Noura, H., Jawhar, I., & Mohamed, N. (2015). A Gesture Based Kinect for Quadrotor Control. Abu Dhabi: IEEE.
NUI Group Community. (2009). Dipetik
December 6, 2016, dari
http://www.nuigroup.com/faq/
Pahonie, R.-C., Mihai, R.-V., & Barbu, C. (2015). Biomechanics of flexible wing drones usable for emergency medical transport operations. E-Health and
Bioengineering Conference (EHB), 2015. Romania: IEEE.
Sanna, A., Lamberti, F., Paravati, G., & Manuri, F. (2013). A Kinect-based natural interface for quadrotor control. Elsevier, 179-186.
Zeng, W. (2012). Microsoft Kinect Sensor and Its Effect. IEEE MultiMedia, 19(2), 4 - 10.