Sistem Kendali Navigasi Ar.Drone Quadcopter Dengan Prinsip Natural User Interface Menggunakan Microsoft Kinect
Vol. 2, No. 1, Januari 2018, hlm. 380-386 http://j-ptiik.ub.ac.id
Sistem Kendali Navigasi Ar.Drone Quadcopter Dengan Prinsip Natural
User Interface Menggunakan Microsoft Kinect
1 23 Sabitha Wildani Hadi , Gembong Edhi Setyawan , Rizal Maulana
Program Studi Teknik Informatika, Fakultas Ilmu Komputer, Universitas Brawijaya 1 2 3 Email: sabitha.swh18@gmail.com, gembong@ub.ac.id, rizal_lana@ub.ac.id
Abstrak
Quadcopter merupakan salah satu jenis dari Unmanned Aerial Vehicle (UAV), yaitu robot yangdapat 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 nat ural 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
bidang seperti pertanian, medis, keamanan, dan 1.
PENDAHULUAN lain sebagainya.
Saat ini quadcopter atau yang biasa dikenal Untuk dapat menerbang qudcopter sesuai dengan istilah drone, tengah populer di kalangan dengan keinginan pengguna, dapat digunakan masyarakat. Banyak penggunaan quadcopter di remote control yang menggunakan media berbagai bidang. Selain untuk kegiatan fotografi, transmisi gelombang radio atau Wi-fi. Selain itu
quadcopter juga dapat digunakan pada berbagai quadcopter juga dapat dikendalikan
menggunakan smartphone maupun joystick.Fakultas Ilmu Komputer Universitas Brawijaya
380
Namun untuk mengendalikan
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.
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
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.
quadcopter atau yang lebih umum dikenal
) 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.
Pada penelitian ini akan dilakukan implementasi dari sistem kendali navigasi
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.
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.
User Interface (NUI), cara dalam mengendalikan quadcopter telah berkembang.
Dengan munculnya inovasi berupa Natural
menggunakan perangkat tersebut dibutuhkan proses pembelajaran yang relatif lama serta keahlian khusus.
Skeleton Toolkit
PERANCANGAN DAN IMPLEMENTASI
Berbeda penelitian Mashood et al. (2015) dan Sanna et al. (2013) yang masih menggunakan perangkat lunak tambahan berupa FAAST (Flexible Action and Articulated
Selanjutnya penelitian Mashood et al. (2015) juga membahas penggunaan Kinect sebagai sistem kendali quadcopter. Delay yang dihasilkan oleh penelitian tersebut sebesar 0,32 detik.
dilakukan oleh oleh Sanna et al. (2013) yang membahas mengenai pengendalian quadcopter serta perbandingan antara penggunaan NUI dengan sistem kendali konvensional seperti
quadcopter menggunakan Kinect juga pernah
Penelitian mengenai sistem kendali
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
joystick, smartphone dan keyboard. Delay yang dihasilkan pada penelitian ini sebesar 0,3 detik.
3.1 Komunikasi Sistem
Hover Kedua tangan dinaikkan
Gambar 5. Implementasi gerakan tubuh quadcopter. Berbeda halnya jika kecepatan
dan ragu untuk menggerakkan
quadcopter, maka pengguna tidak perlu takut
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
3.3 Fungsi Kecepatan
Yaw kanan
Yaw kiri Tangan kiri diarahkan kedepan dan tangan kanan diarahkan ke belakang
Pitch belakang Tangan kanan diarahkan kedepan dan tangan kiri diarahkan ke belakang
Pitch depan Kedua tangan diarahkan ke belakang
Roll kanan Kedua tangan diarahkan ke depan
Roll kiri Tangan kiri dinaikkan dan tangan kanan diturunkan
Gaz bawah Tangan kanan dinaikkan dan tangan kiri diturunkan
Gaz atas Kedua tangan diturunkan
Landing Kedua tangan direntangkan ke samping
Alur komunikasi pada sistem ini diperlihatkan pada gambar
Tangan kanan menunjuk Kinect (lasso hand) Takeoff Kedua tangan menggenggam
Tabel 1. Daftar instruksi quadcopter berdasarkan gerakan tubuh Gerakan Tubuh Command
Total ada sebelas instruksi yang dapat pengguna gunakan untuk mengendalikan quadcopter. Gerakan tersebut seperti pada tabel 1.
Data yang dipakai pada sistem berfokus pada tubuh bagian atas khususnya bagian tangan.
joint dari sceleton tracking. Namun tidak keseluruhan data dipergunakan pada sistem ini.
Agar gerakan tubuh dapat digunakan sebagai input dari sistem ini, diperlukan data
3.2 Gerakan Tubuh
Gambar 4. Implementasi komunikasi sistem
quadcopter . Data yang dikirim berupa AT command dengan protokol jaringan UDP.
Pada quadcopter, data dikirim dan diterima melalui jaringan Wi-Fi yang dipancarkan oleh
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.
Gambar 3. Alur komunikasi pada sistem
tracking oleh driver kinect.
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
diberi nilai konstan. Pengguna akan kesulitan saat mengendalikan quadcopter. Untuk bisa menghasilkan fungsi tersebut maka diperlukan
2 (4)
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.
Mula-mula dihitung rata-rata dari nilai tangan kiri ( ) dan tangan kanan (kananY). Setelah itu 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
4.1 Hasil Pengujian Ketepatan Gerakan
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
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.
=
( 1 ) 1 = [ 1 ] − 2 = − [
2 ] = [( 1 − 2 )/2] (2)
= [ + ] 2 = [ − ]
(3) "
= [ 1 −
2 ]
.
Gaz
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
c.
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.
- 2 = [ ℎ − ]
1
). Nilai dari T 1 dan T 2 diabsolutkan untuk menghindari adanya nilai negatif dalam perhitungan. Setelah mendapat nilai selisih antara kepala dan tangan di atasnya (
2
) . 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 (
) serta dada dengan tangan di bawahnya (
) dengan tangan yang posisinya berada di atas kepala (
(
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
Roll
b.
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.
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.
1 Pada pengujian gerakan roll, dihasilkan berurutan dalam sekali percobaan gerakan karea grafik seperti pada 7. Gerakan roll ke kiri dan parameter yang akan diamati sama yaitu kanan berhasil dilakukan, diperlihatkan dengan ketinggian. Untuk gambar pada gerakan ini ada berubahnya sudut dari quadcopter pada pada gambar 10. Saat takeoff dilakukan koordinat sumbu x yang berarti arah gerakan didapatkan ketinggian semakin bertambah pada
quadcopter telah benar. 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 6. Grafik sudut gerakan pitch Gambar 10. Grafik sudut gerakan takeoff, hover, dan landing Gambar 7. Grafik sudut gerakan roll Dari pengujian yang dilakukan
didapatkan hasil berupa keseluruhan pengguna Pada pengujian gerakan gaz, dihasilkan dapat mengendalikan quadcopter dengan sukses grafik seperti pada gambar 8. Gerakan gaz ke dari sepuluh kali percobaan pada jarak 1,5 dan atas dan bawah berhasil dilakukan, diperlihatkan 3,8 meter seperti diperlihatkan pada tabel. dengan berubahnya ketinggian dari quadcopter
Sehingga persentase ketepatan pada sistem ini yang berarti arah gerakan quadcopter telah sebesar 100%. benar.
Tabel 2 Hasil pengujian ketepatan gerakan Pengguna A Pengguna B
Command 1,5 3,8 1,5 3,8 meter meter meter meter
100% 100% 100% 100% Takeoff Landing 100% 100% 100% 100% Gaz atas 100% 100% 100% 100% Gaz bawah 100% 100% 100% 100%
Gambar 8. Grafik sudut gerakan gaz Roll kiri 100% 100% 100% 100%
100% 100% 100% 100% Roll kanan
Pada pengujian gerakan yaw, dihasilkan
Pitch depan 100% 100% 100% 100%
grafik seperti pada gambar 9. Gerakan yaw ke
Pitch belakang 100% 100% 100% 100%
kiri dan kanan berhasil dilakukan, diperlihatkan
Yaw kiri 100% 100% 100% 100%
dengan berubahnya sudut dari quadcopter pada
Yaw kanan 100% 100% 100% 100%
koordinat sumbu z yang berarti arah gerakan
Hover 100% 100% 100% 100% quadcopter telah benar.
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
Gambar 9. Grafik sudut gerakan yaw
nilai dari kecepatan yang diberikan oleh Untuk pengujian gerakan takeoff, hover, pengguna dapat mempengaruhi kecepatan dari dan landing dilakukan sekaligus secara quadcopter. 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 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
Gambar 11. Grafik pengaruh input kecepatan
dengan akurat, maka akan dilakukan perekaman
pengguna pada kecepatan pitch quadcopter
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 Rata- Percobaan ke- rata
Gambar 12. Grafik pengaruh input kecepatan Command
1
2
3
4
5 pengguna pada kecepatan roll quadcopter
(detik) 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
0,03 0,05 0,05 0,06 0,05 0,04 Roll kiri Roll kanan 0,05 0,05 0,04 0,05 0,06 0,05 Pitch
0,05 0,06 0,06 0,04 0,05 0,05 depan Pitch
0,05 0,05 0,05 0,06 0,05 0,05 belakang 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 Gambar 13. Grafik pengaruh input kecepatan pengguna pada kecepatan gaz quadcopter
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.