SKRIPSI
Disusun oleh:
Bambang Gunawan Tanjung
NIM: 185150300111051
PROGRAM STUDI TEKNIK KOMPUTER
JURUSAN TEKNIK INFORMATIKA
FAKULTAS ILMU KOMPUTER
UNIVERSITAS BRAWIJAYA
MALANG
2021
PERSETUJUAN
SKRIPSI
Disusun Oleh :
Bambang Gunawan Tanjung
NIM: 185150300111051
Penulis
bambanggunawan887@gmail.com
ABSTRAK
PERSETUJUAN..........................................................................................................
PERNYATAAN ORISINALITAS...................................................................................
PRAKATA...................................................................................................................
ABSTRAK.................................................................................................................
ABSTRACT..............................................................................................................
DAFTAR ISI...............................................................................................................
DAFTAR TABEL.......................................................................................................
DAFTAR GAMBAR...................................................................................................
DAFTAR LAMPIRAN..............................................................................................
BAB 1 PENDAHULUAN..............................................................................................
1.1 Latar Belakang........................................................................................
1.2 Rumusan Masalah..................................................................................
1.3 Tujuan.....................................................................................................
1.4 Manfaat..................................................................................................
1.5 Batasan Masalah.....................................................................................
1.6 Sistematika Pembahasan........................................................................
BAB 2 LANDASAN KEPUSTAKAAN............................................................................
2.1 Tinjauan Pustaka.....................................................................................
2.1.1 Autonomous Mobile Robot Berbasis Landmark
Menggunakan Particle Filter Dan Occupancy Grid Maps Untuk
Navigasi, Penentuan Posisi, Dan Pemetaan..........................................
2.1.2 2D LIDAR-Based SLAM and Path Planning for Indoor
Rescue Using Mobile Robots.................................................................
2.1.3 A Review of Visual-LIDAR Fusion based Simultaneous
Localization and Mapping.....................................................................
2.1.4 Navigasi Indoor Berbasis Peta Pada Robot Beroda
Dengan Platform Robot Operating System...........................................
2.1.5 Sistem Navigasi Mobile Robot Dalam Ruangan Berbasis
Autonomous Navigation.......................................................................
2.1.6 A Guide for 3D Mapping with Low-Cost Sensors Using
ROS........................................................................................................
2.2 Dasar Teori............................................................................................
2.2.1 Autonomous Mobile Robot (AMR)..............................................
2.2.2 Mekanisme Kemudi Robot Beroda..............................................
2.2.3 Positioning System.......................................................................
2.2.4 Simultaneous Localization And Mapping (SLAM)........................
2.2.5 Hector Simultaneous Localization and Mapping (Hector
SLAM)....................................................................................................
2.2.6 Extended Kalman Filter (EKF).......................................................
2.2.7 Path Planning...............................................................................
2.2.8 Algoritme Dijkstra........................................................................
2.2.9 Algoritma Dynamic Window Approach........................................
2.2.10 Navigasi Robot...........................................................................
2.2.11 Komponen Utama Robot Pengantar Barang.............................
2.2.12 Light Detection and Ranging (LIDAR).........................................
2.2.13 Odometry...................................................................................
2.2.14 Inertial Measurement Unit (IMU)..............................................
2.2.15 Firmware....................................................................................
2.2.16 Robot Operating System (ROS)..................................................
2.2.17 Transformer (tf)..........................................................................
2.2.18 Catkin workspace.......................................................................
2.2.19 ROS User Interface.....................................................................
2.2.20 Komunikasi Serial.......................................................................
2.2.21 Virtual Network Computing (VNC).............................................
2.2.22 Secure Shell Protocol (SSH)........................................................
2.2.23 Terminator (Terminal Command Application)...........................
2.2.24 Visual Studio Code (IDE).............................................................
2.2.25 PlatformIO (Visual Studio Code Extension)................................
2.2.26 Hoverboard Firmware................................................................
2.2.27 STM32Cube Programmer..........................................................
2.2.28 Metode Statistik.........................................................................
BAB 3 METODOLOGI PENELITIAN..........................................................................
3.1 Tipe Penelitian......................................................................................
3.2 Strategi dan Rencana Penelitian...........................................................
3.3 Metode Penelitian................................................................................
3.4 Subjek Penelitian..................................................................................
3.5 Lokasi Penelitian...................................................................................
3.6 Teknik Pengumpulan Data....................................................................
3.7 Teknik Analisis Data..............................................................................
3.8 Peralatan Pendukung............................................................................
BAB 4 Rekayasa Kebutuhan...................................................................................
4.1 Gambaran Umum Sistem.....................................................................
4.2 Analisis Kebutuhan Sistem....................................................................
4.2.1 Kebutuhan Fungsional.................................................................
4.2.2 Kebutuhan Non-Fungsional.........................................................
BAB 5 Perancangan dan implementasi..................................................................
5.1 Perancangan Sistem.............................................................................
5.1.1 Perancangan Skematis Prototype Sistem....................................
5.1.2 Perancangan Perangkat Keras Sistem..........................................
5.1.3 Perancangan Perangkat Lunak.....................................................
5.2 Implementasi Sistem..........................................................................
5.2.1 Implementasi Perangkat Keras..................................................
5.2.2 Implementasi Perangkat Lunak.................................................
BAB 6 Pengujian...................................................................................................
6.1 Metode Pengujian..............................................................................
6.2 Pengujian Fungsional..........................................................................
6.2.1 Pengujian Fungsional Mainboard Robot...................................
6.3 Pengujian Kinerja................................................................................
6.3.1 Pengujian Delay Pengiriman......................................................
BAB 7 Penutup.....................................................................................................
7.1 Kesimpulan.........................................................................................
7.2 Saran...................................................................................................
DAFTAR REFERENSI..............................................................................................
LAMPIRAN A PERSYARATAN FISIK DAN TATA LETAK...........................................
LAMPIRAN B PERSYARATAN FISIK DAN TATA LETAK...........................................
LAMPIRAN C PERSYARATAN FISIK DAN TATA LETAK...........................................
LAMPIRAN D PERSYARATAN FISIK DAN TATA LETAK...........................................
LAMPIRAN E PERSYARATAN FISIK DAN TATA LETAK...........................................
DAFTAR TABEL
20
terintegrasi secara online atau minimal dapat terhubung secara wireless dengan
perangkat komputer server, secara konsep sistem ini disebut juga dengan
Internet of Things atau disingkat IoT.
Dikutip dari website pembelajaran pemrograman, dicoding.com, (Setiawan,
2021) Internet of things merupakan sebuah konsep di mana suatu benda atau
objek ditanamkan teknologi-teknologi seperti sensor dan software dengan tujuan
untuk berkomunikasi, mengendalikan, menghubungkan, dan bertukar data
melalui perangkat lain selama masih terhubung ke internet. Dari hipotesis ini
penulis berupaya melakukan penelitian dan mencari bukti empiris dalam
menciptakan robot yang mampu menggantikan tugas konvensional manusia
membawa barang dari satu titik ke titik lain dengan sistem yang mampu
mengenali lingkungan sekitarnya serta terintegrasi dengan internet, robot ini
memiliki tugas utama untuk melakukan sortir barang. Dengan menggunakan
robot ini, ekspedisi dapat meningkatkan efisiensi kerja dan mengurangi biaya
produksi dalam proses distribusi paket kiriman dari titik penyimpan satu ke
tempat lain atau bahkan dari gudang satu ke gudang lainnya karena semua
proses sudah terotomatisasi dan tidak memerlukan tenaga dorong manusia. Jika
proses pergudangan dikerjakan oleh robot-robot secara otomatis dan saling
terintegrasi, maka proses distribusi akan semakin cepat dan manusia hanya perlu
mengawasi prosesnya saja. Ketika robot manipulator lengan dan robot beroda
otonom bekerja sama maka keseluruhan proses pergudangan ekspedisi sudah
mampu terpenuhi. Sehingga dengan kondisi ini pihak ekspedisi bisa berfokus
pada manajemen alur logistik dan penjadwalan. Dengan robot yang efisien pula,
diharapkan kepuasan konsumen akan meningkat dan volume pengiriman juga
ikut meningkat. Dalam penelitian ini, penulis akan berfokus pada robot bergerak
otonom dengan 2 roda sebagai penggeraknya. Robot ini harus memiliki
kemampuan untuk mengangkat barang, bergerak secara otomatis dan mampu
menghindari halangan yang ada di sekitarnya.
Robot bergerak otonom adalah salah satu jenis robot yang digunakan dalam
operasi gudang. Robot otonom bertugas layaknya pekerja pembawa hasil sortir
barang yang memindahkan dari gudang penyimpanan menuju gudang distribusi
atau sebaliknya. Pemanfaatan robot bergerak otonom dapat dilihat secara masif
di pabrik-pabrik atau gudang penyimpanan untuk dipekerjakan mengantar atau
memindahkan barang dari satu tempat ke tempat lainnya. Hal ini dikarenakan
robot mampu melakukan pekerjaan yang repetitif, cenderung berat dan lebih
efisien dibandingkan manusia. Jenis gudang yang cocok dengan robot ini adalah
gudang operasi barang biasa karena robot ini tidak memerlukan instalasi mesin
dan kebutuhan teknologi yang fleksibel. Robot bergerak otonom menggunakan
jalur yang dilalui oleh manusia dan bergerak berdampingan dengan manusia.
Robot bergerak otonom memungkinkan pendekatan yang fleksibel dan terukur
tanpa dibatasi oleh tata letak fasilitas yang ada. Robot ini mengoptimalkan
kapasitas dan produktivitas tenaga kerja yang ada, terutama selama peningkatan
frekuensi jumlah paket yang ada. Sebelum membahas lebih lanjut mengenai
robot bergerak otonom, penulis akan menjelaskan dengan singkat pengertian
robot ini.
21
Dikutip dari situs web conveyco.com dijelaskan bahwa autonomous mobile
robots (AMR) atau robot bergerak otonom adalah jenis robot yang dapat
memahami dan bergerak di sekitar lingkungannya tanpa diawasi langsung oleh
operator atau dibatasi pada jalur yang tetap dan telah ditentukan sebelumnya.
Jenis robot ini umumnya berbentuk seperti mobil dengan permukaan datar di
bagian belakang atau atap yang digunakan sebagai pijakan barang dan memiliki 2
hingga 4 buah roda atau bahkan lebih. Robot bergerak otonom memiliki
serangkaian sensor canggih yang memungkinkannya memahami dan
menafsirkan lingkungan yang membantunya melakukan tugas dengan cara dan
jalur yang paling efisien (Romaine, 2020). Sebelum menentukan jalur yang paling
efisien dan memulai navigasi, robot harus mampu melakukan pemetaan area
kerja terlebih dahulu sejauh batas area cakupan di dalam ruangan gudang. Untuk
melakukan pemetaan diperlukan lokasi robot secara akurat selama proses
pemetaan yang dilakukan secara simultan. Ketika peta sudah jadi maka robot
baru dapat melakukan penentuan jalur dan akhirnya melakukan navigasi. Proses
berurut ini merupakan metode yang dilakukan untuk permasalahan sistem robot
di dalam ruangan (Indoor Positioning System) yang memerlukan proses simultan
dalam waktu yang singkat, metode komputasi ini disebut dengan Simultaneous
Localization and Mapping (SLAM) (Galov dan Moschevikin, 2014). Robot
bergerak otonom ini nantinya akan melakukan pengiriman barang dari satu
tempat ke tempat lainnya secara mandiri dan mampu menjaga diri walaupun
banyak halangan bergerak seperti manusia di sekitarnya. Dengan robot bergerak
otonom ini diharapkan dapat meningkatkan distribusi barang atau paket di
dalam gudang penyimpanan sehingga bisa mempercepat proses pengiriman
hingga sampai ke pelanggan.
Ada beberapa penelitian yang dilakukan oleh peneliti sebelumnya dalam
membangun sistem robot bergerak otonom menggunakan metode SLAM,
penelitian yang pertama dilakukan oleh Eko Budi Utomo (Utomo, 2015)
menggunakan gabungan beberapa sensor (ultrasonik, PSD, encoder) dan 4 buah
roda yang dirancang menjadi robot beroda dengan jenis HBE Robocar. Algoritme
yang digunakan adalah Hector SLAM dan A Star dinamis atau A* dinamis.
Penggunaan Algoritme Hector SLAM digunakan untuk lokalisasi sekaligus
pembuatan peta area sekitar di dalam ruangan menggunakan data yang
diberikan dari sensor dan memprosesnya menggunakan Robot Operating System
(ROS) dan hasilnya akan di visualisasikan ke dalam aplikasi Rviz menjadi sebuah
grid-grid penyusun peta. Sensor yang berperan dalam proses pemindaian adalah
sensor ultrasonik dan PSD, sedangkan sensor akselerometer berfungsi sebagai
pembaca nilai akselerasi robot. Kemudian penggunaan algoritme A* dinamis
digunakan untuk path planning atau perencanaan jalur navigasi. Motion atau
gerakan robot akan dilakukan jika perencanaan jalur sudah selesai, robot akan
diarahkan pada jalur yang telah dibuat dengan mengirimkan sinyal PWM ke
motor driver untuk menggerakkan motor DC. Kekurangan dari penelitian ini ada
pada hasil pemetaan yang tidak begitu baik, dikarenakan dari hasil mapping
menunjukkan cell occupied (sel berwarna putih) tidak berada di tepi peta dan
waktu komputasi yang dibutuhkan sangat lama. Hal ini disebabkan karena sensor
22
ultrasonik hanya berada di satu sudut yaitu bagian depan robot sedangkan sisi
lainnya tidak ada. Kemudian jarak dari sensor ultrasonik yang menyebar dan
pendek membuat hasil peta kurang baik, sehingga dibutuhkan sensor yang dapat
melakukan pemindaian berputar seluas 360 derajat dengan jarak pembacaan
sejauh 1 meter hingga 6 meter dengan output yang sudah terfilter dengan baik.
Penelitian kedua dilakukan oleh David Portugal, Andre Araujo dan Micael S.
Couceiro (Portugal, Araújo dan Couceiro, 2020) mendeskripsikan mengenai
penggunaan sensor seperti RPLIDAR A2, Kinect V2 dan IMU untuk menciptakan
pemetaan 3D menggunakan robot operating system (ROS) menggunakan metode
Hector SLAM dan RTAB Map. Di dalam penelitian ini peneliti juga menjelaskan
dengan detail proses perancangan perangkat lunak dan di aplikasikan
menggunakan ROS beserta semua library yang digunakan untuk membangun
peta dan navigasi. Kesimpulan dari penelitian ini adalah bahwasanya penggunaan
RPLIDAR dan sensor Kinect mampu menciptakan peta 3 dimensi dengan hasil
yang sangat baik. Hal ini dikarenakan penggunaan algoritme Hector SLAM dalam
melakukan pemetaan secara simultan. Kekurangan dari penelitian ini adalah
tidak adanya proses navigasi lanjutan setelah peta 3D sudah terbentuk.
Penelitian ini tidak melakukan perencanaan jalur atau path planning berdasarkan
peta 3D yang sudah dibuat. Peneliti hanya berfokus pada pembuatan peta 3D
map, sehingga tidak memanfaatkan lebih lanjut hasil pemetaan tersebut menjadi
navigasi robot.
Untuk itu dari kedua permasalahan peneliti tersebut, penulis mengusulkan
mengembangkan penelitian menggunakan metode dan algoritme perencana
global yang sama, dengan penggunaan jenis robot dan sensor yang berbeda dan
perubahan nilai parameter pada global path planning. Robot yang dirancang
pada penelitian ini merupakan robot dengan berukuran besar yang mampu
memenuhi lingkup dan pengaplikasian secara riil pada gudang penyimpanan.
Berbeda dengan penelitian sebelumnya yang menggunakan platform robot
sudah jadi, pada penelitian ini penulis merakit sendiri robot menggunakan
komponen hoverboard. Sedangkan untuk sensornya menggunakan sensor
RPLIDAR, IMU, dan Odometer sebagai input datanya. Sensor RPLIDAR dipilih
karena kemampuannya yang mampu melakukan pemindaian sejauh 0.5 meter
hingga 12 meter dengan area pemindaian seluas 360 derajat. Kemudian sensor
IMU dan Odometer dipilih karena kemampuannya dalam pembacaan akselerasi
gerak robot. Penelitian bertujuan untuk mengembangkan purwarupa menjadi
robot yang layak untuk digunakan secara langsung sesuai kondisi gudang
penyimpanan. Dalam penelitian ini peneliti berhipotesis bahwa algoritme Hector
SLAM dan Dijkstra cocok digunakan untuk proses pemetaan dan navigasi pada
jenis robot yang digunakan, sehingga keduanya digunakan kembali pada
penelitian ini. Metode dan algoritme ini akan diimplementasikan pada unit
pemrosesan robot yaitu Nvidia Jetson Nano dan motherboard hoverboard. Hasil
pembacaan sensor akan dikirimkan ke Jetson Nano untuk diproses menjadi
sebuah peta menggunakan algoritme Hector SLAM. Untuk menutupi kekurangan
pada penelitian kedua, dipastikan pada penelitian ini peneliti melengkapkan fitur
yang seharusnya ada pada robot bergerak otonom yaitu proses navigasi robot.
23
Untuk itu dibutuhkan sebuah algoritme yang dapat melakukan path planning
atau perencanaan jalur secara global, yaitu dengan algoritme Dijkstra. Algoritme
Dijkstra akan bertanggung jawab pada perencanaan jalur dan hasilnya berupa
command atau perintah yang nantinya dikirimkan ke motherboard hoverboard
yang sudah dilakukan proses flash, sehingga nantinya akan memutar motor
BLDC. Algoritme ini mampu melakukan kalkulasi ulang dan menciptakan
perencanaan global dengan alur proses Dijkstra. Dengan improvisasi dan
penambahan fitur ini, penulis sangat yakin bahwa hipotesis yang dijelaskan
sebelumnya akan mampu terjawab dan mampu menyelesaikan permasalahan
pada studi kasus ini.
A.3 Tujuan
Tujuan dari adanya penelitian ini adalah sebagai berikut:
1. Menguji hasil akurasi dari pembacaan sensor RPLIDAR, IMU dan
Odometer.
2. Menguji hasil akurasi dan mengetahui waktu komputasi dari algoritme
Hector SLAM dalam membuat peta.
3. Menguji hasil akurasi dan waktu komputasi perencanaan jalur robot
menggunakan algoritme Dijkstra terhadap gerak navigasi robot.
4. Menguji hasil akurasi navigasi keseluruhan sistem robot pada saat ada
atau tidak adanya halangan baik bergerak ataupun diam dalam mencapai
koordinat tertentu ketika sedang membawa barang.
5. Menjawab hipotesis bahwa robot bergerak otonom mampu
menggantikan peran manusia membawa barang dengan lebih baik
24
A.4 Manfaat
Pada penelitian ini manfaat yang diharapkan bisa menjadi solusi efisien
dalam proses pendistribusian barang di dalam gudang penyimpanan ekspedisi,
sehingga proses logistik pada sistem ekspedisi pengiriman paket menjadi cepat
dan terotomatisasi. Purwarupa robot bergerak otonom ini juga bisa menjadi
referensi pengembang robot selanjutnya dalam pembuatan robot secara masif
karena biaya pembuatan robot yang cukup terjangkau. Selain itu penelitian ini
juga diharapkan bermanfaat bagi akademik di lingkungan Universitas Brawijaya
sebagai referensi agar penggunaan middleware robot operating system (ROS),
sehingga mampu meningkatkan pengembangan robot mendekati
pengembangan perangkat lunak yang dilakukan di Industri.
25
A.6 Sistematika Pembahasan
Tugas akhir skripsi ini terbagi atas tujuh bagian utama dengan penjabaran
sebagaimana berikut:
1. BAB 1: Pendahuluan
Bab ini berisi penjelasan mengenai beberapa hal yang memberitahukan
hal-hal mendasar dari sebuah penelitian, seperti latar belakang, rumusan
masalah, tujuan, manfaat, batasan masalah, dan sistematika
pembahasan.
2. BAB 2: Landasan Kepustakaan
Bab ini membahas landasan teori yang akan digunakan dalam penelitian
ini yang memiliki keterkaitan dengan pemetaan, navigasi, sensor yang
digunakan dan penjelasan beberapa algoritme yang digunakan serta
penjelasan penggunaan middle ware Robot Operating System (ROS)
beserta library/framework yang digunakan sebagai penunjang dalam
proses penelitian, tentunya tidak keluar dari batasan masalah yang sudah
ditetapkan.
3. BAB 3: Metodologi
Bab ini menjelaskan tahapan apa saja yang perlu dilakukan oleh peneliti
untuk menyelesaikan permasalahan yang dibahas dalam penelitian. Bab
ini juga memuat informasi tipe penelitian apa yang diambil oleh penulis
dan juga pembahasan mengenai strategi dari penelitian.
4. BAB 4: Rekayasa Kebutuhan Sistem
Bab ini membahas penguraian kebutuhan pokok baik fungsional maupun
non fungsional mengenai mekanisme dari perancangan perangkat keras
dan perangkat lunak yang akan digunakan dalam penelitian ini.
5. BAB 5: Perancangan dan Implementasi
Bab ini berisi penjelasan mengenai proses perancangan pada sistem dan
cara pengoperasiannya sebagai jawaban dari permasalahan dan rekayasa
kebutuhan yang sudah didefinisikan sebelumnya.
6. Pengujian dan Analisis
Bab ini membahas percobaan dari hasil perancangan dan implementasi
mengenai data dari keluaran sistem dengan bentuk pengujian yang
berbeda-beda dan melakukan analisa data dengan parameter yang
berbeda untuk bisa membandingkan tingkat akurasi dan keberhasilan
sistem.
7. Penutup
Bab ini berisi tentang kesimpulan yang ditarik dari hasil dari pengujian
dan analisis yang dilakukan sebelumnya dari sisi perancangan,
26
implementasi, dan pengujian sehingga mampu dijadikan acuan dalam
pengembangan penelitian sejenis yang terangkum dalam saran.
27
BAB B LANDASAN KEPUSTAKAAN
28
menggunakan menggunakan
Dynamic A* global planning
dengan Dijkstra
dan local
planning dengan
Dynamic
Windows
Approach (DWA)
2 Zhang, dkk. Salah satu Pengujian Pengujian
2020. 2D LIDAR- algoritme berfokus pada berfokus pada hal
Based SLAM and yang mapping saja yang lebih luas
Path Planning digunakan seperti seperti pengujian
for Indoor sebagai perbandingan semua sensor
Rescue Using perbandingan algoritme yang digunakan
Mobile Robots pada mapping hingga pemetaan,
penelitian menggunakan navigasi dan
sama, yakni GMapping, lokalisasi.
Hector SLAM Hector SLAM, dan
Cartographer
untuk mencari
hasil pemetaan
yang optimal
Menggunakan Menggunakan Menggunakan
platform perangkat perangkat Jetson
perangkat personal Nano
lunak yang komputer
sama, yakni notebook intel i5
ROS
3 Debeunne dan Penelitian Menggunakan Menggunakan
Vivet.2020. A menggunakan sensor kamera sensor RPLIDAR
Review of konsep dan dan teknik fusion untuk
Visual-LIDAR metode yang mendapatkan ke
Fusion based sama yakni, jarak dari benda
Simultaneous Pemetaan, sekitar
Localization and lokalisasi dan
Mapping navigasi
4 Putra, dkk.2020. Penelitian Pengontrol utama Menggunakan
Navigasi Indoor menggunakan robot adalah Jetson Nano dan
Berbasis Peta metode ODROID-XU4 dan Motor Driver
Pada Robot pemetaan robot dikontrol Hoverboard
Beroda Dengan yang sama, dengan 4 buah sebagai perangkat
Platform Robot yakni Hector roda sebagai keras utamanya
Operating SLAM penggeraknya serta
System menggunakan
29
jenis robot
differential drive
pada kemudinya,
yakni hanya
menggunakan 2
buah roda
sebagai
penggeraknya
5 Portugal, dkk. Penelitian ini Hanya melakukan Melakukan proses
2020. A Guide menggunakan proses pemetaan, path planning dan
for 3D Mapping sensor dan tidak melakukan memanfaatkan
with Low-Cost metode yang path planning dan peta yang sudah
Sensors Using sama, yakni tidak dibuat sehingga
ROS RPLIDAR dan memanfaatkan terjadi proses
Hector SLAM peta yang sudah navigasi
dibuat sehingga
tidak adanya
proses navigasi
Peta Peta
divisualisasikan divisualisasikan
dalam bentuk 3 dalam bentuk 2
dimensi dimensi
30
B.1.2 2D LIDAR-Based SLAM and Path Planning for Indoor Rescue Using
Mobile Robots
Penelitian yang dilakukan oleh Xuexi Zhang, dkk., penulis
mengimplementasikan 4 algoritme untuk pemetaan yakni GMapping, Hector-
SLAM, Cartografer dan RGB-D. Penelitian ini membahas mengenai pemetaan dan
navigasi akan tetapi yang lebih terlihat dengan detail adalah proses penggunaan
algoritme untuk proses Mapping. Dari pengujian yang dilakukan didapatkan
kesimpulan bahwa algoritme GMapping, Hector-SLAM dan Cartographer
memiliki performa yang baik di dalam ruangan. Sedangkan RGB-D sangat buruk
karena tidak bisa mendeteksi pada kondisi pencahayaan yang redup. Kemudian
pada kompetisi RoboCup yang di ikuti peneliti di China didapatkan data bahwa
GMapping dan Cartographer memiliki potensi yang sangat baik dalam melakukan
pemetaan. Terutama hasil peta yang dibuat dengan Cartographer menghasilkan
peta yang paling akurat dengan bentuk bangunan aslinya (Zhang, dkk., 2020).
B.1.4 Navigasi Indoor Berbasis Peta Pada Robot Beroda Dengan Platform
Robot Operating System
Penelitian yang dilakukan oleh Tara Anggada Putra, dkk. (Putra, Muliady dan
Setiadikarunia, 2020) yang mengimplementasikan sistem navigasi indoor
berbasis peta pada robot beroda dengan platform Robot Operating System (ROS)
menggunakan algoritme Hector Mapping untuk pemetaan. Hasilnya adalah robot
berhasil melakukan pemetaan lingkungan indoor dengan eror rata-rata 0.174
meter dan berhasil melakukan lokalisasi dengan eror rata-rata 0.05 meter pada
koordinat x, 0.028 meter pada koordinat y, dan 1.506° pada sudut orientasi. Path
planner memiliki tingkat keberhasilan sebesar 62.5% dalam menghasilkan jalur
31
yang dapat dilewati robot dan tingkat keberhasilan 75% dalam mengikut
jalurnya. Robot pada penelitian ini memiliki tingkat eror rata-rata 0.046 meter
dalam bergerak menuju koordinat x target 0.072 meter dalam bergerak menuju
koordinat y target, dan 5.163° dalam berputar menuju sudut orientasi target.
Kesimpulan yang didapatkan pada jurnal ini adalah bahwa pemetaan
menggunakan Hector SLAM, lokalisasi data fusion menggunakan Extended
Kalman Filter (EKF), path planning dengan Field Dynamic A-Star dan Trajectory
tracking dengan pengontrol on-off berhasil di implementasikan dengan ROS.
Hasil yang didapat berupa kesimpulan bahwa kecepatan robot berpengaruh
terhadap hasil pemetaan. Lokalisasi Wheel Odometer berhasil menentukan posisi
robot dengan tingkat kesalahan kurang dari 0.05 meter. Untuk navigasi peneliti
sebelumnya menyarankan untuk menggunakan local Path Planner agar robot
dapat beroperasi pada lingkungan dinamis serta menggunakan PID untuk
meningkatkan performa robot.
32
peta dan navigasi. Kesimpulan dari penelitian ini adalah bahwasanya penggunaan
RPLIDAR dan sensor Kinect mampu menciptakan peta 3 dimensi dengan hasil
yang sangat baik. Hal ini dikarenakan penggunaan algoritme Hector SLAM dalam
melakukan pemetaan secara simultan (Saat, dkk., 2019).
Berdasarkan kelima tinjauan pustaka di atas, dapat disimpulkan bahwa
permasalahan komputasi pada robot bergerak otonom terdiri dari 3 proses
utama, yaitu lokalisasi, pemetaan dan navigasi (Utomo, 2015). Proses pemetaan
menjadi satu dengan lokalisasi dan algoritme yang paling tepat adalah algoritme
Hector SLAM (Kohlbrecher, dkk., 2014). Selain itu pada penelitian oleh Tara
Anggada Putra, dkk. dijelaskan bahwa sensor IMU dan Odometer akan
menghasilkan nilai lokalisasi dengan kesalahan yang rendah dengan bantuan
algoritme fusion sensor yaitu Extended Kalman Filter, maka dari itu berdasarkan
pertimbangan hasil penelitian tersebut maka penulis akan menerapkan metode
yang sama untuk mendapatkan nilai lokalisasi yang konsisten dan sedikit
kesalahan. Kemudian dalam pengimplementasiannya robot yang digunakan pada
setiap referensi penelitian tidak dirancang khusus untuk menjalani tugas
tertentu. Pada penelitian tersebut hanya berfokus pada metode komputasi yang
digunakan sehingga tidak memfokuskan untuk membuat robot yang bekerja
secara riil. Maka dari itu dengan penelitian ini, penulis akan melengkapi
kekurangan dari penelitian sebelumnya. Data-data dari penelitian sebelumnya
akan dijadikan sebagai metode pembanding dari apa yang penulis temukan
dalam penelitian. Penulis akan menggunakan nilai parameter terbaik yang bisa
digunakan dan tetap memperhatikan akurasi dan waktu komputasi serta
penggunaan daya CPU. Dengan demikian, penelitian ini bertujuan untuk
membuat purwarupa robot riil sesuai dengan kebutuhan yang perlukan pada
distribusi gudang dibidang ekspedisi.
33
Gambar 2.1 Ilustrasi Autonomous Mobile Robot
Sumber : (www.panasonic.com, 2020)
Autonomous robot atau robot otonom merupakan robot yang mampu
melakukan perilaku atau tugas dengan sistem otonomi tingkat tinggi (tanpa
dipengaruhi input eksternal) dan sistem kontrol diri yang tinggi (Heiserman,
2021). Sedangkan mobile robot atau robot bergerak merupakan robot yang
mampu bergerak di sekitarnya (Hu, Bhowmick dan Lanzon, 2021). Jadi secara
garis besar autonomous mobile robot (AMR) adalah jenis robot yang dapat
memahami dan bergerak di sekitar lingkungannya tanpa diawasi langsung oleh
operator atau dibatasi pada jalur yang tetap dan telah ditentukan sebelumnya,
pengertian ini juga ditulis oleh website resmi www.intel.com (Intel, 2020).
Dikatakan robot bergerak karena mempunyai aktuator berupa roda untuk
menggerakkan keseluruhan badan robot tersebut, sehingga robot tersebut dapat
melakukan perpindahan posisi dari satu titik ke titik yang lain. Robot bergerak
biasanya dianggap sebagai sub bidang robotika dan rekayasa informasi.
Robot bergerak memiliki kemampuan untuk bergerak di lingkungan mereka
dan tidak terpaku pada satu lokasi fisik. Jenis robot ini umumnya berbentuk
seperti mobil dengan permukaan datar di bagian belakang atau atap yang
digunakan sebagai pijakan barang dan memiliki 2 hingga 4 buah roda atau
bahkan lebih. Robot bergerak otonom memiliki serangkaian sensor canggih yang
memungkinkannya memahami dan menafsirkan lingkungan yang membantunya
melakukan tugas dengan cara dan jalur yang paling efisien (Romaine, 2020).
Sebagai perbandingan dengan robot industri, robot bergerak dapat
mengandalkan perangkat pemandu yang memungkinkan untuk melakukan
perjalanan dengan rute navigasi yang telah ditentukan sebelumnya dalam ruang
yang relatif terkendali. Robot bergerak dapat digunakan pada berbagai sektor,
akan tetapi secara masif sektor yang lebih sering menggunakan tenaga robot ini
adalah sektor yang membutuhkan pengangkutan barang dalam jumlah banyak,
misalnya robot bergerak otonom pada bidang pergudangan ekspedisi yang
berhubungan dengan logistik, distribusi ataupun penyortiran paket kiriman atau
dibidang industri untuk proses pengangkutan bahan mentah atau muatan
lainnya di dalam gudang (Erlangga, dkk., 2019).
34
B.2.1.1 Autonomous mobile robot dibidang pergudangan
35
B.2.1.2 Autonomous mobile robot dibidang industri
36
B.2.2.1 Ackerman Steering Robot
37
Gambar 2.5 Diagram Differential Drive
Pada penelitian ini, penulis akan menggunakan mekanisme kemudi
Differential Drive yang memiliki total roda 3 buah dengan konfigurasi roda
penggerak berada di bagian belakang dan roda caster berada di depan.
Konfigurasi ini dilakukan setelah melihat hasil penelitian yang dilakukan oleh
Carlos Delgado-Mata, dkk. (Delgado-Mata, Velázquez dan Gutiérrez, 2012)
tentang penelitiannya yang menggunakan konfigurasi ini. Dalam jurnalnya beliau
menjelaskan mengenai model matematikanya yang mana konfigurasi ini
menghasilkan kesimpulan bahwa ketika kedua roda di input kan tegangan yang
sama, maka kedua roda penggerak berputar dengan kecepatan sudut dan arah
yang sama, yang menyebabkan gerakan translasi (Delgado-Mata, Velázquez dan
Gutiérrez, 2012). Jika satu tegangan disetel ke nol, salah satu roda berputar
sementara yang lain tetap tidak bergerak, maka robot menggambarkan sebuah
lingkaran yang berpusat pada roda yang tidak bergerak. Akan tetapi jika kedua
tegangan sama besarnya tetapi berlawanan arah, roda berputar dengan
kecepatan yang sama tetapi berlawanan arah yang menyebabkan rotasi di
sekitar pusat sumbu yang menghubungkan kedua roda. Hal ini disimpulkan
berdasarkan mekanisme matematis dari differential drive yang terdapat pada
gambar Ilustrasi 2.6 mengenai differential drive robot dan parameternya.
38
Jika mengikuti konfigurasi di atas, maka ICC dapat dituliskan sebagai berikut:
ICC=[ x−Rsin (θ), y + Rcos(θ)] (2.1)
Saat vl ≠ v r , lintasan robot juga akan berubah (dengan kata lain mengubah
arah gerak) Oleh karena perubahan rotasi 𝜔 di ICC harus sama antara kedua
roda, persamaan (2.2) dan (2.3) berlaku (Dudek, 2010)
( L2 )=v r
ω R+ (2.2)
ω ( R− )=v l
L
(2.3)
2
Jika Persamaan (2.2) dan (2.3) digabungkan dengan persamaan v=ω R maka
R=( L2 vrvr−v
+vl
l)
(2.4)
ω=(
l )
vr−vl
(2.5)
40
B.2.3.3 Local positioning system (LPS)
Local Positioning System (LPS) adalah teknik yang digunakan untuk
mendapatkan posisi orang atau benda di dalam suatu bangunan yang tercakup
oleh jaringan area lokal. Penggunaan LPS telah menjadi suatu kebutuhan yang
nyata untuk itu berbagai teknologi telah dipertimbangkan untuk memperkirakan
posisi pengguna dengan akurasi yang baik. Berdasarkan Hasan pada
penelitiannya (Hasan, dkk., 2018) ada banyak jenis teknologi di LPS seperti
inframerah (IR), identifikasi frekuensi radio (RFID), Bluetooth, Wi-Fi, sistem
ultrasound dan sistem berbasis visi. Dalam penelitian ini metode local positioning
juga digunakan, misalnya untuk mengetahui objek yang bergerak di sekitar
robot. Dengan menggunakan data yang berasal dari laser lidar atau infrared
maka kita dapat mengetahui segala jenis pergerakan dan posisi benda di sekitar.
Jadi penelitian ini tidak menggunakan satu jenis
41
Gambar 2.8 Algoritme SLAM
SLAM terdiri dari 2 proses utama yaitu localization dan mapping, berikut ini
penjelasannya.
B.2.4.1 Localization
Localization atau lokalisasi adalah menentukan letak dan orientasi (pose)
dari robot di sebuah lingkungan. Lokalisasi merupakan bagian dari metode SLAM
ini dikarenakan untuk melakukan pemetaan dibutuhkan data lokasi robot dengan
tepat agar hasil peta sesuai dengan bentuk lokasi aslinya. Untuk melakukan
lokalisasi diperlukan sensor yang mampu mendeteksi akselerasi dari robot, yaitu
sensor IMU dan encoder. Sensor IMU adalah gabungan dari gyroscope dan
akselerometer di dalam komponen elektronik. Sensor encoder atau Odometer
memberikan data odometry yang nantinya bisa digunakan sebagai variabel untuk
lokalisasi. Perhitungan odometry digunakan untuk menangkap ulang lokasi dan
orientasi robot menggunakan kalkulasi dari sensor rotary encoder pada roda
robot yang bekerja secara real time untuk memandu lokasi robot. Namun kita
juga bisa menggunakan gabungan dari keduanya, dengan tetap menyesuaikan
dari metode algoritme yang ingin digunakan untuk mendapatkan hasil yang
paling optimal.
42
relokalisasi merupakan salah satu permasalahan yang lebih kompleks, dimana
kondisi ini terjadi ketika robot menyadari bahwa hasil observasi lingkungan robot
berbeda dengan hasil pengukuran yang dilakukan pada sampel robot dalam peta
tidak sesuai, sehingga menyebabkan kesalahan perhitungan. Kesalahan
perhitungan ini akan dihindari menggunakan estimator yang tergabung ke dalam
paket robot localization.
B.2.4.2 Mapping
Mapping atau pemetaan adalah proses pengumpulan data dari dunia fisik
dengan banyak sensor untuk membangun sebuah peta, atau proses pencocokan
di mana titik-titik suatu himpunan dicocokkan dengan titik-titik himpunan lainnya
sehingga membentuk sebuah peta. Pada masalah komputasi SLAM, mapping
digunakan sebagai salah satu metode yang menjadi bagian dari algoritme.
Metode ini merepresentasikan lingkungan yang ditangkap kemudian membuat
peta geometris yang akurat. Bentuk dari pemrosesan peta ini bervariasi, salah
satunya adalah dengan cara grid map menggunakan array (biasanya persegi atau
heksagonal) dari yang didiskritkan untuk mewakili peta skala global dan
membuat kesimpulan tentang sel mana yang bisa ditempati dan mana yang tidak
bisa (terhalang). Biasanya sel diasumsikan independen secara statistik untuk
menyederhanakan perhitungan. Di bawah asumsi seperti ini pada Ρ ¿) disetel
nilainya menjadi 1 jika sel peta baru konsisten dengan observasi Ot pada lokasi x t
dan nilai 0 jika data tidak konsisten. Data 1 dan 0 bisa dimengerti oleh komputer
sehingga bisa dimanfaatkan untuk konversi ke dalam bentuk peta visualisasi.
Proses ini terus berjalan secara berulang-ulang dan didapatkan bentuk peta
dengan 2 warna dasar yaitu warna hitam yang berarti halangan terdeteksi dan
putih yang berarti area tidak terdeteksi adanya halangan apa pun. Ilustrasi visual
dari proses mapping dapat dilihat pada gambar 2.10.
43
LIDAR. Hal ini sudah bisa banyak ditemukan pada pengembangan self-driving car
yang terus dikembangkan secara masif di dunia. Namun hingga pada tahun 2021,
harga dari sensor 3D LIDAR sangat mahal berkisar antara 30-60 juta di pasaran.
Pengembangan sensor ini terus dilakukan demi memperoleh bahan produksi
yang lebih murah agar sensor dapat digunakan dan dikembangkan oleh
masyarakat umum. Pada penelitian ini, penggunaan sensor 2D LIDAR dirasa
sudah sangat cukup untuk jenis permasalahan robot dalam ruangan.
44
Gambar 2.11 Skema gambaran sistem pada Hector SLAM
Seperti yang dapat dilihat pada gambar 2.10, bahwa skema Hector SLAM
selalu melakukan reset pada awalnya. Diagram persegi panjang melambangkan
semua node yang memegang semacam informasi status berlangganan topik
perintah yang terutama digunakan untuk mengatur ulang sistem kapan pun
diperlukan. Fokus penelitian ini menggunakan Hector SLAM hanyalah pada
proses mapping saja, maka dari itu akan dijelaskan alur mapping tersebut. Pada
proses mapping terdapat tiga masukkan berupa tf (transformation), laser scan
dan reset. Data laser scan didapat dari sensor laser lidar, misalnya sensor
RPLIDAR, sedangkan tf didapat dari node tf yang terdapat pada file launch atau
konfigurasi EKF. Output dari mapping menghasilkan 2D map yang langsung di
proses oleh map server. Output yang disimpan dari map server akan disimpan
pada geotiff dan menghasilkan object tracker. Hasil dari mapping juga
menghasilkan 2D pose yang dikirimkan ke proses pose estimation yang nantinya
digunakan trajectory server untuk menyimpan jalur path yang sudah dilalui
robot. Jika ingin melakukan navigasi, bisa dengan menambahkan paket
move_base yang nantinya membuat robot memperhitungkan cost mapping dan
mampu membuat exploration planner sehingga akhirnya pendapat kan path
yang bebas dari halangan dan memerintahkan motor untuk berputar.
Node yang terpenting pada proses ini adalah mapping dan geotiff yang
mana dua node ini merupakan proses utama untuk membuat peta menggunakan
Hector SLAM. Maka dari itu pada sub bab selanjutnya akan dijelaskan hector
mapping dan hector geotiff.
B.2.5.1 Hector Mapping
Hector Mapping adalah pendekatan SLAM yang dapat digunakan tanpa
odometry serta pada platform yang menunjukkan gerakan roll/pitch (dari sensor,
platform, atau keduanya). Dikombinasikan dengan attitude estimation system
dan opsi unit pitch/roll untuk menstabilkan pemindai laser, sistem ini dapat
menyediakan peta lingkungan bahkan jika tanahnya tidak datar seperti yang
ditemui di arena Penyelamatan RoboCup (Kohlbrecher, dkk., 2014). Pada
penelitian ini algoritme memanfaatkan sistem Light Detection and Ranging
45
(LIDAR) dengan frekuensi tinggi dengan menggunakan informasi Odometer
sebagai validasi posisinya. Hector Mapping menggunakan algoritme scan
matching yang dikembangkan dengan cara menyelaraskan data dari sensor
untuk membangun peta. Scan matching adalah proses menyelaraskan hasil
pemindaian (pengukuran jarak) pada waktu t dengan LIDAR dengan hasil
pemindaian pada waktu t - 1 yang bertujuan untuk memperoleh posisi robot
untuk kemudian memperbarui peta. Metode scan matching pada Hector
Mapping berbasis pada pendekatan Gauss-Newton. Jadi walaupun dalam
teorinya hector mapping hanya memerlukan data laser, untuk memvalidasi posisi
robot tetap diperlukan data odometry dan IMU yang di fusi dengan algoritme
EKF.
B.2.5.2 Hector Geotiff
Hector Geotiff adalah node yang dapat digunakan untuk menyimpan peta
jaringan hunian, lintasan robot, dan data objek yang diinginkan ke peta format
Geotiff dengan informasi georeferencing. Sedangkan peta Geotiff adalah gambar
peta dengan bentuk berupa data occupancy grid berisikan data free space dan
obstacle yang ilustrasinya terletak pada gambar 2.11. Dalam ROS Geotiff
digunakan sebagai format standar untuk peta, jadi bukan format gambar biasa
seperti JPEG atau PNG melainkan Geotiff dengan extensi format .pgm. Node ini
dapat berjalan di atas sistem robot dan menyimpan peta ke penyimpanan
permanen berdasarkan pengatur waktu, mengurangi kemungkinan hilangnya
peta jika terjadi masalah konektivitas.
47
memiliki keunggulan utama terletak pada pemindaian jalur secara dinamis dan
kontinu. Terdapat 2 perangkat yang dapat digunakan dalam proses navigasi,
yakni Odometer dan inertial measurement unit (IMU). Odometer
memperhitungkan rotasi roda robot untuk membantu mengukur seberapa jauh
jaraknya menggunakan pembacaan sensor rotary encoder. IMU juga digunakan
untuk mengukur kecepatan dan akselerasi sebagai cara untuk melacak posisi
robot menggunakan pembacaan gyroscope dan akselerometer.
Konsep dasarnya path planning adalah dengan menghitung jalur kontinu
yang menghubungkan konfigurasi awal dan konfigurasi tujuan, sambil
menghindari tabrakan dengan rintangan yang diketahui. Geometri robot dan
rintangan dideskripsikan dalam ruang kerja 2D atau 3D, sedangkan gerakan
direpresentasikan sebagai jalur dalam. Di dalam motion planning terdapat 2 hal
yang akan selalu dibahas dalam penelitian ini, yaitu global planner dan local
planner. Global planner bekerja dengan informasi yang didapat pada keseluruhan
peta, jadi semua data yang ter visualisasi pada peta disebut sebagai global
planner. Sedangkan local planner hanya bekerja dengan informasi yang
didapatnya saat ini dari sensor dan merencanakan jalur yang panjangnya hanya
sekitar 1 meter.
Terdapat 4 konsep pada proses memahami ruang dan pengambilan jalur
pada permasalahan motion planning antara lain:
1. Configuration space, yaitu melakukan konversi dari dimensi 3 ke dimensi
2 (datar) dan merepresentasikan warna abu-abu sebagai halangan yang
telah di konfirmasi atau di atur sedari awal atau sudah dilakukan
pemetaan.
2. Free space, yaitu proses menghindari segala jenis tabrakan terhadap
himpunan konfigurasi dari rintangan yang ada. Forward kinematic
menentukan posisi geometri robot, dan pengujian deteksi tabrakan
apakah geometri robot bertabrakan dengan geometri lingkungan.
3. Target space, bagian ruang kosong yang menunjukkan ke mana robot
ingin bergerak. Pada global planning target dapat diamati oleh sensor
robot, namun di dalam local planning robot tidak bisa melakukan
pengamatan secara langsung karena keterbatasan data jarak demi proses
optimal, untuk menyelesaikan permasalahan ini, robot dicoba untuk
melewati beberapa ruang target virtual yang masing-masing terletak di
dalam area yang dapat diamati di sekitar robot, ruang pada target disebut
sub-goal.
4. Obstacle space, bagian ruang yang tidak bisa dimasuki robot. Ruang ini
berlawanan dengan ruang bebas
Konsep dasar ini mendasari algoritme-algoritme seperti Grid-based search,
Interval-based search, Geometric algorithm, Artificial potential fields dan
Sampling-based algorithm.
48
Gambar 2.12 Gerak robot menghindari halangan dengan path planning
Sumber : (www.venturebeat.com, 2018)
B.2.7.1 Global Planner
Perencana global merencanakan jalur global di sekitar rintangan dan
rintangan baru apa pun berdasarkan frekuensi yang ditentukan oleh parameter
frequency planner. Penghindaran rintangan (pemeriksaan tabrakan) terjadi di
perencana lokal tempat cmd_vel diproduksi dan didasarkan pada parameter
controller frequency. Local planner mencoba mengikuti global planner sedekat
mungkin yang berarti mempertimbangkan bagian dari perencana global pada
suatu waktu.
49
dan mencoba untuk mencocokkan lintasan sebanyak mungkin ke titik jalan yang
disediakan dari perencana global.
50
Dijkstra, kita dapat menemukan jalur terpendek antara node dalam grafik.
Khususnya dapat menemukan jalur terpendek dari sebuah simpul ke semua
simpul lain dalam grafik, menghasilkan pohon jalur terpendek. Algoritme ini
digunakan dalam perangkat GPS untuk menemukan jalur terpendek antara lokasi
saat ini dan tujuan.
52
Selanjutnya memilih ke empat tetangganya terdekat dari parent node saat ini
untuk dikunjungi.
53
Gambar 2.23 Path finding selesai
Sekarang kita sudah selesai dengan proses pencarian jalur, maka selanjutnya
adalah tinggal memandu robot dengan memberikan posisi koordinat map secara
perlahan dari kotak Q menuju kotak N seperti yang terlihat pada gambar 2.22.
B.2.8.2 Implementasi algoritme Dijkstra
Algoritme Dijkstra terdiri dari beberapa tahapan berupa langkah-langkah
secara sistematis, antara lain sebagai berikut:
1. Tandai simpul awal Anda dengan g_cost 0, tambahkan simpul awal Anda
ke open_list
Fase pertama:
Ulangi yang berikut ini saat open_list tidak kosong:
2. Ekstrak node dengan g_cost terkecil dari open_list dan beri nama
current_node.
3. Tandai sebagai dikunjungi dengan menambahkannya ke closed_list.
4. Periksa apakah current_node adalah node target, jika demikian lanjutkan
ke fase II, jika tidak lanjutkan dengan langkah 5
5. Temukan tetangga dari current_node
For each untuk setiap node dalam daftar tetangga current_node:
6. Jika tetangga ada di dalam closed_list, lewati dan pilih tetangga
berikutnya
7. Jika tetangga ada di dalam open_list:
o Jika nilai g_cost baru lebih kecil dari nilai g_cost saat ini:
Perbarui g_cost tersebut
Perbarui simpul induknya
8. Jika tetangga tidak ada di dalam open_list:
o Setel g_cost
o Setel node induknya
o Tambahkan ke open_list
Ketika kita selesai mempertimbangkan semua tetangga dari current_node
lanjutkan ke langkah 2.
Fase kedua:
Membangun jalan dari awal sampai akhir.
1. Telusuri kembali dari node target ke node awal, menggunakan node
induk setiap node
54
Bentuk sederhana dari hasil implementasi ini adalah berupa pseudocode pada
tabel 2.2
Tabel 2.2 Pseudocode Algoritme Dijkstra
Psudocode algoritme Dijkstra
function dijkstra(G, S)
for each vertex V in G
distance[V] <- infinite
previous[V] <- NULL
If V != S, add V to Priority Queue Q
distance[S] <- 0
55
allowable_v = generateWindow(robotV, robotModel)
allowable_w = generateWindow(robotW, robotModel)
for each v in allowable_v
for each w in allowable_w
dist = find_dist(v,w,laserscan,robotModel)
breakDist = calculateBreakingDistance(v)
if (dist > breakDist) //can stop in time
heading = hDiff(robotPose,goalPose, v,w)
clearance = (dist-breakDist)/(dmax - breakDist)
cost = costFunction(heading,clearance, abs(desired_v -
v))
if (cost > optimal)
best_v = v
best_w = w
optimal = cost
set robot trajectory to best_v, best_w
END
Penjelasan dari pseudocode di atas sebagaimana berikut:
1. Pertama, kita dapat menghitung kecepatan yang diinginkan ke tujuan
berdasarkan posisi kita saat ini, dan tujuan. (misalnya cepat jika kita
jauh, lambat jika kita dekat. Gunakan Persamaan Gerak, lihat Gerakan
melingkar untuk robot bergerak).
2. Pilih kecepatan yang diizinkan (linier v, dan sudut w) dengan dinamika
kendaraan, misalnya ‘kecepatan yang diperbolehkan’ berkisar dari
kecepatan saat ini kurangi perlambatan maksimum robot * irisan waktu
ke kecepatan saat ini ditambah percepatan maksimum robot * irisan
waktu, atau lebih ringkas: [v – a.t , v + a.t], juga untuk kecepatan sudut.
3. Cari melalui semua kecepatan yang diizinkan
4. Untuk setiap kecepatan, tentukan hambatan terdekat untuk kecepatan
robot yang diusulkan (yaitu deteksi tabrakan di sepanjang lintasan)
5. Tentukan apakah jarak ke rintangan terdekat berada dalam jarak putus
robot. Jika robot tidak dapat berhenti tepat waktu, abaikan kecepatan
robot yang diusulkan ini.
6. Jika tidak, kecepatannya 'diterima', jadi sekarang kita dapat menghitung
nilai yang diperlukan untuk fungsi tujuan. Dalam kasus kami, robot
heading dan clearance.
7. Hitung 'biaya' untuk kecepatan yang diusulkan. Jika biayanya lebih baik
dari apa pun sejauh ini, tetapkan ini sebagai opsi terbaik kami.
8. Terakhir, atur lintasan yang diinginkan robot ke kecepatan terbaik yang
diusulkan.
56
atau perjalanan. Menurut Montello, D. R. (2005) dalam bukunya yang berjudul
“Navigation”, dijelaskan bahwa navigasi dikoordinasikan dan gerakan yang
diarahkan pada tujuan melalui lingkungan oleh organisme atau mesin cerdas.
Beliau juga menjelaskan bahwa Ilmu saraf telah menunjukkan peran struktur
otak tertentu dalam pemeliharaan orientasi dan telah menemukan bukti untuk
neuron yang menyala secara istimewa sebagai respons terhadap lokasi atau arah
hewan. Peneliti kecerdasan buatan mengembangkan model komputer yang
menguji teori kognisi navigasi atau hanya membuat robot yang kompeten
(Montello, 2009). Sedangkan untuk pengertian navigasi pada SLAM dikutip dari
penelitian Eko Budi Utomo dalam tesisnya mengatakan bahwa navigasi diartikan
sebagai proses atau aktivitas untuk merencanakan atau menuju jalur secara
langsung dalam sebuah misi yang diberikan pada sebuah autonomous mobile
robot dari satu tempat ke tempat yang lain tanpa kehilangan arah atau
mengalami tabrakan dengan objek yang lain (Utomo, 2015).
57
Gambar 2.24 Motherboard Hoverboard
Sumber : (github.com/EFeru/hoverboard-firmware-hack-FOC, 2021)
B.2.11.2 Nvidia Jetson Nano
Mikro komputer adalah komputer kecil yang relatif murah dengan
mikroprosesor sebagai unit pemrosesan pusat (CPU). Ini termasuk
mikroprosesor, memori dan sirkuit input/output (I/O) yang dipasang pada
satu papan sirkuit tercetak (PCB) dan Jetson Nano termasuk salah satu
mikrokomputer. Pada penelitian ini menggunakan mikrokontroler Jetson
Nano sebagai pemrosesan utama kedua setelah mikrokontroler hoverboard.
Jetson Nano Developer Kit adalah komputer kecil dan kuat yang
memungkinkan Anda menjalankan beberapa jaringan saraf secara paralel
untuk aplikasi seperti klasifikasi gambar, deteksi objek, segmentasi, dan
pemrosesan ucapan (Williman dan Jelinek, 1976). Bentuk fisik dari Nvidia
Jetson Nano dapat dilihat pada gambar 2.24.
58
Gambar 2.25 Nvidia Jetson Nano
Sumber: (www.nvidia.com, 2021)
B.2.11.3 Motor BLDC Hoverboard 6.5Inch 350 Watt
Brushless DC Motor atau motor BLDC adalah motor sinkron yang
menggunakan catu daya listrik arus searah (DC). Ini menggunakan pengontrol
loop tertutup elektronik untuk mengalihkan arus DC ke putaran kawat motor
yang menghasilkan medan magnet yang secara efektif berputar di ruang angkasa
dan yang diikuti oleh rotor magnet permanen. Kontroler menyesuaikan fase dan
amplitudo pulsa arus DC untuk mengontrol kecepatan dan torsi motor. Sistem
kontrol ini merupakan alternatif dari komutator mekanis (sikat) yang digunakan
di banyak motor listrik konvensional (Wang, 2012).
Gambar 2.26 Motor BLDC 6.5” 36V 350W dan build in Encoder
Sumber : (www.hoverboardforlife.blogspot.com, 2016)
Pada gambar 2.25 dapat dilihat bahwa di dalam motor BLDC terdapat sensor
encoder yang berfungsi untuk mengetahui posisi motor berdasarkan data yang
dikirimkan dari HALL sensor. Sensor Encoder ini akan mengirimkan data berupa
odometry yang nantinya akan digunakan sebagai input pada sistem. Pembahasan
lebih lanjut mengenai odometry akan dibahas pada bagian selanjutnya.
B.2.11.4 Baterai 18650 Litium Ion 42V 10S2P 4400mAh
Baterai litium-ion atau baterai Li-ion adalah jenis baterai isi ulang di mana ion
litium bergerak dari elektroda negatif melalui elektrolit ke elektroda positif
selama pelepasan, dan kembali saat pengisian. Baterai Li-ion menggunakan
senyawa litium sebagai bahan pada elektroda positif dan biasanya grafit pada
elektroda negatif (Lain, Brandon dan Kendrick, 2019). Baterai Li-ion memiliki
kepadatan energi yang tinggi dan self-discharge rendah, ilustrasi dari baterai
yang digunakan pada penelitian ini seperti yang terlihat pada gambar 2.26.
59
Gambar 2.27 Baterai Litium Ion 42V 10S2P 4400mAh
Sumber : (www.streetsaw.com, 2021)
B.2.11.5 STLink V2 Programmer
STLink bukanlah bagian dari komponen utama robot, alat ini digunakan
dalam proses flashing motherboard hoverboard. Tepatnya STlink berfungsi
sebagai perantara USB Flashing antara komputer dengan motherboard. Flashing
dilakukan untuk reset semua kode pabrik yang ada di motherboard sekaligus
menuliskan ulang motherboard dengan kode baru yang sudah di modifikasi.
Gambar 2.27 merupakan bentuk dari STLink V2 Programmer.
60
B.2.11.6 Sensor RPLIDAR A1
61
jarak resolusi tinggi (<1% dari jarak). RPLIDAR memancarkan sinyal laser
inframerah termodulasi dan sinyal laser tersebut kemudian dipantulkan oleh
objek yang akan dideteksi. Sinyal kembali di sampel oleh sistem akuisisi visi di
RPLIDAR dan DSP yang tertanam di RPLIDAR mulai memproses data sampel dan
nilai jarak keluaran dan nilai sudut antara objek dan RPLIDAR melalui antarmuka
komunikasi. Sistem pemindai rentang kecepatan tinggi dipasang pada rotator
yang berputar dengan sistem pengkodean sudut bawaan. Selama rotasi,
pemindaian 360 derajat dari lingkungan saat ini akan dilakukan. Hasil dari
pemindaian ini akan dikirimkan melalui komunikasi USART melalui adapter
USART dan dihubungkan ke Jetson Nano menggunakan Port USB. Data yang
didapat berupa koordinat dari setiap titik laser yang terbaca. Teknologi Light
Detection and Ranging (LIDAR) dengan memanfaatkan teknik time-of-flight (TOF)
akan dibahas lebih detail pada bagian selanjutnya.
B.2.11.7 Sensor IMU GY-521 MPU-6050 6DOF
62
objek yang ada di permukaan. Lidar juga dapat digunakan untuk membuat
representasi digital 3-D dari area di permukaan bumi dan dasar laut, karena
perbedaan waktu kembali laser, dan dengan memvariasikan panjang gelombang
laser. Ini memiliki aplikasi terrestrial, udara, dan seluler . Adaptasi teknologi ini
pertama kali digunakan untuk keperluan penerbangan yang terjadi pada tahun
1960-an dan baru digunakan sebagai sistem pemetaan pada tahun 1980-an
hingga sekarang. Prinsip kerja dari LIDAR ini sendiri sebetulnya cukup sederhana,
LIDAR melakukan perhitungan jarak dengan cara mengeluarkan sinar laser
transmiter ke suatu permukaan, kemudian dihitung berapa lama waktu yang
dibutuhkan oleh sinar laser untuk kembali ke reseptor (Donager, Sánchez
Meador and Blackburn, 2021).
Jika dianalogikan, ini sama seperti ketika kita mengarahkan cahaya senter ke
suatu permukaan. Sebenarnya yang terjadi adalah kita dapat melihat pantulan
cahaya senter dari suatu permukaan ke retina Anda, namun karena prosesnya
sangat cepat, maka hal tersebut terjadi seolah-olah secara instan. Kecepatan
cahaya sangat tinggi, yaitu sekitar 300.000 KM/detik jadi kita tidak bisa
pergerakannya secara langsung. Untuk menghitung jarak, LIDAR menggunakan
rumus sebagai berikut:
c∗t
d= (2.6)
2
d = jarak antara sensor dan objek yang diukur (m)
c = Kecepatan cahaya (3 x 108 m/s)
t = Waktu tempuh cahaya/sinyal
Perangkat LIDAR menembakkan sinar laser secara cepat ke suatu permukaan,
bahkan beberapa perangkat LIDAR menembakkan sekitar 150.000 pulsa laser per
detik. Kemudian komponen sensor pada LIDAR menghitung waktu yang
dibutuhkan dari setiap pulsa laser untuk memantul dari suatu permukaan ke
sensor sehingga didapat hasil penghitungan jarak dengan akurasi tinggi
B.2.13 Odometry
Odometry adalah penggunaan data dari pergerakan aktuator untuk
memperkirakan perubahan posisi dari waktu ke waktu. Odometry merupakan
teknik lokalisasi yang banyak digunakan pada robot beroda, namun teknik ini
biasanya memiliki kesalahan yang cukup besar. Akan tetapi algoritme Extended
Kalman Filter (EKF) dapat digunakan untuk mengurangi kesalahan tersebut
dengan menggabungkan data Wheel Odometry dengan data sensor lainnya
seperti inertial measurement unit (IMU) (Maruf and Hasan, 2017). Wheel
Odometry merupakan teknik lokalisasi yang menghitung posisi robot
berdasarkan perputaran roda (kecepatan putaran roda atau jumlah perputaran
roda). Kecepatan putaran roda atau jumlah perputaran roda dapat diukur
menggunakan rotary encoder.
63
Odometry digunakan untuk memperkirakan posisi relatif terhadap posisi
awal. Untuk memperkirakan posisi relatif robot, digunakan perhitungan jumlah
pulsa yang dihasilkan oleh sensor rotary encoder setiap satuan ukuran yang
kemudian dikonversi menjadi satuan milimeter. Untuk mendapatkan jumlah
pulsa setiap satu kali putaran roda digunakan rumus sebagai berikut (Utomo,
2015):
keliling roda=2 π r
resolusi encoder
pulsa per mm= (2.7)
keliling roda
Perhitungan ini disebut dengan odometry, data ini nantinya akan di
gabungkan dengan data dari sensor IMU menggunakan EKF yang mana EKF akan
dijelaskan pada subbab selanjutnya.
B.2.15 Firmware
Dalam komputasi, Firmware adalah kelas perangkat lunak komputer tertentu
yang menyediakan kontrol tingkat rendah untuk perangkat keras khusus.
Firmware, seperti BIOS komputer pribadi, dapat berisi fungsi dasar perangkat
dan dapat menyediakan layanan abstraksi perangkat keras ke perangkat lunak
64
tingkat tinggi seperti sistem operasi. Untuk perangkat yang tidak terlalu rumit,
Firmware dapat bertindak sebagai sistem operasi lengkap perangkat, melakukan
semua fungsi kontrol, pemantauan, dan manipulasi data. Contoh umum
perangkat yang berisi Firmware adalah sistem tertanam (menjalankan perangkat
lunak tertanam), peralatan rumah tangga dan penggunaan pribadi, komputer,
dan periferal komputer.
B.2.15.1 Hoverboard Firmware
Hoverboard Firmware merupakan perangkat lunak khusus yang ditanamkan
pada hoverboard controller atau motherboard hoverboard untuk mengontrol
perangkat keras yang ada pada hoverboard seperti, motor BLDC, baterai, driver
motor, sensor giroskop, sensor akselerometer dan charger. Firmware sangat
dibutuhkan sebagai perantara kontrol perangkat keras pada hoverboard.
Firmware ditanamkan menggunakan teknik flashing ke dalam motherboard
hoverboard sehingga pengembang dapat mengubah isi dari pemrograman
motherboard sesuai dengan apa yang diinginkan. Untuk melakukan ini
dibutuhkan adapter berupa STLink dan software STMCube Programmer untuk
melakukan flashing pada motherboard hoverboard. Data yang disimpan ke dalam
motherboard merupakan data dari file biner hasil compile menggunakan C++.
Jadi firmware ditulis menggunakan bahasa pemrograman C dan nantinya
dilakukan compile menggunakan compiler. Output dari hasil compile tersebut
berupa file biner yang dapat di upload langsung menggunakan aplikasi STMCube
Programmer melalui adapter STLink.
Pada penelitian ini, peneliti menggunakan firmware khusus untuk
motherboard hoverboard dengan nama “hoverboard firmware hack FOC” yang
sudah tersedia di GitHub yang ditulis pertama kali oleh Emanuel Feru pada tahun
2018. Firmware ini bersifat open source dan sudah digunakan oleh banyak
pengembang robot yang menggunakan komponen hoverboard. Hingga tahun
2021, firmware ini masih terus dikembangkan untuk hasil yang lebih baik.
gambar 2.30 merupakan Repository GitHub dari firmware hoverboard.
65
Gambar 2.31 Repository Hoverboard Firmware Hack FOC
66
ini, peneliti hanya akan membahas konsep Computational Graph Level. Hal ini
dikarenakan konsep ini yang akan lebih penting dan lebih sering digunakan
secara langsung dibandingkan yang lainnya. Bagian selanjutnya akan membahas
mengenai konsep computational graph pada ROS dan Dependensi pada ROS.
B.2.16.1 ROS Computational Graph Level
Grafik Komputasi adalah jaringan peer-to-peer dari proses ROS yang
memproses data bersama-sama. Konsep Grafik Komputasi dasar ROS adalah
node, Master, Server Parameter, pesan, layanan, topik, dan tas, yang semuanya
menyediakan data ke Grafik dengan cara yang berbeda. Konsep-konsep ini
diimplementasikan dalam Repository ros_comm.
1. Node, adalah proses yang melakukan komputasi. ROS dirancang untuk
menjadi modular pada skala halus; sistem kontrol robot biasanya terdiri
dari banyak node.
2. Master, menyediakan registrasi nama dan pencarian ke Grafik Komputasi
lainnya. Tanpa Master, node tidak akan dapat menemukan satu sama
lain, bertukar pesan, atau memanggil layanan.
3. Parameter Server, memungkinkan data disimpan dengan kunci di lokasi
pusat. Saat ini adalah bagian dari Guru.
4. Message, node berkomunikasi satu sama lain dengan mengirimkan
pesan. Pesan hanyalah struktur data, terdiri dari bidang yang diketik. Tipe
primitif standar (integer, floating point, Boolean, dll.) didukung, seperti
juga array tipe primitif. Pesan dapat menyertakan struktur dan array
bersarang (seperti struktur C).
5. Topic, pesan di rute kan melalui sistem transportasi dengan semantik
terbitkan/berlangganan. Sebuah node mengirimkan pesan dengan
memublikasikannya ke topik tertentu. Topik adalah nama yang digunakan
untuk mengidentifikasi isi pesan. Sebuah node yang tertarik pada jenis
data tertentu akan berlangganan topik yang sesuai. Mungkin ada
beberapa penerbit dan pelanggan secara bersamaan untuk satu topik,
dan satu node dapat menerbitkan dan/atau berlangganan beberapa
topik. Secara umum, penerbit dan pelanggan tidak menyadari
keberadaan satu sama lain. Idenya adalah untuk memisahkan produksi
informasi dari konsumsinya. Logikanya, seseorang dapat menganggap
topik sebagai bus pesan yang diketik dengan kuat. Setiap bus memiliki
nama, dan siapa pun dapat terhubung ke bus untuk mengirim atau
menerima pesan selama itu adalah jenis yang tepat.
6. Service, model publish/subscribe adalah paradigma komunikasi yang
sangat fleksibel, tetapi transportasi satu arah banyak-ke-banyaknya tidak
sesuai untuk interaksi permintaan/balasan, yang sering diperlukan dalam
sistem terdistribusi. Permintaan / balasan dilakukan melalui layanan,
yang ditentukan oleh sepasang struktur pesan: satu untuk permintaan
dan satu untuk balasan. Sebuah node penyedia menawarkan layanan
67
dengan nama dan klien menggunakan layanan dengan mengirimkan
pesan permintaan dan menunggu balasan. Pustaka klien ROS umumnya
menyajikan interaksi ini kepada pemrogram seolah-olah itu adalah
panggilan prosedur jarak jauh.
7. Bags, adalah format untuk menyimpan dan memutar ulang data pesan
ROS. Kantong adalah mekanisme penting untuk menyimpan data, seperti
data sensor, yang mungkin sulit dikumpulkan tetapi diperlukan untuk
mengembangkan dan menguji algoritme.
B.2.16.2 Operasi Dasar pada ROS
ROS memiliki beberapa perintah operasi dasar yang sering digunakan pada
imbuhan awal setiap perintah yang dilakukan, antara lain sebagai berikut:
1. roslaunch, merupakan alat untuk dengan mudah meluncurkan beberapa
node ROS secara lokal dan jarak jauh melalui SSH, serta mengatur
parameter pada Server Parameter. Ini mencakup opsi untuk secara
otomatis menghidupkan kembali proses yang telah mati. roslaunch
mengambil satu atau lebih file konfigurasi XML (dengan ekstensi .launch)
yang menentukan parameter yang akan disetel dan node yang akan
diluncurkan, serta mesin tempat mereka harus dijalankan.
2. roscore, merupakan spesialisasi alat roslaunch untuk memunculkan
sistem ROS "inti". Roslaunch akan secara otomatis memulai roscore jika
mendeteksi bahwa itu belum berjalan (kecuali argumen --wait diberikan).
Untuk informasi lebih lanjut, silakan lihat dokumentasi roscore. Catatan:
karena kondisi balapan, roslaunch tidak boleh digunakan untuk menjamin
instance roscore tunggal.
3. rosrun, merupakan bagian dari rosbash. rosrun memungkinkan kita untuk
menjalankan executable dalam paket arbitrer dari mana saja tanpa harus
memberikan path lengkapnya atau cd/roscd di sana terlebih dahulu.
4. rostopic, perintah untuk mengakses topik yang ditentukan dalam grafik
komputasi.
5. rosparam, perintah untuk mendapatkan, mengatur, menghapus
parameter dari ROS Parameter Server.
6. rosservice, perintah untuk mengakses layanan yang didefinisikan dalam
grafik komputasi.
B.2.16.3 Sistem Dependensi pada ROS
Pada dasarnya ROS merupakan middleware yang menjadikan tiap proses
menjadi node-node. Hal ini dilakukan untuk menciptakan proses komputasi yang
paralel. Setiap node memiliki dependensinya masing-masing yang terletak pada
internal Linux. Dependensi ini berisi library ataupun driver ROS yang saling
terhubung dengan workspace ROS. Konsep dari ROS sebenarnya sama saja
dengan pemrograman robot sederhana, seperti menggunakan konsep sederhana
68
dengan Arduino IDE ataupun MCU board pada umumnya. Hanya saja ROS
memisahkan library, kode, model robot, dan konfigurasi pada folder yang
berbeda-beda. Semua dependensi saling terkait dengan workspace karena
terdapat folder build dan devel yang mana ketika dilakukan build maka compiler
akan mengambil semua library yang dibutuhkan dan menyimpannya ke dalam
folder build yang ada di workspace. Dengan begini pengembang hanya perlu
memanggil sub folder dan nama file launch di dalam workspace.
Paket ROS terkadang memerlukan perpustakaan dan alat eksternal yang
harus disediakan oleh sistem operasi. Pustaka dan alat yang diperlukan ini
biasanya disebut sebagai dependensi sistem. Dalam beberapa kasus, dependensi
sistem ini tidak di install secara default. ROS menyediakan alat sederhana,
rosdep, yang digunakan untuk mengunduh dan installing dependensi sistem.
70
untuk robotika, misalnya seperti rqt robot steering yang mana kita dapat
mengendalikan robot hanya dengan menaikkan kecepatan linier dan angular.
Terdapat pula fitur untuk menampilkan node graph yang sedang terhubung, fitur
ini sangat berguna untuk melakukan debugging jika terdapat kesalahan atau bug.
Tampilan antar muka aplikasi rqt dapat dilihat pada gambar 2.32
71
B.2.21 Virtual Network Computing (VNC)
Virtual Network Computing (VNC) atau Komputasi Jaringan Virtual adalah
sistem berbagi desktop grafis yang menggunakan protokol Remote Frame Buffer
(RFB) untuk mengontrol komputer lain dari jarak jauh. Ini mentransmisikan input
keyboard dan mouse dari satu komputer ke komputer lain, menyampaikan
pembaruan layar grafis, melalui jaringan. VNC adalah platform-independen – ada
klien dan server untuk banyak sistem operasi berbasis GUI dan untuk Java.
Beberapa klien dapat terhubung ke server VNC secara bersamaan. Penggunaan
populer untuk teknologi ini termasuk dukungan teknis jarak jauh dan mengakses
file di komputer kerja seseorang dari komputer di rumah, atau sebaliknya.
73
B.2.27 STM32Cube Programmer
STM32CubeProgrammer adalah alat perangkat lunak Multi-OS All-in-One
untuk memprogram produk STM32. Ini menyediakan lingkungan yang mudah
digunakan dan efisien untuk membaca, menulis, dan memverifikasi memori
perangkat melalui antarmuka debug (JTAG dan SWD) dan antarmuka bootloader
(USART, USB DFU, I2C, SPI, dan CAN). STM32CubeProgrammer menawarkan
berbagai fitur untuk memprogram memori internal STM32 (seperti Flash, RAM,
dan OTP) serta memori eksternal. STM32CubeProgrammer juga memungkinkan
pemrograman dan unggah opsi, verifikasi konten pemrograman, dan otomatisasi
pemrograman melalui skrip. STM32CubeProgrammer dikirimkan dalam versi GUI
(antarmuka pengguna grafis) dan CLI (antarmuka baris perintah). Gambar 2.35
merupakan tampilan depan aplikasi STM32CubeProgrammer.
74
prediksi dan cenderung menghasilkan nilai yang menipu (Riva, 2021).
Perkiraan dikatakan akurat jika nilai WAPE dalam skala persentase dari 0-
100% mendekati nilai 0%. Jadi semakin kecil nilai WAPE maka akan semakin
akurat hasil dari suatu metode yang dipakai. Untuk menghitung WAPE akan
menggunakan persamaan 2.12 berikut.
n
∑ ¿ At −F t∨¿
WAPE= t=1n ¿ (2.12)
∑ ¿ A t ∨¿ ¿
t=1
Sebagai contoh yang dapat dilihat pada tabel berikut (Riva, 2021):
Tabel 2.4 Contoh prediksi penjualan dengan metode statistik WAPE
Senin Selasa Rabu TOTAL
Prediksi penjualan 55 2 50 107
Penjualan sebenarnya 50 1 50 101
WAPE 5.9%
Pada tabel 2.4 nilai penjualan pada hari Senin dan Selasa mengalami
perbedaan nilai yang cukup jauh. Apabila menggunakan metode prediksi
biasa, seperti menghitung nilai rata-rata absolut maka akan mendapatkan
hasil prediksi yang memiliki tingkat kesalahan yang tinggi (36.7%). Hal ini
tidak sesuai dengan kebenaran data dan jelas ini sebuah kesalahan
penggunaan metode.
2. Persentase Keberhasilan
Persentase keberhasilan merupakan metode untuk menghitung nilai
persentase keberhasilan dalam suatu pengujian. Untuk menghitung tingkat
keberhasilan akan digunakan persamaan 2.13.
Keberhasilan
Presentase Keberhasilan= ×100 % (2.13)
Total
75
BAB C METODOLOGI PENELITIAN
76
C.3 Metode Penelitian
Demi sepenuhnya mencapai tujuan, maka pada penelitian ini dilakukan
secara struktur dan sistematis dalam metode penelitian. Metode yang digunakan
untuk mengembangkan suatu karya harus sesuai dengan kebutuhan pembuatan
karya. Kebutuhan awal yang diperlukan untuk merancang robot ini yaitu
pendalaman informasi terkait permasalahan, pengumpulan, pengkajian teori,
dan penelitian sebelumnya yang telah dilakukan dengan tujuan mendukung
pengembangan robot ini sehingga dapat ditemukan solusi dari permasalahan
dalam pengembangan karya ini. Jurnal ilmiah, artikel ilmiah, situs web, buku, dan
lain sebagainya digunakan sebagai studi literatur pada penelitian ini. Setelah
melakukan studi literatur, maka langkah selanjutnya adalah melakukan definisi
masalah yang ingin diselesaikan, misalnya seperti perangkat lunak (software),
perangkat keras (hardware), algoritme yang digunakan, dan lain sebagainya.
Setelah itu dirumuskan dasar teori yang berisi penelitian secara ilmiah sangat
diperlukan sebagai referensi penunjang dalam pengembangan robot ini
sehingga menghasilkan karya dari permasalahan yang ada dan bisa
dipertanggungjawabkan. Hasil pengkajian teori dari studi literatur yang relevan
digunakan dalam mengaplikasikan proses rekayasa kebutuhan sistem yang sesuai
lalu melakukan perancangan sistem atau gambaran sistem, implementasi sistem,
dan pengujian sistem. Sistem yang telah dilakukan pengujian kemudian dilakukan
analisis. Dari hasil analisis pengujian akan digunakan untuk menginformasikan
bahwa sistem ini belum atau telah memenuhi kebutuhan dalam permasalahan
yang diajukan. Diagram alir tahapan penelitian dapat dilihat pada gambar 3.1.
77
Gambar 3.38 Diagram Alir Penelitian
Penggunaan diagram alir penelitian seperti gambar 3.1 akan membuat proses
lebih tepat arah dan teratur. Setelah analisis hasil pengujian apabila penulis
merasa bahwa rumusan permasalahan tidak terjawab, maka penulis akan
memperbaiki sistem pada perancangan sistem, kemudian melakukan
implementasi sistem, pengujian sistem, dan kembali melakukan analisis hasil
pengujian. Setelah analisis hasil berhasil menjawab rumusan permasalahan,
maka penulis akan mendapatkan kesimpulan dan saran yang dibutuhkan dalam
penelitian.
78
C.6 Teknik Pengumpulan Data
Pengambilan data sensor yang telah di kalibrasi, observasi parameter
berdasarkan dokumentasi dan data dari terminal Linux digunakan sebagai teknik
pengumpulan data dalam penelitian ini. Dengan menggunakan data yang
diperoleh dari hasil proses observasi langsung yang dilakukan pada semua
sensor, diharapkan penulis mengetahui betul bahwa data semua sensor telah
benar berdasarkan pengukuran asli dan dokumentasi datasheet setiap sensor.
Hal ini dilakukan agar pada pengujian, hasil bisa lebih objektif karena sensor
sudah berjalan sebagaimana mestinya dan menghindari kesalahan sehingga
berbeda dari penelitian sebelumnya. Observasi yang dilakukan bertujuan untuk
mengetahui apakah sistem yang dibuat berjalan sesuai dengan fungsi dan
kebutuhannya. Proses observasi meliputi percobaan setiap parameter pada
algoritme yang telah ditentukan dan dicari nilai yang optimal. Pencarian nilai
optimal ini didasari pada hasil riset pada penelitian yang serupa. Hal ini dilakukan
untuk mengetahui apakah parameter sebagai perhitungan dipengaruhi oleh
lingkungan yang dilihat dari hasil log pada terminal Linux dan hasil visualisasi
bentuk peta dan navigasi pada aplikasi Rviz yang merupakan salah satu tool di
dalam ROS. Selanjutnya sampel data hasil observasi digunakan sebagai data
untuk proses analisa lebih lanjut.
79
terkait perangkat keras serta perangkat lunak yang digunakan pada penelitian ini,
sebagai berikut.
1. Perangkat keras
Motherboard Hoverboard
Nvidia Jetson Nano
Motor Brushless DC dan encoder
Baterai 10S2P 4000mAh
Power bank
Sensor RPLidar
Sensor IMU GY-521 MPU6050
Dongle Wi-Fi
Push button on-off
Adapter dan port charger hoverboard
STLink V2 Programmer
FTDI to mini USB adapter
Komputer (Personal Komputer)
Chassis papan kayu
3D Printer dan filamen
Keyboard dan Mouse
Kabel Jumper
Kabel micro USB
2. Perangkat lunak
Hoverboard Firmware
STMCube Programmer
Catkin workspace
Makefile
Robot operating system (ROS)
Terminator
Visual Studio Code
Platform IO
Virtual Network Computing (VNC)
Secure Shell Protocol (SSH)
Rviz
rqt
Hoverboard driver
RPLIDAR driver
MPU6050 dan I2C driver
Hector SLAM library
Robot localization (EKF & AMCL) library
80
Move base (Global & local planner) library
81
BAB D REKAYASA KEBUTUHAN
83
pemindaian pada area seluas 360 hasil data berupa pengukuran
derajat. Nilai yang dihasilkan berupa jarak antara robot dengan
nilai distance atau jarak dari range halangan menggunakan alat
0.15 meter hingga 6 meter pengukur sebenarnya seperti
meter ukur
Sensor Inertial measurement unit Dapat mengirimkan posisi robot
(IMU) dapat membaca nilai derajat pada mikrokontroler terhadap
kemiringan dan gerak akselerasi pada posisi sebenarnya robot
2
robot. Berfungsi untuk melakukan menggunakan pemantauan
Sensing proyeksi terhadap kemiringan secara langsung dan proyeksi
dan gerak akselerasi robot melalui 3D visual Rviz
Motor DC Brushless atau BLDC dapat Diujinya jumlah putaran motor
menggerakkan robot berdasarkan nilai DC menggunakan odometry dan
PWM yang diberikan dari perhitungan secara manual
3 motherboard hoverboard sehingga dipastikan data
odometry adalah putaran
sebenarnya dan robot bergerak
sesuai dengan yang didesain
Sistem mikrokontroler di dalam robot Diujinya pengiriman data dan
4 mampu mengirim dan menerima data penerimaan data ketika diam
sensor IMU untuk dilaksanakan dan bergerak
Sistem mikrokontroler di dalam robot Diujinya pengiriman data ketika
5 mampu mengirim dan menerima data robot melakukan proses
sensor RPLIDAR untuk dilaksanakan pembuatan peta atau mapping
Mikrokontroler dapat memproses Diujinya navigasi robot
data dari sensor menjadi kesimpulan menggunakan data yang
6
arah gerak dan kecepatan sistem pada diberikan oleh sensor
aplikasi ROS
Sistem Motherboard Hoverboard Diujinya kecepatan berdasarkan
dapat menggerakkan kedua motor perputaran roda melalui
7 serta memberi tegangan pada semua encoder motor BLDC
komponen elektronik. menggunakan metode
debugging
Aplikasi Rviz dapat memantau Diujinya penggunaan Rviz untuk
pengontrolan sistem secara otomatis melihat hasil pengontrolan
8
ketika bergerak menggunakan sistem otonom secara real-time
otonom robot operating system
86
mumpuni untuk menjalankan semua proses ini. Walaupun pemrosesan pada
Rviz dilakukan di Slave atau Komputer, akan tetapi untuk melakukan load
data hasil pemetaan juga dibutuhkan sumber daya CPU dan RAM yang besar.
Oleh karena itu, kesimpulannya adalah Nvidia Jetson Nano mampu
menjalankan sistem secara baik pada penelitian ini. Berikut adalah datasheet
dari mikrokontroler Jetson Nano 3B yang ditunjukkan pada tabel 4.3.
Tabel 4.7 Spesifikasi Mikrokontroler Jetson Nano 3B
Sumber : (developer.nvidia.com, 2021)
Keterangan Spesifikasi
CPU Quad-core ARM A57 @ 1.43 GHz
NVIDIA Maxwell architecture with 128 NVIDIA
GPU
CUDA® cores
Memory 4 GB 64-bit LPDDR4, 1600MHz 25.6 GB/s
Storage microSD
4K @ 30 | 4x 1080p @ 30 | 9x 720p @ 30
Video Encode
(H.264/H.265)
4K @ 60 | 2x 4K @ 30 | 8x 1080p @ 30 | 18x
Video Decode
720p @ 30 (H.264/H.265)
Kamera 2x MIPI CSI-2 DPHY
Konektivitas Gigabit Ethernet, M.2 Key E
Display HDMI 2.0 and display port
USB 4x USB 3.0, USB 2.0 Micro-B
Lainnya GPIO, I2C, I2S, SPI, USART
Mechanical 69.6 mm x 45 mm 260-pin edge connector
Memory External 64GB Mikro SD
Power Micro USB 5V 2.5A and DC Barrel Jack 5V 4A
4. Catu Daya
89
5. RPLIDAR A1
90
Output USART Serial 3.3 Voltage level
≤1% of the range(≤12m)
Range Resolution
≤2% of the range(12m~16m)
1% of the range(≤3 m)
Accuracy 2% of the range(3-5 m)
2.5% of the range(5-25m)
91
Range Gyroscope 250, 500, 1000, 2000/s
Range Gyroscope 2, 4, 6, 8, 16g
Pin VCC, RX, TX, GND, RST, B0, SCL, SDA
7. Wi-Fi Dongle
Wi-Fi dongle digunakan sebagai Wi-Fi extension karena Jetson Nano tidak
memiliki modul Wi-Fi setelah pabrik. Wi-Fi dongle akan menjadi komunikasi
utama robot dengan komputer server.
8. Tombol Power On-Off
Tombol power on-off digunakan untuk menyalakan atau mematikan
perangkat robot. Tombol ini berupa push button yang kondisinya hanya 1 dan 0.
9. Adapter dan Port Charger Hoverboard
Adapter charger baterai digunakan untuk mengisi ulang daya dari baterai
hoverboard. Adapter ini merupakan adapter AC ke DC yang nantinya ditancapkan
pada lubang port adapter yang terhubung langsung ke motherboard hoverboard.
10. STLink V2 Programmer
STLink bukanlah bagian dari komponen utama robot, alat ini digunakan
dalam proses flashing motherboard hoverboard. Tepatnya STlink berfungsi
sebagai perantara USB Flashing antara komputer dengan motherboard. Flashing
dilakukan untuk reset semua kode yang ada di motherboard sekaligus
menuliskan ulang motherboard dengan kode baru yang sudah di modifikasi.
Spesifikasi dari STLink yang digunakan pada penelitian ini dapat dilihat pada tabel
4.9.
Tabel 4.13 Datasheet STLink V2 mini USB
Sumber : (www.waveshare.com, 2022)
Keterangan Spesifikasi
SWD voltage range 1.65V - 3.6V
SWIM voltage range 1.65V - 5.5V
Supports SWV No
Debug interfaces 2
LED indicator Dual color LED
Fuse YES
92
USART. FTDI akan terhubung dengan kabel sensor kanan dari hoverboard yang
memiliki pin RX/TX dan akan ditancapkan dengan port USB pada Jetson Nano.
12. Komputer (Personal komputer)
Komputer yang dimaksud merupakan sebuah komputer pribadi fleksibel yang
dapat dijinjing dengan mudah atau dengan kata lain adalah laptop. Pada
penelitian ini, komputer pribadi memiliki peran yang sangat penting dan banyak
berkontribusi pada penelitian ini. Di antaranya adalah berguna sebagai perangkat
dalam memprogram sistem pada tahap percobaan awal, baik dalam
memprogram perangkat keras maupun perangkat lunak. Personal komputer
digunakan sebagai komputer server dan seterusnya penulis akan menggunakan
kata komputer server sebagai maksud dari komputer pribadi penulis. Komputer
server digunakan sebagai setting up Master - Slave pada robot operating system.
Robot bergerak otonom merupakan slave sedangkan komputer berperan sebagai
master. Fungsi master (komputer) adalah menerima semua jenis data feedback
yang dikirim atau di ekspor dari slave (robot) yang kemudian data-data tersebut
dapat digunakan untuk proses visualisasi menggunakan aplikasi third party Rviz.
Dengan begini Mikrokomputer pada robot tidak perlu banyak menghabiskan
Resource untuk melakukan pemetaan sekaligus menampilkan visualisasi dari
peta tersebut.
13. Chassis papan kayu
Chassis merupakan rangka penyangga suatu struktur. Rangka penyangga
pada robot AMR terbuat dari gabungan papan kayu berukuran 40x40 cm
sejumlah 4 buah dengan ketebalan 2 cm yang digunakan sebagai bahan
pembuatan chassis robot. Papan kayu ini nantinya akan menjadi tempat
penyimpanan komponen utama seperti Jetson Nano dan bagian atasnya
berperan sebagai tutup sekaligus alas untuk tempat menaruh barang.
14. Filamen 3D print
Filamen 3D printer sebagai bahan utama tinta 3D printer. Chassis robot
menggunakan desain custom maka dari nantinya akan ada beberapa bagian yang
hanya bisa dibuat menggunakan mesin 3D printer. Jenis filamen yang digunakan
adalah PETG berwarna hitam sebanyak 2 kilogram.
15. 3D printer
3D Printer digunakan untuk mencetak bagian utama robot. Jenis 3D printer
yang digunakan pada penelitian ini adalah printer dengan jenis FDM bermerek
Creality CR-10S Pro dengan spesifikasi minimal panjang 30 cm, lebar 30 cm dan
tinggi 20 cm.
16. Kabel jumper
Kabel jumper digunakan untuk menghubungkan serial USART sensor kanan
motherboard dengan FTDI yang terhubung pada Jetson Nano melalui USB mini.
17. Kabel micro USB
93
Kabel micro USB digunakan untuk menghubungkan sensor RPLIDAR dengan
Jetson Nano melalui USB. Selain itu juga digunakan untuk menghubungkan
Jetson Nano ke catu daya, yakni Power bank.
D.2.2.2 Kebutuhan Non-Fungsional Perangkat Lunak
Kebutuhan non-fungsional adalah batasan dari sistem terhadap layanan yang
diberikan. Batasan tersebut dapat berupa waktu, batasan proses pengembangan
dan batasan terhadap standar tertentu.
1. Hoverboard Firmware
Firmware adalah kelas perangkat lunak komputer tertentu yang
menyediakan kontrol tingkat rendah untuk perangkat keras khusus perangkat.
Firmware, seperti BIOS komputer pribadi, mungkin berisi fungsi dasar perangkat,
dan dapat menyediakan layanan abstraksi perangkat keras ke perangkat lunak
tingkat tinggi seperti sistem operasi. Gambar 4.8 merupakan tampilan dari
directory hoverboard-firmware-hack-FOC yang dikelola oleh Emanuel Feru,
pengembang pertama yang membuat firmware hoverboard hack ini.
94
Gambar 4.47 STM32Cube Programmer
3. Catkin workspace
Ruang kerja catkin adalah directory (folder) tempat membuat atau
memodifikasi paket catkin yang ada. Struktur catkin menyederhanakan proses
pembuatan dan pemasangan untuk paket ROS. Ruang kerja catkin dapat berisi
hingga tiga atau lebih subdirectory yang berbeda (/build, /devel, dan /src), yang
masing-masing memiliki peran berbeda dalam proses pengembangan perangkat
lunak. Catkin merupakan salah satu metode workspace yang ada di dalam ROS,
pembuatan workspace ini bertujuan untuk memudahkan proses developing dan
compiling, konsep ini sama dengan konsep webpack yang ada pada web
developing. Kemudahan ini terjadi karena untuk menjalankan middle ware ROS
kita perlu build terlebih dahulu kode ROS yang telah ditulis dan disimpan di
dalam folder /src. Kemudian pindahkan posisi terminal pada directory /catkin_ws
dan ketik $ catkin_make, maka catkin akan bekerja dan melakukan building file
ke folder /build dan /devel. Jika sudah selesai maka perintah ROS sudah dapat
digunakan dan kita dapat menjalankan sistem berdasarkan pemrograman yang
dilakukan di folder /src seperti yang terdapat pada gambar 4.10.
97
komputer tanpa harus menancapkan kabel HDMI ataupun kabel LAN, jadi cukup
menggunakan koneksi pada jaringan Wi-Fi yang sama.
11. Secure Shell Protocol (SSH)
SSH digunakan sebagai komunikasi remote dengan tampilan antar muka CLI.
SSH digunakan pada penelitian ini untuk menjalankan perintah-perintah ROS
ataupun sekadar melakukan editing file. SSH digunakan karena kecepatannya
dalam melakukan proses perintah dan hemat penggunaan memory,
dibandingkan dengan VNC yang sedikit lambat dan banyak memakan memory.
SSH hanya digunakan pada saat-saat tertentu ketika VNC tidak memungkinkan
atau sangat sulit untuk dilakukan.
12. Rviz
Rviz merupakan aplikasi Linux berbasis GUI yang mendukung visualisasi dari
Robot Operating System (ROS). Pada penelitian ini Rviz digunakan sebagai
aplikasi untuk melihat sejauh mana pembuatan peta atau mapping bekerja.
Hampir setiap pengembangan ROS pasti menggunakan Rviz sebagai aplikasi
visualisasinya. Rviz memiliki fitur pendukung utama untuk melakukan navigasi,
yakni 2D Nav Goal. Fitur ini mengirimkan data koordinat pada peta yang
dijadikan fixed frame, sehingga ketika robot sudah dilengkapi dengan sistem
navigasi maka akan terbuat sebuah path planning sehingga robot akan mengikuti
arahan dari jalur yang sudah dibuat dan di visualisasikan melalui Rviz. Gambar
4.12 merupakan tampilan antar muka aplikasi Rviz.
98
Gambar 4.51 Aplikasi rqt dan plugins yang tersedia
14. Hoverboard driver
Hoverboard driver adalah sekumpulan file dengan bahasa C yang
menjembatani antara perangkat lunak dengan firmware hoverboard.
Hoverboard driver berisikan library-library yang dibutuhkan untuk
mengendalikan hoverboard melalui node ROS. Driver ini tidaklah ditulis dari awal
oleh penulis, melainkan menggunakan driver dari pengembang lain yang
membuat tim untuk fokus mengembangkan driver hoverboard, link yang
digunakan sebagai berikut: https://github.com/alex-makarov/hoverboard-driver.
Dengan menggunakan driver ini kita dapat melakukan kontrol pada hoverboard
dengan mudah, hal ini karena driver ini sudah berisikan kode untuk komunikasi
firmware dengan komputer. Hoverboard driver memiliki beberapa parameter
pada paketnya yang digunakan sebagai konfigurasi pada robot. Nilai dari
parameter ini disesuaikan berdasarkan data nyata pada pengukuran robot
sesungguhnya. Tabel parameter yang digunakan paket Hoverboard driver dapat
dilihat pada tabel 4.10.
Tabel 4.14 Parameter yang dipakai Hoverboard Driver
Sumber: (wiki.ros.org, 2022)
Parameter Keterangan
left_wheel Nama sambungan roda kiri
right_wheel Nama sambungan roda kanan
pose_covariance_diagonal Diagonal matriks kovarians untuk penerbitan
pose odometri
twist_covariance_diagonal Diagonal matriks kovarians untuk penerbitan
twist odometri
99
wheel_separation_multiplier Ini digunakan untuk menjelaskan perbedaan
antara model robot dan robot nyata.
cmd_vel_timeout Periode yang diizinkan (dalam s) diperbolehkan
antara dua perintah kecepatan yang berurutan.
base_frame_id Digunakan untuk mengisi child_frame_id dari
pesan Odometry dan TF
enable_odom_tf Publikasikan ke TF secara langsung atau tidak
wheel_radius Jari-jari roda. Diharapkan mereka semua
memiliki ukuran yang sama.
wheel_separation Jarak roda kiri dan kanan.
allow_multiple_cmd Menyetel ini ke true akan mengizinkan lebih
dari satu penerbit pada topik masukan,
_vel_publishers
~/cmd_vel. Menyetel ini ke false akan
menyebabkan pengontrol mengerem jika ada
lebih dari satu penerbit di ~/cmd_vel.
linear/x/min_velocity Kecepatan linier minimum (dalam m/s).
linear/x/max_velocity Kecepatan linier maksimum (dalam m/s)
linear/x/max_acceleration Percepatan linier maksimum (dalam m/s^2)
angular/z/min_velocity Kecepatan sudut minimum (dalam rad/s).
Mengatur ini ke 0,0 akan menonaktifkan rotasi
berlawanan arah jarum jam.
angular/z/max_velocity Kecepatan sudut maksimum (dalam rad/s)
angular/z/min_acceleration Percepatan sudut minimum (dalam rad/s^2).
Saat tidak ditentukan, -max_acceleration
digunakan.
100
Parameter Keterangan
serial_port nama port serial yang digunakan di sistem
Anda.
serial_baudrate kecepatan baud port serial
frame_id Frame id untuk perangkat rplidar.
inverted menunjukkan apakah LIDAR dipasang terbalik.
angle_compensate menunjukkan apakah pengemudi perlu
melakukan kompensasi sudut.
scan_mode mode pemindaian lidar.
102
sel gratis dalam kisaran.
update_factor_occupied Pengubah pembaruan peta untuk pembaruan
sel yang ditempati dalam kisaran
laser_z_min_value Tinggi minimum [m] relatif terhadap bingkai
pemindai laser untuk titik akhir pemindaian
laser yang akan digunakan oleh sistem
laser_z_max_value Tinggi maksimum [m] relatif terhadap bingkai
pemindai laser untuk titik akhir pemindaian
laser yang akan digunakan oleh sistem
pub_map_odom_transform Tentukan apakah transformasi map->odom
harus dipublikasikan oleh sistem.
tf_map_scanmatch Nama frame saat memublikasikan scanmatcher
ke transformasi peta seperti yang dijelaskan
_transform_frame_name
dalam parameter sebelumnya.
103
imu_used Aktifkan atau nonaktifkan input sensor IMU
vo_used Aktifkan atau nonaktifkan input sensor visual
odometry
gps_used Aktifkan atau nonaktifkan input sensor GPS
debug Parameter yang menentukan apakah akan
dijalankan dalam mode debug atau tidak.
104
menginisialisasi filter dengan distribusi
Gaussian.
initial_pose_a Pose mean awal (yaw), digunakan untuk
menginisialisasi filter dengan distribusi
Gaussian.
105
rintangan akan dibersihkan dari peta biaya saat
mencoba mengosongkan ruang di peta
recovery_behavior_enabled Apakah akan mengaktifkan perilaku pemulihan
move_base atau tidak untuk mencoba
mengosongkan ruang
clearing_rotation_allowed Menentukan apakah robot akan mencoba
melakukan rotasi di tempat atau tidak saat
mencoba mengosongkan ruang
shutdown_costmaps Menentukan apakah akan mematikan peta
biaya node atau tidak saat move_base dalam
keadaan tidak aktif
oscillation_timeout Berapa lama dalam detik untuk memungkinkan
osilasi sebelum menjalankan perilaku
pemulihan
oscillation_distance Berapa jauh dalam meter robot harus bergerak
agar dianggap tidak berosilasi
planner_frequency Laju dalam Hz untuk menjalankan loop
perencanaan global
max_planning_retries Berapa kali untuk memungkinkan perencanaan
ulang sebelum menjalankan perilaku
pemulihan
107
peta statis.
rolling_window Apakah akan menggunakan versi rolling
windows pada costmap. Jika parameter
static_map disetel ke true, parameter ini harus
disetel ke false.
track_unknown_space Menentukan apakah akan melacak ruang apa
di peta biaya yang tidak diketahui, artinya
tidak ada pengamatan tentang sel yang
terlihat dari sumber sensor mana pun.
Tabel 4.23 Konfigurasi yang digunakan pada Local Planner (algoritme DWA)
Sumber: (wiki.ros.org, 2022)
Parameter Keterangan
acc_lim_x Batas percepatan x robot dalam meter/detik^2
acc_lim_y Batas percepatan y robot dalam
meter/detik^2
acc_lim_th batas percepatan rotasi robot dalam
radian/detik^2
max_vel_trans Nilai absolut dari kecepatan translasi
maksimum untuk robot dalam m/s
min_vel_trans Nilai absolut dari kecepatan translasi minimum
untuk robot dalam m/s
max_vel_x Kecepatan x maksimum untuk robot dalam
m/s.
min_vel_x Kecepatan x minimum untuk robot dalam m/s,
negatif untuk gerak mundur.
max_vel_y Kecepatan y maksimum untuk robot dalam
m/s
min_vel_y Kecepatan y minimum untuk robot dalam m/s
max_rot_vel Nilai mutlak kecepatan putar maksimum robot
dalam rad/s
min_rot_vel Nilai mutlak kecepatan putar minimum robot
dalam rad/s
yaw_goal_tolerance Toleransi dalam radian untuk pengontrol
dalam yaw/rotasi saat mencapai tujuannya
xy_goal_tolerance Toleransi dalam meter untuk pengontrol
109
dalam jarak x & y saat mencapai tujuan
latch_xy_goal_tolerance Jika toleransi tujuan terkunci, jika robot
pernah mencapai lokasi tujuan xy, ia hanya
akan berputar di tempatnya, bahkan jika itu
berakhir di luar toleransi tujuan saat
melakukannya.
sim_time Parameter untuk simulasi. Jumlah waktu untuk
meneruskan simulasi lintasan dalam hitungan
detik
sim_granularity Parameter untuk simulasi. Ukuran langkah,
dalam meter, untuk mengambil antara titik
pada lintasan tertentu
vx_samples Parameter untuk simulasi. Jumlah sampel yang
akan digunakan saat menjelajahi ruang
kecepatan x
vy_samples Parameter untuk simulasi. Jumlah sampel yang
akan digunakan saat menjelajahi ruang
kecepatan y
vth_samples Parameter untuk simulasi. Jumlah sampel yang
akan digunakan saat menjelajahi ruang
kecepatan theta
controller_frequency Parameter untuk simulasi. Frekuensi di mana
pengontrol ini akan dipanggil dalam Hz.
Menggunakan “searchParam” untuk membaca
parameter dari ruang nama induk jika tidak
disetel di ruang nama pengontrol.
path_distance_bias Pembobotan untuk seberapa banyak
pengontrol harus tetap dekat dengan jalur
yang diberikan
goal_distance_bias dia menimbang berapa banyak pengontrol
harus berusaha mencapai tujuan lokalnya, juga
mengontrol kecepatan
occdist_scale Pembobotan untuk seberapa banyak
pengontrol harus berusaha menghindari
rintangan
forward_point_distance Jarak dari titik pusat robot untuk
menempatkan titik penilaian tambahan, dalam
meter
stop_time_buffer Jumlah waktu robot harus berhenti sebelum
tabrakan agar lintasan dianggap valid dalam
110
hitungan detik
scaling_speed Nilai absolut dari kecepatan untuk mulai
menskalakan jejak robot, dalam m/s
max_scaling_factor Faktor maksimum untuk menskalakan jejak
robot
publish_cost_grid Apakah akan mempublikasikan kisi biaya yang
akan digunakan perencana saat merencanakan
atau tidak
oscillation_reset_dist Seberapa jauh robot harus berjalan dalam
meter sebelum tanda osilasi direset
prune_plan Menentukan apakah akan memakan rencana
saat robot bergerak di sepanjang jalan. Jika
disetel ke true, poin akan jatuh dari akhir
rencana setelah robot bergerak 1 meter
melewatinya.
111
BAB E PERANCANGAN DAN IMPLEMENTASI
112
dijadikan sebagai penghubung sisi bagian belakang. Terakhir, papan ke-4
dibiarkan utuh yang nantinya digunakan sebagai penutup chassis. Untuk detail
bentuk dari chassis ini dapat dilihat pada gambar 5.1. Selanjutnya untuk bagian
chassis robot beroda yang merupakan komponen utama robot sebagai
penggerak dan dudukan motor. Terdiri dari gabungan hasil 3D print dan
komponen elektronik hoverboard. Keseluruhan desain 3D ini dapat dilihat pada
gambar 5.2.
113
Gambar 5.54 Assembling semua bagian chassis belakang robot
115
Gambar 5.57 Desain Keseluruhan Prototype Sistem Tampak Samping
116
Gambar 5.58 Desain Keseluruhan Prototype Sistem Tampak Atas Tanpa
Penutup
117
Gambar 5.60 Rancangan struktur komponen perangkat keras sistem
Pada gambar 5.9 dapat diperhatikan bahwa sistem akan menggunakan
perangkat utama yang saling terintegrasi satu sama lain menggunakan beberapa
protokol komunikasi sebagai penghubung. Perangkat utama yang dimaksud
adalah Jetson Nano, personal komputer dan hoverboard motherboard,
sedangkan protokol komunikasi penghubung yang dimaksud adalah serial
protocol dengan FTDI mini USB dan VNC dengan jaringan Wi-Fi. Namun karena
Jetson Nano tidak memiliki modul Wi-Fi pada komponen utamanya, maka kita
perlu menambahkan modul berupa Wi-Fi dongle yang ditancapkan pada salah
satu port USB Jetson Nano. Berikut ini merupakan penjelasan mengenai sistem
kendali utama robot. Personal komputer atau komputer server berkomunikasi
dengan Jetson Nano menggunakan protokol komunikasi Virtual Network
Computing (VNC) pada jaringan yang saling terhubung dengan Wi-Fi yang sama.
Sedangkan untuk Jetson Nano dengan hoverboard motherboard menggunakan
118
komunikasi data serial USART melalui perangkat elektronik bernama FTDI mini
USB converter.
Pada gambar tersebut, kita juga dapat mengetahui bahwa setiap perangkat
utama memiliki catu daya yang berbeda, misalnya saja pada Jetson Nano yang
membutuhkan tegangan masukan sebesar 3-5 volt, maka catu daya yang paling
tepat adalah dengan menggunakan power bank dengan output tegangan
maksimal 5V, sedangkan motherboard hoverboard menggunakan sumber
tegangan dari baterai Li-Po 10S2P. Hal ini dilakukan untuk menghindari
kerusakan pada Jetson Nano di karena kan besarnya tegangan yang dikeluarkan
baterai Li-Po yakni 36V.Jetson Nano menerima catu daya pada power bank
dengan tegangan sebesar 5V dan kuat arus sebesar 1A melalui kabel USB 2.0 to
micro USB. Daya ini juga akan dipergunakan untuk menenagai sensor RPLIDAR
dan GY-521 IMU MPU6050.
119
RX TX Pin data dengan komunikasi serial USART
V5 VCC Pin daya pada laser
GND GND Pin ground motor
MOTOCLT DTR Pin sinyal motor
VMOTO VCC Pin daya pada motor
120
SCL GPIO 5 (SCL) Pin data dengan komunikasi serial I2C
SDA GPIO 3 (SDA) Pin data dengan komunikasi serial I2C
Pada gambar 5.12 terdapat diagram skematis dari sistem gerak robot dimana
motherboard hoverboard yang berfungsi sebagai driver motor BLDC, terhubung
langsung dengan kabel phase, hall, on/off, charger dan supply. Kabel phase dan
kabel hall sudah dijelaskan sebelumnya, yakni untuk mengendalikan dan
mendapatkan data odometry dari motor. Kabel on/off power button terhubung
dengan soket yang sudah tersedia pada motherboard begitu pula dengan kabel
lainnya. Untuk dapat berkomunikasi dengan Jetson Nano, kita perlu
121
menghubungkan motherboard dengan kabel sensor. Kedua sisi sensor
motherboard hoverboard memiliki total 8 buah kabel yang masing-masing terdiri
dari VCC, RX, TX, dan ground. Kedua kabel ini seharusnya terhubung dengan
sensor giroskop pada hoverboard, namun kita bisa membuang bagian sensor
tersebut dan mengambil bagian motherboard saja. Namun secara pabrikan,
hoverboard tidak dibuat untuk tujuan ini maka diperlukan proses flashing
firmware pada motherboard hoverboard.
Dari kedua port sensor ini, kita hanya akan menggunakan kabel sensor
sebelah kanan. Kabel sebelah kanan digunakan karena tegangannya dapat
mentoleransi komunikasi data dengan tegangan maksimal 5V. Hal ini dilakukan
untuk menghindari kerusakan pada Jetson Nano yang mana jika kita
menggunakan kabel sensor sebelah kiri maka motherboard bisa saja
mengirimkan data dengan voltase sebesar 15V. Voltase sebesar itu tidak akan
bisa diterima oleh Jetson Nano dan hal ini akan memicu terjadi short aliran listrik
sehingga Jetson Nano bisa saja terbakar. Kemudian perlu diperhatikan juga, dari
ke-4 kabel sensor kanan (VCC, RX, TX, GND) hanya menggunakan 3 dari 4, jadi
bagian pin yang digunakan hanyalah RX, TX, dan GND. Pin VCC tidak digunakan
karena akan mengakibatkan short circuit dan membuat rusak motherboard.
Dengan menghubungkan pin VCC berarti sama saja kita menabrakkan dua
tegangan dengan voltase yang jauh berbeda. Output dari pin VCC pada sensor
kanan motherboard memiliki nilai tegangan yang tinggi yaitu 15V, maka dari itu
pin ini akan digunting dan di isolasi agar tidak membahayakan jikalau lupa bahwa
pin VCC ini tidak boleh digunakan.
Selanjutnya untuk terhubung dengan Jetson Nano melalui USB port,
dibutuhkan sebuah adapter yang mampu menjembatani komunikasi USART
antar perangkat. Dalam penelitian ini digunakan FTDI mini USB untuk
menjembatani kabel RX/TX sensor kanan dengan RX/TX Jetson Nano. Untuk
penjelasan lebih lanjut mengenai apa saja pin-pin yang digunakan dari
motherboard dapat dilihat pada tabel 5.3.
Tabel 5.26 Penjelasan Konfigurasi Pinout Motherboard Hoverboard
Sumber : (github.com/EFeru/hoverboard-firmware-hack-FOC, 2018)
Pin motherboard Pin tujuan Deskripsi
XT60 VCC 36V Pin daya motherboard
XT60 GND GND Pin ground motherboard
Button Pin Button Pin Pin tombol power kondisi on
Latch Pin Latch Pin Pin tombol power kondisi off
Charger Charger
Konektor charger baterai
Connector Connector
Phase A LEFT Phase A Pin daya untuk kutub A pada motor kiri
Phase B LEFT Phase B Pin daya untuk kutub B pada motor kiri
122
Phase C LEFT Phase C Pin daya untuk kutub C pada motor kiri
HALL A LEFT HALL A Pin data encoder pada motor kiri
HALL B LEFT HALL B Pin data encoder pada motor kiri
HALL C LEFT HALL C Pin data encoder pada motor kiri
GND LEFT GND Pin ground encoder motor kiri
VCC LEFT VCC Pin daya encoder motor kiri
Phase A RIGHT Phase A Pin daya untuk kutub A pada motor kanan
Phase B RIGHT Phase B Pin daya untuk kutub B pada motor kanan
Phase C RIGHT Phase C Pin daya untuk kutub C pada motor kanan
HALL A RIGHT HALL A Pin data encoder pada motor kanan
HALL B RIGHT HALL B Pin data encoder pada motor kanan
HALL C RIGHT HALL C Pin data encoder pada motor kanan
GND RIGHT GND Pin ground encoder motor kanan
VCC RIGHT VCC Pin daya encoder motor kanan
Pin USART untuk data yang terhubung
TX/USART3 RX
dengan FTDI ke Jetson Nano
Pin USART untuk data yang terhubung
PB11/RX/USART3 TX
dengan FTDI ke Jetson Nano
GND GND Pin ground USART3
3.3V MCU 3.3V Pin daya STLink untuk flashing
SWCLK MCU SWCLK Pin clock STLink untuk flashing
GND MCU GND Pin ground STLink untuk flashing
Pin data input dan output STLink untuk
SWDIO MCU SWDIO
flashing
124
sistem ini terbagi menjadi tiga proses besar yakni proses persiapan awal, proses
utama dan proses bagian. Proses persiapan awal merupakan proses yang
pertama kali harus dijalankan sebelum memasuki proses utama maupun proses
bagian. Sedangkan proses utama merupakan proses yang mencakup keseluruhan
sistem. Proses utama terdiri dari 2 hal utama yang menjadi pokok penelitian ini,
yakni proses pemetaan dan proses navigasi. Sedangkan proses bagian atau sub
proses merupakan pecahan proses utama atau penjelasan lebih lanjut mengenai
bagian-bagian yang memiliki algoritme lagi di dalam proses utama yang
tujuannya adalah untuk memperjelas beberapa fungsi pada proses tertentu.
E.1.3.1 Perancangan Persiapan Awal Motherboard Hoverboard
126
Gambar 5.67 Pinout dari Motherboard ke STLink
Tabel 5.27 Pinout STLink V2
STLINK Pin Motherboard Pin Keterangan
VCC MCU VCC Pin daya untuk proses flash
SWDIO MCU SWDIO Pin data
GND GND Pin ground
SWCLK MCU SWCLK Pin clock
Pada gambar 5.16 dapat dilihat bahwa secara berurutan posisi pin flash
firmware terdiri dari VCC, SWCLK, GND, SWDIO. Port ini dihubungkan dengan
kabel jumper male to female menuju STLink untuk selanjutnya ditancapkan ke
port USB ke personal komputer. Setelah semuanya terhubung maka langkah
selanjutnya adalah membuka aplikasi STM32Cube Programmer dan klik tombol
“Connect”, jika muncul pesan error berarti pemasangan pin belum sesuai,
lakukan evaluasi koneksi pada pin dan lakukan koneksi ulang. Jika pesan pada
aplikasi mengatakan berhasil terkoneksi dan muncul suara dari buzzer
motherboard, maka komputer dan motherboard sudah terkoneksi satu dengan
yang lain.
Selanjutnya untuk motherboard hoverboard proses ini dimulai dengan
menghapus seluruh data yang ada di dalam chip motherboard. Hal ini bertujuan
untuk menghapus kode program pabrik yang ditulis oleh pembuat hoverboard.
Proses lebih detail mengenai sub-awal motherboard: erase chip ini dapat dilihat
pada gambar 5.17.
127
Gambar 5.68 Diagram alir sub-awal motherboard: Hapus penuh motherboard
chip
Pada gambar 5.17 dapat dilihat bahwa setelah didapatkan input berupa
status STLink: Connect langkah selanjutnya adalah membuka aplikasi STM32
kemudian pindah ke tab “Erasing & Programming”, sedikit info pada tab ini kita
dapat menghapus keseluruhan data chip atau juga dapat melakukan flash data
menggunakan data file biner. Setelah berada di tab ini lakukan proses hapus total
dengan klik tombol “Full chip erase” dan jika muncul output pesan error maka
koneksi port ke motherboard terputus, lakukan proses koneksi ulang dan kembali
lakukan hal yang sama, akan tetapi jika tidak maka proses penghapusan akan
dilakukan dan pesan sukses akan muncul.
Langkah selanjutnya adalah melakukan konfigurasi firmware yang merupakan
proses utama dalam tahap persiapan awal motherboard. Konfigurasi firmware
dibutuhkan untuk menyesuaikan jenis board yang digunakan berdasarkan
kebutuhannya pengembang. Proses lebih detail mengenai sub-awal
motherboard: Konfigurasi Firmware ini dapat dilihat pada gambar 5.18.
128
Gambar 5.69 Diagram alir sub-awal motherboard: Konfigurasi firmware
Pada gambar 5.18 dapat dilihat bahwa proses konfigurasi ini dimulai dengan
melakukan download firmware hoverboard hack FOC, hal ini dikarenakan proses
pemrograman firmware sangat sulit jika dilakukan sendiri oleh penulis dan pada
batasan masalah disebutkan bahwa firmware yang digunakan merupakan
firmware open source dari pengembang lain. Firmware hoverboard ini sudah
selesai ditulis, maka dari itu kita hanya perlu melakukan konfigurasi pada
beberapa baris kode untuk menyesuaikan dengan kebutuhan penelitian. File
yang menjadi fokus modifikasi adalah file config maka dari itu pada proses
selanjutnya adalah dengan melakukan edit beberapa baris pada file config.h yang
akan dijelaskan lebih lanjut pada sub bab implementasi.
Tahap selanjutnya adalah melakukan flashing motherboard, jadi setelah
firmware sudah siap dan file config sudah di edit, langkah selanjutnya adalah
dengan melakukan building code menjadi sebuah file dengan ekstensi biner,
semua proses ini dirangkum pada diagram alir yang dapat dilihat pada gambar
5.19. Berdasarkan diagram pada gambar 5.19, hal pertama yang harus dilakukan
adalah membuka folder hoverboard-firmware-hack-FOC pada aplikasi VSCode
dan pastikan bahwa ekstensi PlatformIO sudah terpasang. Langkah selanjutnya
adalah melakukan edit pada file platform.io dan hilangkan komentar pada baris
ke 13, hal ini dilakukan untuk menjalankan flash dengan mode USART. Setelah itu
lakukan proses compile dengan klik ikon centang atau “PlatformIO: build”, jika
muncul pesan error maka terdapat kesalahan pada proses edit file config maka
dari itu lakukan proses edit dan compile ulang. Namun jika tidak terdapat pesan
error maka terjadi proses compiling dan akan menghasilkan output berupa file
firmware.bin. Maka langkah selanjutnya adalah dengan melakukan proses
upload file firmware.bin dengan klik ikon panah atau “PlatformIO: upload”, jika
komputer tidak terhubung dengan motherboard maka akan muncul pesan error
dan lakukan proses koneksi kembali, namun jika tidak maka terjadi proses
penyalinan data biner pada file firmware.bin ke chip motherboard dan pesan
sukses akan muncul.
129
Gambar 5.70 Diagram alir sub-awal motherboard: Flashing motherboard
Maka dengan begini proses persiapan awal motherboard telah selesai.
Motherboard sudah berada dalam kondisi siap digunakan dan sudah bisa
dikendalikan menggunakan kabel sensor motherboard bagian kanan. Setelah
proses ini maka berlanjut pada tahap persiapan awal perangkat Jetson Nano.
130
E.1.3.2 Perancangan Persiapan Awal Jetson Nano
131
Pada gambar 5.20 dapat dilihat bahwa diagram alir dimulai dengan sub-
proses komunikasi antara Jetson Nano dengan komputer server melalui Virtual
Network Computing (VNC). Proses ini sangat berguna karena untuk melakukan
mapping dibutuhkan sebuah kendali remote yang mampu menampilkan aplikasi
GUI, metode yang paling mudah adalah dengan menggunakan VNC viewer.
Detail mengenai sub-awal ini dapat dilihat pada gambar 5.21.
Gambar 5.72 Diagram alir sub-awal Jetson Nano: Komunikasi dengan komputer
server via VNC
Pada gambar 5.21 dapat dilihat bahwa proses ini diawali dengan
menghubungkan Jetson Nano dan komputer server pada jaringan Wi-Fi yang
132
sama, dalam hal ini adalah jaringan Wi-Fi tethering smartphone. Kemudian
setelah mereka terhubung maka langkah selanjutnya adalah mengetahui alamat
IP wlan0 yang diberikan router ke Jetson Nano. Untuk Jetson Nano, proses
koneksi pada jaringan Wi-Fi dilakukan menggunakan monitor eksternal yang
terhubung dengan port HDMI. Dengan menggunakan perintah pada terminal $ ip
addr, maka akan muncul output berupa IP address dari terminal. Alamat IP yang
diambil adalah alamat dengan jaringan wlan0 dan header inet (IPv4).
Langkah selanjutnya adalah memastikan apakah VNC server sudah terpasang
pada Jetson Nano, jika belum maka lakukan instalasi VNC server, namun jika
sudah terpasang maka berlanjut pada proses selanjutnya yaitu koneksi VNC
server dengan VNC viewer yang ada pada komputer server. Dengan input yang
diketahui dari IP address Jetson Nano, maka kita bisa melakukan koneksi remote
dengan memasukkan IP address tersebut pada kolom input “IP Address” di
aplikasi VNC viewer yang sudah di install apda komputer server. Setelah alamat
dimasukkan maka VNC viewer akan memeriksa apakah alamat IP mendapatkan
akses koneksi atau tidak, jika alamat IP salah maka akan muncul pesan error dan
lakukan ulang proses pencarian alamat dari wlan Jetson Nano. Namun jika tidak
terdapat pesan error maka VNC akan meminta password dari Jetson Nano dan
komputer sudah terhubung dengan mikrokomputer utama via koneksi remote
VNC.
Tahap selanjutnya setelah koneksi remote melalui VNC adalah melakukan
koneksi remote melalui SSH. Selain menggunakan protokol VNC untuk koneksi
dengan komputer server, pada penelitian ini dilakukan juga koneksi
menggunakan protokol SSH. Hal ini dikarenakan pada proses yang tidak terlalu
membutuhkan tampilan GUI, misalnya melakukan pengujian pada sensor,
menampilkan output melalui terminal, dan sebagainya. Dengan menggunakan
SSH kita dapat menghemat penggunaan sumber daya dari prosesor Jetson Nano,
selain itu komunikasi dengan SSH tidak terkendala dengan keterlambatan
tampilan seperti yang terjadi pada VNC. Keterlambatan ini akan berpengaruh
pada proses pengujian, maka dari itu digunakan SSH karena komunikasinya yang
sederhana. Diagram alir mengenai proses koneksi dengan SSH dapat dilihat pada
gambar 5.22.
133
Gambar 5.73 Diagram alir sub-awal Jetson Nano: Komunikasi komputer server
dengan SSH
Tahap awal pada sub-awal ini kurang lebih sama seperti koneksi dengan VNC
yakni menghubungkan Jetson Nano dan komputer server dengan jaringan Wi-Fi
yang sama. Setelah itu cari IP address yang diberikan router pada setiap device
134
yang terhubung dengan perintah terminal $ ip addr dan menghasilkan output
berupa IP address dari Jetson Nano.
Pada komputer server pastikan SSH sudah terpasang dengan melakukan
check version dengan perintah terminal $ ssh -v localhost, jika tidak terpasang
maka lakukan instalasi SSH. Namun jika SSH sudah terpasang maka inputkan
alamat IP tadi pada terminal dengan menambahkan prefix ssh di depannya $ ssh
usernamePC@192.168.xx.xxx pada komputer server. Setelah menjalankan
perintah tersebut maka terminal komputer server akan melakukan koneksi
dengan IP Jetson Nano, jika muncul pesan error yang mengatakan bahwa public
key tidak tersedia maka lakukan instalasi public key pada terminal dengan
perintah $ ssh-keygen -t rsa -b 4096, kemudian lakukan proses ulang input
alamat IP. Namun jika tidak ada pesan error, maka akan dilakukan seleksi kondisi
lagi apakah Jetson Nano dan komputer server sudah terhubung dengan jaringan
Wi-Fi yang sama apa tidak. Jika tidak terhubung maka akan dikembalikan pada
proses menghubungkan Jetson Nano dan komputer server pada jaringan Wi-Fi
yang sama. Namun jika sudah terhubung dengan jaringan Wi-Fi yang sama maka
akan muncul pesan koneksi SSH berhasil dan proses koneksi remote SSH selesai.
Pada tahap ini kita akan melakukan proses persiapan awal pada Jetson Nano.
Proses tersebut terdiri dari instalasi sistem operasi dan instalasi ROS pada Jetson
Nano. Pada sistem operasi Jetson Nano yang tercatat saat ini pada tahun 2022,
NVIDIA tidak melakukan dukungan pada OS versi 20.04 (Focal Fossa) maka dari
itu penulis akan menggunakan OS versi 18.04 (Bionic). Kemudian pada
middleware ROS, aplikasi ini juga mengikuti versi dari OS yang digunakan. Setiap
OS akan didukung oleh versi ROS yang berbeda, misalnya untuk Ubuntu 18 maka
versi ROS yang hanya bisa di install adalah versi ROS Melodic. Sedangkan untuk
OS Ubuntu 20 maka versi ROS yang hanya bisa di install adalah versi Noetic.
Perbedaan versi ini tidak mempengaruhi kinerja sistem maupun urutan proses
yang akan dijalankan pada penelitian ini. Setelah melakukan instalasi, selanjutnya
adalah konfigurasi bash dan port pada Linux, untuk detail lebih lanjut akan
dijelaskan pada subbab implementasi sistem. Kemudian yang terakhir adalah
melakukan konfigurasi komunikasi dengan aplikasi VNC dan SSH, serta pastikan
bahwa Jetson Nano mampu terhubung dengan komputer server dengan jaringan
Wi-Fi yang sama, dalam penelitian ini penulis menggunakan jaringan tethering
Wi-Fi hotspot smartphone. Setelah ketiga proses dilakukan maka tahap persiapan
awal pada Jetson Nano sudah selesai dan bisa lanjut ke tahap berikutnya
E.1.3.3 Perancangan Program Utama
Perancangan program utama akan mencakup program utama pada penelitian
ini, mulai dari melakukan pembacaan data sensor, lokalisasi, pemetaan,
perencanaan jalur, dan terakhir navigasi robot. Semua proses ini sesuai dengan
tujuan penelitian maka dari itu di klasifikasikan sebagai program utama sistem.
135
Gambar 5.74 Diagram Alir Program Utama
Pada gambar 5.15 merupakan diagram alir perancangan program utama akan
berisi poin-poin penting dari sebuah program secara keseluruhan. Semua urutan
program ini sudah mencakup hal-hal atau kriteria yang dibutuhkan untuk
membuat robot dengan sistem Autonomous Mobile Robot yaitu pemetaan dan
navigasi. Hal pertama yang dilakukan dalam program ini adalah mendapatkan
data dari ketiga sensor, yakni RPLIDAR, IMU dan encoder. Tiap sensor
menghasilkan keluaran yang berbeda-beda, mulai dari RPLIDAR yang
menghasilkan output berupa data laser scan, IMU yang menghasilkan output
berupa perubahan kecepatan atau percepatan gerak robot, dan odometry yang
menghasilkan output berupa posisi dan orientasi dari roda. Output data dari
sensor RPLIDAR dan odometry tidak perlu dilakukan kalibrasi karena nilainya
yang sudah sesuai dengan nilai aslinya. Proses kalibrasi hanya dilakukan pada
sensor IMU saja, ini dikarenakan sensor IMU membutuhkan nilai kalibrasi pada
setiap kondisi peletakannya. Jadi jika sensor IMU dipindahkan ke tempat lain,
maka perlu dilakukan kalibrasi ulang.
Proses selanjutnya adalah mapping atau pemetaan, proses ini merupakan
sub proses dari program utama, jadi penjelasan lebih lanjut mengenai pemetaan
ini akan di bahas pada sub nomor berikutnya. Proses mapping ini kurang lebih
136
berguna untuk mendapatkan data “map” pada suatu area di dalam ruangan.
Map ini nantinya akan berguna untuk proses navigasi, hal ini dikarenakan untuk
melakukan navigasi diperlukan proses path planning atau perencanaan jalur.
Sehingga untuk mendapatkan data koordinat tujuan dan melakukan
perencanaan jalur dibutuhkan data peta 2D, agar koordinat dapat di inisialisasi.
Setelah map berhasil dibuat, maka langkah selanjutnya adalah menyimpan map
tersebut ke dalam folder yang sudah disiapkan khusus untuk file-file map.
Proses selanjutnya adalah autonomous navigation atau navigasi otonom,
proses ini merupakan sub proses juga dari program utama, seperti sub proses
pemetaan, sub proses navigasi juga akan dijelaskan pada sub nomor berikutnya.
Proses navigasi merupakan tujuan atau goals dari penelitian ini. Proses navigasi
hanya bisa dilakukan setelah proses pemetaan maka dari itu posisinya harus di
bawah pemetaan. Sistem robot yang melakukan navigasi dengan otonom atau
self-drive akan memiliki diagram alir yang sangat rumit. Hal ini karena navigasi
dengan kemudi otonom membutuhkan kendali secara otomatis, salah satu
caranya adalah dengan menggunakan path planning. Ketika jalur sudah
ditentukan maka komputer akan memandu jalannya sistem sesuai dengan
bentuk jalur itu sendiri. Hal ini bisa dilakukan karena sistem akan mengikuti
koordinat yang sudah ditentukan pada path planning sehingga proses navigasi
dapat berjalan secara otomatis.
E.1.3.4 Perancangan Program Pemetaan
Perancangan program pemetaan akan mencakup proses pembacaan sensor,
lokalisasi, dan hector mapping. Program pemetaan merupakan salah satu
program utama yang harus dijalankan terlebih dahulu sebelum melakukan
program navigasi. Diagram alir dari perancangan program pemetaan akan
ditunjukkan pada gambar 5.16.
137
Gambar 5.75 Diagram alir program pemetaan
Pada gambar 5.16 merupakan diagram alir program pemetaan dengan proses
yang saling berkaitan satu paket dengan paket lainnya. Diagram ini menjelaskan
mengenai node-node yang dibutuhkan dalam proses mapping, seperti
menjalankan semua driver sensor, fusion sensor, lokalisasi, transform frame, dan
parameter-parameter yang digunakan. Semua hal ini dijadikan satu proses besar
138
yang dinama kan mapping dan perencanaan dari proses-proses ini digabungkan
ke dalam file dengan ekstensi .launch yang diberi nama mapping.launch.
Semua proses ini bermula dari perintah terminal yang di input oleh komputer
server yang terhubung baik itu dengan VNC ataupun dengan SSH. Seperti yang
sudah dijelaskan pada bab 2 mengenai ROS dan perintah-perintah yang ada di
dalamnya, terdapat prefix perintah “roslaunch” yang akan sering digunakan pada
penelitian ini. Prefix ini memiliki arti, jalankan sebuah ros system core yang
melakukan launching dengan file yang memiliki ekstensi .launch kemudian
jalankan semua perintah-perintah di dalamnya. Jadi isi dari file launch ini adalah
kumpulan perintah untuk menjalankan node-node beserta parameternya. File ini
juga dapat memanggil file launch lainnya sehingga terjadi sinkronisasi karena
tidak perlu memanggil file launch secara berulang-ulang. Setelah kita
menjalankan file launch mapping, maka yang terjadi selanjutnya adalah terminal
Linux akan berperan sebagai aplikasi berbasis konsol yang menampilkan hasil log
berupa sistem mapping. Terminal tidak bisa di terminate atau dihentikan, karena
akan berakibat pada node-node yang sedang dijalankan pada terminal tersebut.
Saat terminal menjalankan file launch, maka hal yang pertama kali dilakukan
adalah melakukan pengecekan driver dan paket yang digunakan. Pengecekan ini
hanya berlaku pada node yang disebutkan di dalam file launch tersebut, apabila
terdapat dependency yang kurang atau ada beberapa paket pendukung node
tersebut yang belum di install maka terminal akan menampilkan pesan error dan
meminta untuk menginstall paket tersebut. Selain menampilkan error karena
paket yang belum terinstall, terkadang terminal juga menampilkan pesan
warning jika terdapat kekurangan pada kode program. Selanjutnya jika semua
driver dan paket sudah tersedia di dalam dependency ROS maka langkah
selanjutnya adalah mengirimkan input dari ketiga sensor, yaitu pemindaian laser
oleh RPLIDAR, akselerasi pergerakan robot oleh IMU, dan putaran odometry roda
oleh encoder motor.
Perlu diperhatikan juga bahwa selagi proses ini berlangsung, secara paralel
terminal juga menjalankan aplikasi Rviz dan juga menampilkan aplikasi rqt robot
steering. Kedua aplikasi ini merupakan aplikasi pendukung yang memiliki
tugasnya masing-masing. Aplikasi Rviz digunakan sebagai visualisasi proses untuk
monitoring hasil dari mapping. Hasil pemosisian robot akan terus di perbaharui
secara simultan, sehingga kita dapat melihat posisi robot pada saat itu .
Sedangkan aplikasi rqt robot steering digunakan menjadi remote control untuk
mengendali robot selama proses mapping terjadi. Aplikasi ini melakukan
subscribe pada topik hoverboard_velocity_controller/cmd_vel yang mana topik
ini akan publish topik geometry/pose untuk menggerakkan motor, sehingga
robot dapat bergerak dan sekaligus memberikan input data sensor odometry
untuk digunakan pada proses selanjutnya.
Melanjutkan proses sebelumnya yaitu mengirimkan input sensor ke
mikrokomputer, proses ini dilakukan oleh driver pada masing-masing sensor.
Driver ini memiliki library untuk melakukan pembacaan data sensor, pengolahan
data, dan mengirimkan pesan catatan jika terjadi error. Pada input sensor
139
pemindaian laser, driver rplidar_ros berperan untuk membaca data dari
tembakan laser dan mengubahnya ke dalam data point cloud. Point cloud
merupakan setumpuk data array yang terdiri dari ribuan data per detiknya,
dalam implementasinya point cloud ini berupa data jarak yang berhasil di scan.
Pada umumnya sensor yang menggunakan teknik laser hanya mampu
mengirimkan jarak pada satu titik fokus, namun sensor RPLIDAR memiliki
kemampuan untuk melakukan pemindaian secara 360 derajat dengan hasil 2000
sampel per satu putaran penuh. Untuk memproses semua data tersebut
dibutuhkan driver khusus yang sudah disediakan oleh RoboPeak yang bisa di
download langsung pada website atau repository GitHub.
Selagi proses pemindaian laser dilakukan, sistem ROS di dalam OS Linux juga
melakukan pembacaan data akselerasi dari sensor IMU. Sensor ini akan
memberikan data berupa percepatan pada sumbu x, y, dan z. X merupakan
sumbu horizontal, jadi nilai akselerasi sumbu x akan berubah jika robot bergerak
secara horizontal seperti berbelok kiri atau kanan. Sedangkan sumbu Y
merupakan sumbu vertikal, jadi nilai akselerasi dari sumbu y akan berubah jika
robot bergerak secara linier seperti maju atau mundur. Sedangkan nilai Z secara
default akan bernilai 9.8 m/s mengikuti percepatan gravitasi bumi. Kemudian
masih di proses paralel yang sama sistem ROS akan menjalankan node odometry
dimana driver hoverboard akan melakukan pembacaan sensor encoder. Data
yang didapatkan adalah sebuah pose dan orientasi dari roda, jadi perubahan
orientasi dari posisi sebelumnya dapat terlihat langsung. Nilai dari orientasi dan
posisi ini dihitung berdasarkan nilai putaran tiap rodanya yang dikonversi ke
dalam radian per sekon.
Proses selanjutnya mulai menggunakan algoritme yang digunakan pada
penelitian ini. Setelah mendapatkan data dari sensor, sistem pada program
mapping akan menggunakan dua algoritme yakni algoritme Hector SLAM dan
algoritme EKF. Pada data sensor laser yang sudah menjadi data jarak ke dalam
point cloud, langkah selanjutnya adalah memberikan data tersebut ke algoritme
Hector SLAM. Untuk proses lebih lanjut dari proses algoritme ini akan dijelaskan
pada sub pembahasan selanjutnya. Namun pada intinya, data dari point cloud
akan dijadikan sumber untuk melakukan occupancy grid sehingga tercipta peta.
Selain itu algoritme ini juga melakukan pemosisian dan mampu mengetahui
lokasi keberadaan sistem dengan menggunakan data dari sensor. Di sisi
seberang, kedua data dari sensor IMU dan odometry akan digabungkan
menggunakan algoritme Extended Kalman Filter. Hal ini dilakukan untuk
mendapatkan lokasi robot secara akurat karena menggunakan data odometry
dan percepatan, sehingga terhindar dari kesalahan pembacaan lokasi. Hasil dari
algoritme ini akan menghasilkan data berupa odom_combined yang berisi pose
dan orientasi dari robot dengan filter dari data sensor IMU.
Setelah melakukan langkah-langkah di atas, kita akan mendapatkan output
berupa posisi robot dan mendapatkan data transformasi secara simultan. Output
dari robot position transformation ini merupakan serangkaian proses lokalisasi.
Setelah mendapatkan lokalisasi secara simultan langkah selanjutnya adalah
140
mengirimkan data posisi tersebut ke aplikasi Rviz sehingga apa yang ada di
monitor server sesuai dengan posisi aslinya. Selagi proses robot position and
transformation terjadi, algoritme Hector SLAM terus mengirimkan data
occupancy grid ke dalam peta sementara di aplikasi Rviz. Proses ini berulang
terus menerus hingga di dapatkan gambaran sebuah peta pada suatu tempat
yang semua areanya sudah di scan oleh RPLIDAR. Jika gambar peta sudah
terbentuk dan dirasa proses mapping sudah cukup, maka langkah selanjutnya
adalah menyimpan hasil mapping tersebut ke dalam file yang nantinya dapat
digunakan pada proses navigasi. Proses penyimpanan map ini akan menghasilkan
output berupa file dengan ekstensi yaml dan pgm. Setelah map di simpan maka
kita dapat mengakhiri proses mapping dengan cara melakukan terminate pada
terminal menggunakan keyboard shortcut ctrl+c. Maka dengan ini perancangan
proses mapping atau pemetaan sudah selesai.
E.1.3.5 Perancangan Proses Algoritme Hector SLAM
Hector adalah singkatan dari Heterogeneous Cooperating Team of Robots.
Pada penelitian ini algoritme Hector SLAM digunakan hanya untuk proses
mapping. Maka dari itu sub proses yang terjadi pada algoritme hanya berfokus
pada hector mapping.
141
Hector adalah singkatan dari Heterogeneous Cooperating Team of Robots.
Pada penelitian ini algoritme Hector SLAM digunakan hanya untuk proses
mapping. Maka dari itu sub proses yang terjadi pada algoritme ini terdiri dari 2
fokus utama yaitu hector mapping, pose estimation, map server dan geotiff.
E.1.3.6 Perancangan Sub Proses Hector Mapping
Hector adalah singkatan dari Heterogeneous Cooperating Team of Robots.
Pada penelitian ini algoritme Hector SLAM digunakan hanya untuk proses
mapping. Maka dari itu sub proses yang terjadi pada algoritme hanya berfokus
pada hector mapping.
142
Gambar 5.77 Diagram alir sub proses Hector Mapping
Algoritma dimulai dengan menerima/memindai topik dari sensor pemindai
laser. Kemudian mengubah titik akhir pemindaian menjadi bingkai
“/base_stabilized”. Setelah itu, titik akhir dibuang di luar batas:
laser_z_min_value, laser_z_max_value, laser_min_dist dan laser_max_dist.
E.1.3.7 Perancangan Sub Proses Pose Estimation
Hector adalah singkatan dari Heterogeneous Cooperating Team of Robots.
Pada penelitian ini algoritme Hector SLAM digunakan hanya untuk proses
mapping. Maka dari itu sub proses yang terjadi pada algoritme hanya berfokus
pada hector mapping.
143
Gambar 5.78 Diagram alir sub proses Pose Estimation
E.1.3.8 Perancangan Proses Algoritme Extended Kalman Filter (EKF)
Hector adalah singkatan dari Heterogeneous Cooperating Team of Robots.
Pada penelitian ini algoritme Hector SLAM digunakan hanya untuk proses
mapping. Maka dari itu sub proses yang terjadi pada algoritme hanya berfokus
pada hector mapping.
144
E.1.3.9 Perancangan Program Navigasi
145
Perancangan program navigasi akan mencakup proses pembacaan sensor,
lokalisasi, deteksi halangan, perencanaan jalur, dan navigasi robot. Program
navigasi merupakan bagian dari program utama yang hanya bisa dilakukan
setelah proses pemetaan selesai. Diagram alir dari perancangan keseluruhan
program ditunjukkan pada gambar 5.17. Pada gambar tersebut kita dapat
melihat bahwa terdapat banyak proses yang saling terkait satu dengan yang lain.
Diagram alir ini menjelaskan mengenai node-node yang dibutuhkan dalam
proses mapping, seperti menjalankan semua driver sensor kemudian membaca
sensor, penggabungan sensor teknik fusion sensor, lokalisasi, transform frame,
dan parameter-parameter yang digunakan. Semua hal ini dijadikan satu proses
besar yang diberi nama autonomous_nav. Semua proses yang terjadi di dalam
program ini digabungkan ke dalam file dengan ekstensi launch.
146
Gambar 5.80 Implementasi Perangkat Keras Sistem Mainboard Robot (Tampak
Samping)
148
E.2.2.1 Implementasi Perangkat Lunak Konfirgurasi Flashing, Firmware dan
Driver
Sistem pusat kontrol terdirikan atas mikrokomputer jetson nano zero w yang
mana telah terpasang sistem operasi Jetson nano OS (32-bit) versi 2020-08-20.
Setelah sistem telah berjalan maka diperlukan melakukan pemasangan
mosquitto untuk membuat sebuah MQTT broker. Tahapannya sebagaimana
berikut:
Tabel 5.28 Konfigurasi yang digunakan untuk flashing motherboard
Pemasangan dan instalisasi mosquitto MQQT
1 Lorem ipsum dolor sit amet, consectetur adipiscing elit,
sed do eiusmod tempor incididunt ut labore et dolore magna
aliqua.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum
dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident,
sunt in culpa qui officia deserunt mollit anim id est laborum.
Tabel 5.29 Kode yang perlu dimodifikasi pada firmware
Pemasangan dan instalisasi mosquitto MQQT
1 Lorem ipsum dolor sit amet, consectetur adipiscing elit,
sed do eiusmod tempor incididunt ut labore et dolore magna
aliqua.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum
dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident,
sunt in culpa qui officia deserunt mollit anim id est laborum.
E.2.2.2 Implementasi Perangkat Lunak Komunikasi robot dengan master
Sistem pusat kontrol terdirikan atas mikrokomputer jetson nano zero w yang
mana telah terpasang sistem operasi Jetson nano OS (32-bit) versi 2020-08-20.
Setelah sistem telah berjalan maka diperlukan melakukan pemasangan
mosquitto untuk membuat sebuah MQTT broker. Tahapannya sebagaimana
berikut:
Tabel 5.30 Konfigurasi yang digunakan untuk flashing motherboard
Pemasangan dan instalisasi mosquitto MQQT
1 Lorem ipsum dolor sit amet, consectetur adipiscing elit,
sed do eiusmod tempor incididunt ut labore et dolore magna
aliqua.
149
Tabel 5.31 Kode yang perlu dimodifikasi pada firmware
Pemasangan dan instalisasi mosquitto MQQT
1 Lorem ipsum dolor sit amet, consectetur adipiscing elit,
sed do eiusmod tempor incididunt ut labore et dolore magna
aliqua.
150
BAB F PENGUJIAN
151
adipiscing elit, sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua.
Hasil Pengujian Lorem ipsum dolor sit amet, consectetur
adipiscing elit, sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua.
152
BAB G PENUTUP
Dalam bab penutup, penulis akan menyampaikan hasil yang telah penulis
dapatkan selama melakukan penelitian ini. Hasil yang didapatkan berasal dari
data yang telah penulis terima dari pengujian. Adanya hasil tersebut,
memungkinkan penulis untuk menarik kesimpulan atas rumusan masalah yang
sebelumnya diutarakan. Kemudian karena kondisi penelitian ini yang juga
terbatas pada kemampuan maupun waktu yang ada, akan ada saran kedepannya
guna mengembangkan lebih lanjut sistem atau bahkan diterapkan pada kondisi
rill nantinya.
G.1 Kesimpulan
Atas hasil pengujian yang penulis dapatkan selama melakukan penelitian ini,
maka penulis dapat menarik kesimpulan untuk menjawab rumusan masalah yang
ada. Berikut adalah kesimpulan dari penulis:
1. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim
veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea
commodo consequat. Duis aute irure dolor in reprehenderit in voluptate
velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat
cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id
est laborum.
2. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim
veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea
commodo consequat. Duis aute irure dolor in reprehenderit in voluptate
velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat
cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id
est laborum.
3. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim
veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea
commodo consequat. Duis aute irure dolor in reprehenderit in voluptate
velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat
cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id
est laborum.
G.2 Saran
Selama pelaksanaan penelitian ini, terdapat beberapa kekurangan yang
penulis miliki. Sehingga penulis yakin bahwasannya sistem ini dapat
dikembangkan lebih lanjut secara bersama-sama dengan peneliti lainnya di
Indonesia maupun di dunia. Oleh karena itu penulis telah merangkum beberapa
saran yang mungkin dapat dilanjutkan oleh peneliti selanjutnya
153
1. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim
veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea
commodo consequat. Duis aute irure dolor in reprehenderit in voluptate
velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat
cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id
est laborum.
2. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim
veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea
commodo consequat. Duis aute irure dolor in reprehenderit in voluptate
velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat
cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id
est laborum.
3. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim
veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea
commodo consequat. Duis aute irure dolor in reprehenderit in voluptate
velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat
cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id
est laborum.
154
DAFTAR REFERENSI
Azka, R.M., 2020. Paket Pengiriman J&T Express Tembus 3 Juta Per Hari. [daring]
Tersedia pada: <https://ekonomi.bisnis.com/read/20200529/98/1246208/paket-
pengiriman-jt-express-tembus-3-juta-per-hari> [Diakses 9 Feb 2022].
Chelly, M. dan Samama, N., 2009. New techniques for indoor positioning,
combining deterministic and estimation methods. [daring] hal.1–12. Tersedia
pada: <https://hal.archives-ouvertes.fr/hal-01367483> [Diakses 15 Des 2021].
Computer Hope, 2021. Linux make command information and examples. [daring]
Computer Hope. Tersedia pada:
<https://www.computerhope.com/unix/umake.htm> [Diakses 16 Des 2021].
Debeunne, C. dan Vivet, D., 2020. A review of visual-lidar fusion based
simultaneous localization and mapping. Sensors (Switzerland), .
Delgado-Mata, C., Velázquez, R. dan Gutiérrez, C.A., 2012. A Differential-Drive
Mobile Robot Driven by an Ethology Inspired Behaviour Architecture. Procedia
Technology, [daring] 3, hal.157–166. Tersedia pada: <www.sciencedirect.com>
[Diakses 10 Feb 2022].
Dihni, V.A., 2021. Konsumen Lebih Pilih Jasa Pengiriman Tepat Waktu saat
Belanja Online | Databoks. [daring] Tersedia pada:
<https://databoks.katadata.co.id/datapublish/2021/10/27/konsumen-lebih-pilih-
jasa-pengiriman-tepat-waktu-saat-belanja-online> [Diakses 15 Des 2021].
Dudek, G., 2010. Computational Principles of Mobile Robotics - Gregory Dudek,
Michael Jenkin - Google Books. [daring] Tersedia pada:
<https://books.google.co.id/books/about/Computational_Principles_of_Mobile_
Robot.html?id=0cggAwAAQBAJ&redir_esc=y> [Diakses 11 Feb 2022].
Erlangga, D., D, E., S, R.H., Sunarto, S., T.S, K.R. dan G, F., 2019. SISTEM NAVIGASI
MOBILE ROBOT DALAM RUANGAN BERBASIS AUTONOMOUS NAVIGATION.
Journal of Mechanical Engineering and Mechatronics, [daring] 4(2), hal.78–86.
Tersedia pada:
<http://e-journal.president.ac.id/presunivojs/index.php/JMEM/article/view/
823> [Diakses 27 Agu 2021].
Fernandes, Baptista, A., Silva, F.J.G., Campilho, R.D.S.G. dan Pinto, G.F.L., 2019.
Intralogistics and industry 4.0: designing a novel shuttle with picking system.
Procedia Manufacturing, 38, hal.1801–1832.
Galov, A. dan Moschevikin, A., 2014. Simultaneous localization and mapping in
indoor positioning systems based on round trip time-of-flight measurements and
inertial navigation. IPIN 2014 - 2014 International Conference on Indoor
Positioning and Indoor Navigation, hal.457–464.
Hasan, H.S., Hussein, M., Saad, S.M. dan Dzahir, M.A.M., 2018. An overview of
local positioning system: Technologies, techniques and applications.
International Journal of Engineering and Technology(UAE), 7(3), hal.1–5.
155
Hu, J., Bhowmick, P. dan Lanzon, A., 2021. Group Coordinated Control of
Networked Mobile Robots with Applications to Object Transportation. IEEE
Transactions on Vehicular Technology, 70(8), hal.8269–8274.
Intel, 2020. Autonomous Mobile Robot (AMR) Overview: Types and Use Cases-
Intel. [daring] Tersedia pada:
<https://www.intel.com/content/www/us/en/robotics/autonomous-mobile-
robots/overview.html> [Diakses 15 Des 2021].
Kohlbrecher, S., Meyer, J., Graber, T., Petersen, K., Klingauf, U. dan Von Stryk, O.,
2014. Hector open source modules for autonomous mapping and navigation with
rescue robots. Lecture Notes in Computer Science (including subseries Lecture
Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), 8371 LNAI,
hal.624–631.
Lain, M.J., Brandon, J. dan Kendrick, E., 2019. Design Strategies for High Power
vs. High Energy Lithium Ion Cells. Batteries 2019, Vol. 5, Page 64, [daring] 5(4),
hal.64. Tersedia pada: <https://www.mdpi.com/2313-0105/5/4/64/htm>
[Diakses 16 Des 2021].
Maddison, R. dan Ni Mhurchu, C., 2009. Global positioning system: A new
opportunity in physical activity measurement. International Journal of Behavioral
Nutrition and Physical Activity, [daring] 6(1), hal.73. Tersedia pada:
<https://ijbnpa.biomedcentral.com/articles/10.1186/1479-5868-6-73> [Diakses
16 Des 2021].
Marin-Plaza, P., Hussein, A., Martin, D. dan De La Escalera, A., 2018. Global and
Local Path Planning Study in a ROS-Based Research Platform for Autonomous
Vehicles. Journal of Advanced Transportation, 2018.
Moore, T. dan Stouch, D., 2016. A generalized extended Kalman filter
implementation for the robot operating system. In: Advances in Intelligent
Systems and Computing. [daring] hal.335–348. Tersedia pada:
<http://www.cra.com/robot_localization_ias13.zip> [Diakses 11 Feb 2022].
Portugal, D., Araújo, A. dan Couceiro, M.S., 2020. A Guide for 3D Mapping with
Low-Cost Sensors Using ROS. In: Studies in Computational Intelligence. [daring]
Springer Verlag.hal.3–23. Tersedia pada:
<https://www.researchgate.net/publication/334113111_A_Guide_for_3D_Mapp
ing_with_Low-Cost_Sensors_Using_ROS> [Diakses 16 Des 2021].
Putra, T.A., Muliady, M. dan Setiadikarunia, D., 2020. Navigasi Indoor Berbasis
Peta pada Robot Beroda dengan Platform Robot Operating System. Jetri : Jurnal
Ilmiah Teknik Elektro, [daring] 17(2), hal.121. Tersedia pada:
<https://trijurnal.lemlit.trisakti.ac.id/jetri/article/view/5447> [Diakses 27 Agu
2021].
Reilly, E.D., 2003. Motherboard | Encyclopedia of Computer Science. [daring]
Encyclopedia of Computer Science. Tersedia pada:
<https://dl.acm.org/doi/10.5555/1074100.1074618> [Diakses 20 Okt 2021].
156
Riva, M., 2021. Understanding Forecast Accuracy: MAPE, WAPE, WMAPE |
Baeldung on Computer Science. [daring] Tersedia pada:
<https://www.baeldung.com/cs/mape-vs-wape-vs-wmape> [Diakses 13 Feb
2022].
Romaine, E., 2020. Autonomous Mobile Robot (AMRs) Types and Uses. [daring]
Tersedia pada: <https://www.conveyco.com/types-and-applications-of-amrs/>
[Diakses 15 Des 2021].
Saat, S., Airini, A.M., Salihin Saealal, M., Wan Norhisyam, A.R. dan Farees Ezwan,
M.S., 2019. Hector SLAM 2D Mapping for Simultaneous Localization and Mapping
(SLAM). Journal of Engineering and Applied Sciences, 14(16), hal.5610–5615.
Saputro, T.T., 2016. Pengenalan Robot Operating System - embeddednesia.com.
[daring] embeddednesia.com. Tersedia pada:
<https://embeddednesia.com/v1/pengenalan-robot-operating-system/> [Diakses
16 Des 2021].
Setiawan, R., 2021. Memahami Apa Itu Internet of Things. [daring] Dicoding.
Tersedia pada: <https://www.dicoding.com/blog/apa-itu-internet-of-things/>
[Diakses 10 Feb 2022].
Takleh, T.T.O., Bakar, N.A., Rahman, S.A., Hamzah, R. dan Aziz, Z.A., 2018. A brief
survey on SLAM methods in autonomous vehicle. International Journal of
Engineering and Technology(UAE), 7(4), hal.38–43.
Utomo, E.B., 2015. Autonomous Mobile Robot Berbasis Landmark Menggunakan
Particle Filter Dan Occupancy Grid Maps Untuk Navigasi, Lokalisasi dan Mapping.
[daring] hal.1–93. Tersedia pada: <https://repository.its.ac.id/id/eprint/41577>
[Diakses 25 Agu 2021].
Wang, H., 2012. Design and Implementation of Brushless DC Motor Drive and
Control System. Procedia Engineering, 29, hal.2219–2224.
Williman, A.O. dan Jelinek, H.J., 1976. INTRODUCTION TO LSI MICROPROCESSOR
DEVELOPMENTS. Computer, 9(6), hal.34–46.
Ylonen, T., 2006. The Secure Shell (SSH) Protocol Architecture. [daring] Tersedia
pada: <https://www.rfc-editor.org/info/rfc4251> [Diakses 13 Feb 2022].
Zetes, 2021. Autonomous mobile robots (AMR), latest warehouse technology |
Zetes. [daring] Zetes. Tersedia pada: <https://www.zetes.com/en/warehouse-
solutions/autonomous-mobile-robots> [Diakses 16 Des 2021].
Zhang, X., Lai, J., Xu, D., Li, H. dan Fu, M., 2020. 2D Lidar-Based SLAM and Path
Planning for Indoor Rescue Using Mobile Robots. Journal of Advanced
Transportation, 2020.
157
LAMPIRAN A PERSYARATAN FISIK DAN TATA LETAK
A.1 Kertas
Kertas yang digunakan adalah HVS 70 mg berukuran A4. Apabila terdapat
gambar-gambar yang menggunakan kertas berukuran lebih besar dari A4,
hendaknya dilipat sesuai dengan aturan yang berlaku. Pengetikan hanya
dilakukan pada satu muka kertas, tidak bolak balik.
A.2 Margin
Batas pengetikan naskah adalah sebagai berikut :
A.4 Spasi
Jarak standar antar baris dalam badan teks adalah satu spasi. Jarak antar
paragraf, antara judul bab dan judul subbab, antara judul subbab dan badan
teks, dan seterusnya, dapat dilihat pada masing-masing style yang digunakan dan
tersedia dalam template untuk skripsi ini.
158
LAMPIRAN B PERSYARATAN FISIK DAN TATA LETAK
B.1 Margin
Batas pengetikan naskah adalah sebagai berikut :
B.3 Spasi
Jarak standar antar baris dalam badan teks adalah satu spasi. Jarak antar
paragraf, antara judul bab dan judul subbab, antara judul subbab dan badan
teks, dan seterusnya, dapat dilihat pada masing-masing style yang digunakan dan
tersedia dalam template untuk skripsi ini.
159
LAMPIRAN C PERSYARATAN FISIK DAN TATA LETAK
C.1 Margin
Batas pengetikan naskah adalah sebagai berikut :
C.3 Spasi
Jarak standar antar baris dalam badan teks adalah satu spasi. Jarak antar
paragraf, antara judul bab dan judul subbab, antara judul subbab dan badan
teks, dan seterusnya, dapat dilihat pada masing-masing style yang digunakan dan
tersedia dalam template untuk skripsi ini.
160
LAMPIRAN D PERSYARATAN FISIK DAN TATA LETAK
D.1 Margin
Batas pengetikan naskah adalah sebagai berikut :
D.3 Spasi
Jarak standar antar baris dalam badan teks adalah satu spasi. Jarak antar
paragraf, antara judul bab dan judul subbab, antara judul subbab dan badan
teks, dan seterusnya, dapat dilihat pada masing-masing style yang digunakan dan
tersedia dalam template untuk skripsi ini.
161
LAMPIRAN E PERSYARATAN FISIK DAN TATA LETAK
E.1 Margin
Batas pengetikan naskah adalah sebagai berikut :
E.3 Spasi
Jarak standar antar baris dalam badan teks adalah satu spasi. Jarak antar
paragraf, antara judul bab dan judul subbab, antara judul subbab dan badan
teks, dan seterusnya, dapat dilihat pada masing-masing style yang digunakan dan
tersedia dalam template untuk skripsi ini.
162