Fakultas Ilmu Komputer
Universitas Brawijaya 250
Pemetaan Ruangan Menggunakan Ar.Drone Dengan Metode LSD-SLAM
Yanottama Oktabrian1, Eko Setiawan2, Dahnial Syauqy3
Program Studi Teknik Komputer, Fakultas Ilmu Komputer, Universitas Brawijaya Email: 1[email protected], 2[email protected], 3[email protected]
Abstrak
Quadcopter merupakan sebuah pesawat tanpa awak (Unmanned Aerial Vehicle / UAV) yang memiliki baling-baling pada keempat sisinya. Saat ini quadcopter banyak digunakan untuk membantu pada berbagai bidang kehidupan manusia. Dalam membantu kehidupan manusia quadcopter tentunya membutuhkan berbagai kemampuan. Salah satu kemampuan dasar adalah pergerakan quadcopter.
Untuk melakukan pergerakan secara otomatis salah satu persyaratan utama adalah pemosisian.
Pemosisian digunakan untuk mengetahui posisi sebuah quadcopter pada suatu lingkungan. Dalam dunia robotika masalah ini biasa disebut dengan lokalisasi dan pemetaan atau Simultaneous Localization And Mapping (SLAM). Pada sebuah sistem robot umumnya perangkat yang digunakan untuk melakukan SLAM adalah Global Positioning System (GPS). Sistem ini merupakan pilihan utama ketika dibutuhkan penentuan posisi di luar ruangan. Namun sistem GPS akan memiliki masalah akurasi yang rendah ketika digunakan di dalam ruangan. Hal ini menjadikan lokalisasi dan pemetaan untuk pergerakan quadcopter menjadi sulit dilakukan dengan perangkat GPS, sehingga dibutuhkan perangkat lain untuk melakukan proses SLAM. Salah satu perangkat yang dapat digunakan untuk memperkirakan posisi quadcopter adalah kamera. Pada penelitian ini, penulis akan memperkirakan posisi quadcopter di dalam sebuah ruangan dengan menggunakan Large Scale Direct Monocular SLAM (LSD-SLAM) pada Ar.Drone 2.0.
Library LSD-SLAM akan dijalankan dengan menggunakan Robot Operating System (ROS) yang terdapat pada komputer Ground Control System (GCS). Hasil pengujian menunjukkan bahwa Ar.Drone mampu mengirimkan gambar ke komputer GCS dengan baik. Sistem juga mampu memperkirakan perpindahan posisi quadcopter dengan berdasarkan gambar yang dikirim dari kamera terintegrasi Ar.Drone yang kemudian diproses oleh library LSD-SLAM.
Kata kunci: quadcopter, kontrol navigasi, pemetaan dalam ruang, SLAM, LSD-SLAM, ardrone, AR.Drone 2.0, ROS, simulasi Gazebo.
Abstract
Quadcopter is an Unmanned Aerial Vehicle or UAV which has four propellers on its four sides.
Nowadays quadcopter often used to help enrich human’s life. Quadcopters need basic abilities. One of basic ability it needs is moving. To be able to move automatically the prerequisite is positioning.
Positioning is used to determine quadcopter position in an environment. In robotics this problem is named Simultaneous Localization and Mapping or SLAM. Robot system usually uses Global Positioning System (GPS) to determine its location. GPS is primary method to determine robot position at outdoor environments. The problem occurs when GPS is being used in an indoor environment. GPS have low accuracy when used in a closed building. This problem made localization and mapping using GPS in an indoor environment rather difficult, thus another device is needed for SLAM processing. One of device that can be used to determine a quadcopter position is camera. In this research, writer will determine quadcopter position in an indoor environment using Large Scale Direct Monocular SLAM (LSD-SLAM) on an Ar.Drone 2.0. LSD-SLAM library will run using Robot Operating System (ROS) in a Ground Control System (GCS) computer. The results show that Ar.Drone can send images to GCS computer very well. System also can determine movement estimation of quadcopter using images that sent from Ar.Drone integrated camera which will be processed by LSD-SLAM library.
Keywords: quadcopter, navigation control, indoor mapping, SLAM, LSD-SLAM, ardrone, AR.Drone 2.0, ROS, Gazebo simulation.
PENDAHULUAN
Perkembangan teknologi yang pesat menjadikan manusia lebih mudah dalam mengerjakan berbagai rutinitas. Teknologi robot membantu manusia dalam mengerjakan rutinitas. Secara alami, manusia mampu mengenali lingkungan sekitar dan memperkirakan posisi dirinya. Kemampuan manusia dalam memperkirakan posisi tersebut memudahkan manusia dalam melakukan aktivitas sehari-hari. Robot pun memerlukan kemampuan untuk mengenali lingkungan sekitar dan memperkirakan posisinya agar dapat membantu manusia dengan baik. Teknik pengenalan lokasi sekitar ini dikenal dengan teknik pemetaan. Pemetaan baik skala kecil seperti pemetaan ruangan ataupun skala besar seperti pemetaan geologis. Masalah pemetaan ini muncul karena keterbatasan pandangan manusia serta cara menginterprestasikan apa yang dilihat ke dalam suatu model. model-model inilah yang akan digunakan untuk mempresentasikan keadaan sebuah lingkungan.
Pada robotika permasalahan yang sama juga terjadi. Permasalahan ini adalah pembuatan peta dimana robot berada, serta bagaimana robot bernavigasi di lingkungan tersebut dengan tetap memantau posisi dan orientasi robot.
SLAM (Simultaneous Localization And Mapping) merupakan sebuah konsep yang dapat menyelesaikan masalah krusial dalam dunia robotika. Permasalahan pertama adalah pemetaan (mapping) yaitu penciptaan sebuah peta dari lingkungan tempat robot berada.
Permasalahan kedua lokalisasi (localisation) merupakan navigasi robot dalam lingkungan ini menggunakan peta yang telah dibangun dan dalam waktu bersamaan melacak pergerakan posisi dan orientasi robot. Dengan mengatasi permasalahan pada SLAM kemungkinan dalam otomatisasi robot akan terbuka lebar (Yap, et al., 2016).
Beberapa jenis robot digunakan dalam membantu aktivitas manusia seperti robot beroda, robot berkaki, robot kapal dan robot udara. Salah satu robot udara yang banyak digunakan adalah robot berjenis quadcopter.
Quadcopter dapat dikendalikan secara bebas dengan memanfaatkan kombinasi baling-baling yang terpasang pada quadcopter. Quadcopter melakukan berbagai gerakan dengan menaikkan atau menurunkan kecepatan masing-masing motor sehingga quadcopter dapat berbelok, berputar, naik, turun, dan lain-lain (Hernadez-
Martinez, et al., 2015). Quadcopter biasanya bergantung pada sensor-sensor untuk menuju tujuan yang diinginkan. Pada quadcopter pemula biasanya digunakan metode melihat langsung untuk mengontrol posisi dan orientasi quadcopter. Pada quadcopter yang lebih canggih biasanya digunakan GLOBAL POSITIONING SYSTEM (GPS) untuk navigasi waypoint. Teknologi ini memungkinkan quadcopter untuk terbang secara otomatis ke titik yang diinginkan. Sistem ini juga dapat mengatur kecepatan, ketinggian, dan dimana quadcopter harus terbang (Omega, 2017).
Quadcopter yang dipilih merupakan Parrot AR.Drone. Quadcopter ini dipilih karena memiliki sifat open source yaitu perangkat lunak dari quadcopter ini dapat dimodifikasi dan dikembangkan sesuai kebutuhan pengguna.
Selain bersifat open source AR.Drone juga memiliki harga yang relatif terjangkau.
Quadcopter AR.Drone 2.0 memiliki dua buah sensor kamera. Kamera pertama letaknya berada di bagian depan quadcopter. Kamera kedua letaknya berada di bawah quadcopter dan menghadap ke bawah secara vertikal (Parrot, 2018). Kamera-kamera inilah yang nantinya akan digunakan untuk mendeteksi lingkungan ruang sekitar.
Penelitian ini merupakan implementasi dari pemetaan menggunakan LSD-SLAM pada quadcopter Parrot AR.Drone 2.0. Ketika quadcopter sedang berada di udara, quadcopter dapat melakukan berbagai pergerakan yang dapat di kontrol oleh pengguna. Pergerakan ini memungkinkan quadcopter untuk dapat bermanuver pada sebuah ruangan. Bersamaan dengan berbagai sensor, termasuk kamera- kamera yang tertanam pada quadcopter, sistem pergerakan yang dapat dikontrol ini juga yang menjadikan quadcopter cocok untuk dijadikan sebagai bahan penelitian untuk skripsi ini.
Dengan menggabungkan antara quadcopter dan algoritma LSD-SLAM diharapkan quadcopter dapat memetakan lingkungan tempat quadcopter saat ini berada.
METODOLOGI PENELITIAN
Gambar 1 menunjukkan alur tahapan yang dilakukan dalam penelitian ini. Penelitian dimulai dengan studi literatur sebagai dasar teori dan pendukung dari penelitian ini. Proses penelitian dilanjutkan dengan rekayasa kebutuhan untuk mengetahui komponen apa saja yang akan diperlukan oleh sistem. Selanjutnya
Fakultas Ilmu Komputer, Universitas Brawijaya
akan dilakukan perancangan dan implementasi sistem.
Gambar 1. Alur Metodologi Penelitian Perancangan dan implementasi dibagi menjadi perancangan sistem komunikasi, sistem navigasi, sistem kamera, sistem LSD-SLAM, dan sistem penampil hasil. Pada perancangan dan implementasi sistem komunikasi akan dijabarkan bagaimana sistem mampu melakukan koneksi dan pertukaran data antara komputer dan Ar.Drone. Perancangan dan implementasi sistem navigasi menjabarkan bagaimana Ar.Drone mampu dikontrol oleh komputer.
Perancangan dan implementasi sistem kamera menjelaskan bagaimana stream video dari kamera terintegrasi dari Ar.Drone dapat digunakan sebagai masukan library LSD- SLAM. Perancangan dan implementasi sistem LSD-SLAM menjelaskan bagaimana integrasi library LSD-SLAM dengan masukan Ar.Drone.
Perancangan dan implementasi sistem penampil hasil menjelaskan bagaimana hasil proses library LSD-SLAM akan ditampilkan pada layar komputer.
Algoritme LSD-SLAM terdiri dari tiga komponen utama yaitu tracking (pelacakan), depth map estimation (perkiraan kedalaman peta), dan map optimization (optimasi pemetaan). Komponen tracking berfungsi untuk melacak adanya gambar baru dari masukan kamera. Komponen tracking kemudian melakukan estimasi rigid body pose (bentuk figur fisik) berdasarkan keyframe saat ini, dengan frame sebelumnya sebagai inisiasi awal.
Komponen depth map estimation berfungsi untuk melacak frame yang akan memilih antara menggantikan keyframe saat ini atau
menyempurnakan frame sebelumnya.
Kedalaman diperoleh dengan menyaring pixel- pixel dari sebuah frame. Apabila kamera telah bergerak agak jauh, keyframe baru akan diinisiasi dengan memproyeksi titik saat ini menggunakan keyframe sebelumnya sebagai jalur pergerakan. Komponen map optimization berfungsi untuk memasukkan depth map yang telah dibuat ketika keyframe baru diproses ke dalam global map. Global map inilah yang nantinya akan ditampilkan pada penampil hasil (viewer).
Gambar 2. Alur proses library LSD-SLAM Pada Gambar 2 proses LSD-SLAM dimulai ketika sebuah frame gambar baru menggunakan metode pelacakan langsung (direct tracking) dari masukan diterima oleh library. Frame ini akan digunakan sebagai acuan keyframe saat ini.
Proses akan dilanjutkan ketika terjadi penerimaan frame gambar baru. Ketika frame baru diterima, proses akan membuat keyframe baru dan memasukkan data pemetaan kedalaman (depth map) ke frame baru. Setelah frame baru memiliki data kedalaman, estimasi kedalaman keyframe ditambahkan pada global map. Posisi keyframe saat ini akan diperkirakan menggunakan pose frame sebelumnya. Ketika kamera bergerak di luar jarak dari keyframe saat ini, proses dilanjutkan dengan pengecekan frame baru dari kamera. Proses ini akan kembali berulang dengan pemrosesan keyframe dan mengestimasi kedalaman dan menambahkannya pada global map. Dengan frame baru yang diterima akan dicari keyframe terdekat sebelumnya untuk dibuat jalur pergerakan pembuatan global map.
Gambar 3. Blok diagram sistem
Blok diagram pada Gambar 3 menunjukkan bahwa penelitian ini menggunakan dua perangkat. Perangkat pertama adalah Parrot Ar.Drone 2.0 sebagai masukan dan komputer GCS sebagai kontrol dan tempat proses LSD- SLAM ditampilkan. Media komunikasi yang digunakan untuk menghubungkan keduanya adalah Wi-Fi.
2.1. Sistem Komunikasi
Media komunikasi yang digunakan untuk komunikasi antara komputer dan Ar.Drone adalah Wi-Fi. Komunikasi menggunakan Wi-Fi menjadikan sistem akan terhubung secara nirkabel. Sebelum komunikasi dapat dilakukan terlebih dahulu sebuah file konfigurasi harus dibuat. Konfigurasi ini dilakukan agar alamat IP dan parameter yang digunakan dapat diinisiasi oleh Ar.Drone. Konfigurasi yang dilakukan dapat dilihat pada Tabel 1 di bawah:
Tabel 1. Konfigurasi koneksi
Variabel Nilai
IP drone 192.168.1.1
node Ardrone_autonomy
navdata_demo False
realtime_navdata True realtime_video True
looprate 30
IP drone digunakan sebagai alamat IP dari Ar.Drone. Node ardrone_autonomy digunakan sebagai driver dari Ar.Drone. Driver ini akan menerjemahkan perintah pengguna ke dalam bahasa yang dimengerti oleh Ar.Drone.
navdata_demo bernilai false karena penelitian ini menggunakan data real. Realtime_navdata bernilai true karena penelitian ini menggunakan data sensor asli. Realtime_video digunakan untuk mengaktifkan koneksi pertukaran stream kamera terintegrasi dari Ar.Drone. Looprate digunakan apabila realtime_navdata diset ke false untuk jeda pengiriman data.
Proses untuk mulai menghubungkan komputer dengan Ar.Drone dimulai dengan menjalankan perintah roslaunch. Perintah ini akan menjalankan konfigurasi di atas untuk menyambungkan komputer dan Ar.Drone.
Perintah dapat dilihat pada tabel dibawah:
Tabel 2. Perintah eksekusi koneksi
Perintah Fungsi
$ roslaunch drone_application real_drone.launch
Perintah digunakan untuk memulai koneksi dengan Ar.Drone
Pada Tabel 2, drone_application merupakan paket aplikasi yang telah dibuat.
Real_drone.launch merupakan nama file konfigurasi yang akan dijalankan.
2.2. Sistem Navigasi
Sistem navigasi digunakan untuk mengontrol pergerakan Ar.Drone. Pergerakan ini meliputi takeoff (lepas landas), land (mendarat), hover (diam di udara), bergerak maju, mundur, naik, turun, bergerak ke kiri, ke kanan, berputar searah jarum jam, dan berputar berlawanan jarum jam. Untuk mengontrol arah terbang Ar.Drone digunakan parameter pada Tabel 3 berikut:
Tabel 3. Parameter Pergerakan
Nilai Fungsi
- linear.x Bergerak mundur + linear.x Bergerak maju - linear.y Bergerak ke kanan + linear.y Bergerak ke kiri - linear.z Bergerak ke bawah + linear.z Bergerak ke atas - angular.z Berputar ke kanan + angular.z Berputar ke kiri
Parameter tersebut dimasukkan pada topic /cmd_vel. Pengiriman nilai ini menggunakan message geometry_msgs/Twist. Contoh perintah pergerakan ada pada Tabel 4 sebagai berikut:
Tabel 4. Contoh perintah pergerakan
Perintah Fungsi
$ rostopic pub -r 10 /cmd_vel
geometry_msgs/Twist '{linear: {x: 1.0, y: 0.0, z: 0.0}, angular: {x:
0.0,y: 0.0,z: 0.0}}'
Ar.Drone akan bergerak maju dari posisi semula
Untuk pergerakan lepas landas (takeoff) dan land (mendarat) perintah yang digunakan adalah mengirimkan message Empty pada node ardrone/takeoff atau ardrone/land. Ketika perintah ini dikirim, Ar.Drone akan mulai lepas landas atau mendarat tergantung pada node yang digunakan. Perintah mendarat tidak bisa digunakan ketika Ar.Drone berada di lantai, begitu juga perintah lepas landas tidak bisa digunakan ketika Ar.Drone berada di udara.
Contoh perintah untuk lepas landas atau takeoff ada pada Tabel 5 sebagai berikut:
Fakultas Ilmu Komputer, Universitas Brawijaya Tabel 5. Contoh perintah takeoff
Perintah Fungsi
$ rostopic pub -1 Ar.Drone/takeoff std_msgs/Empty
Perintah ini digunakan untuk memulai lepas landas
2.3. Sistem Kamera
Perancangan sistem kamera dilakukan agar kamera terintegrasi dari Ar.Drone dapat digunakan sebagai perangkat masukan untuk library LSD-SLAM. Sebelum kamera dapat digunakan, pada kamera terintegrasi harus dilakukan proses kalibrasi. Kalibrasi kamera bertujuan untuk membuat file konfigurasi kalibrasi kamera terintegrasi Ar.Drone agar dapat digunakan sebagai sumber masukan library LSD-SLAM. File kalibrasi yang akan dibuat menggunakan model kamera opencv.
Tabel 6. Perintah kalibrasi
Perintah Fungsi
$ rosrun camera_calibration camera_calibrator.py –size 8x6 – square 0.024
image:=/Ar.Drone/front/image_raw camera:=/Ar.Drone/front
Perintah digunakan untuk melakukan kalibrasi kamera
Ketika perintah kalibrasi Tabel 6 dijalankan maka aplikasi camera_calibration akan mulai menjalankan proses kalibrasi dari kamera terintegrasi Ar.Drone. Setelah proses selesai aplikasi akan menampilkan hasil kalibrasi pada jendela dan menghasilkan kode ost.yaml.
Tabel 7. Hasil kalibrasi Kode ost.yaml
# oST version 5.0 parameters [image]
width 640 height 360
[narrow_stereo]
camera matrix
566.427617 0.000000 330.086612 0.000000 568.856322 159.540712 0.000000 0.000000 1.000000 distortion
-0.560997 0.286563 0.010728 -0.003502 0.000000
rectification
1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 projection
446.264526 0.000000 330.291293 0.000000 0.000000 533.574341 158.692497 0.000000 0.000000 0.000000 1.000000 0.000000
Tabel 7 dijelaskan bahwa hasil sensor kamera yang didapat setelah dilakukan kalibrasi menggunakan checkerboard. Dari hasil di atas dapat diambil nilai berdasarkan pola di bawah.
Nilai ini akan dimasukkan ke dalam kode model kamera opencv. (OpenCV, 2020)
Camera matrix = [
fx 0 cx 0 fy cy
0 0 1
]
Distortion = (k1 k2 p1 p2 k3)
Tabel 8. Model kamera opencv Model kamera opencv
fx fy cx cy k1 k2 p1 p2 inputWidth inputHeight
"crop" / "full" / "none" / "e1 e2 e3 e4 0"
outputWidth outputHeight
Tabel 9. Berkas Konfigurasi Hasil kalibrasi
566.427617 568.856322 330.086612 159.540712 -0.560997 0.286563 0.010728 -0.003502 640 360
crop 576 320
Setelah nilai didapat, berkas konfigurasi Tabel 9 dapat dibuat menggunakan model kamera opencv seperti pada Tabel 8. Hasil ini akan digunakan sebagai berkas konfigurasi agar kamera terintegrasi Ar.Drone dapat digunakan sebagai masukan library LSD-SLAM.
2.4. Sistem LSD-SLAM
Sistem LSD-SLAM berfungsi untuk mengambil gambar dari stream video kamera dan mengubahnya menjadi cloudpoint.
Cloudpoint sendiri merupakan titik-titik kecil yang dapat menggambarkan kondisi dari sebuah lingkungan. Rangkaian titik-titik ini ketika terangkai akan menampilkan hasil yang dapat dilihat dan menyerupai bentuk dari benda pada sebuah lingkungan.
Tabel 10. Perintah live_slam Perintah eksekusi lsd_slam
$ rosrun lsd_slam_core live_slam
image:=/Ar.Drone/front/image_raw
_calib:=/home/lab/cameraconfig/Ar.Drone.cfg
Proses library LSD-SLAM dapat dijalankan menggunakan perintah Tabel 10. Perintah ini menggunakan parameter konfigurasi kamera yang telah dikalibrasi. Proses ini akan berlangsung terus menerus selama stream video dari kamera terintegrasi tidak terputus.
2.5. Sistem Penampil Hasil
Sistem penampil hasil merupakan aplikasi untuk menampilkan hasil proses dari LSD- SLAM. Aplikasi ini akan berjalan terus selama hasil dari proses LSD-SLAM ada.
Tabel 11. Perintah eksekusi penampil Perintah menjalankan penampil hasil
$ rosrun lsd_slam_viewer viewer
Gambar 4. Penampil hasil
Ketika perintah Tabel 11 dijalankan, jendela penampil pada Gambar 4 akan tampak. Jendela ini akan menampilkan hasil proses dari library LSD-SLAM secara terus menerus selama proses library LSD-SLAM tidak terjadi kesalahan.
Hasil pada penampil dapat diputar, digeser, diperbesar, dan diperkecil untuk memudahkan pengamatan.
PENGUJIAN DAN HASIL
Pengujian dilakukan untuk memeriksa bagaimana hasil kerja sistem.
3.1. Pengujian Komunikasi
Pengujian antarmuka ROS dengan Ar.Drone bertujuan untuk mengetahui apakah Ar.Drone dapat dihubungkan dengan komputer menggunakan library ROS.
Gambar 5. Koneksi berhasil
Gambar 6. Pertukaran data
Pada gambar Gambar 5 dan Gambar 6 dapat dilihat bahwa proses koneksi yang dilakukan berhasil. Dengan berhasilnya koneksi, pertukaran data antara komputer dan Ar.Drone dapat dilakukan.
3.2. Pengujian Sistem Kamera
Pengujian kamera dilakukan untuk dapat mengetahui apakah kamera terintegrasi Ar.Drone dapat digunakan dengan ROS.
Pengujian ini juga bertujuan untuk menampilkan hasil tangkapan kamera pada layar komputer.
Gambar 7. Sistem kamera 1
Fakultas Ilmu Komputer, Universitas Brawijaya Gambar 8. Sistem kamera 2
Gambar 7 dan Gambar 8 menunjukkan bahwa sistem dapat menerima stream video dari kamera terintegrasi Ar.Drone. Dengan berhasilnya penerimaan stream video ini maka kamera terintegrasi Ar.Drone dapat digunakan sebagai masukan library LSD-SLAM.
3.3. Pengujian Pergerakan
Tujuan pengujian pergerakan Ar.Drone dilakukan untuk mengetahui apakah Ar.Drone dapat dikontrol menggunakan ROS. Pengujian ini juga bertujuan untuk mengetahui bagaimana respons Ar.Drone ketika komputer mengirim perintah pergerakan ke Ar.Drone.
Gambar 9 dan Gambar 10 menunjukkan pergerakan Ar.Drone fisik berhasil dilakukan.
Gambar 9. Pergerakan Ar.Drone 1
Gambar 10. Pergerakan Ar.Drone 2
Gambar 11 dan Gambar 12 menunjukkan pergerakan pada simulasi gazebo berhasil dilakukan.
Gambar 11. Pergerakan simulasi 1
Gambar 12. Pergerakan simulasi 2 Tabel 12. Hasil pengujian pergerakan
Perintah Gerakan Hasil
Takeoff Ar.Drone akan mulai
lepas landas Berhasil Land Ar.Drone akan mulai
mendarat Berhasil
Maju
Ar.Drone akan bergerak maju dari posisi semula
Berhasil
Mundur
Ar.Drone akan bergerak mundur dari posisi semula
Berhasil
Ke kiri
Ar.Drone akan bergerak ke kiri dari posisi semula
Berhasil
Ke kanan
Ar.Drone akan bergerak ke kanan dari posisi semula
Berhasil
Naik
Ar.Drone akan bergerak naik dari posisi semula
Berhasil
Turun
Ar.Drone akan bergerak turun dari posisi semula
Berhasil Berputar
searah jarum jam
Ar.Drone akan berputar searah jarum jam dari posisi semula
Berhasil Berputar
berlawanan jarum jam
Ar.Drone akan berputar berlawanan jarum jam dari posisi semula
Berhasil
Diam di udara
Ar.Drone akan diam di
udara Berhasil
Berdasarkan hasil tabel Tabel 12, pengujian pergerakan Ar.Drone berhasil dilakukan.
Pengujian pada Ar.Drone fisik maupun pada simulasi Gazebo berhasil dilakukan dengan perintah yang sama.
3.4. Pengujian LSD-SLAM
Pengujian LSD-SLAM dimaksudkan untuk mengetahui apakah masukan dari stream video kamera terintegrasi Ar.Drone dapat digunakan pada library LSD-SLAM. Pengujian ini juga dilakukan untuk menampilkan hasil proses dari tangkapan stream video yang akan diproses oleh library LSD-SLAM seperti pada Gambar 13.
Gambar 14 dan Gambar 15 menunjukkan arah pergerakan Ar.Drone yang terlihat pada penampil. Gerakan dimulai dari tengah bawah, kemudian bergerak ke kiri, kemudian bergerak maju, kemudian ke kanan hingga pada kotak merah atas yang menunjukkan posisi terakhir Ar.Drone. Garis hijau merupakan jalur yang dilewati oleh Ar.Drone. Kotak biru merupakan arah kamera menghadap objek.
Gambar 13. Hasil LSD-SLAM
Gambar 14. Arah Pergerakan LSD-SLAM
Gambar 15. Arah pergerakan Ar.Drone di lab Kondisi pergerakan yang ditampilkan pada foto Gambar 15 dan penampil pada Gambar 14 tidak sama karena pada penampil point cloud atau titik-titik pada jendela terus diperbarui setiap penerimaan bingkai. Pada jendela penampil hasil peta point cloud juga dapat diputar sehingga sulit untuk menyesuaikan kondisi pemotretan ruang dengan penampil.
Meskipun demikian hasil yang didapatkan serta pergerakan yang terjadi adalah sama.
Gambar 16. Hasil LSD-SLAM pada simulasi Gambar 16 menunjukkan proses LSD- SLAM dan juga hasil yang ditampilkan pada penampil. Pengujian pada simulasi Gazebo ini sangat terpengaruh oleh lingkungan world yang digunakan, sehingga perbedaan material mesh pembangun world akan berpengaruh pada hasil.
3.5. Pengujian Validitas Pemetaan Posisi Pengujian validitas pemetaan posisi LSD- SLAM dimaksudkan untuk membandingkan apakah posisi benda-benda dalam ruangan sama dengan posisi yang ditampilkan pada penampil hasil.
Fakultas Ilmu Komputer, Universitas Brawijaya Gambar 17. Posisi keseluruhan
Gambar 17 menunjukkan posisi papan tulis, pintu, jendela, dan meja pada tampilan dari atas (top view) di penampil hasil LSD-SLAM.
Tabel 13. Validasi posisi jendela
Penampil Foto Objek Validasi
Jendela Valid
Pintu Valid
Meja Valid
Papan
tulis Valid
Tabel 13 menunjukkan posisi objek yang ditangkap pada bagian penampil hasil.
Tabel 14. Hasil validasi keseluruhan Hasil Penampil Objek Validasi
Ada Jendela Valid
Ada Pintu Valid
Ada Meja Valid
Ada Papan tulis Valid
Tabel 14 menunjukkan bahwa keseluruhan objek yang ditangkap oleh kamera terintegrasi Ar.Drone dapat ditampilkan pada penampil hasil setelah diproses oleh library LSD-SLAM.
Meskipun pada penampil hasil pada beberapa objek yang ditampilkan terlihat noise, namun semua objek dapat ditampilkan pada penampil hasil.
KESIMPULAN
Berdasarkan hasil pengujian yang dilakukan, pengujian pergerakan Ar.Drone dan pengujian pembacaan kamera sebagai masukan LSD- SLAM berhasil dilakukan. Pengujian juga berhasil menampilkan hasil proses yang dilakukan oleh library LSD-SLAM di komputer GCS. Keseluruhan hasil akhir menunjukkan bahwa library LSD-SLAM dapat diimplementasikan pada Ar.Drone dengan menggunakan kamera terintegrasi sebagai masukan dan komputer sebagai perangkat pemroses hasil.
Meskipun penelitian ini berhasil dilakukan namun tetap ada beberapa bagian yang dapat diperbaiki ke depannya. Hasil yang didapatkan menggunakan masukan kamera terintegrasi dari Ar.Drone menunjukkan beberapa bagian yang tidak terlalu tampak. Hal ini merupakan akibat dari noise karena ukuran pixel dari kamera Ar.Drone yang relatif kecil. Ketika Ar.Drone bergerak tiba-tiba atau bergerak terlalu cepat maka proses library LSD-SLAM akan terganggu dan mengakibatkan tracking loss. Ini mengakibatkan putusnya hasil yang akan ditampilkan pada penampil. Untuk penelitian selanjutnya dapat menggunakan sistem kamera yang lebih baik agar hasil yang didapatkan lebih baik.
DAFTAR PUSTAKA
Bailey, T. & Durrant-Whyte, H., 2006.
Simultaneous localization and mapping (SLAM): part II. Dalam: IEEE Robotics
& Automation Magazine. 13. s.l.:IEEE, pp. 108-117.
Buyval, A., Afanasyev, I. & Magid, E., 2017.
Comparative Analysis of ROS-based Monocular SLAM Methods for Indoor Navigation. Nice, France, Ninth International Conference on Machine Vision.
Durrant-Whyte, H. & Bailey, T., 2006.
Simultaneous localization and mapping:
part I. Dalam: IEEE Robotics &
Automation Magazine 13. s.l.:IEEE, pp.
99-110.
Engel, J. & Cremers, D., 2014. LSD-SLAM:
Large-Scale Direct Monocular SLAM.
[Online]
Available at:
https://vision.in.tum.de/research/vslam/l
sdslam
[Diakses 18 Januari 2019].
Engel, J., Schops, T. & Cremers, D., 2014. LSD- SLAM: Large-Scale Direct Monocular
SLAM. [Online]
Available at:
https://vision.in.tum.de/_media/spezial/
bib/engel14eccv.pdf [Diakses 18 Januari 2019].
Gazebo, 2020. GAZEBO. [Online]
Available at: http://gazebosim.org/
[Diakses 18 Desember 2020].
Hernadez-Martinez, E. et al., 2015. Trajectory Tracking of a Quadcopter UAV with Optimal Translational Control. Ciudad, IFAC.
Koenig, N. & Howard, A., 2004. Design and use paradigms for gazebo, an open-source multi-robot simulator. IEEE/RSj International Conference on Intelligent Robots and Systems, September, pp.
2149-2154.
Kudan, 2016. An Introduction to Simultaneous Localisation and Mapping. [Online]
Available at:
https://www.kudan.eu/kudan-news/an- introduction-to-slam/
[Diakses 18 Januari 2019].
Maxwell, R., 2013. Robotic Mapping:
Simultaneous Localization and Mapping
(SLAM). [Online]
Available at:
https://www.gislounge.com/robotic- mapping-simultaneous-localization-and- mapping-slam/
[Diakses 18 Januari 2019].
mikehammer, et al., 2014. ardrone_autonomy.
[Online]
Available at: https://ardrone- autonomy.readthedocs.io/en/latest/index .html
[Diakses 15 Desember 2020].
Mur-Artal, R. & D. Tardos, J., 2015.
Probabilistic Semi-Dense Mapping from Highly Accurate Feature-Based Monocular SLAM, Spain: Instituto de Investigacion en Ingenierıa de Aragon (I3A), Universidad de Zaragoza.
Omega, D., 2017. How GPS Drone Navigation
Works. [Online]
Available at:
http://www.droneomega.com/gps- drone-navigation-works/
[Diakses 7 September 2017].
OpenCV, 2020. Camera Calibration. [Online]
Available at:
https://docs.opencv.org/master/dc/dbb/t utorial_py_calibration.html
[Diakses 18 Desember 2020].
Parrot, 2018. PARROT AR.DRONE 2.0. [Online]
Available at:
https://www.parrot.com/global/drones/p arrot-ardrone-20-elite-edition#parrot- ardrone-20-elite-edition-details [Diakses 18 Januari 2019].
Romero, L. E., Pozo, D. F. & Rosales, J. A., 2014. Quadcopter stabilization by using PID controllers. Quito, IEEE.
ROS.org, 2020. Documentation. [Online]
Available at: http://wiki.ros.org/
[Diakses 18 Desember 2020].
Yap, M., Bonardi, A., Larsen, P. & Howell, A., 2016. LSD-SLAM About Large Scale Direct Monocular SLAM. [Online]
Available at:
https://www.doc.ic.ac.uk/~ab9515/lsdsl am.html
[Diakses 18 Januari 2019].