Anda di halaman 1dari 162

IMPLEMENTASI PEMETAAN PADA ROBOT BERGERAK

OTONOM UNTUK NAVIGASI DALAM RUANGAN


MENGGUNAKAN SENSOR RPLIDAR, ALGORITME HECTOR
SLAM, DAN ALGORITME DIJKSTRA

IMPLEMENTASI PEMETAAN DAN NAVIGASI DALAM


RUANGAN PADA AUTONOMOUS MOBILE ROBOT
MENGGUNAKAN ALGORITMA HECTOR SLAM DAN DIJKSTRA

PURWARUPA ROBOT BERGERAK OTONOM UNTUK


MAPPING DAN INDOOR NAVIGATION PADA PLATFORM
ROBOT OPERATING SYSTEM (ROS)

IMPLEMENTASI SISTEM NAVIGASI OTOMATIS DALAM


RUANGAN PADA ROBOT BERODA MENGGUNAKAN
PLATFORM ROBOT OPERATING SYSTEM (ROS)

IMPLEMENTASI SISTEM NAVIGASI OTOMATIS DALAM


RUANGAN PADA ROBOT BERODA MENGGUNAKAN MULTI-
SENSOR DAN MULTI-ALGORITHM

SKRIPSI

Untuk memenuhi sebagai persyaratan


memperoleh gelar Sarjana Teknik

Disusun oleh:
Bambang Gunawan Tanjung
NIM: 185150300111051
PROGRAM STUDI TEKNIK KOMPUTER
JURUSAN TEKNIK INFORMATIKA
FAKULTAS ILMU KOMPUTER
UNIVERSITAS BRAWIJAYA
MALANG
2021
PERSETUJUAN

IMPLEMENTASI PEMETAAN PADA ROBOT BERGERAK OTONOM UNTUK NAVIGASI


DALAM RUANGAN MENGGUNAKAN SENSOR RPLIDAR, ALGORITME HECTOR
SLAM DAN ALGORITME DIJKSTRA

SKRIPSI

Diajukan untuk memenuhi sebagian persyaratan


memperoleh gelar Sarjana Teknik

Disusun Oleh :
Bambang Gunawan Tanjung
NIM: 185150300111051

Dosen Pembimbing I Dosen Pembimbing 2

Rizal Maulana, S.T., M.T., M.Sc. Rakhmadhany Primananda, S.T., M.Kom.


NIK: 2016078910091001 NIK: 2016098604061001
PERNYATAAN ORISINALITAS

Saya menyatakan dengan sebenar-benarnya bahwa sepanjang pengetahuan


saya, di dalam naskah skripsi ini tidak terdapat karya ilmiah yang pernah
diajukan oleh orang lain untuk memperoleh gelar akademik di suatu perguruan
tinggi, dan tidak terdapat karya atau pendapat yang pernah ditulis atau
diterbitkan oleh orang lain, kecuali yang secara tertulis disitasi dalam naskah ini
dan disebutkan dalam daftar referensi.
Apabila ternyata di dalam naskah skripsi ini dapat dibuktikan terdapat unsur-
unsur plagiasi, saya bersedia skripsi ini digugurkan dan gelar akademik yang telah
saya peroleh (sarjana) dibatalkan, serta diproses sesuai dengan peraturan
perundang-undangan yang berlaku (UU No. 20 Tahun 2003, Pasal 25 ayat 2 dan
Pasal 70).

Malang, 20 Februari 2022

Bambang Gunawan Tanjung


NIM: 185150300111051
PRAKATA

Syukur Alhamdulillah penulis panjatkan ke hadirat Allah SWT atas berkat


rahmat, hidayah dan ridho-Nya sehingga penulis dapat menyelesaikan tugas
akhir “skripsi” sebagai salah satu syarat yang diperlukan untuk menyelesaikan
Program Sarjana (S1) Program Studi Teknik Komputer Fakultas Ilmu Komputer
Universitas Brawijaya. Dalam ke penulisan skripsi ini, penulis telah menempuh
mata kuliah pendukung sistem kendali (CCE62160) dan sistem cerdas
(CCE61151), guna mengimplementasikan topik pada riset ini. Selain itu dalam
penyusunan skripsi ini, tidak akan terselesaikan tanpa adanya bantuan serta
kemurahan hati dari berbagai pihak. Maka dari itu tidak lupa penulis panjatkan
terima kasih kepada seluruh pihak yang telah memberikan inspirasi, bantuan,
dan dukungan moral ataupun finansial. Ucapan terima kasih juga penulis
sampaikan kepada Bapak Rizal Maulana, S.T., M.T., M.Sc. selaku dosen
pembimbing pertama dan Bapak Rakhmadhany Primananda, S.T., M.Kom. selaku
dosen pembimbing kedua atas bimbingan motivasi, saran dan diskusi yang
diberikan kepada penulis, mulai dari persiapan usulan penelitian hingga penulis
mampu menyelesaikan skripsi ini dengan baik.
Selanjutnya dengan penuh rasa hormat penulis mengucapkan terima kasih
kepada kedua orang tua tercinta, Syukri Amsyah Tanjung dan Misnawati, karena
semua keberhasilan ini tidak luput dari jasa, pengorbanan, limpahan cinta kasih
sayang, dukungan moral dan finansial serta doa beliau yang selalu dipanjatkan
setiap hari.
Dalam kesempatan ini penulis juga mengucapkan terima kasih sebesar-
besarnya kepada:
1. Bapak Achmad Basuki, S.T., M.M.G., Ph.D. selaku ketua Jurusan Teknik
Informatika Fakultas Ilmu Komputer Universitas Brawijaya.
2. Bapak Eko Setiawan, S.T., M.Eng., Ph.D. selaku ketua Program Studi
Teknik Komputer Fakultas Ilmu Komputer Universitas Brawijaya.
3. Bapak Gembong Edhi Setyawan, S.T., M.T., Bapak Dahnial Syauqy, S.T.,
M.T., M.Sc. dan Ibu Edita Rosana Widasari, S.T., M.T., M.Eng., Ph.D.
selaku dosen yang pernah menjadi dosen penasihat akademik saya
selama melaksanakan perkuliahan di Universitas Brawijaya.
4. Bapak dan Ibu dosen yang telah mengajarkan saya mata kuliah selama di
teknik komputer maupun memberikan dukungan selama perkuliahan
saya.
5. Teman-teman terdekat saya yang selalu memberikan dukungan selama
perkuliahan dan mendorong saya untuk cepat menyelesaikan skripsi.
6. Teman-teman seperjuangan teknik komputer baik dari angkatan 2016,
2017, 2018, 2019, dan 2020 yang juga membantu saya pada pengerjaan
skripsi ini maupun selama perkuliahan saya.
7. Nikolas Fauth dan kawan-kawan yang atas dasar idenya untuk mendaur
ulang hoverboard bekas, sehingga penulis menemukan ide untuk
membuat robot yang dibuat pada skripsi ini
8. Anggota Komunitas Hoverboard Hack Internasional yang senantiasa
membantu menjawab pertanyaan ketika penulis sedang mengalami
kesulitan.
9. Anggota Komunitas Robaka yang senantiasa melakukan diskusi mengenai
perangkat lunak hoverboard dan menanggapi setiap error yang terjadi
yang dilakukan oleh setiap orang yang sedang melakukan riset.
Akhir kata, penulis menyadari bahwasanya dalam penyusunan skripsi ini
terdapat banyak kekurangan, baik berupa tata ke penulisan ataupun aspek
lainnya di dalam skripsi ini. Untuk itu, penulis menerima dengan lapang dada atas
segala kritikan ataupun saran yang diberikan oleh pihak pembaca ataupun
peneliti lainnya agar ke depannya penulis dapat memperbaiki karya tulis ini
ataupun karya tulis selanjutnya menjadi lebih baik lagi.
Malang, 20 Desember 2021

Penulis
bambanggunawan887@gmail.com
ABSTRAK

Bambang Gunawan Tanjung, Implementasi Robot Pengantar Barang


Menggunakan Sensor RPLIDAR Dan Kombinasi Algoritme Simultaneous
Localization And Mapping Pada Robot Operating System.
Pembimbing: Rizal Maulana, S.T., M.T., M.Sc. dan Rakhmadhany Primananda,
S.T., M. Kom.
Bagian ini diisi dengan abstrak dalam Bahasa Indonesia. Abstrak adalah
uraian singkat (umumnya 200-300 kata) yang merupakan inti sari dari sebuah
skripsi. Abstrak membantu pembaca untuk mendapatkan gambaran secara cepat
dan akurat tentang isi dari sebuah skripsi. Melalui abstrak, pembaca juga dapat
menentukan apakah akan membaca skripsi lebih lanjut. Oleh karena itu, abstrak
sebaiknya memberikan gambaran yang padat tetapi tetap jelas dan akurat
tentang (1) apa dan mengapa penelitian dikerjakan: sedikit latar belakang,
pertanyaan atau masalah penelitian, dan/atau tujuan penelitian; (2) bagaimana
penelitian dikerjakan: rancangan penelitian dan metodologi/metode dasar yang
digunakan dalam penelitian; (3) hasil penting yang diperoleh: temuan utama,
karakteristik artefak, atau hasil evaluasi artefak yang dibangun; (4) hasil
pembahasan dan kesimpulan: hasil dari analisis dan pembahasan temuan atau
evaluasi artefak yang dibangun, yang dikaitkan dengan pertanyaan/tujuan
penelitian.
Yang harus dihindari dalam sebuah abstrak diantarnya (1) penjelasan latar
belakang yang terlalu panjang; (2) sitasi ke pustaka lainnya; (3) kalimat yang tidak
lengkap; (3) singkatan, jargon, atau istilah yang membingungkan pembaca,
kecuali telah dijelaskan dengan baik; (4) gambar atau tabel; (5) angka-angka yang
terlalu banyak.
Di akhir abstrak ditampilkan beberapa kata kunci (normalnya 5-7) untuk
membantu pembaca memosisikan isi skripsi dengan area studi dan masalah
penelitian. Kata kunci, beserta judul, nama penulis, dan abstrak biasanya
dimasukkan dalam basis data perpustakaan. Kata kunci juga dapat di indeks
dalam basis data sehingga dapat digunakan untuk proses pencarian tulisan ilmiah
yang relevan. Oleh karena itu pemilihan kata kunci yang sesuai dengan area
penelitian dan masalah penelitian cukup penting. Pemilihan kata kunci juga bisa
didapatkan dari referensi yang dirujuk.

Kata kunci: abstrak, skripsi, inti sari, kata kunci, artefak


ABSTRACT

Bambang Gunawan Tanjung, Implementation of Goods Delivery Robot Using


RPLIDAR Sensor and Combination of Simultaneous Localization and Mapping
Algorithm on Robot Operating System.
Supervisor: Rizal Maulana, S.T., M.T., M.Sc. and Rakhmadhany Prim Ananda,
S.T., M. Kom.
This section is filled with abstracts in Indonesian. Abstract is a short
description (usually 200-300 words) which is the essence of a thesis. Abstract
helps readers to get a quick and accurate picture of the contents of a thesis.
Through the abstract, the reader can also determine whether to read the thesis
further. Therefore, the abstract should provide a concise but clear and accurate
description of (1) what and why the research was carried out: a little background,
research questions or problems, and/or research objectives; (2) how the research
is carried out: the research design and the basic methodology/methods used in
the research; (3) important results obtained: main findings, characteristics of
artifacts, or evaluation results of built artifacts; (4) the results of the discussion
and conclusions: the results of the analysis and discussion of the findings or
evaluation of the built artifacts, which are related to the research
questions/objectives.
Things to avoid in an abstract include (1) a background explanation that is
too long; (2) citation to other libraries; (3) incomplete sentences; (3)
abbreviations, jargon, or terms that confuse the reader, unless they are well
explained; (4) pictures or tables; (5) the numbers are too many.
At the end of the abstract, several keywords are displayed (normally 5-7) to
help the reader position the content of the thesis with the area of study and
research problem. Keywords, along with title, author name, and abstract are
usually entered in the library database. Keywords can also be indexed in the
database so that they can be used for the process of searching for relevant
scientific papers. Therefore, the selection of keywords that are appropriate to the
research area and research problem is quite important. Selection of keywords
can also be obtained from referenced references.

Keywords: abstract, thesis, essence, keywords, artifact


DAFTAR ISI

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

Tabel 2.1 Tinjauan Penelitian Sebelumnya..............................................................8


Tabel 2.2 Pseudocode Algoritme Dijkstra..............................................................34
Tabel 2.3 Pseudocode Dynamic Window Approach..............................................35
Tabel 2.4 Contoh prediksi penjualan dengan metode statistik WAPE..................54
Tabel 4.1 Kebutuhan Fungsional Sistem................................................................62
Tabel 4.2 Spesifikasi Motherboard Hoverboard....................................................64
Tabel 4.3 Spesifikasi Mikrokontroler Jetson Nano 3B...........................................66
Tabel 4.4 Spesifikasi Motor DC Brushless..............................................................67
Tabel 4.5 Spesifikasi Catu Daya untuk Suplai Motherboard Hoverboard..............68
Tabel 4.6 Spesifikasi Catu Daya untuk Suplai Jetson Nano....................................68
Tabel 4.7 Spesifikasi RPLIDAR A1...........................................................................69
Tabel 4.8 Spesifikasi Sensor IMU GY-521 MPU6050..............................................70
Tabel 4.9 Datasheet STLink V2 mini USB...............................................................71
Tabel 4.10 Parameter yang dipakai Hoverboard Driver........................................78
Tabel 4.11 Parameter yang digunakan RPLIDAR ROS Driver.................................80
Tabel 4.12 Parameter yang digunakan MPU6050 Driver......................................80
Tabel 4.13 Parameter yang digunakan Hector Mapping.......................................81
Tabel 4.15 Parameter yang digunakan EKF Localization.......................................82
Tabel 4.14 Parameter yang digunakan AMCL........................................................83
Tabel 4.16 Parameter yang digunakan Move Base...............................................84
Tabel 5.1 Penjelasan pinout sensor RPLIDAR........................................................93
Tabel 5.2 Penjelasan pinout sensor GY-521 IMU MPU6050..................................94
Tabel 5.3 Penjelasan Konfigurasi Pinout Motherboard Hoverboard.....................95
Tabel 5.4 Pinout STLink V2...................................................................................100
Tabel 5.5 Konfigurasi yang digunakan untuk flashing motherboard...................116
Tabel 5.6 Kode yang perlu dimodifikasi pada firmware......................................116
Tabel 5.7 Konfigurasi yang digunakan untuk flashing motherboard...................116
Tabel 5.8 Kode yang perlu dimodifikasi pada firmware......................................117
Tabel 6.1 Deskripsi Pengujian Mainboard Robot................................................118
Tabel 6.2 Deskripsi Pengujian Mainboard Robot................................................119
DAFTAR GAMBAR

Gambar 2.1 Ilustrasi Autonomous Mobile Robot...................................................13


Gambar 2.2 Ilustrasi robot sedang membawa barang di dalam gudang..............15
Gambar 2.3 Ilustrasi robot dibidang industri.........................................................16
Gambar 2.4 Ackerman Steering Geometry............................................................17
Gambar 2.5 Diagram Differential Drive..................................................................18
Gambar 2.6 Differential Drive Robot.....................................................................18
Gambar 2.7 Ilustrasi Indoor Positioning System....................................................20
Gambar 2.8 Algoritme SLAM.................................................................................21
Gambar 2.9 Lokalisasi di dalam rumah..................................................................22
Gambar 2.10 2D Mapping di dalam ruangan.........................................................23
Gambar 2.11 Skema gambaran sistem pada Hector SLAM...................................25
Gambar 2.12 Gerak robot menghindari halangan dengan path planning............28
Gambar 2.13 Ilustrasi Global Planner....................................................................29
Gambar 2.14 Ilustrasi Local Planner......................................................................30
Gambar 2.15 Perencanaan Jalur Terpendek Menggunakan Algoritme Dijkstra...31
Gambar 2.16 Grid Map Hasil Pemetaan................................................................31
Gambar 2.17 Peta 5x5............................................................................................32
Gambar 2.18 Algoritma dimulai Gambar 2.19 Kunjung tetangga terdekat........32
Gambar 2.20 Pindah ke node lain Gambar 2.21 Sampai di N............................33
Gambar 2.22 Membangun jarak terpendek..........................................................33
Gambar 2.23 Path finding selesai..........................................................................33
Gambar 2.24 Motherboard Hoverboard................................................................37
Gambar 2.25 Nvidia Jetson Nano..........................................................................38
Gambar 2.26 Motor BLDC 6.5” 36V 350W dan build in Encoder..........................39
Gambar 2.27 Baterai Litium Ion 42V 10S2P 4400mAh..........................................40
Gambar 2.28 STLink V2..........................................................................................40
Gambar 2.29 Sensor RPLIDAR................................................................................40
Gambar 2.30 Sensor IMU GY-521..........................................................................42
Gambar 2.31 Repository Hoverboard Firmware Hack FOC....................................45
Gambar 2.32 Frame dari robot beroda..................................................................49
Gambar 2.33 Visualisasi simulasi mapping menggunakan Rviz............................50
Gambar 2.34 Semua plugin di dalam aplikasi rqt..................................................51
Gambar 2.35 Komunikasi dua device dengan VNC................................................52
Gambar 2.36 Tampilan aplikasi terminal Terminator............................................53
Gambar 2.37 Tampilan antarmuka aplikasi STM32Cube Programmer.................54
Gambar 3.1 Diagram Alir Penelitian......................................................................58
Gambar 4.1 Blok Diagram Sistem..........................................................................61
Gambar 4.2 Perangkat Motherboard Hoverboard................................................64
Gambar 4.3 Nvidia Jetson Nano.............................................................................65
Gambar 4.4 Perangkat Motor BLDC Hoverboard..................................................66
Gambar 4.5 Baterai Hoverboard............................................................................67
Gambar 4.6 Sensor RPLIDAR A1.............................................................................69
Gambar 4.7 Sensor GY-521 IMU6050....................................................................70
Gambar 4.8 Hoverboard Firmware Hack FOC di GitHub.......................................73
Gambar 4.9 STM32Cube Programmer..................................................................74
Gambar 4.10 Diagram pohon directory catkin workspace....................................74
Gambar 4.11 ROS Industrial...................................................................................75
Gambar 4.12 Halaman antar muka Rviz................................................................78
Gambar 4.13 Aplikasi rqt dan plugins yang tersedia.............................................78
Gambar 5.1 Desain chassis sebagai badan depan robot.......................................86
Gambar 5.2 Desain bagian 3D yang dicetak..........................................................87
Gambar 5.3 Assembling semua bagian chassis belakang robot............................87
Gambar 5.4 Rancangan Robot...............................................................................88
Gambar 5.5 Grafik Kinematik sistem kemudi Diff-drive........................................89
Gambar 5.6 Desain Keseluruhan Prototype Sistem Tampak Samping..................89
Gambar 5.7 Desain Keseluruhan Prototype Sistem Tampak Atas Tanpa Penutup90
Gambar 5.8 Desain Keseluruhan Prototype Sistem Tampak Bawah.....................90
Gambar 5.9 Rancangan struktur komponen perangkat keras sistem...................91
Gambar 5.10 Pinout sensor RPLIDAR A1...............................................................92
Gambar 5.11 Pinout sensor GY-521 IMU MPU6050..............................................93
Gambar 5.12 Skema sistem penggerak robot.......................................................94
Gambar 5.13 Arsitektur keseluruhan sistem.........................................................97
Gambar 5.14 Diagram alir tahap persiapan awal motherboard hoverboard........99
Gambar 5.15 Pinout dari Motherboard ke STLink...............................................100
Gambar 5.16 Diagram alir sub awal proses erase chip motherboard.................101
Gambar 5.17 Diagram alir persiapan Jetson Nano..............................................102
Gambar 5.18 Diagram Alir Program Utama.........................................................103
Gambar 5.19 Diagram alir program pemetaan...................................................105
Gambar 5.20 Diagram alir proses algoritme Hector SLAM..................................108
Gambar 5.21 Diagram alir sub proses Hector Mapping......................................109
Gambar 5.22 Diagram alir sub proses Pose Estimation.......................................110
Gambar 5.23 Diagram Alir Program Navigasi......................................................112
Gambar 5.24 Implementasi Perangkat Keras Sistem Mainboard Robot (Tampak
Samping)..............................................................................................................114
Gambar 5.25 Implementasi Perangkat Keras Sistem Mainboard Robot (Tampak
Atas).....................................................................................................................114
Gambar 5.26 Implementasi Perangkat Keras Sistem Sensor Robot (Tampak
Samping)..............................................................................................................115
Gambar 5.27 Implementasi Perangkat Keras Sistem Sensor Robot (Tampak Atas)
..............................................................................................................................115
DAFTAR LAMPIRAN

LAMPIRAN A PERSYARATAN FISIK DAN TATA LETAK...........................................


A.1 Kertas..................................................................................................
A.2 Margin................................................................................................
A.3 Jenis dan Ukuran Huruf......................................................................
A.4 Spasi....................................................................................................
A.5 Kepala Bab dan Subbab......................................................................
A.6 Nomor Halaman.................................................................................
LAMPIRAN B PERSYARATAN FISIK DAN TATA LETAK...........................................
B.1 Margin................................................................................................
B.2 Jenis dan Ukuran Huruf......................................................................
B.3 Spasi....................................................................................................
B.4 Kepala Bab dan Subbab......................................................................
B.5 Nomor Halaman.................................................................................
LAMPIRAN C PERSYARATAN FISIK DAN TATA LETAK...........................................
C.1 Margin................................................................................................
C.2 Jenis dan Ukuran Huruf......................................................................
C.3 Spasi....................................................................................................
C.4 Kepala Bab dan Subbab......................................................................
C.5 Nomor Halaman.................................................................................
LAMPIRAN D PERSYARATAN FISIK DAN TATA LETAK...........................................
D.1 Margin................................................................................................
D.2 Jenis dan Ukuran Huruf......................................................................
D.3 Spasi...................................................................................................
D.4 Kepala Bab dan Subbab......................................................................
D.5 Nomor Halaman.................................................................................
LAMPIRAN E PERSYARATAN FISIK DAN TATA LETAK...........................................
E.1 Margin.................................................................................................
E.2 Jenis dan Ukuran Huruf......................................................................
E.3 Spasi....................................................................................................
E.4 Kepala Bab dan Subbab......................................................................
E.5 Nomor Halaman..................................................................................
BAB A PENDAHULUAN

Dalam bab pendahuluan ini, penulis akan menjabarkan mengenai latar


belakang penelitian, rumusan masalah, manfaat penelitian, serta sistematika
penulisan. Penjelasan dari bab ini akan menjadi penggambaran hal-hal yang ingin
disampaikan dalam penelitian ini pada bab-bab selanjutnya.

A.1 Latar Belakang


Dalam bidang jasa ekspedisi, Indonesia merupakan negara yang memiliki
pasar yang besar karena jumlah warga dan geografisnya, terlebih lagi sejak
ditetapkannya UU nomor 8 tahun 2009 tentang penyelenggaraan pos
memberikan peluang usaha bagi swasta untuk melakukan penyelenggaraan pos
sendiri sehingga semakin terbuka peluang dibidang ekspedisi. Mulai sejak tahun
2013 ketika menjamurnya E-Commerce di Indonesia hingga saat ini banyak
bermunculan perusahaan-perusahaan swasta yang menyelenggarakan bisnis jasa
ekspedisi berupa pengantaran paket belanja, barang pesanan, dokumen dan lain-
lain. Meningkatnya jumlah permintaan konsumen dan ditambah kemunculan E-
Commerce membuat jasa ekspedisi kian hari semakin bertumbuh dan jumlah
transaksi yang didapat mencapai jutaan per harinya, hal ini dibuktikan pada data
dari website ekonomi.bisnis.com yang memberitakan bahwa perusahaan
ekspedisi J&T Express melaporkan sejak minggu ketiga bulan Mei tahun 2020
total pengiriman paket mengalami kenaikan 50% dengan volume paket kiriman
sebanyak 2.5 juta per harinya (Azka, 2020). Peningkatan kebutuhan jasa
ekspedisi yang naik secara signifikan akan berdampak pada cepatnya proses
masuk dan keluarnya barang yang terjadi di gudang penyimpanan ekspedisi.
Proses suplai yang cepat ini akan mempengaruhi waktu, tenaga dan biaya yang
digunakan di dalam gudang penyimpanan.
Perusahaan ekspedisi swasta seperti J&T, JNE, Sicepat, Tiki, Ninja Xpress
Wahana dan sebagainya saling berlomba dalam memberikan layanan terbaik
seperti kecepatan waktu dibutuhkan dalam pengiriman, murahnya biaya
pengiriman, potongan harga dan lain-lain. Keputusan bisnis itu didukung oleh
hasil riset (Dihni, 2021) yang dilakukan oleh Katadata Insight Center (KIC)
bersama PT. SIRCLO menunjukkan, 89,5% konsumen di Indonesia lebih memilih
jasa pengiriman reguler saat berbelanja daring (online) dan mayoritas (61,8%)
responden memilih jasa pengiriman reguler dengan pertimbangan tepat waktu
dan sebanyak 48,5% responden memilih jasa pengiriman reguler karena harga
yang lebih murah. Dari data ini dapat disimpulkan bahwa semua responden
menginginkan jasa pengiriman yang cepat dan murah. Hal ini tidak bisa selalu
digunakan karena hanya akan melahirkan persaingan harga, maka dari itu
diperlukan solusi yang mampu mengurangi ke tidak efisien waktu dan tenaga
tanpa menambah atau mengurangi pekerja secara berlebihan. Maka dari itu,
berdasarkan masalah tersebut penulis memberikan hipotesis berupa solusi
sistem terotomatisasi menggunakan teknologi robot dengan kecepatan
mengangkut barang lebih cepat dari manusia dan memiliki sistem yang dapat

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.2 Rumusan Masalah


Berdasarkan latar belakang yang telah dijelaskan sebelumnya, maka rumusan
masalah dalam penelitian ini adalah sebagai berikut:
1. Bagaimana hasil akurasi dari pembacaan sensor RPLIDAR, IMU dan
Odometer?
2. Bagaimana hasil akurasi algoritme Hector SLAM dalam membuat peta?
3. Bagaimana hasil akurasi dan waktu komputasi perencanaan jalur robot
menggunakan algoritme Dijkstra terhadap gerak navigasi robot?
4. Bagaimana hasil akurasi navigasi keseluruhan sistem robot pada saat ada
halangan bergerak dalam mencapai koordinat tertentu ketika sedang
membawa barang?
5. Apakah robot bergerak otonom mampu menggantikan peran manusia
membawa barang dengan lebih baik?

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.

A.5 Batasan Masalah


Untuk menjawab rumusan masalah dan agar penelitian ini dapat
terselesaikan dengan tenggat waktu yang ada, maka peneliti akan menerapkan
batasan masalah sebagaimana berikut:
1. Alat ukur yang digunakan untuk pengujian sensor RPLIDAR dan odometry
merupakan alat ukur sederhana seperti roll meter dan stopwatch.
2. Penelitian robot hanya berfokus pada area dalam ruangan yang sudah
ditentukan, yaitu basement gedung G FILKOM.
3. Robot tidak mampu menaiki tangga dan lift secara mandiri.
4. Robot tidak mampu membuka atau menutup pintu.
5. Robot hanya mampu melakukan navigasi berdasarkan koordinat tujuan
yang dikirimkan dari komputer server.
6. Robot hanya mampu membawa barang tidak lebih dari 60 kg.
7. Robot hanya mampu mendeteksi objek yang berada pada area 2 dimensi
laser sensor RPLIDAR.
8. Robot tidak mampu mendeteksi objek berupa kaca, plastik transparan, air
dan benda-benda lainnya yang mampu membelokkan cahaya infrared.
9. Robot tidak mampu mendeteksi halangan yang berada di bawah dan di
atas bidang datar 2 dimensi laser sensor RPLIDAR.
10. Robot tidak mampu bekerja pada kondisi lingkungan yang terdapat
banyak batu besar atau permukaan yang berlubang.
11. Robot harus terhubung dengan local Wi-Fi Tethering yang ada di
smartphone karena tidak bisa melakukan SSH dengan Wi-Fi kampus.
12. Robot dan komputer server harus terus terhubung dengan tethering
smartphone selama proses navigasi berlangsung.

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

Dalam bab landasan kepustakaan ini, penulis akan menjabarkan mengenai


tinjauan pustaka yang telah penulis pelajari sebelumnya dan dasar teori yang
berisikan teori pendukung penelitian ini. Adapun tinjauan pustaka adalah
sekumpulan penelitian sebelumnya yang dilakukan oleh peneliti di dunia dalam
lingkup serupa dan bagaimana hasil penelitian tersebut. Lalu mengenai dasar
teori, penulis akan menjabarkan dasar fundamental agar tercapainya tujuan
akhir penelitian ini.

B.1 Tinjauan Pustaka


Penelitian ini merupakan bentuk dari pengembangan dan gabungan dari
penelitian-penelitian sebelumnya yang berhubungan dengan metode komputasi,
pemetaan, lokalisasi, navigasi, sensor-sensor dan algoritme yang digunakan.
Tinjauan pustaka dilakukan untuk memperdalam teori dasar yang akan dibahas
dan sebagai bahan pembelajaran pada penelitian sebelumnya yang terangkum
dan tersusun ke dalam sebuah tabel yang dapat dilihat pada tabel 2.1.
Tabel 2.1 Tinjauan Penelitian Sebelumnya

Nama Penulis Perbedaan


No (Tahun), Judul Persamaan
Penelitian Rencana
Penelitian
Terdahulu Penelitian
1 Utomo, Eko Menggunakan Penelitian Penelitian
Budi.2015. jenis menggunakan menggunakan
Autonomous algoritme sensor ultrasonik, sensor RPLIDAR,
Mobile Robot lokalisasi yang PSD, IMU dan
Berbasis sama akselerometer, Odometer dari
Landmark Extended sensor kamera DYI robot beroda
Menggunakan Kalman Filter dari platform diff-drive yang
Particle Filter (EKF) untuk robot HBE otonom
Dan Occupancy melakukan Robocar
Grid Maps fusion pada
Pengujian Pengujian
Untuk Navigasi, sensor
dilakukan dengan dilakukan dengan
Penentuan
membandingkan menunjukkan
Posisi, Dan
hasil pemetaan hasil pemetaan
Pemetaan
dan hasil navigasi
Arsitektur akhir Arsitektur akhir
penelitian penelitian
menggunakan menggunakan
pemetaan pemetaan Hector
Occupancy grid SLAM dan
dan navigasi navigasi

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

B.1.1 Autonomous Mobile Robot Berbasis Landmark Menggunakan


Particle Filter Dan Occupancy Grid Maps Untuk Navigasi,
Penentuan Posisi, Dan Pemetaan
Penelitian yang dilakukan oleh Eko Budi Utomo, penulis membahas dan
mengimplementasikan mengenai 3 proses utama dalam robot bergerak otonom
yaitu navigasi, posisi dan pemetaan. Kesimpulan yang didapatkan dari penelitian
ini (Utomo, 2015) adalah bahwa sensor yang terbatas seperti kamera dan
ultrasonik bisa digunakan sebagai pemetaan dan menerapkan metode SLAM. Hal
ini didapat setelah melihat hasil dari pengujian, didapati hasil berupa hasil
pemetaan. Dari hasil mapping menunjukkan cell occupied (warna putih) tidak
berada di tepi peta. Hal ini disebabkan karena sensor ultrasonik pada robot
hanya berada di bagian depan robot. Sedangkan di sisi kanan dan kiri pada badan
robot tidak terdapat sensor ultrasonik. Kemudian Semakin kecil jumlah partikel,
diperlukan iterasi yang lebih banyak dalam mencapai konvergen partikel
(estimasi pose (𝑥, 𝑦, θ)). Lalu Semakin banyak jumlah partikel, waktu komputasi
yang diperlukan semakin lama. Hasil dari algoritmenya Penggunaan algoritme A*
dapat membantu robot menemukan jalur terpendek dengan eror pose robot
untuk data arah sebesar 4.34 % dan error jarak tempuh robot sebesar 4.8 %.

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.3 A Review of Visual-LIDAR Fusion based Simultaneous Localization


and Mapping
Penelitian yang dilakukan oleh César Debeunne dan Damien Vivet, penelitian
ini (Debeunne dan Vivet, 2020) berupa review yang membahas mengenai
perpaduan Visual kamera dan LIDAR yang berbasis pada SLAM. Peneliti
membahas tentang navigasi otonom yang membutuhkan presisi dan kecepatan
pada pemetaan dan lokalisasi, peneliti juga menambahkan penggunaan
algoritme SLAM banyak digunakan untuk robot bergerak, kendaraan tanpa awak,
drone tanpa awak dan robot kapal selam (Debeunne dan Vivet, 2020). Beberapa
percobaan telah dilakukan untuk memasangkan LIDAR dan sensor visual, tetapi
semuanya tetap pada tingkat fusi yang sangat longgar. Teknik fusi sensor,
terutama dilakukan dengan menggunakan hasil dari kedua langkah Odometer,
yang berarti bahwa deteksi LIDAR atau deteksi visual tidak dapat saling
membantu, dan keputusan dibuat pada langkah yang sangat terlambat saat
menggabungkan estimasi perpindahan relatif. Pendekatan lain hanya
menggunakan pengukuran ke dalaman LIDAR untuk menginisialisasi fitur visual
secara langsung. Kesimpulan yang didapat adalah kemampuan LIDAR
menggunakan sensor visual seperti kamera kurang ter manfaatkan dengan baik.

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.

B.1.5 Sistem Navigasi Mobile Robot Dalam Ruangan Berbasis


Autonomous Navigation
Penelitian yang dilakukan oleh Dwiki Erlangga (Erlangga, dkk., 2019) yang
mengimplementasikan Navigasi Mobile Robot dalam ruangan yang menerapkan
sistem kemudi otonom. Pembuatan peta menggunakan algoritme Simultaneous
Localization and Mapping (SLAM) (Takleh, dkk., 2018) yang mengolah data dari
sensor kamera RGB-D dan bumper yang di konversi ke laser scan dan point cloud
digunakan untuk memperoleh perception. Sedangkan wheel encoder dan
gyroscope digunakan untuk mendapatkan data odometry yang digunakan untuk
membangun peta perjalanan dengan algoritme SLAM, GMapping dan melakukan
autonomous navigation. Sistem terdiri dari tiga sub-sistem yaitu: sensor sebagai
input, single board computer untuk proses, dan aktuator sebagai penggerak.
Hasil dari pengujian menunjukkan sistem dapat memberikan data depth yang
dikonversi ke laser scan, data bumper, dan data odometry kepada single board
computer berbasis ROS sehingga mobile robot yang dikendalikan secara Wireless
dari Workstation dapat membangun peta grid 2 dimensi dengan akurasi total
error rate sebesar 0.987%. Dengan menggunakan peta, data dari sensor, dan
odometry tersebut mobile robot dapat melakukan autonomous navigation secara
konsisten dan mampu melakukan path replanning, menghindari rintangan-
rintangan statis dan terus menerus melakukan localization untuk mencapai titik
tujuan.

B.1.6 A Guide for 3D Mapping with Low-Cost Sensors Using ROS


Penelitian ini dilakukan oleh David Portugal, Andre Araujo dan Micael S.
Couceiro (Portugal, Araújo and 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

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.

B.2 Dasar Teori


Pada subbab dasar teori menjabarkan terkait teori yang digunakan dalam
melakukan penelitian, tujuannya adalah memperjelas sistematika dan kerangka
pemikiran dari fakta yang ada dalam rumusan suatu hubungan konsep dari
masing-masing ilmu pengetahuan.

B.2.1 Autonomous Mobile Robot (AMR)

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

Gambar 2.2 Ilustrasi robot sedang membawa barang di dalam gudang


Sumber : (www.robotics247.com, 2020)
Dilansir dari website zetes.com dijelaskan bahwa, robot bergerak otonom
bekerja secara kolaboratif dengan operator gudang, baik itu memindahkan stok
selama pemetikan, mengambil pengisian ulang, atau mentransfer stok massal
(Zetes, 2021). Robot ini melakukan tugas dengan mengangkut barang ke tahap
pemrosesan berikutnya, dengan ini memungkinkan pekerja untuk melanjutkan
ke tugas berikutnya sehingga proses distribusi barang menjadi lebih cepat.
Autonomous mobile robot (AMR) memiliki karakteristik dan tugas utama dalam
pekerjaannya, meliputi:
a. Beroperasi secara mandiri, AMR tidak memerlukan infrastruktur khusus
untuk bekerja. Robot beroperasi dengan mulus dalam tata letak gudang
yang ada tanpa gangguan besar pada operasi yang ada.
b. Sensor, peta, dan sistem pemrosesan terpasang memungkinkan robot
untuk merencanakan rute dan beradaptasi secara dinamis dengan
perubahan di sekitarnya.
c. AMR dapat memindahkan stok di dalam gudang atau antar fasilitas.
Robot ini juga dapat melakukan tugas rutin seperti penghitungan
inventaris dan pengecekan stok barang.
Penelitian ini akan mengadaptasi bentuk robot dari pergudangan yang
memiliki bagian atap dengan luas yang lebar sebagai alas atau dudukan barang.

35
B.2.1.2 Autonomous mobile robot dibidang industri

Gambar 2.3 Ilustrasi robot dibidang industri


Sumber : (www. robotnik.eu, 2021)
Robot bergerak otonom pada umumnya dimanfaatkan pada sektor industri
sebagai alat untuk proses intralogistics (Fernandes, dkk., 2019). Berdasarkan
pengertian dari Invata.com dikatakan bahwa Intralogistics adalah seni
mengoptimalkan, mengintegrasikan, mengotomatisasi, dan mengelola arus
logistik informasi dan barang material di dalam dinding pusat pemenuhan atau
distribusi. Untuk melakukan hal ini diperlukan tenaga kerja yang mampu
mendistribusikan semua logistik secara otomatis, maka dari itu biasanya pelaku
industri dengan proses alur logistik yang padat seperti pabrik penyimpanan atau
warehouse akan memanfaatkan robot otonom sebagai pembawa barang seperti
yang terlihat pada gambar 2.3.
Aplikasi robotika bergerak di bidang industri apa pun dirancang untuk
mengoptimalkan proses produksi apa pun yang terbukti terlalu berbahaya atau
berulang bagi pekerja. Oleh karena itu, robot industri bergerak dirancang untuk
menjadi alat yang memberikan solusi dan menawarkan fungsionalitas yang
menyederhanakan pekerjaan. Robot ini dilengkapi dengan fungsi robot
manipulator seluler yang memiliki semua informasi dan ruang untuk gerakan
untuk membantunya mengidentifikasi suatu bahan, menanganinya sesuai
dengan berat, ukuran, dan kerapuhannya. Robot industri telah menjadi teknologi
utama dalam industri ini, terutama untuk tugas-tugas seperti transportasi dan
tugas pengambilan material.

B.2.2 Mekanisme Kemudi Robot Beroda


Robot beroda memiliki beberapa jenis penggerak dengan teknik yang
berbeda. Sistem penggerak yang sering ditemukan pada robot beroda ada dua,
yaitu Ackerman Steering dan Differential Drive.

36
B.2.2.1 Ackerman Steering Robot

Gambar 2.4 Ackerman Steering Geometry


Sumber : (racecar-engineering.com, 2021)
Ackerman Steering adalah sistem penggerak empat roda dengan susunan dua
roda depan sebagai kemudinya dan dua roda belakang sebagai penggerak
linearnya. Dapat dilihat pada ilustrasi gambar 2.4 bahwa kedua roda depan tidak
bertugas untuk bergerak melainkan melakukan manuver dengan mengubah
posisi roda sehingga mempengaruhi geometry. Kemudi Ackerman mengacu pada
konfigurasi geometris yang memungkinkan kedua roda depan dikemudikan pada
sudut yang sesuai untuk menghindari ban selip. Konsep penggerak ini sama
persis dengan kendaraan mobil yang biasanya digunakan, akan tetapi lebih
sederhana dan kemudinya tidak sekompleks kendaraan mobil modern.
B.2.2.2 Differential Drive Robot
Differential drive atau penggerak diferensial adalah sistem penggerak dua
roda dengan aktuator independen untuk setiap roda. Nama ini mengacu pada
fakta bahwa vektor gerakan robot adalah jumlah dari gerakan roda independen,
sesuatu yang juga berlaku untuk diferensial mekanis (namun, sistem penggerak
ini tidak menggunakan diferensial mekanis). Perbedaan atau kesamaan
kecepatan kedua roda menentukan apakah robot tersebut akan bergerak rotasi
atau lurus. Sistem kerja dari mekanisme kemudi ini memanfaatkan gerak
forward kinematic dengan mengandalkan putaran independen kedua roda untuk
mendapatkan manuver yang diinginkan menggunakan perhitungan putaran roda
dari sensor encoder yang ada pada motor. Roda penggerak biasanya
ditempatkan di setiap sisi robot dan mengarah ke depan atau sebaliknya. Pada
gambar 2.5 terdapat diagram dengan bentuk persegi panjang besar berwarna
abu-abu adalah roda penggeraknya. Persegi panjang abu-abu kecil yang menetas
adalah roda yang tidak digerakkan yang membentuk struktur pendukung seperti
tripod untuk badan 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.

Gambar 2.6 Differential Drive Robot


Dimana L adalah jarak dari pusat antara kedua roda, 𝑣𝑙 dan 𝑣𝑟 adalah
kecepatan roda (translasi), R merupakan jarak antara titik tengah L (L/2 jika
diukur dari salah satu roda) dan Instance Center of Curvature (ICC) yang
merupakan titik dimana robot berotasi (Dudek, 2010).

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)

Dari persamaan-persamaan di atas dapat ditarik beberapa hal, antara lain:


1. Jika 𝑣𝑙 = 𝑣𝑟, maka akan diperoleh gerak lurus linear ke depan. 𝑅 bernilai
tak terhingga dan tidak ada gerak rotasi yang mengakibatkan 𝜔 bernilai 0
2. Jika 𝑣𝑙 = −𝑣𝑟, maka 𝑅 bernilai 0, dan akan diperoleh rotasi pada titik 𝐿/2
atau berputar di tempat
3. Jika 𝑣𝑙 = 0, maka akan diperoleh 𝑅 = 𝐿/2 dan gerak rotasi dengan poros
pada roda kiri. Dan sebaliknya untuk roda kanan
Differential drive robot tidak bisa bergerak ke arah sumbu kedua roda atau
dengan kata lain, memiliki non-holonomic constraint. Selain itu, kebanyakan
differential drive robot memiliki sebuah roda tambahan yang pasif sebagai
support wheel agar lebih stabil terhadap variasi yang mungkin ada di lantai.

B.2.3 Positioning System


Positioning system atau sistem penentuan posisi adalah mekanisme untuk
menentukan posisi suatu objek dalam ruang (Hasan, dkk., 2018). Teknologi untuk
tugas ini ada mulai dari cakupan dunia dengan akurasi meter hingga cakupan
ruang kerja dengan akurasi sub-milimeter. Cakupan sistem penentuan posisi
yang sering digunakan dalam robotika adalah dan global positioning system
(GPS), local positioning system (LPS) dan indoor positioning system (IPS).
B.2.3.1 Global positioning system (GPS)
Global Positioning System (GPS) merupakan satu-satunya Sistem Satelit
Navigasi Global (GNSS) yang berfungsi penuh. Dua puluh empat satelit GPS saat
ini mengorbit Bumi dan mengirimkan sinyal ke penerima GPS, yang menentukan
lokasi, arah, dan kecepatan penerima. Sejak satelit eksperimental pertama
diluncurkan pada tahun 1978, GPS telah menjadi instrumen penting untuk
39
navigasi, dan alat penting untuk survei tanah dan kartografi. GPS juga
menyediakan referensi waktu yang tepat, yang digunakan dalam banyak aplikasi
termasuk studi ilmiah tentang gempa bumi dan sinkronisasi jaringan
telekomunikasi (Maddison dan Ni Mhurchu, 2009).
B.2.3.2 Indoor positioning system

Gambar 2.7 Ilustrasi Indoor Positioning System


Sumber : (www.comp-eng.binus.ac.id, 2012)
Salah satu keterbatasan dalam global positioning system saat ini yaitu
perlunya koneksi satelit, sehingga pada kondisi tertentu positioning tidak dapat
dilakukan, misalnya saat berada di dalam gedung bertingkat di mana sinyal dari
satelit tidak mungkin dicapai sampai ke GPS receiver. Karenanya pada kondisi
tertentu, wireless positioning akan sangat dibutuhkan, terutama untuk indoor
positioning. Indoor positioning system (IPS) adalah jaringan perangkat yang
digunakan untuk menemukan orang atau objek di dalam gedung atau ruangan.
Sistem penentuan posisi ini cukup rumit, bahkan teknologi GPS dan teknologi
satelit lainnya kurang presisi atau bahkan gagal. Sistem ini digunakan pada
ruangan tertutup seperti di dalam gedung bertingkat, bandara, gang, garasi
parkir, dan lokasi bawah tanah (Chelly dan Samama, 2009). Ilustrasi dari indoor
positioning dapat dilihat pada gambar 2.7.
Robot akan bekerja di dalam gudang maka dari itu sistem yang akan
digunakan pada penelitian ini adalah local positioning system. Permasalahan
yang ada pada sistem IPS ini adalah lokalisasi untuk deteksi posisi dan proses
perencanaan gerak yang membuat ini menjadi permasalahan komputasi. Untuk
menyelesaikan permasalahan ini diperlukan metode komputasi yang mampu
menyelesaikan lokalisasi dan permasalahan gerak yaitu dengan SLAM. Pada
penelitian ini, jenis sistem lokalisasi ini yang akan digunakan sebagai studi kasus
robot otonom dalam ruangan. Maka dari itu selanjutnya peneliti akan lebih
membahas hal-hal yang memiliki keterkaitan dengan indoor positioning system
saja melainkan gabungan dari indoor positioning dan local positioning.

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

B.2.4 Simultaneous Localization And Mapping (SLAM)


Simultaneous Localization and Mapping atau SLAM adalah sebuah metode
komputasi yang dipakai untuk pemetaan menggunakan beberapa perangkat
pengindraan atau sensor secara sekaligus. SLAM bukanlah algoritme khusus yang
spesifik pada software tertentu, akan tetapi SLAM adalah sebuah konsep
komputasi yang menggabungkan beberapa perangkat keras dan perangkat lunak
secara sekaligus untuk pemetaan lingkungan dan navigasi. Masalah SLAM
mencoba mencari solusi untuk sebuah mobile robot untuk melokalisasi dirinya di
lingkungan yang tidak diketahui tanpa posisi awal dan sekaligus membangun
peta untuk lingkungan ini. Hasil akhir pemetaan sekitar dapat dibuat
menggunakan pengolahan beberapa algoritme dan menggunakan sensor sebagai
alat indra, proses ini dilakukan pada middleware Robot Operating System (ROS).
Pada pengembangan robot beroda untuk kasus pembacaan lingkungan dengan
kondisi ideal, biasanya SLAM menjadi metode yang paling banyak digunakan
dengan pembacaan yang dilakukan pada bidang yang rata. Pada umumnya robot
dengan metode SLAM dilengkapi dengan berbagai sensor sebagai indra
pembaca, seperti LIDAR atau SONAR, PID, Deep Sensing Camera dan sebagainya.
Metode SLAM memiliki permasalahan pada proses lokalisasinya,

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.

Gambar 2.9 Lokalisasi di dalam rumah


Sumber : (research.qut.edu.au, 2019)
Seperti yang terlihat pada gambar 2.8 setiap posisi dari robot diikuti dengan
object landmark sehingga orientasi robot akan terus terpantau. Penentuan
kondisi robot dalam sekala dalam localization terbagi menjadi tiga jenis
permasalahan yaitu lokal, global, dan terlokalisasi. Lokalisasi lokal diterapkan
pada kondisi ketika robot mengetahui posisi dan orientasi awal. Metode ini
dapat mengestimasi posisi robot dengan menggunakan hasil pembacaan sensor
robot secara terus menerus meskipun terdapat kesalahan Odometer dan
kesalahan pada observasi sensor. Sementara itu lokalisasi global diterapkan
ketika robot tidak mengetahui posisi dan orientasi awalnya sehingga robot harus
melakukan observasi pada lingkungannya agar dapat menentukan posisi. Kondisi

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.

Gambar 2.10 2D Mapping di dalam ruangan


Sumber : (www.sifrobot.com, 2018)
Dari gambar 2.9 dapat dilihat bahwa proses mapping menggunakan
occupancy grid sebagai koordinat alasnya. Saat ini pengembangan permasalahan
komputasi pemetaan sudah mampu mencapai hasil yang luar biasa. Kita dapat
memvisualisasikan area sekitar secara 3D dengan menggunakan sensor 3D

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.

B.2.5 Hector Simultaneous Localization and Mapping (Hector SLAM)


Hector adalah singkatan dari Heterogeneous Cooperating Team of Robots.
Pendekatan ini telah diterbitkan pada tahun 2008. Ini adalah algoritma SLAM
open source berdasarkan data pemindaian laser untuk memperkirakan peta dan
pose robot tanpa odometri. Hector SLAM berisi sekumpulan paket ROS yang
digunakan untuk melakukan komputasi SLAM dengan mengkorelasikan perkiraan
posisi robot dan peta di lingkungan yang tidak terstruktur (Kohlbrecher, dkk.,
2014). Nama hector berasal dari nama tim pengembang yang menciptakannya
yaitu tim hector dari Technical University Darmstats, Jerman. Team Hector
adalah tim campuran mahasiswa dan kandidat Ph.D. di Technical University of
Darmstadt yang mendukung human first responders dalam bencana dengan
meneliti dan mengembangkan robot cerdas pencari dan penyelamat korban
bencana. Jika diteliti lebih lanjut Hector SLAM bukanlah suatu kesatuan algoritme
tunggal, melainkan kumpulan dari algoritme yang memiliki satu tujuan, yaitu
pemetaan. Jadi secara prinsip Hector SLAM bisa saja disamakan dengan suatu
metode, akan tetapi karena berisikan algoritme-algoritme penyusun pemetaan.
Algoritme Hector SLAM dibuat untuk menyelesaikan masalah pada
pembuatan peta dilingkungan yang tidak terstruktur dan belum pernah dilalui.
Permasalahan tersebut kurang lebih seperti, untuk melakukan lokalisasi atau
pemosisian diperlukan data peta, dengan begitu posisi robot dapat terbaca
dengan memperkirakannya menggunakan data sensor. Akan tetapi bagaimana
caranya mendapatkan data peta, jika peta tersebut belum ada dan lingkungan
sekitar tidak mendukung untuk membuat peta terlebih dahulu. Misalnya saja
pada lingkungan kebakaran atau bencana lainnya, akan sulit untuk menunggu
robot melakukan pemetaan dengan teknik GMapping menggunakan data
odometry dan lidar terlebih dahulu, setelah itu baru melakukan navigasi. Maka
akan memakan akan sulit melakukan lokalisasi terlebih jika tidak memiliki sensor
akselerometer. Selain itu, juga tidak sesuai dengan tujuan awal algoritme ini
diciptakan yaitu untuk robot penyelaman korban bencana. Dengan
menggunakan metode hector ini, kita dapat melakukan navigasi sekaligus
membuat peta secara langsung tanpa perlu menggunakan data odometry atau
akselerometer. Hector SLAM hanya mengandalkan data dari lidar kemudian
melakukan lokalisasi menggunakan perhitungan posisi sumber laser terhadap
area sekitar, tanpa perlu data odometry atau IMU.

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.

B.2.6 Extended Kalman Filter (EKF)


Extended Kalman Filter (EKF) adalah versi non linier dari filter Kalman yang
terlinear mengenai perkiraan rata-rata dan kovarians saat ini. Dalam kasus model
transisi, EKF dipertimbangkan dalam penggunaan dalam teori estimasi keadaan
non linier. Sistem navigasi robot dan GPS sering digunakan sebagai salah satu
pengimplementasian dari algoritme ini. EKF sering disebut sebagai algoritme
fusion sensor karena dalam penggunaannya EKF digunakan untuk
menggabungkan dua buah atau lebih sensor, seperti sensor IMU, GPS, kompas
dan odometry menjadi satu output. Hasil dari algoritme ini menghasilkan
keluaran sensor fusion yang mampu melacak posisi suatu robot dengan
mengalkulasi nilai dari setiap keluaran sensor yang dimasukkan ke dalam
parameter EKF. Algoritme lokalisasi ini bertujuan untuk mencapai tingkat akurasi
yang tinggi dan cakupan yang lebih luas.
EKF Localization tergabung ke dalam paket robot localization yang tersedia
pada paket driver ROS dengan node paketnya bernama ekf_localization_node.
Node ekf_localization_node adalah implementasi dari filter Kalman yang
diperluas. Cara ini menggunakan suatu model gerakan omnidirectional untuk
memproyeksikan keadaan dimasa depan dengan mengoreksi hasil perkiraan
menggunakan masukkan data sensor yang diperoleh. Jumlah parameter pada
paket relatif banyak tergantung dengan jumlah sensor yang digunakan. Paket ini
berisi template launcher dan file konfigurasi untuk membantu pengguna dalam
46
melakukan lokalisasi. Untuk penggunaannya, paket lokalisasi ini dapat digunakan
pada file launch secara langsung atau dengan membuat file config dengan
extensi .yaml yang nantinya juga di impor pada file launch. Rumus dari algoritme
EKF sudah banyak digunakan dalam berbagai macam permasalahan komputasi,
untuk detail rumus yang digunakan dan mengetahui model matematika yang
terjadi dibalik layar dapat dilihat pada penelitian Thomas Moore (Moore dan
Stouch, 2016). Pada intinya penelitian tersebut menjelaskan bahwa dalam setiap
perubahan translasi, maka akan mengalkulasi tiap nilai yang berubah
2
menggunakan persamaan x new=x old +vx∗t+ 0.5∗a∗t yang akan tetapi nilai v dan
a diberikan dalam rangka tubuh robot jadi kita harus menerapkan rotasi 3D pada
robot dan orientasinya memiliki logika yang sama. Kecepatan (v) menggunakan
persamaan vx new =vx old + at . Setiap baris dalam matriks adalah fungsi transisi.
Kita kemudian perlu menurunkan rumus Jacobian secara analitis. Tujuan
utamanya adalah memperkirakan pose 3D (6 DOF) dan kecepatan robot bergerak
dari waktu ke waktu. Semua node estimasi melacak 15 status dimensi: (X, Y, Z,
roll, pitch, yaw, X˙, Y˙, Z˙, roll˙, pitch˙, yaw˙, X¨, Y¨, Z¨).
Fitur-fitur yang dimiliki oleh paket driver ROS ini antara lain:
1. Penggabungan sejumlah sensor yang berubah-ubah. Node tidak
membatasi jumlah sumber input. Jika, misalnya, robot Anda memiliki
beberapa IMU atau beberapa sumber informasi odometri, node estimasi
status dalam robot_localization dapat mendukung semuanya.
2. Dukungan untuk beberapa jenis pesan ROS. Semua node estimasi status
di robot_localization dapat menerima pesan nav_msgs/Odometer,
sensor_msgs/Imu, geometric_msgs/PoseWithCovarianceStamped, atau
geometric_msgs/TwistWithCovarianceStamped.
3. Customization input per-sensor. Jika pesan sensor tertentu berisi data
yang tidak ingin Anda sertakan dalam perkiraan status Anda, node
estimasi status di robot_localization memungkinkan Anda
mengecualikan data tersebut berdasarkan per-sensor.
4. Estimasi terus menerus. Setiap node estimasi status di robot_localization
mulai memperkirakan status kendaraan segera setelah menerima satu
pengukuran. Jika ada jeda dalam data sensor (yaitu, periode lama di
mana tidak ada data yang diterima), filter akan terus memperkirakan
status robot melalui model gerakan internal.

B.2.7 Path Planning


Path planning atau perencanaan jalur adalah metode komputasi untuk
menemukan urutan konfigurasi yang valid yang bisa memindahkan objek dari
titik sumber ke titik tujuan. Metode ini berbasis pada path problem dan juga
digunakan pada masalah komputasi geometri. Contoh algoritme yang berbasis
metode ini adalah A*, Dynamic Window Approach, Dijkstra, dan Backtrack free
planning. Pengaplikasian metode komputasi ini cocok digunakan pada navigasi
robot automation, self-driving car, drone, dan lain sebagainya. Metode ini

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.

Gambar 2.13 Ilustrasi Global Planner


Sumber : (www. mushr.io, 2021)
B.2.7.2 Local Planner
Local planner atau perencana lokal merupakan metode untuk mengubah
jalur global menjadi titik jalan yang sesuai (Marin-Plaza, dkk., 2018). Jadi, untuk
menghitung ulang jalur pada titik tertentu tingkat, peta direduksi menjadi
lingkungan kendaraan dan diperbarui saat kendaraan bergerak. Hal ini tidak
mungkin untuk gunakan seluruh peta karena sensor tidak dapat memperbarui
peta di semua wilayah dan sejumlah besar sel akan meningkat biaya komputasi.
Oleh karena itu, dengan lokal yang diperbarui peta dan titik arah global,
perencanaan lokal menghasilkan strategi penghindaran untuk rintangan dinamis

49
dan mencoba untuk mencocokkan lintasan sebanyak mungkin ke titik jalan yang
disediakan dari perencana global.

Gambar 2.14 Ilustrasi Local Planner


Sumber : (www. nswers.ros, 2021)
Berikut adalah tiga pendekatan umum yang digunakan untuk perencanaan
lintasan lokal:
1. Potensi-medan berbasis, di mana setiap rintangan memiliki 'medan gaya'
rintangan untuk memukul mundur robot, dan gawang memiliki medan
tarik-menarik. (Pendekatan serupa adalah 'Vector-fields', dan Virtual
Force Field)
2. Berbasis dinamis, dimana algoritma mempertimbangkan dinamika robot
dalam menghitung solusi. (Hambatan Kecepatan dan Pendekatan
Jendela Dinamis)
3. Berbasis pengambilan sampel, di mana berbagai keadaan bebas
tumbukan diambil sampelnya dan kemudian digabungkan. (Grafik
jangkauan, peta jalan Probabilistic)
Local planner atau perencana lokal merupakan metode untuk mengubah
jalur global menjadi titik jalan yang sesuai (Marin-Plaza, dkk., 2018). Jadi, untuk
menghitung ulang jalur pada titik tertentu tingkat, peta direduksi menjadi
lingkungan kendaraan dan diperbarui saat kendaraan bergerak. Hal ini tidak
mungkin untuk gunakan seluruh peta karena sensor tidak dapat memperbarui
peta di semua wilayah dan sejumlah besar sel akan meningkat biaya komputasi.
Oleh karena itu, dengan lokal yang diperbarui peta dan titik arah global,
perencanaan lokal menghasilkan strategi penghindaran untuk rintangan dinamis
dan mencoba untuk mencocokkan lintasan sebanyak mungkin ke titik jalan yang
disediakan dari perencana global.

B.2.8 Algoritme Dijkstra


Algoritme Dijkstra adalah algoritme untuk menemukan jalur terpendek
antara node dalam grafik, yang dapat mewakili suatu jaringan. Dengan Algoritme

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.

Gambar 2.15 Perencanaan Jalur Terpendek Menggunakan Algoritme Dijkstra


Sumber : (www.programiz.com, 2020)
Pada gambar 2.14 dapat dilihat bahwa algoritme Dijkstra biasanya
digunakan pada perencanaan jalur menggunakan GPS atau Global Positioning
System. Pada penelitian ini, Dijkstra dijadikan algoritme perencanaan jalur
menggunakan sistem global, akan tetapi batas global yang digunakan adalah
hasil dari pemetaan yang dilakukan sebelumnya. Data peta semesta GPS sudah
dibuat sebelumnya dengan seluas bumi dan melakukan lokalisasi dengan
menggunakan satelit. Sehingga proses tracking bisa berjalan dengan mudah.

Gambar 2.16 Grid Map Hasil Pemetaan


Tidak seperti layaknya GPS, sistem lokalisasi indoor tidak memiliki peta
semesta seukuran bumi. Maka dari itu perlu dibuat sebuah peta semesta dengan
ukuran terbatas sesuai dengan area kerja robot. Peta ini merupakan bentuk dari
proses mapping dan menghasilkan berupa file Geotiff dengan bentuk Grid Map.
Pada gambar 2.15 terlihat ilustrasi dari proses path planning dari kotak biru
menuju kotak merah. Terdapat banyak kemungkinan jalur yang akan dituju,
51
robot tidak mengetahui mana jalur terpendek dan bagaimana mengambil
keputusan untuk melewati suatu jalur. Maka dari itu diperlukan sebuah
perencanaan global yang menghitung dimana jarak terpendek dari titik awal
menuju titik tujuan.
B.2.8.1 Fundamental algoritme Dijkstra
Untuk memahami Dijkstra kita harus mengerti fundamental dan proses
kunci pada Algoritme Dijkstra. Untuk itu mari kita telusuri algoritma jalur
terpendek Dijkstra dengan contoh pada gambar 2.16 berupa peta kisi 5 × 5,
dengan huruf yang mengidentifikasi setiap selnya. Kita akan mencari jalur
terpendek yang dimulai dari titik awal Q, ditandai dengan garis biru, ke tujuan N,
ditandai dengan garis merah. Sel hitam dianggap sebagai sel yang ditempati dan
tidak dapat dilalui.

Gambar 2.17 Peta 5x5


Sebuah komponen kunci dari algoritma Dijkstra adalah bahwa ia selalu
melacak jarak terpendek dari node awal ke setiap sel individu. Kita akan merujuk
ke nilai ini sebagai g_cost dari sebuah node dan menampilkannya di sudut kanan
bawah setiap sel grid. Sebelum proses pencarian dimulai, titik awal (simpul Q)
mendapat g_cost sebesar 0 (karena jaraknya ke dirinya sendiri adalah 0).
Kemudian, seiring berjalannya algoritma, nilai-nilai ini akan diperbarui ke jarak
terpendek yang sebenarnya dari node awal (lebih lanjut akan segera menyusul).

Gambar 2.18 Algoritma dimulai Gambar 2.19 Kunjung tetangga terdekat


Iterasi dimulai dari pengambilan node paling terdekat yaitu Q karena dimulai
dari titik awalnya dan diberikan g_cost 0 dan statusnya adalah parent node.

52
Selanjutnya memilih ke empat tetangganya terdekat dari parent node saat ini
untuk dikunjungi.

Gambar 2.20 Pindah ke node lain Gambar 2.21 Sampai di N


Setelah itu iterasi dimulai dari child node setelah Q = 0 yaitu L, P, Q = 1,
proses ini terus berulang hingga saat parent node mengunjungi tetangga dengan
node tujuan target, seperti yang tertera pada gambar 2.19 dan 2.20.

Gambar 2.22 Membangun jarak terpendek


Setelah kita mencapai simpul target, kami dapat mengekstrak rute
terpendek dengan mengikuti setiap simpul induk simpul hingga kami mencapai
simpul awal, seperti yang terlihat pada gambar 2.21. Setelah pelacakan mundur
selesai, daftar yang baru dibuat akan berisi jalur terpendek sebagai urutan sel kisi
yang harus dikunjungi, tetapi dalam urutan yang salah. Untuk memiliki jalur dari
awal hingga akhir, yang perlu kita lakukan hanyalah membalikkannya.

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

while Q IS NOT EMPTY


U <- Extract MIN from Q
for each unvisited neighbour V of U
tempDistance <- distance[U] + edge_weight(U, V)
if tempDistance < distance[V]
distance[V] <- tempDistance
previous[V] <- U
return distance[], previous[]

Setelah melakukan perencanaan jalur maka robot sudah dapat melakukan


navigasi. Dengan memanfaatkan data dari peta dan tangkapan sensor maka
robot bisa bernavigasi dengan lancar dan mampu menghindari halangan.

B.2.9 Algoritma Dynamic Window Approach


Dynamic Window Approach adalah perencana lokal berbasis kecepatan yang
menghitung kecepatan optimal bebas tabrakan untuk robot yang diperlukan
untuk mencapai tujuannya. Kata “Window Approach” memiliki arti untuk
mempertimbangkan percepatan terbatas oleh motor, ruang pencarian
keseluruhan direduksi menjadi "jendela dinamis" yang hanya berisi kecepatan
yang dapat dicapai dalam interval waktu berikutnya. Ini menerjemahkan tujuan
Cartesius (x, y) menjadi perintah kecepatan (v, w) untuk robot bergerak. Ada dua
tujuan utama, menghitung ruang pencarian kecepatan yang valid, dan memilih
kecepatan yang optimal. Ruang pencarian dibangun dari himpunan kecepatan
yang menghasilkan lintasan yang aman (yaitu memungkinkan robot berhenti
sebelum bertabrakan), mengingat himpunan kecepatan yang dapat dicapai robot
dalam irisan waktu berikutnya berdasarkan dinamikanya. Kecepatan optimal
dipilih untuk memaksimalkan jarak bebas robot, memaksimalkan kecepatan dan
mendapatkan heading yang paling dekat dengan gawang.
Akan lebih mudah untuk menjelaskan alur proses algoritma ini jika kita
melihat kodenya terlebih dahulu dalam pseudocode DWA pada tabel 2.3 sebagai
berikut:
Tabel 2.3 Pseudocode Dynamic Window Approach
Psudocode algoritme DWA
BEGIN DWA(robotPose,robotGoal,robotModel)
desiredV = calculateV(robotPose,robotGoal)
laserscan = readScanner()

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.

B.2.10 Navigasi Robot


Secara terminologi umum navigation atau navigasi adalah penentuan
kedudukan (position) dan arah perjalanan baik di medan sebenarnya atau di
peta. Navigasi biasanya digunakan pada istilah pelayaran kapal, penerbangan

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).

B.2.11 Komponen Utama Robot Pengantar Barang


Komponen utama robot pengantar barang berisikan alat-alat yang
digunakan guna membangun sistem robot ini. Pada sub bab ini akan dijelaskan
spesifikasi dan pengertian dari setiap komponen yang digunakan. Berikut ini
adalah komponen utama yang dibutuhkan dalam membuat robot pengantar
barang.
B.2.11.1 Motherboard Hoverboard
Motherboard adalah papan logika utamanya yang berisi unit pemrosesan
pusat dan chip memori. Pada komputer yang menggunakan arsitektur terbuka,
motherboard telah memasang selot di mana kartu logika tambahan khusus dapat
dimasukkan untuk menambah fungsi primitif yang didukung oleh konfigurasi
minimum sistem komputer (Reilly, 2003). Pada penelitian ini, motherboard
hoverboard digunakan sebagai mainboard atau papan pemrosesan utama dari
robot sekaligus sebagai driver motor dc. Di dalam motherboard terdapat chip
mikroprosesor dengan seri GD32F103RCT6 yang digunakan sebagai otak dari
kontroler sekaligus sebagai driver untuk mengontrol kecepatan dan arah putaran
roda. Motherboard ini terdiri dari berbagai regulator, input/output, converter
tegangan, dan berbagai komponen elektronik lainnya seperti transistor,
kapasitor serta MOSFET. Gambar 2.23 merupakan gambar motherboard
hoverboard.

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.

Gambar 2.28 STLink V2


Sumber: (indonesia.alibaba.com, 2021)

60
B.2.11.6 Sensor RPLIDAR A1

Gambar 2.29 Sensor RPLIDAR


Sumber: (www.RoboPeak.com, 2013)
RPLIDAR (RoboPeak Light Distance and Ranging) adalah solusi pemindai laser
2D (LIDAR) 360 derajat berbiaya rendah yang dikembangkan oleh RoboPeak.
Sistem dapat melakukan pemindaian 360 derajat dalam jarak 6 meter. Metode
yang digunakan adalah LIDAR, LIDAR (Light detection and ranging) merupakan
teknologi sensor jarak jauh yang menggunakan laser untuk memindai halangan
atau dinding dan menghitung jaraknya. Data titik 2D yang dihasilkan dapat
digunakan dalam pemetaan, pelokalan, dan permodelan objek/lingkungan. Pada
gambar 2.28 dapat dilihat bentuk fisik dari RPLidar dengan keterangan berupa
fitur utama dan nilai tegangannya.
Frekuensi pemindaian RPLIDAR mencapai 5,5 hz saat pengambilan sampel
360 titik setiap putaran. Dan dapat dikonfigurasi hingga maksimum 10 hz.
RPLIDAR pada dasarnya adalah sistem pengukuran triangulasi laser. Sistem ini
dapat bekerja dengan sangat baik di semua jenis lingkungan dalam dan luar
ruangan tanpa sinar matahari. Pada LIDAR 360 derajat, proses ini berlangsung
secara berkesinambungan. Hasil scan atau pemindaian LIDAR ini berupa titik-titik
awan (point clouds) dalam bidang 2 dimensi, karena sensor ini hanya memindai
bidang horizontal. Jika LIDAR memindai bidang vertikal dan horizontal maka
point clouds yang dihasilkan berupa ruang 3 dimensi. Point clouds 3 dimensi
memungkinkan pemetaan lebih detail tentang lingkungan robot tapi
membutuhkan komputasi yang lebih powerful.
RPLIDAR berisi sistem pemindai jangkauan dan sistem motor. Setelah
menyalakan setiap sub-sistem, RPLIDAR mulai berputar dan memindai searah
jarum jam. Pengguna bisa mendapatkan data pemindaian jarak jauh melalui
antarmuka komunikasi (Port serial/USB). RPLIDAR didasarkan pada prinsip
rentang triangulasi laser dan menggunakan akuisisi penglihatan berkecepatan
tinggi dan perangkat keras pemrosesan yang dikembangkan oleh RoboPeak.
Sistem mengukur data jarak lebih dari 2000 kali per detik dan dengan output

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

Gambar 2.30 Sensor IMU GY-521


Sumber: (www.digiwarestore.com, 2013)
GY-521 MPU-6050 merupakan modul sensor yang berfungsi sebagai
akselerometer dan giroskop yang dikemas dalam bentuk satu modul yang kokoh.
Seperti yang terlihat pada gambar 2.29, alat ini berupa modul dengan banyak pin
yang mampu membaca data pada sudut x, y, dan z dalam satu waktu bersamaan.
Modul ini sudah dilengkapi dengan fitur ADC atau Analog to Digital Converter
dengan resolusi 16-bit sehingga data yang dihasilkan akan lebih teliti dan lebih
bagus. Dengan menggunakan sensor ini, maka perubahan maupun pergerakan
benda pada ruang dapat diamati perubahan nilai dalam sudut x, y, dan z. GY-521
MPU-6050 juga sudah dilengkapi dengan antarmuka I2C sehingga bisa
dihubungkan dengan Arduino Uno, maupun perangkat mikrokontroler lainnya
yang memiliki fitur I2C. Selain itu, modul ini juga dilengkapi dengan Pin Interrupt
(INT) sehingga bisa dimanfaatkan sebagai program interupsi, jika terdapat
banyak baris program.

B.2.12 Light Detection and Ranging (LIDAR)


Light Detection and Ranging atau LIDAR merupakan metode pendeteksian
objek yang menggunakan prinsip pantulan sinar laser untuk mengukur jarak

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.14 Inertial Measurement Unit (IMU)


Inertial Measurement Unit (IMU) merupakan alat ukur yang memanfaatkan
sistem pengukuran seperti giroskop dan akselerometer untuk memperkirakan
posisi relatif, kecepatan, dan akselerasi dari suatu benda. Sensor ini terdiri atas
akselerometer dan giroskop.
B.2.14.1 Akselerometer
Akselerometer adalah perangkat electromechanics yang dapat merasakan
gaya statis ataupun dinamis dari percepatan linear, yaitu laju perubahan
kecepatan suatu benda. Percepatan diukur dalam meter per detik kuadrat (m/s).
Kekuatan statis termasuk gravitasi, sementara kekuatan dinamis dapat
mencakup getaran dan gerakan. Akselerometer berisi piring kapasitif internal.
Beberapa di antaranya bersifat tetap, sementara yang lain bergerak secara
internal. Selama lempeng ini bergerak dalam hubungan satu sama lain,
kapasitans antara mereka berubah. Dari perubahan-perubahan dalam
kapasitans, percepatan dapat ditentukan.
B.2.14.2 Giroskop
Giroskop adalah perangkat elektro yang berfungsi mengukur perubahan
sudut seputar sumbu tetap terhadap ruang inersia. Satuan kecepatan sudut yang
diukur dalam derajat per detik (° / s) atau rotasi per detik (RPS). Sebuah giroskop,
dapat mengukur rotasi sekitar tiga sumbu yaitu, x, y, dan z. Ketika giroskop
diputar, sensor akan beresonansi kecil yang kemudian diubah menjadi
perubahan kecepatan sudut. Getaran inilah yang akan dikonversikan menjadi
sinyal listrik.

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

B.2.16 Robot Operating System (ROS)


Robot Operating System (ROS) dikembangkan pada tahun 2007 oleh
Stanford Artificial Intelligence Laboratory (SAIL) dengan dukungan Stanford AI
Robot Project. Pada tahun 2008, pengembangan ROS dilanjutkan oleh Willow
Garage lembaga penelitian robotik dengan dukungan lebih dari 20 lembaga
penelitian. Banyak lembaga penelitian yang mulai menggunakan ROS dengan
menambahkan Hardware dan berbagi contoh source code. Banyak perusahaan
juga mengadopsi untuk menggunakan ROS (Saputro, 2016).
Robot Operating System (ROS) sebenarnya adalah meta-operating system
atau framework yang bersifat open source yang dapat digunakan untuk robot.
ROS mempunyai sebuah service seperti halnya sebuah sistem operasi pada
umumnya, termasuk abstraksi perangkat keras, kendali perangkat tingkat bawah,
implementasi dari fungsi-fungsi yang biasa digunakan, penyampaian pesan/data
di antara proses serta management package. ROS juga menyediakan alat dan
library yang memungkinkan kita untuk mendapatkan, membangun,
memprogram hingga menjalankan program melalui banyak komputer. Dengan
ROS, kita bisa memulai untuk memprogram dan mengendalikan sebuah robot
dengan mudah, dikarenakan ada banyak contoh dan source code yang
disediakan, termasuk sensor dan perangkat yang akan menambahkan
fungsionalitas baru pada robot, seperti navigasi otonom dan persepsi visual. Kita
patut berterima kasih kepada Komunitas open source yang mengembangkan
ROS , sehingga menghindarkan kita dalam membuang -buang waktu dan upaya
untuk melakukan riset yang sama berulang – ulang.
ROS menyediakan layanan yang dirancang untuk kluster komputer yang
heterogen seperti abstraksi perangkat keras, kontrol perangkat tingkat rendah,
implementasi fungsionalitas yang umum digunakan, penyampaian pesan antar
proses, dan manajemen paket. Menjalankan set proses berbasis ROS
direpresentasikan dalam arsitektur grafik di mana pemrosesan berlangsung di
node yang dapat menerima, menampilkan dan multipleks data sensor, kontrol,
status, perencanaan, aktuator, dan pesan lainnya. Terlepas dari pentingnya
reaktivitas dan latensi rendah dalam kontrol robot, ROS sendiri bukanlah OS
waktu nyata (RTOS). Namun, dimungkinkan untuk mengintegrasikan ROS dengan
kode waktu nyata. Kurangnya dukungan untuk sistem waktu nyata telah diatasi
dalam pembuatan ROS 2.0 revisi utama dari ROS API yang akan memanfaatkan
perpustakaan dan teknologi modern untuk fungsionalitas inti ROS dan
menambahkan dukungan untuk kode waktu nyata dan perangkat keras yang
disematkan.
ROS memiliki konsep dengan kerumitan yang sangat tinggi. Untuk
menjabarkan dengan detail setiap bagian dari ROS sangat sulit, maka dari itu
peneliti hanya akan menjabarkan beberapa istilah yang akan sering dipakai
dalam penelitian ini. ROS memiliki tiga level konsep: Filesystem Level,
Computation Graph Level, dan Community level. Dari ketiga tingkat dan konsep

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.

B.2.17 Transformer (tf)


Transformer atau tf adalah paket yang memungkinkan pengguna melacak
beberapa bingkai koordinat dari waktu ke waktu. tf mempertahankan hubungan
antara bingkai koordinat dalam struktur pohon yang disangga dalam waktu, dan
memungkinkan pengguna mengubah titik, vektor antara dua bingkai koordinat
pada titik waktu yang diinginkan. Ada tiga kerangka utama yang digunakan dalam
mobile robot: base_link (terpasang secara kaku pada basis mobile robot), odom
dan map. Bingkai peta adalah induk dari odom, dan odom adalah induk dari
base_link. Gambar 2.8 menunjukkan posisi frame mobile robot.

Gambar 2.32 Frame dari robot beroda


Sumber : (wiki.ros.org, 2022)

B.2.18 Catkin workspace


Catkin workspace adalah folder tempat memodifikasi, membangun, dan
install paket catkin. Ruang kerja catkin dapat berisi hingga empat ruang berbeda
yang masing-masing memiliki peran berbeda dalam proses pengembangan
perangkat lunak. Paket catkin dapat dibangun sebagai proyek mandiri, dengan
69
cara yang sama seperti proyek cmake biasa dapat dibangun, tetapi catkin juga
menyediakan konsep ruang kerja, di mana Anda dapat membangun beberapa
paket yang saling bergantung sekaligus.

B.2.19 ROS User Interface


Tampilan antar muka pada robot operating system (ROS) hanya berupa
terminal command, tidak memiliki GUI ataupun perangkat lunak interaksi
lainnya. Untuk menjalankan, monitoring dan melakukan debugging pengembang
harus menggunakannya di dalam terminal. Beruntungnya pada saat ini sudah
banyak aplikasi dengan Graphical User Interface (GUI) yang mendukung ROS dan
memudahkan pengembang dalam memantau hasil kerja. Contohnya untuk
aplikasi simulasi dan visualisasi menggunakan Rviz dan Gazebo, kemudian untuk
plotting, kontrol manual, managing dan visualisasi sistem menggunakan aplikasi
rqt beserta plugin.
B.2.19.1 Rviz
Rviz adalah antarmuka grafis ROS yang memungkinkan kita
memvisualisasikan banyak informasi, menggunakan plugin untuk berbagai jenis
topik yang tersedia. Rviz digunakan untuk 3D visualisasi dalam middle ware ROS.
Untuk dapat memvisualisasikan informasi yang dipublikasikan oleh ROS secara
real time. Untuk menampilkan plugin perlu dilakukan penambahan display atau
bisa dengan mengatur melalui parameter node Rviz pada file launch. Di dalam
Rviz kita dapat memanfaatkan fitur 2D pose estimate dan 2D nav goal untuk
melakukan navigasi ROS . Gambar 2.31 merupakan tampilan depan dari Rviz.

Gambar 2.33 Visualisasi simulasi mapping menggunakan Rviz


Sumber : (ardupilot.org, 2021)
B.2.19.2 rqt
rqt adalah framework perangkat lunak ROS yang mengimplementasikan
berbagai alat GUI dalam bentuk plugin. rqt memiliki banyak plugin yang berguna

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

Gambar 2.34 Semua plugin di dalam aplikasi rqt


Sumber : (www. ros.guru, 2021)

B.2.20 Komunikasi Serial


Komunikasi serial adalah salah satu metode komunikasi data di mana hanya
satu bit data yang dikirimkan melalui seuntai kabel pada suatu waktu tertentu.
Pada dasarnya komunikasi serial adalah kasus khusus komunikasi paralel dengan
nilai n = 1, atau dengan kata lain adalah suatu bentuk komunikasi paralel dengan
jumlah kabel hanya satu dan hanya mengirimkan satu bit data secara simultan.
B.2.20.1 Komunikasi Serial Universal Synchronous and Asynchronous Receiver-
Transmitter (USART)
USART atau Universal Asynchronous Receiver-Transmitter adalah bagian
perangkat keras komputer yang menerjemahkan antara bit-bit paralel data dan
bit-bit serial. USART biasanya berupa sirkuit terintegrasi yang digunakan untuk
komunikasi serial pada komputer atau port serial perangkat peripheral. USART
sekarang ini termasuk di dalam beberapa mikrokontroler.
B.2.20.2 Komunikasi Serial Inter-Integrated Circuit (I2C)
I2C adalah bus komunikasi serial yang sinkron, multi-control/multi-target
(pengontrol/target), packet-switched, single-ended, yang ditemukan pada tahun
1982 oleh Philips Semiconductors. Ini banyak digunakan untuk memasang IC
periferal berkecepatan rendah ke prosesor dan mikrokontroler dalam
komunikasi intra-board jarak pendek.

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.

Gambar 2.35 Komunikasi dua device dengan VNC


Sumber : (www.computer.org, 1998)
Untuk berkomunikasi dengan mikro komputer dibutuhkan perangkat lunak
yang mendukung GUI, maka dari itu digunakan VNC. Seperti yang terlihat pada
gambar 2.33 terdapat suatu device tertentu, anggap saja Jetson Nano dan
sebuah komputer personal. Di dalam Jetson Nano ter install sebuah VNC Server
dan pada komputer personal ter install VNC viewer. Pada saat pertama kali di
install sebuah operating system untuk Jetson Nano, maka sudah ter install pula
aplikasi VNC Server. Maka dari itu bisa langsung terkoneksi dengan personal
komputer asalkan terhubung dengan jaringan router atau LAN yang sama. Syarat
dari protokol VNC hanyalah terkoneksi di jaringan Wi-Fi public yang sama,
kemudian memasukkan alamat IP VNC server pada VNC Client dan terakhir
memasukkan password dan login pada Jetson Nano.

B.2.22 Secure Shell Protocol (SSH)


Dikutip langsung dari publikasi terbuka oleh founder SSH yaitu Tatu Ylonen
(Ylonen, 2006) yang mengatakan bahwa Secure Shell Protocol (SSH) adalah
protokol jaringan kriptografi untuk mengoperasikan layanan jaringan secara
aman melalui jaringan yang tidak aman. Aplikasinya yang paling menonjol adalah
remote login dan command line execution. Aplikasi SSH didasarkan pada
arsitektur client-server, menghubungkan instance klien SSH dengan server SSH.

B.2.23 Terminator (Terminal Command Application)


Terminator adalah terminal alternatif untuk Linux yang hadir dengan sedikit
fitur dan fungsionalitas tambahan yang tidak akan temukan di aplikasi terminal
default. Misalnya di terminator kita dapat membagi layar terminal secara
72
horizontal dan vertikal sesuai keinginan. Pengguna juga dapat memiliki beberapa
terminal dalam satu windows. Dengan terminator, pengguna juga dapat secara
efisien mengisi area layar yang luas dengan terminal. Dengan begitu
menjalankan robot menjadi efisien karena tab yang baru dibuka akan membelah
tampilan terminal, tidak menutupnya secara keseluruhan. Tampilan dari
terminator dapat dilihat pada gambar 2.34.

Gambar 2.36 Tampilan aplikasi terminal Terminator

B.2.24 Visual Studio Code (IDE)


Visual Studio Code adalah Integrated Development Environment (IDE) yang
dibuat oleh Microsoft untuk Windows, Linux, dan macOS. Fitur termasuk
dukungan untuk debugging, penyorotan sintak, penyelesaian kode cerdas,
cuplikan, pemfaktoran ulang kode, dan Git yang disematkan. Pengguna dapat
mengubah tema, pintasan keyboard, preferensi, dan pemasangan ekstensi yang
menambahkan fungsionalitas tambahan.

B.2.25 PlatformIO (Visual Studio Code Extension)


PlatformIO adalah alat IDE profesional lintas-platform, lintas-arsitektur,
Multi-kerangka untuk sistem tertanam dan insinyur perangkat lunak yang
menulis aplikasi tertanam. Dengan menyediakan antarmuka IDE universal
menggunakan PlatformIO, kita dapat memprogram perangkat keras dengan cara
yang lebih ramah pengembangan. Dengan menggunakan PlatformIO
pengembang dapat melakukan compile, build, upload, debugging dan
management project dengan mudah.

B.2.26 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. Firmware dapat di download pada link
berikut: https://github.com/EFeru/hoverboard-firmware-hack-FOC.

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.

Gambar 2.37 Tampilan antarmuka aplikasi STM32Cube Programmer

B.2.28 Metode Statistik


Metode statistik merupakan prosedur-prosedur yang digunakan dalam
penyajian data yang meliputi pengumpulan, pengorganisasian, peringkasan,
dan penyajian data. Metode statistik digunakan untuk mengukur data dari
suatu metode untuk mengetahui tingkat keberhasilan pengujiannya.
1. Weighted Absolute Percentage Error (WAPE)
Dilansir dari website www.baeldung.com (Riva, 2021), Weighted
Absolute Percentage Error (WAPE) atau disebut juga rasio Mean,
merupakan salah satu metode statistik yang digunakan untuk mengukur
akurasi perkiraan dengan menghitung rasio jumlah berat total untuk tiap
kolom. WAPE dihitung dengan menjumlah total nilai yang diamati (nilai
sebenarnya) dan jumlah nilai yang diprediksi, kemudian menghitung
kesalahan antara kedua nilai tersebut. WAPE digunakan karena nilai pada
sensor yang digunakan pada penelitian ini memiliki renggang nilai yang
berbeda pada setiap variabelnya. Misalnya saja sensor IMU yang memiliki
nilai default Z sebesar 9.8 m/s yang merupakan nilai gravitasi bumi. Tidak
sebanding dengan nilai X dan Y yang memiliki nilai 0-1 m/s saja, sehingga
ketika dilakukan proses Mean maka terjadi pembengkakan nilai total

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

Dalam bab metodologi penelitian akan dijelaskan tahapan-tahapan yang akan


dilakukan untuk mendukung penelitian “JUDUL________” dan pada bagian
metodologi akan memaparkan lebih lanjut terkait tipe penelitian, metode
penelitian, subjek penelitian, lokasi penelitian, teknik pengumpulan data, teknis
analisis data, dan peralatan pendukung yang digunakan

C.1 Tipe Penelitian


Tipe penelitian yang digunakan pada penelitian ini adalah tipe implementatif
pengembangan. Implementatif menunjukkan bahwa penelitian ini memerlukan
pengujian melalui perangkat lunak dan perangkat keras, tidak hanya analisis data
saja. Hasil dari penelitian ini adalah sebuah purwarupa robot bergerak otonom
dari hoverboard yang mampu memetakan area sekitar dan mampu menghindari
halangan.

C.2 Strategi dan Rencana Penelitian


Pada penelitian ini, dibutuhkan strategi dan rencana yang jelas agar
memenuhi tujuan yang hendak dicapai. Untuk memenuhi hal tersebut penulis
akan menjelaskan secara umum setiap perangkat keras dan perangkat lunak
yang digunakan sebagai sistem dari robot bergerak. Untuk memenuhi tujuan
yang telah dirumuskan pada bab sebelumnya maka disusun perancangan sistem
yang menjelaskan peran dari perangkat keras sebagai penyedia sumber
pemrosesan untuk melakukan komputasi dan perangkat lunak yang berperan
sebagai pengolahan data dan pemrosesan mapping, localization and navigation.
Pemecahan masalah pada penelitian ini dilakukan dengan menjalankan 3
tahap, yaitu pengambilan data untuk mapping, pengolahan data untuk
localization, dan hasil pemrosesan peta-lokasi untuk proses navigation. Pada
tahap awal, pengambilan data berdasarkan perhitungan jarak oleh hasil
pembacaan 2 sensor, yakni RPLIDAR dalam bentuk sinar inframerah yang
ditembakkan dan Inertial Measurement Unit atau IMU. Perhitungan dari kedua
sensor ini nantinya akan menghasilnya lokasi robot berupa posisi x, y, z dan
benda di sekitarnya seluas 6-6 meter yang menghasilkan bentuk visual pada
perangkat lunak yang ditampilkan dalam monitor komputer/Jetson Nano berupa
partikel titik merah yang sangat banyak, sehingga membentuk pola berdasarkan
area sekitar seperti air yang di wadah maka air akan berbentuk seperti wadah.
Kemudian setelah peta sudah dibangun, selanjutnya adalah tahap akhir yaitu
navigasi, dengan memanfaatkan sensor RPLIDAR, IMU, peta dan gabungan
algoritme navigasi, kita dapat melakukan proses navigasi dengan memasukkan
titik tujuan pada visualisasi peta. Dengan begitu robot akan berjalan ke dari titik
awal (posisi robot saat ini) menuju titik tujuan (posisi input pengguna).

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.

C.4 Subjek Penelitian


Subjek dari penelitian ini memiliki hubungan dengan sebuah tempat
penyimpanan paket pengiriman yang merupakan sebuah gudang ekspedisi yang
memiliki tingkat intensitas aktivitas tinggi dalam penyortiran barang dan
membutuhkan sistem yang terotomatisasi untuk meningkatkan efisiensi waktu
dan tenaga kerja.

C.5 Lokasi Penelitian


Lokasi penelitian dilakukan pada basemen gedung G Fakultas Ilmu Komputer
dan ruang lingkup sekitar penulis. Untuk lokasi pengujian dilakukan pada tempat
dengan desain denah bangunan yang bisa diukur.

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.

C.7 Teknik Analisis Data


Analisa data dilakukan menggunakan data yang telah dikumpulkan
sebelumnya. Hal ini dilakukan untuk menguji kemampuan sistem yang akan
menjawab rumusan permasalahan yang ada untuk dievaluasi agar berguna untuk
penelitian ke depannya. Berikut adalah aspek yang diuji pada sistem.
1. Pengujian tingkat keakuratan data sensor IMU, Odometer, dan RPLIDAR.
2. Pengujian tingkat ketepatan bentuk peta berdasarkan denah bangunan asli
dari hasil pemetaan yang dihasilkan oleh ROS melalui pemindaian dari data
sensor RPLIDAR dan IMU.
3. Pengujian tingkat keakuratan navigasi robot terhadap halangan
menggunakan algoritme Dijkstra dan DWA yang diperoleh dari data
pemetaan yang telah dibuat.
4. Pengujian keakuratan pergerakan robot serta waktu komputasi yang
dibutuhkan sistem untuk berjalan pada posisi awal menuju posisi yang telah
ditentukan yang diperoleh dari masukkan titik koordinat Rviz.

C.8 Peralatan Pendukung


Peralatan pendukung diperlukan untuk menunjang penelitian ini agar bisa
berjalan dengan lancar dan sistem bisa berjalan sesuai kebutuhan. Peralatan ini
terdiri dari perkakas atau peralatan yang berfungsi untuk membantu penulis
dalam pembuatan robot. Di bawah ini akan disebutkan peralatan pendukung

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

Dalam bab rekayasa kebutuhan, penulis akan menjelaskan kebutuhan apa


saja yang diperlukan untuk mengimplementasikan sistem dalam penelitian ini.
Rekayasa kebutuhan mencakup gambaran umum sistem, analisis kebutuhan
fungsional dan kebutuhan non-fungsional, kebutuhan perangkat keras,
kebutuhan perangkat lunak dan batasan desain sistem. Diharapkan dengan
rekayasa kebutuhan ini, sistem yang dibuat bisa berfungsi sesuai dengan tujuan
penelitian.

D.1 Gambaran Umum Sistem


Sistem yang dibuat pada penelitian ini merupakan sistem yang mempunyai
fungsi untuk membawa barang dari titik awal menuju titik tujuan yang bergerak
menggunakan roda serta mendeteksi area sekitar dengan sensor-sensornya.
Barang yang dibawa oleh sistem dianalogikan sebagai paket ekspedisi
pengiriman asli dengan berat beragam yang nantinya akan dibawa mengelilingi
area gudang. Mekanisme yang dilakukan oleh robot dianalogikan sebagai pekerja
penyortiran barang. Barang yang disortir berupa paket yang akan dipindahkan
dari gudang penyimpanan menuju area distribusi. Setiap informasi yang sudah
diselesaikan akan mengirimkan sebuah pesan menuju komputer server.

Gambar 4.39 Blok Diagram Sistem


Dari gambar 4.1 menunjukkan Blok Diagram dari sistem yang memiliki tiga
bagian yaitu input, proses, dan output. Bagian input dari sistem akan
menggunakan sensor RPLIDAR, IMU dan Odometer. Ketiga sensor ini digabung
menjadi satu kesatuan untuk menjalankan proses lokalisasi. Hasil dari sensor
RPLIDAR akan digunakan untuk lokalisasi dengan metode AMCL dimana data
laser dan map akan di fusi sehingga menghasilkan perkiraan pemosisian. Untuk
sensor IMU dan Odometer akan digabungkan sekaligus menggunakan algoritme
EKF sehingga menghasilkan odom_combined yang membuat posisi robot selalu
terkoreksi dan terfilter. Sedangkan input dari komputer server berupa perintah-
perintah command line dan input letak koordinat tujuan melalui Rviz atau
terminal. Semua bagian input ini akan diteruskan ke bagian proses untuk
82
nantinya diolah oleh Jetson Nano sebagai sistem kontrol utama. Pada bagian
proses sistem menggunakan dua alat yaitu Jetson Nano dan Hoverboard
Motherboard. Jetson Nano akan menjadi sistem kendali utama dari sistem yang
bertugas untuk mencakup seluruh proses pengolahan data sensor, data
odometer, dan proses SLAM serta navigasi. Setiap data dari sensor akan
dikirimkan ke Jetson Nano yang kemudian akan diproses untuk lokalisasi robot.
Hanya sensor RPLIDAR yang mengirimkan data berupa laser scan dengan output
yang sudah jadi dan siap digunakan. Jadi tidak perlu melakukan konfigurasi
maupun menghitung manual data raw sensor. Hoverboard motherboard juga
mengirimkan data yang sudah jadi berupa odometry, data ini sudah diolah di
dalam motherboard. Hal ini bisa dilakukan karena kita melakukan custom
firmware dan memproses data odometer menjadi data odometry yang bisa
langsung digunakan tanpa perlu di filtrasi.
Untuk menggerakkan robot, kita hanya perlu memutar motor BLDC. Untuk
memutar motor kita perlu memanipulasi nilai pada variabel cmd_vel. Variabel
cmd_vel merupakan variabel yang digunakan untuk trigger nilai voltase pada
motherboard hoverboard sehingga motor dapat berputar, hal ini terjadi karena
kode biner yang di tanam ke dalam chip motherboard. Untuk memanipulasi
cmd_vel kita perlu membuat kode di dalam Jetson Nano. Setelah Jetson Nano
menentukan nilai cmd_vel maka nilai cmd_vel akan berubah dari kondisi
sebelumnya, hal ini juga berlaku pada variabel cmd_vel motherboard karena
Jetson Nano saling berkomunikasi dengan motherboard melalui serial USART.
Dengan begitu akan menghasilkan output berupa pergerakan motor, sehingga
robot bergerak. Setelah data berubah motherboard juga mengirimkan balik nilai
Odometer yang terdeteksi ke Jetson Nano untuk mengetahui secara simultan
lokasi dari robot. Kemudian Jetson Nano akan mengirimkan semua data pesan
yang diterimanya ke dalam Rviz, sehingga kita dapat melihat perubahan yang
terjadi.

D.2 Analisis Kebutuhan Sistem


Pada sub bab terkait analisis kebutuhan sistem, proses ini bertujuan agar
peneliti tahu segala kebutuhan yang diperlukan oleh sistem pada perangkat
keras dan perangkat lunak, baik secara fungsional dan non-fungsional.

D.2.1 Kebutuhan Fungsional


Kebutuhan fungsional merupakan kebutuhan sistem yang di dalamnya berisi
proses apa saja yang harus disediakan oleh sistem, seperti bagaimana sistem
merespons input dan bagaimana respons sistem pada kondisi tersebut.
Kebutuhan fungsional disajikan ke dalam tabel yang dapat diliat pada tabel 4.1.
Tabel 4.5 Kebutuhan Fungsional Sistem
No Kebutuhan Sistem Skenario Pengujian
1 Sensor RPLIDAR dapat membaca jarak Dapat mengirimkan data ke
benda sekitar robot dengan mikrokontroler dan pengujian

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

D.2.2 Kebutuhan Non-Fungsional


Kebutuhan non-fungsionalitas pada sistem ini terbagi menjadi dua kebutuhan
yaitu perangkat keras dan perangkat lunak yang diperlukan untuk menunjang
sistem.
84
D.2.2.1 Kebutuhan Perangkat Keras
1. Motherboard Hoverboard

Gambar 4.40 Perangkat Motherboard Hoverboard


Sumber : (aliexpress.com, 2021)
Motherboard Hoverboard digunakan sebagai driver dan controller pada
motor BLDC. Hoverboard motherboard menjadi komponen penting yang
menyimpan data firmware yang telah di flash sebelumnya. Motherboard
merupakan komponen wajib yang ada pada penelitian, ini dikarenakan tanpa
adanya motherboard hoverboard maka tidak akan bisa mengendalikan motor
dan akan sangat sulit jika menggunakan motor BLDC driver eksternal karena
permasalahan biaya dan kompatibilitas dengan firmware yang ada. Berikut
adalah spesifikasi yang diambil dari datasheet motherboard hoverboard yang
ditunjukkan pada tabel 4.2.
Tabel 4.6 Spesifikasi Motherboard Hoverboard
Sumber : (beta.ivc.no dan www.st.com, 2021)
Keterangan Spesifikasi
Prosesor GD32F103RCT6 ARM Cortex-M3 32-bit MCU
Flash memory 256 KB sampai 512 KB
SRAM 64 KB
Clock speed 108MHz
Flasher ST-Link V2 Programming Unit
Tegangan operasi 36V
Pengisian daya 42V 2A
Port Fast I/O 80 Port (45P, 9ADC, 16PWM, 6RXTX, 4SC, 3.3V,
5V, GND)
Pin Digital I/O motor DC 6 (2xHALL A-C)
85
Pin Digital I/O sensor 4 (PA2, PA3, PB10, PB11)
Tegangan, arus dan 36V(1000 r.p.m.) 1-25A 350W
kekuatan maksimal pada
Motor DC
Tegangan dan arus DC Pin 5V 100mA
I/O motor
Tegangan dan arus DC Pin 15V 200mA
I/O sensor
A/D converters 3 x 12-bit
D/A converters 2 x 12-bit
Komunikasi USART, SPI, I2C, I2S, USB, CAN

2. Nvidia Jetson Nano


Nvidia Jetson Nano merupakan pemrosesan inti dari sistem pada
penelitian ini, fungsinya sebagai tempat pemrosesan input dari ketiga sensor
dan menjalankan fungsi mulai dari lokalisasi, pemetaan dan perencanaan
jalur serta komunikasi SSH-VNC pada slave (komputer). Semua metode,
algoritme dan komunikasi yang digunakan akan diproses di dalam sini. Alasan
dipilihnya Jetson Nano sebagai mikrokomputer dan pemrosesan utama
adalah pertimbangan kemampuan dari perangkat ini yang memiliki CPU
Quad-core dengan clock speed 1.43 GHz dan RAM sebesar 4 GB LPDDR.
Gambar 4.3 merupakan bentuk fisik dari Nvidia Jetson Nano

Gambar 4.41 Nvidia Jetson Nano


Sumber: (www.nvidia.com, 2022)
Dengan spesifikasi seperti ini diharapkan Nvidia Jetson Nano mampu
melakukan pemrosesan mapping dan navigation. Proses pemetaan
menggunakan sumber daya yang cukup banyak karena terdapat banyak
sistem ROS yang berjalan di belakang layar ditambah dengan sistem
perencanaan gerak menggunakan Dijkstra yang banyak menguras CPU untuk
menemukan jalur terpendek. Memori RAM sebesar 4 GB dirasa sudah

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

3. Motor DC Brushless dan build-in encoder

Gambar 4.42 Perangkat Motor BLDC Hoverboard


Sumber : (www.jaxlec.top, 2021)
87
Motor DC Brushless 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. Berikut adalah datasheet motor dc
brushless yang ditunjukkan pada tabel 4.4.
Tabel 4.8 Spesifikasi Motor DC Brushless
Sumber : (www.aliexpress.com, 2021)
Keterangan Spesifikasi
Tipe Gear Motor, Motor Skuter
Komunikasi Brushless
Kecepatan 5 - 1500 RPM
Tegangan 36V
Arus 1A - 25A
Power Motor 250 - 350W
Kecepatan Maksimal 26km/h
Kecepatan rata-rata 800rpm
Diameter roda 6.5”
Panjang kabel 26 cm

4. Catu Daya

Gambar 4.43 Baterai Hoverboard


Sumber : (ubuy.com, 2020)
88
Catu daya merupakan hal penting dari sistem yang digunakan untuk penyedia
sumber tegangan untuk mengaktifkan keseluruhan sistem. Selain itu, catu daya
tergolong jenis yang portabel dengan daya tampung energi listrik yang dapat diisi
ulang kembali. Untuk penggunaan catu daya harus dapat menyesuaikan
tegangannya yang dibutuhkan oleh sistem (Cahyadi, et al., 2016). Ada dua catu
daya yang digunakan pada robot ini, pertama yaitu baterai li-ion dengan besar
tegangan 32V dan kuat arus 2A. Catu daya ini digunakan untuk memberikan
power ke motherboard hoverboard dan yang nantinya akan disalurkan lagi ke
motor BLDC. Kemudian catu daya yang kedua adalah power bank ke Jetson Nano
dengan besar tegangan 5V dan kuat arus 1A. Berikut adalah tabel spesifikasi
Baterai Li-ion 10S2P dan Power bank yang masing-masing ditunjukkan pada tabel
4.5 dan tabel 4.6.
Tabel 4.9 Spesifikasi Catu Daya untuk Suplai Motherboard Hoverboard
Sumber : (www. hovertech.co.za, 2021)
Keterangan Spesifikasi
Teknologi Litium-Ion
Ukuran Cell 18650 Litium Ion
Tegangan ke motherboard 25.2V - 36V
Tegangan maksimal 42V
Arus sistem kerja 1A - 20A
Tenaga 75W hingga 158W
Maksimal pemakaian arus 15A
Arus Pengisian < 5A
Tegangan Pengisian 43.2V
Kapasitas 4400 mAh
Struktur 10S2P & 10S1P

Tabel 4.10 Spesifikasi Catu Daya untuk Suplai Jetson Nano


Sumber : (www.shopee.co.id, 2021)
Keterangan Spesifikasi
Teknologi Quick Charge 3.0
Tipe Baterai Lithium Polymer
Output 1 USB A DC 5V/3A, 9V/2A, 12V/1,5A
Output 2 USB A DC 5V/3A, 9V/2A, 12V/1,5A
Output 3 Type C 5V/3A, 9V/2,33A, 12V/1,7A
Total Output 20W
Kapasitas 10000 mAh

89
5. RPLIDAR A1

Gambar 4.44 Sensor RPLIDAR A1


Sumber : (amazon.com, 2022)
RPLIDAR A1 digunakan sebagai input utama dari sistem berupa tangkapan
jarak dari tembakan laser yang nantinya akan diproses oleh sistem. Penggunaan
RPLIDAR didasarkan dari kemampuannya mendeteksi objek seluas 360 derajat
dan sejauh 6 meter. Selain itu RPLIDAR juga sangat praktis untuk digunakan
karena kita tidak perlu menghitung nilai ataupun kalibrasi data karena RPLIDAR
memiliki prosesornya sendiri dan mampu mengirimkan data setengah jadi
berupa koordinat-koordinat data jarak. Atas semua pertimbangan dan
kemampuannya yang powerful maka dari itu RPLIDAR dipilih menjadi sensor
utama pada penelitian ini. Berikut adalah spesifikasi sensor RPLIDAR yang
ditunjukkan pada tabel 4.7.
Tabel 4.11 Spesifikasi RPLIDAR A1
Sumber : (www.slamtec.com, 2021)
Keterangan Spesifikasi
Measuring Range 0.15 – 12 meter
Angular Field of View 0 - 360°
Angular Resolution: ≤1°
Sampling frequency 4000 - 8000 Hz
Rotational Speed 5.5Hz
Laser wave length 775 - 795nm
Pulse width 110 us
System Voltage 5V
System Current 100mA
Power Consumption 0.5W

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)

6. Sensor IMU GY-521

Gambar 4.45 Sensor GY-521 IMU6050


Sumber : (geekbuying.com, 2022)
Sensor GY-521 memiliki 3 DOF akselerometer dan 3 DOF giroskop yang dapat
mendeteksi nilai akselerasi dan gerakan roll, pitch atau yaw pada robot. Sensor
GY-521 digunakan sebagai input dari sistem berupa mendeteksi posisi robot
secara lokal. Hal ini sangat berguna dalam proses lokalisasi, walaupun proses
lokalisasi dapat dilakukan hanya dengan menggunakan data dari Odometer, akan
tetapi masih perlu dilakukan validasi lebih lanjut lagi menggunakan sensor yang
mampu membaca akselerasi robot. Ini dikarenakan terkadang ketika motor BLDC
tersangkut atau berputar di tempat maka data yang dikirimkan akan dianggap
sedang melakukan suatu gerakan. Tentunya hal ini tidak diinginkan karena dapat
membuat robot tidak bergerak semestinya dan posisinya akan berbeda ketika di
aplikasi Rviz dan keadaan didunia riil. Maka dari itu atas pertimbangan ini, sensor
GY-521 dipilih karena sangat dibutuhkan untuk memvalidasi nilai dari Odometer
dan membuat robot untuk tetap diposisi semestinya walaupun motor BLDC
berputar di tempat. Berikut adalah spesifikasi sensor IMU GY-512 yang
ditunjukkan pada tabel 4.8.
Tabel 4.12 Spesifikasi Sensor IMU GY-521 MPU6050
Sumber : (www. berrybase.de, 2022)
Keterangan Spesifikasi
Chipset MPU-5060
Tegangan sistem kerja 3.3 - 5V DC
Jalur Komunikasi I2C up to 400kHz

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

11. FTDI mini USB F23RL


FTDI merupakan kepanjangan dari Future Technology Devices International
yang merupakan nama perusahaan semiconductor yang mengkhususkan diri
dalam teknologi Universal Serial Bus. FTDI digunakan untuk komunikasi serial
Jetson Nano dengan motherboard hoverboard menggunakan protokol serial

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.

Gambar 4.46 Hoverboard Firmware Hack FOC di GitHub


2. STM32Cube Programmer
STM32CubeProgrammer adalah alat perangkat lunak multi-OS all-in-one
untuk memprogram produk STM32. Aplikasi ini digunakan untuk melakukan
flashing pada motherboard hoverboard. STM32CubeProgrammer dikirimkan
dalam versi GUI (antarmuka pengguna grafis) dan CLI (antarmuka baris perintah).
Gambar 4.9 merupakan tampilan GUI dari aplikasi STM32Cube Programmer.

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.

Gambar 4.48 Diagram pohon directory catkin workspace


Sumber : (www.medium.com/swlh, 2021)
95
4. Makefile
Make adalah utilitas untuk membangun dan memelihara grup program (dan
jenis file lainnya) dari kode sumber. Tujuan dari utilitas make adalah untuk
menentukan secara otomatis bagian mana dari program besar yang perlu
dikompilasi ulang, dan mengeluarkan perintah yang diperlukan untuk
mengompilasi ulang (Computer Hope, 2021). Make digunakan untuk men install
aplikasi dan dependensi ROS, melakukan compile firmware, melakukan flash
firmware dan melakukan compiling pada file C lainnya dengan hasil output biner.
5. Robot Operating System (ROS)

Gambar 4.49 ROS Industrial


Sumber : (rosindustrial.org, 2022)
Robot Operating System atau ROS merupakan packet manager yang dibuat
untuk keperluan robotik berisikan kumpulan library lengkap untuk membuat
perangkat lunak robot. ROS berisikan sekumpulan library, driver, algoritme, dan
alat-alat canggih pendukung sistem robot yang sudah siap digunakan. ROS
merupakan metode modern untuk membuat sistem robot yang mampu berjalan
secara paralel dengan sistem terkontrol. ROS sudah diimplementasi kan pada
robot maupun sistem Industri dan kebanyakan berada di luar negeri. ROS sangat
terkenal dan sistem dengan teknologi ROS digadang akan menjadi teknologi
robot dimasa depan.
Pada penelitian ini ROS digunakan sebagai middleware utama penyusun
perangkat lunak sistem robot. Sistem pada ROS ini terpecah menjadi node-node
yang dapat disusun bersama dan bisa dijalankan secara paralel. Library-library
yang ada pada ROS tidak semuanya di install dari internal ROS, melainkan di
install dari pihak eksternal yang membuatnya di atas lisensi open-source MIT. Hal
ini membuat pengembang melakukan instalasi pada komputer dan sistem sudah
bisa langsung digunakan. Namun tidak semua library mendukung perangkat yang
digunakan pada setiap pengembang robot. Penulis library hanya membuatkan
file-file header atau sebutannya adalah driver yang nantinya bisa langsung
digunakan oleh pengembang robot, sehingga tidak perlu mencari dan menulis
dari awal file-file pendukung dari suatu perangkat elektronik. Saat ini ROS sudah
mempunyai 2 major version dengan arsitektur yang berbeda, yaitu ada ROS1 dan
ROS2. Pada penelitian ini, penulis menggunakan ROS1 dengan versi Melodic
pada mikro komputer Jetson Nano dan menggunakan versi Noetic pada
96
komputer server. Perbedaan versi ini di karena kan perbedaan versi Ubuntu pada
Jetson Nano dan komputer server, akan tetapi ROS mampu melakukan
komunikasi antar perangkat walaupun memiliki versi yang berbeda.
6. Terminator
Aplikasi ini digunakan sebagai terminal utama dalam melakukan penelitian
ini, hal ini dikarenakan fiturnya lebih kaya dari pada terminal default milik Linux.
Kelebihan terminal ini adalah mampu membelah atau membagi tampilan tabnya
menjadi beberapa bagian. Dikarenakan proses untuk menjalankan file terjadi
lewat terminal, untuk itu dibutuhkan terminal yang mampu membelah diri di
dalam satu tampilan Window.
7. Visual Studio Code
Visual Studio Code atau yang biasa disingkat dengan VSCode merupakan
kode editor yang banyak digunakan oleh developer. Kode editor ini digunakan
karena kemudahan dalam auto koreksi dan kemudahan navigasi antar file. Selain
itu fitur debugging dalam melakukan tracking error akan sangat membantu
sekali.
8. Platform IO
PlatformIO merupakan sebuah extension yang bisa diintegrasikan dengan IDE
favorit atau text editor seperti Arduino IDE, Atom, Eclipse, Sublime, VIM, Visual
Studio Code dan lain sebagainya. Penggunaan extension ini dikarenakan
kemudahannya dalam proses compiling dan flash ke motherboard hoverboard.
Dengan cukup melakukan 1 kali klik maka proses compile dan upload akan
sekaligus dilakukan sehingga mempercepat proses pengembangan robot di
dalam penelitian ini.
9. Creality Slicer
Creality Slicer merupakan perangkat lunak pengiris digunakan dalam
pencetakan 3D untuk memotong model 3D menjadi beberapa lapisan (irisan) dan
menggambar jalur pencetakan yang dapat diikuti oleh mesin. Creality Slicer
adalah alat pengiris milik Creality, yang juga memproduksi banyak printer 3D
populer seperti seri Ender 3. Aplikasi ini dipakai sebelum melakukan pencetakan
3D, fungsinya adalah melakukan convert dari file ekstensi umum menjadi gcode,
sehingga 3D printer dapat mengenali file tersebut
10. VNC Viewer & VNC Server
VNC Viewer dan VNC Server merupakan software remote-control yang
memungkinkan untuk mengontrol komputer lain melalui koneksi network.
Komputer server akan di install VNC Viewer sedangkan Jetson Nano sebagai
mikro komputer akan di install VNC Server. Kegunaan perangkat lunak ini adalah
untuk melakukan proses yang membutuhkan tampilan user interface pada Jetson
Nano, di karena kan SSH tidak mampu menjalankan aplikasi GUI. Mekanisme
penggunaannya kurang lebih input dari keyboard dan mouse dikirimkan dari satu
komputer server ke Jetson Nano sehingga kita dapat mengontrol mikro

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.

Gambar 4.50 Halaman antar muka Rviz


13. rqt
rqt adalah framework perangkat lunak ROS yang mengimplementasikan
berbagai alat GUI dalam bentuk plugin. Pengguna dapat menjalankan semua alat
GUI yang ada sebagai jendela yang dapat dipasang di dalam rqt. Tools ini masih
dapat berjalan dalam metode mandiri tradisional, tetapi rqt memudahkan untuk
mengelola semua berbagai jendela di layar pada satu tampilan. Gambar 4.13
merupakan tampilan antar muka aplikasi rqt.

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.

15. RPLIDAR ROS driver


RPLIDAR driver adalah sekumpulan file dengan bahasa C, python dan
sebagainya yang menjembatani antara perangkat lunak dengan perangkat
RPLIDAR. Driver ini diciptakan langsung oleh tim riset dari perusahaan yang
menjual produk RPLIDAR A1, yaitu RoboPeak. Untuk melakukan download driver
bisa di download di GitHub resmi RoboPeak, link yang digunakan sebagai berikut:
https://github.com/robopeak/rplidar_ros. Driver ini sudah bisa langsung di
gunakan tanpa harus melakukan pengaturan yang berarti. Tabel parameter yang
digunakan paket RPLIDAR ROS driver dapat dilihat pada tabel 4.11.
Tabel 4.15 Parameter yang digunakan RPLIDAR ROS Driver
Sumber: (wiki.ros.org, 2022)

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.

16. MPU6050 dan I2C driver


MPU6050 merupakan driver sensor yang digunakan untuk menjembatani
sensor IMU 6050 dengan mikro komputer atau mikro kontroler. Sedangkan I2C
merupakan library untuk komunikasi jalur serial I2C antara kontroler dengan
sensor IMU. Driver ini bertujuan untuk membaca nilai percepatan dari sensor
akselerometer, giroskop dan magnetometer. Dengan menggunakan driver ini kita
mampu mengakses sensor IMU dengan mudah. Tabel parameter yang digunakan
paket MPU6050 dan I2C driver dapat dilihat pada tabel 4.12.
Tabel 4.16 Parameter yang digunakan MPU6050 Driver
Sumber: (wiki.ros.org, 2022)
Parameter Keterangan
bus_uri I2C Bus URI digunakan untuk berkomunikasi
dengan perangkat I2C
mpu_address Alamat I2C dari MPU6050 yang biasanya
memiliki alamat default 0x68
pub_rate Frekuensi dalam Hertz yang data IMU
diterbitkan
frame_id Bingkai jika pesan IMU
axes_offsets Offset untuk memperbaiki nilai yang salah yang
disebabkan oleh misalignment. Nilai ini didapat
setelah melakukan kalibrasi
ki Konstanta PID yang digunakan dalam prosedur
kalibrasi.
kp Konstanta PID yang digunakan dalam prosedur
kalibrasi
delta Proses kalibrasi selesai ketika kesalahan
mendekati nol dengan presisi yang ditetapkan
101
oleh delta

17. Hector SLAM library


Hector SLAM library merupakan sekumpulan paket fungsi yang dipakai untuk
membuat pemetaan. Library ini bertujuan untuk melakukan pemetaan dan
lokalisasi dengan mengandalkan data dari laser. Library ini memiliki kemampuan
melakukan mapping tanpa harus mengetahui kondisi sekitarnya terlebih dahulu.
Fungsi-fungsi pada paket ini tersedia pada directory GitHub pengembangnya
yaitu Technical University Darmstats, link yang digunakan sebagai berikut:
https://github.com/tu-darmstadt-ros-pkg/hector_slam. Hector SLAM library
memiliki dari beberapa library lagi di dalamnya, terdiri dari library hector
mapping, hector Geotiff, hector Trajectory, hector SLAM dan masih banyak lagi.
Tabel parameter yang digunakan paket robot pose EKF dapat dilihat pada tabel
4.13.
Tabel 4.17 Parameter yang digunakan Hector Mapping
Sumber: (wiki.ros.org, 2022)
Parameter Keterangan
base_frame Nama rangka dasar robot. Ini adalah frame
yang digunakan untuk pelokalan dan
transformasi data pemindaian laser.
map_frame Nama dari frame peta
odom_frame Nama dari frame odometry
map_resolution Resolusi peta [m]. Ini adalah panjang tepi sel
grid.
map_size Ukuran [jumlah sel per sumbu] peta. Peta
berbentuk persegi dan memiliki sel kisi
(map_size * map_size).
map_start_x Lokasi asal [0.0, 1.0] bingkai /peta pada sumbu
x relatif terhadap peta kisi. 0,5 di tengah.
map_start_y Lokasi asal [0.0, 1.0] bingkai /peta pada sumbu
y relatif terhadap peta kisi. 0,5 di tengah.
map_update Ambang batas untuk melakukan pembaruan
peta.
_distance_thresh
map_update Ambang batas untuk melakukan pembaruan
peta.
_angle_thresh
map_multi_res_levels Jumlah tingkat petak multi-resolusi.
update_factor_free Pengubah pembaruan peta untuk pembaruan

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.

18. Robot Pose EKF Localization library


EKF adalah implementasi dari filter Kalman yang diperluas. Ini menggunakan
model gerakan omnidirectional untuk memproyeksikan keadaan ke depan dalam
waktu, dan mengoreksi perkiraan yang diproyeksikan menggunakan data sensor
yang dirasakan. EKF digunakan baik dalam proses mapping ataupun navigasi, hal
ini dikarenakan kedua proses itu membutuhkan metode untuk menggabungkan
sensor agar peta yang dihasilkan menjadi lebih baik. Output dari paket ini adalah
sebuah frame bernama odom_combined yang sudah dilakukan koreksi nilai
kesalahan data odometry dengan menggunakan data IMU. Tabel parameter yang
digunakan paket robot pose EKF dapat dilihat pada tabel 4.14.
Tabel 4.18 Parameter yang digunakan EKF Localization
Sumber: (wiki.ros.org, 2022)
Parameter Keterangan
output_frame Nama frame dari odometry, dalam hal ini
adalah /odom
base_footprint_frame Nama frame dari base footprint
freq Frekuensi bernilai nyata dalam Hz, di mana
filter menghasilkan perkiraan keadaan
sensor_timeout Ketika sensor berhenti mengirimkan informasi
ke filter, berapa lama filter harus menunggu
sebelum melanjutkan tanpa sensor itu.
odom_used Aktifkan atau nonaktifkan input sensor
odometry

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.

19. ROS Navigation Stack: AMCL library


ROS navigation library merupakan sekumpulan paket fungsi yang dipakai
untuk proses path planning robot. Library termasuk ke dalam paket eksternal
dari ROS yang dapat langsung di install menggunakan perintah $ sudo apt install
ros-melodic-navigation. Sedangkan AMCL atau Adaptive Monte Carlo
Localization adalah sistem lokalisasi probabilistik untuk robot yang bergerak
dalam 2D. Ini menerapkan pendekatan lokalisasi Monte Carlo adaptif yang
menggunakan filter partikel untuk melacak pose robot terhadap peta yang
diketahui. AMCL digunakan pada lokalisasi proses navigasi robot, yaitu dengan
memanfaatkan data lidar dan hasil pemetaan untuk mendapatkan lokasi dan
pose terkini dari robot. Tabel parameter yang digunakan paket AMCL dapat
dilihat pada tabel 4.15.
Tabel 4.19 Parameter yang digunakan AMCL
Sumber: (wiki.ros.org, 2022)
Parameter Keterangan
odom_frame_id Frame mana yang digunakan untuk odometri.
odom_model_type Model mana yang akan digunakan, baik "diff",
"omni", "diff-corrected" atau "omni-corrected".
base_frame_id Bingkai mana yang digunakan untuk basis robot
update_min_d Jumlah partikel minimum yang diizinkan
update_min_a Jumlah partikel maksimum yang diizinkan
global_frame_id Nama kerangka koordinat yang diterbitkan oleh
sistem lokalisasi
tf_broadcast Setel ini ke false untuk mencegah amcl
memublikasikan transformasi antara frame
global dan frame odometri.
initial_pose_x Mean pose awal (x), digunakan untuk
menginisialisasi filter dengan distribusi
Gaussian.
initial_pose_y Pose awal mean (y), digunakan untuk

104
menginisialisasi filter dengan distribusi
Gaussian.
initial_pose_a Pose mean awal (yaw), digunakan untuk
menginisialisasi filter dengan distribusi
Gaussian.

20. ROS Navigation Stack: Move base library


Di dalam paket ROS navigation stack terdapat paket move base yang
merupakan paket utama untuk mengirimkan pesan twist yang nantinya di
konversi. Di dalam paket ini juga terdapat base global planner untuk path
planning secara global, DWA local planner untuk path planning local serta dan
masih banyak lagi. Semua ini tentunya berisikan fungsi-fungsi yang bertujuan
untuk menunjang sistem navigasi robot. Paket move base melakukan subscribe
pada beberapa topik antara lain, move_base/goal yang merupakan sebuah
koordinat tujuan untuk di capai robot dan move_base/cancel yang merupakan
permintaan untuk membatalkan tujuan tertentu. Output dari paket ini adalah
sebuah topic yang digunakan untuk menggerakkan robot, yaitu cmd_vel.
Parameter yang digunakan pada paket ini dapat dilihat pada tabel 4.16
Tabel 4.20 Parameter yang digunakan Move Base
Sumber: (wiki.ros.org, 2022)
Parameter Keterangan
base_global_planner Nama plugin untuk perencana global untuk
digunakan dengan move_base
base_local_planner Nama plugin untuk perencana lokal untuk
digunakan dengan move_base
recovery_behaviors Daftar plugin perilaku pemulihan untuk
digunakan dengan move_base
controller_frequency Laju dalam Hz untuk menjalankan loop kontrol
dan mengirim perintah kecepatan ke
pangkalan.
planner_patience Berapa lama perencana akan menunggu dalam
hitungan detik dalam upaya untuk menemukan
rencana yang valid sebelum operasi
pembersihan ruang dilakukan.
controller_patience Berapa lama pengontrol akan menunggu dalam
hitungan detik tanpa menerima kontrol yang
valid sebelum operasi pembersihan ruang
dilakukan.
conservative_reset_dist Jarak dari robot dalam meter di mana

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

Parameter paket move base hanya berisikan variabel untuk menentukan


plugin dari perencanaan jalur global dan lokal. Terdapat beberapa parameter
penting yang menjadi konfigurasi pada proses navigasi. Pada dokumentasi ROS
hal ini disebut dengan Component APIs. Node move_base berisi komponen yang
memiliki ROS API sendiri. Komponen ini dapat bervariasi berdasarkan nilai
masing-masing yang tediri dari global costmap, local costmap, global_planner,
local_planner, dan recovery_behaviors. Global costmap adalah semua yang
diketahui robot dari kunjungan sebelumnya dan pengetahuan yang tersimpan
misalnya peta. Sedangkan Local costmap adalah segala sesuatu yang dapat
diketahui dari posisi saat ini dengan sensor yang tepat. Misalnya. orang berjalan
dan benda bergerak lainnya, serta setiap dinding yang dapat dilihat.
Parameter yang ada pada costmap memiliki kesamaan hanya berbeda di
penggunaan dan topik yang akan di subscribe, maka dari itu penjelasan
mengenai parameter global costmap dan local costmap akan dijadikan satu tabel
saja. Berikut ini akan dijelaskan parameter-parameter apa saja yang ada pada
setiap komponen yang sudah disebutkan sebelumnya. Untuk parameter
komponen global dan local costmap dapat dilihat pada tabel 4.17, sedangkan
untuk komponen global planner dapat dilihat pada tabel 4.18 dan local planner
4.19.
106
Tabel 4.21 Parameter yang digunakan pada konfigurasi Global Costmap dan
Local Costmap
Sumber: (wiki.ros.org, 2022)
Parameter Keterangan
global_frame Frame global dari costmap yang mau di
digunakan. Costmap merupakan halangan
pada peta maka dari itu value dari parameter
ini adalah /map
robot_base_frame Nama frame dari base link robot
transform_tolerance menentukan penundaan dalam transformasi
(tf) data yang dapat ditoleransi dalam
hitungan detik.
update_frequency Frekuensi dalam Hz untuk peta yang akan
diperbarui
publish_frequency Frekuensi dalam Hz untuk peta yang akan
mempublikasikan informasi tampilan.
max_obstacle_height Ketinggian maksimum rintangan apa pun yang
akan dimasukkan ke dalam peta biaya dalam
meter.
obstacle_range Jarak maksimum default dari robot tempat
rintangan akan dimasukkan ke dalam costmap
dalam meter.
raytrace_range Rentang default dalam meter untuk
menelusuri rintangan dari peta menggunakan
data sensor
inflation_radius Lebar jari-jari (meter) yang mengembangkan
nilai costmap pada peta
<name>/observation_sources Daftar nama sumber observasi yang
dipisahkan dengan spasi.
<name>/ Topik di mana data sensor masuk untuk
sumber ini.
<source_name>/topic
<name>/ Jenis data yang terkait dengan topik, saat ini
hanya "PointCloud" dan "LaserScan" yang
<source_name>/data_type
didukung.
<name>/ Apakah pengamatan ini harus digunakan
untuk mengosongkan ruang kosong atau tidak.
<source_name>/clearing
map_topic Topik yang menjadi langganan costmap untuk

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.22 Parameter yang digunakan pada konfigurasi Global Planner


(algoritme Dijkstra)
Sumber: (wiki.ros.org, 2022)
Parameter Keterangan
allow_unknown Menentukan apakah akan mengizinkan
perencana membuat rencana yang melintasi
ruang yang tidak diketahui atau tidak
default_tolerance Sebuah toleransi pada titik tujuan untuk
perencana. Path planner akan mencoba
membuat rencana yang sedekat mungkin
dengan tujuan yang ditentukan tetapi tidak
lebih jauh dari default_tolerance.
visualize_potential Menentukan apakah akan memvisualisasikan
area potensial yang dihitung melalui
PointCloud2 atau tidak.
use_dijkstra Jika benar, gunakan algoritma dijkstra. Jika
tidak, A*.
old_navfn_behavior Jika karena alasan tertentu, kita ingin
global_planner benar-benar mencerminkan
perilaku navfn, setel ini ke true (dan gunakan
default untuk parameter boolean lainnya)
lethal_cost Biaya dari lethal area pada konfigurasi ulang
secara dinamis
neutral_cost Biaya dari netral area pada konfigurasi ulang
secara dinamis
cost_factor Faktor yang mengalikan beberapa biaya dari
biaya peta pada konfigurasi ulang secara
dinamis
publish_potential Publikasikan Peta Biaya Potensial pada
108
konfigurasi ulang dinamis
orientation_mod Cara mengatur orientasi setiap titik
orientation_window_size Window mana yang digunakan untuk
menentukan orientasi berdasarkan turunan
posisi yang ditentukan oleh mode orientasi
outline_map Menguraikan peta biaya global dengan
rintangan mematikan. Untuk penggunaan peta
biaya global non-statis (jendela bergulir), ini
perlu disetel ke false

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

Dalam bab perancangan dan implementasi, penulis akan menjabarkan


tahapan perancangan dari sistem secara skematis hingga
pengimplementasiannya secara riil. Di dalam bab ini penulis akan menjelaskan
mengenai perancangan dan implementasi dari sistem yang digunakan pada
penelitian. Perancangan di sini mencakup perancangan secara fisik yang berupa
wiring dan assembling, serta perancangan secara perangkat lunak dengan
perancangan arsitektur dibangunnya sistem robot dan komunikasi. Sementara
itu implementasi terfokus pada aspek bagaimana sistem tersebut berhasil
dibentuk di dunia riil dan bagaimana pemrograman sistem ini bekerja. Hasil dari
perancangan sistem kemudian direalisasikan dan dijelaskan pada implementasi
sistem. Oleh karena itu disusunlah proses bagaimana merancang sistem dan
mengimplementasikannya sebagai berikut.

E.1 Perancangan Sistem


Perancangan sistem bertujuan untuk memahami cara kerja beserta alur kerja
sistem, seperti apa yang nantinya akan dibuat sehingga dalam penjelasannya
dalam perancangan sistem nantinya akan lebih terstruktur dan lebih sistematis.
Perancangan sistem dibagi menjadi tiga bagian yaitu perancangan skematis
arsitektur sistem, perancangan perangkat keras, dan perancangan perangkat
lunak.

E.1.1 Perancangan Skematis Prototype Sistem

Gambar 5.52 Desain chassis sebagai badan depan robot


Prototype dari autonomous mobile robot dirancang dengan menggabungkan
3 komponen utama, yaitu chassis robot, robot beroda, dan sensor robot. Chassis
robot dibuat dengan ukuran 40x40 cm berbahan kayu dengan ketebalan 2 cm.
Pembuatan chassis ini cukup mudah, dari ke-4 papan kayu yang sudah disiapkan
dipilih 1 papan sebagai alas. Kemudian papan ke-2 digunakan sebagai pembatas
sisi dengan memotong papan tersebut menjadi 4 buah bagian dengan lebar
masing-masing 10 cm. Lalu papan ke-3 dipotong dengan lebar 20 cm yang akan

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.

Gambar 5.53 Desain bagian 3D yang dicetak


Desain dari komponen ini menggunakan desain dari proyek Hover Mower,
yang merupakan robot pemotong rumput. Didesain oleh Patrick Weber dan
dapat di download pada link berikut:
https://github.com/HoverMower/hovermower-chassis. Desain ini dapat
digunakan bebas karena menggunakan lisensi GPL 3, jadi diperbolehkan
menggunakan dan mengubah desain tersebut. Lisensi ini memperbolehkan untuk
keperluan pembelajaran, riset, dan keperluan komersial. Akan tetapi desain ini
tidak boleh diperjual belikan tanpa izin pembuatnya yakni Patrick Weber
(https://hobby.weberpatrick.de). Pada bagian kedua sepatbor dijepit
menggunakan baut M4, sedangkan bagian tutup cukup dijepit menggunakan
baut M3. Semua komponen yang akan diberikan baut dipasangkan terlebih
dahulu brass knurled sebagai dudukan untuk baut. Hasil dari gabungan semua
desain ini dapat dilihat pada gambar 5.3.

113
Gambar 5.54 Assembling semua bagian chassis belakang robot

Komponen utama kedua adalah robot beroda yang menjadi penggerak


utama dan tempat pemrosesan gerak robot. Bagian ini di isi oleh motherboard
hoverboard, motor BLDC, baterai 10S2P, power button, dan kabel-kabel yang
terhubung langsung dengan motor DC. Untuk lebar dari mainboard itu sendiri
sekitar 40 cm dengan panjang 25 cm yang detailnya dapat dilihat pada gambar
5.4.

Gambar 5.55 Rancangan Sistem Kemudi Utama Robot


Sistem kemudi yang digunakan pada robot ini menggunakan kemudi dua
buah roda berputar independen yang dikenal sebagai Differential Drive. Metode
kemudi ini memanipulasi nilai RPM tiap rodanya untuk mendapatkan gerak maju
atau berputar. Metode ini disediakan pada paket ROS navigation, sehingga kita
tidak perlu melakukan pemrograman atau perhitungan secara manual
berdasarkan rumus Kinematik seperti yang dapat dilihat pada gambar 5.5. Untuk
menggerakkan atau mengemudikan robot kita hanya perlu memublikasikan
pesan geometric_msgs/Twist ke topik cmd_vel. Cmd_vel merupakan topik yang
digunakan oleh paket move_base untuk mengirim perintah navigasi. Twist
message menggunakan m/s untuk satuan kecepatan linier dan radian/s untuk
satuan kecepatan sudut. Untuk melakukan gerak linier adalah dengan
mengalikan kecepatan linier dengan rasio linier dan atur setiap roda ke
kecepatan ini. Dengan menyamakan putaran tiap rasio roda maka akan
mendapatkan gerak lurus. Untuk melakukan gerakan sudut putar, caranya
hampir persis seperti gerak linier hanya saja kita perlu menemukan rasio yang
berbeda, antara radian per sekon dan output kontrol dan pastikan roda berputar
ke arah yang berlawanan. Untuk mendapatkan gerakan berbelok sedikit atau
gerak non-holonomic maka dibutuhkan sedikit kecepatan rasio disalah satu
rodanya. Gerakan ini sebenarnya merupakan gerakan linier dengan sedikit gerak
angular. Cukup tambahkan kecepatan sudut dan linier untuk setiap roda
bersama-sama untuk mendapatkan kecepatan akhir. Pada akhirnya, jelas
terdapat kecepatan maksimum yang dapat diputar oleh roda robot dan twist
114
message bisa melakukan ini dengan mudah. Jika kita menurunkan kecepatan
kedua roda dengan rasio yang sama sehingga berada dalam kisaran yang mampu
dilakukan motor, maka robot akan mengikuti lintasan yang sama seperti yang
diperintahkan oleh twist message tetapi pada kecepatan yang rendah.

Gambar 5.56 Grafik Kinematik Sistem Kemudi Diff-drive


Komponen utama ketiga adalah sensor robot yang terletak pada bagian
depan robot. Sensor terdiri dari sensor utama RPLIDAR, dan dua sensor untuk
lokalisasi yaitu sensor IMU dan build-in Odometer. Sensor ini berfungsi agar
robot mengetahui kondisi sekitarnya dan mampu mengambil keputusan path
planning. Gambar 5.6, gambar 5.7 dan gambar 5.8 merupakan gambar
keseluruhan desain prototype sistem yang terdiri dari bagian mainboard robot
beroda sebagai penggerak, chassis robot sebagai kerangka dan sensor robot
sebagai penglihatan dari robot. Semua desain ini dibuat menggunakan aplikasi
Autodesk Fusion 360 yang merupakan aplikasi untuk desain 3D yang
dikembangkan oleh Autodesk.

115
Gambar 5.57 Desain Keseluruhan Prototype Sistem Tampak Samping

116
Gambar 5.58 Desain Keseluruhan Prototype Sistem Tampak Atas Tanpa
Penutup

Gambar 5.59 Desain Keseluruhan Prototype Sistem Tampak Bawah


Sistem ini merupakan implementasi pengembangan dari penelitian
sebelumnya yang dibahas pada bab 2 yang hanya berfokus pada mapping saja
atau navigasi saja. Fokus utama dari penelitian ini adalah menciptakan prototype
autonomous mobile robot yang mampu bergerak dari titik awal menuju titik
tujuan dengan menggabungkan mapping dan navigasi. Proses input titik
koordinat tujuan dapat dilakukan baik secara otomatis maupun manual. Proses
secara otomatis menggunakan metode penjadwalan dengan melakukan perintah
terminal dengan memanfaatkan fungsi waktu. Untuk proses manual
menggunakan tampilan antar muka Rviz dan meletakkan 2D Nav Goal pada
aplikasi Rviz. Pada penelitian ini, penulis akan menerapkan kedua metode ini
pada pengujian sistem.

E.1.2 Perancangan Perangkat Keras Sistem


Subbab ini akan menjelaskan mengenai rancangan perangkat keras yang
digunakan pada penelitian ini. Pada subbab sebelumnya, penulis telah
menganalisis kebutuhan sistem yang selanjutnya akan dijelaskan proses kerja
dari perangkat keras menggunakan blok diagram. Blok diagram digunakan
sebagai alat untuk membantu pembaca dalam mengenali titik masalah atau
fokus perhatian secara cepat pada perangkat keras keseluruhan sistem.
Pembahasan dari sistem ini akan dibagi menjadi 2 fokus, antara lain sistem
kendali utama dan sistem robot hoverboard yang masing-masing tergabung
menjadi satu, hal ini dapat dilihat pada gambar 5.7.

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.

Gambar 5.61 Pinout sensor RPLIDAR A1


Sensor RPLIDAR bekerja dengan ideal pada tegangan sebesar 5V yang
bersumber dari Jetson Nano yang terhubung melalui kabel USB 2.0 to micro USB,
sehingga dengan kabel ini kita dapat mendapatkan memberikan masukkan
tegangan sekaligus mengirim dan menerima data. Data yang diterima oleh Jetson
Nano dari sensor RPLIDAR merupakan mentah berupa point cloud yang diproses
oleh driver. Untuk menghubungkan RPLIDAR dengan kabel mikro USB diperlukan
sebuah adapter dengan nama RPLIDAR A1 UART Bridge. Adapter ini berfungsi
untuk menjembatani komunikasi sekaligus mengubah pin dari kabel kecil pada
input dan output RPLIDAR menjadi port mikro USB. Sensor ini memiliki 7 buah
pin yang memiliki fungsi seperti supply daya laser, data laser, supply daya motor,
dan sinyal untuk motor. Untuk melihat penjelasan lebih lanjut mengenai pin dari
RPLIDAR dapat dilihat pada tabel 5.1 dan untuk perangkat RPLIDAR dapat dilihat
pada gambar 5.10.
Tabel 5.24 Penjelasan pinout sensor RPLIDAR
Sumber : (www.slamtec.com, 2016)
Pin modul Pin tujuan Deskripsi
GND GND Pin ground laser
TX RX Pin data dengan komunikasi serial USART

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

Sedangkan pada sensor GY-521 menggunakan tegangan sebesar 3.3V yang


terhubung dengan pin Jetson Nano. Sensor GY-521 ini memiliki port dengan
jumlah 8 pin, namun pin yang digunakan hanya berjumlah 4 buah yakni VCC &
Ground, yang memiliki fungsi masukan daya dan pin SCL & SDA, yang berfungsi
sebagai pengirim data dengan protokol komunikasi I2C. Untuk melihat
penjelasan lebih lanjut mengenai pin dari GY-521 dapat dilihat pada tabel 5.2 dan
untuk perangkat GY-521 dapat dilihat pada gambar 5.11.

Gambar 5.62 Pinout sensor GY-521 IMU MPU6050

Tabel 5.25 Penjelasan pinout sensor GY-521 IMU MPU6050


Sumber : (xtcomp.co.za, 2022)
Pin modul Pin tujuan Deskripsi
VCC 3.3V Pin daya
GND GND Pin ground

120
SCL GPIO 5 (SCL) Pin data dengan komunikasi serial I2C
SDA GPIO 3 (SDA) Pin data dengan komunikasi serial I2C

Setelah membahas mengenai sistem kendali utama robot, maka selanjutnya


kita akan membahas sistem gerak robot. Sistem penggerak berperan sebagai
aktuator yang sekaligus mengirimkan data berupa data odometry. Sistem ini
terdiri dari motherboard hoverboard, motor BLDC, baterai, power on/off dan
Jetson Nano yang terhubung dengan FTDI melalui komunikasi USART.
Motherboard di sini berfungsi sebagai motor driver utama yang mengatur arah
putar dan kecepatan putar motor BLDC. Dengan menggunakan 3 kabel phase di
tiap sisi motor, motherboard hoverboard dapat dengan mudah mengatur
kecepatan dengan memanipulasi nilai voltase yang dialirkan melalui 3 kabel
phase ini. Berbeda dengan motor DC biasa yang menggunakan VCC dan ground
saja, motor BLDC memerlukan 3 kabel phase untuk mengatur tegangan yang
masuk di tiap phase magnetnya. Selain itu dibutuhkan juga 5 pin hall sensor yang
digunakan untuk mengetahui posisi putaran robot sehingga didapatkan data
Odometry pada motor BLDC. Untuk mendeskripsikan rancangan keseluruhan
sistem penggerak ini, dapat dilihat pada gambar 5.12.

Gambar 5.63 Skema sistem penggerak robot

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

Dari penjelasan keseluruhan sistem kita sudah mengetahui konfigurasi yang


akan di implementasikan pada penelitian ini. Baik konfigurasi pin maupun
konfigurasi komunikasi, semua hal ini menghasilkan arsitektur sistem secara
keseluruhan. Untuk memberikan gambaran mengenai arsitektur yang mencakup
keseluruhan sistem maka dibuat blok diagram yang dapat dilihat pada gambar
5.13. Arsitektur ini merupakan sentuhan akhir dari rancangan perangkat keras,
dimaksudkan untuk memberikan penjelasan lebih lanjut kepada pembaca
tentang mengapa perangkat-perangkat keras ini dibutuhkan. Jadi sebelum masuk
ke subbab perangkat lunak, minimal pembaca sudah mengerti hubungan
perangkat keras yang digunakan dan hubungannya dengan perangkat lunak yang
akan dirancang nanti.
123
Gambar 5.64 Arsitektur keseluruhan sistem
Pada gambar 5.13 dapat diperhatikan bahwa semua perangkat keras
digunakan sebagai sistem persepsi, yakni sistem yang mampu mengetahui
kondisi sekitar dan mengetahui lokasi presisi dari sistem. Terdiri dari data-data
yang dihasilkan oleh sensor-sensor yang sudah dijelaskan sebelumnya. Kemudian
ada pula sistem gerak, yakni sistem yang bertugas untuk memproses data
masukan PWM yang kemudian diteruskan ke motor BLDC dalam sebuah nilai
tegangan. Kemudian yang terakhir adalah sistem kontrol, yakni sistem yang
mengendalikan keseluruhan kinerja sistem mulai dari pembacaan data dari
sensor persepsi maupun perencanaan gerak untuk sistem gerak. Ada pula sistem
interaksi manusia-komputer yang akan dijelaskan pada subbab perancangan
perangkat lunak.

E.1.3 Perancangan Perangkat Lunak


Pada subbab ini, penulis akan menjelaskan mengenai rancangan perangkat
lunak yang digunakan pada penelitian ini. Perangkat lunak merupakan komponen
penting dalam sistem guna menentukan bagaimana cara sistem bekerja.
Penelitian ini memiliki fokus untuk menciptakan sistem otomatis untuk robot
beroda yang mampu bergerak secara mandiri dari titik awal menuju titik tujuan
menggunakan gabungan beberapa sensor dan algoritme. Perancangan dari

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

Gambar 5.65 Diagram alir tahap persiapan awal motherboard

Perancangan persiapan awal motherboard terdiri dari beberapa proses-


proses persiapan sebelum merancang perangkat lunak sistem. Jadi tahap
persiapan awal bukanlah proses atau alur algoritme sistem, melainkan tahap-
tahap yang harus dijalankan sebelum membuat perangkat lunak sistem. Hal ini
penting dikarenakan sistem perangkat lunak yang tidak biasa. Perangkat lunak
pada robot ini terdiri dari banyak sekali dependensi dan paket-paket. Selain itu
robot pada penelitian ini menggunakan robot dari komponen hoverboard yang di
125
modifikasi sedemikian rupa sehingga proses persiapan awal ini sangat penting
dilakukan untuk menciptakan robot modifikasi ini.
Tahap-tahap pada persiapan awal secara garis besar dapat dilihat pada
gambar diagram alir 5.14. Berdasarkan diagram tersebut, hal yang pertama
dilakukan adalah menghubungkan komputer personal dengan motherboard. Ini
merupakan tahap “connecting” untuk nantinya dilakukan proses flashing. Tahap-
tahap untuk menghubungkan komputer personal dengan motherboard dapat
dilihat pada gambar 5.15.

Gambar 5.66 Diagram alir tahap sub-awal motherboard: menghubungkan


motherboard ke komputer
Proses ini dimulai dengan memberikan kabel jumper pada perangkat STLink
yang kemudian dihubungkan dengan 4 buah pin yang ada di motherboard. Untuk
detail mengenai pin ini dapat dilihat pada gambar 5.16 dan tabel 5.4.

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

Gambar 5.71 Diagram alir 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.

Gambar 5.76 Diagram alir proses algoritme Hector SLAM

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

Gambar 5.79 Diagram Alir 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.

E.2 Implementasi Sistem


Tahapan perancangan telah selesai, kini memasuki tahapan implementasi
sistem untuk diimplementasikan secara riil. Pada tahapan ini penulis akan
mendokumentasikan bagaimana sistem tersebut berbentuk dan bagaimana
pemrograman dari sistem ini bekerja.

E.2.1 Implementasi Perangkat Keras


Pada tahapan implementasi perangkat keras, akan dibahas bagaimana sistem
tersebut dirancang secara riil melalui konfigurasi pin maupun penempatan yang
telah dijelaskan pada tahapan perancangan implementasi perangkat keras
sebelumnya.
E.2.1.1 Implementasi Perangkat Keras Sistem Mainboard Robot
Sistem Mainboard Robot merupakan sistem utama dari robot tanpa adanya
campur tangan dari sensor RPLIDAR ataupun IMU. Sistem ini meliputi komponen
utama pengendali dan aktuator saja. Seperti yang terlihat pada gambar 5.17 dan
5.18.

146
Gambar 5.80 Implementasi Perangkat Keras Sistem Mainboard Robot (Tampak
Samping)

Gambar 5.81 Implementasi Perangkat Keras Sistem Mainboard Robot (Tampak


Atas)
Seperti yang dapat dilihat pada gambar 5.17 dan 5.18 sistem mainboard ini
meliputi bagian kepala robot dengan kedua motor di sisi kiri dan kanan chasis
hitam. Di dalam chasis terdapat motherboard dan baterai yang memberikan catu
daya ke motherboard. Terdapat lubang pada chasis kepala robot, lubang ini
berfungsi sebagai jalur pengkabelan motherboard ke baterai, motor dan
mikrokomputer.
E.2.1.2 Implementasi Perangkat Keras Sistem Sensor Robot
Sistem sensor robot merupakan sistem sensoring yang ditambahkan pada
robot. Pada pengimplementasiannya robot dapat bergerak tanpa menggunakan
sensor akan tetapi untuk membangun sistem otomatisasi robot diperlukan
sensor yang dapat menangkap jarak disekitar dan penentuan posisi robot secara
real time. Seperti yang terlihat pada gambar 5.19 dan 5.20
147
Gambar 5.82 Implementasi Perangkat Keras Sistem Sensor Robot (Tampak
Samping)

Gambar 5.83 Implementasi Perangkat Keras Sistem Sensor Robot (Tampak


Atas)
Seperti yang dapat dilihat pada gambar 5.19 dan 5.20 sistem sensor ini
meliputi bagian kepala robot dengan kedua motor di sisi kiri dan kanan chasis
hitam. Di dalam chasis terdapat motherboard dan baterai yang memberikan catu
daya ke motherboard. Terdapat lubang pada chasis kepala robot, lubang ini
berfungsi sebagai jalur pengkabelan motherboard ke baterai, motor dan
mikrokomputer.

E.2.2 Implementasi Perangkat Lunak


Pada tahapan implementasi perangkat keras, akan dibahas bagaimana sistem
tersebut dirancang secara riil melalui konfigurasi pin maupun penempatan yang
telah dijelaskan pada tahapan perancangan implementasi perangkat keras
sebelumnya.

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

Dalam bab pengujian, penulis akan menguraikan dan menunjukkan


bagaimana sistem ini dapat diimplementasikan dengan pengujian tertentu.
Adanya pengujian ini dimaksudkan untuk menilai apakah sistem yang dirancang
telah sesuai dengan tujuan maupun rumusan masalah yang penulis ajukan. Hasil
dari pengujian juga digunakan sebagai hasil penarikan kesimpulan pada bab
selanjutnya. Berikut merupakan tahapan pengujian pada penelitian ini:

F.1 Metode Pengujian


Penelitian ini akan diuji dengan menggunakan sebuah purwarupa kereta api
dan purwarupa skala kecil dari sensor yang digunakan. Pengujian disini nantinya
akan diuji berdasarkan fungsionalitas dan kinerja. Pengujian fungsionalitas
bertujuan menguji fungsi yang telah disampaikan sebelumnya dan pengujian
kinerja bertujuan untuk menguji bagaimana sistem bekerja dalam situasi
tertentu

F.2 Pengujian Fungsional


Penelitian ini akan diuji dengan menggunakan sebuah purwarupa kereta api
dan purwarupa skala kecil dari sensor yang digunakan. Pengujian disini nantinya
akan diuji berdasarkan fungsionalitas dan kinerja. Pengujian fungsionalitas
bertujuan menguji fungsi yang telah disampaikan sebelumnya dan pengujian
kinerja bertujuan untuk menguji bagaimana sistem bekerja dalam situasi
tertentu

F.2.1 Pengujian Fungsional Mainboard Robot


Pengujian fungsional mainboard robot adalah kebutuhan sistem yang
memastikan bahwa pusat kontrol atau mikrokomputer Jetson nano Zero W
mampu menerima data dari keretta api ataupun sensor di lintasan. Berikut
merupakan detil dari pengujian nantinya
Tabel 6.32 Deskripsi Pengujian Mainboard Robot
Nama Sistem Mainboard Robot
Nama Kasus Uji Lorem ipsum dolor sit amet, consectetur
adipiscing elit
Tujuan Pengujian Lorem ipsum dolor sit amet, consectetur
adipiscing elit, sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua.
Prosedur Pengujian Lorem ipsum dolor sit amet, consectetur
adipiscing elit, sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua.
Harapan Hasil Pengujian Lorem ipsum dolor sit amet, consectetur

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.

F.3 Pengujian Kinerja


Pengujian kinerja akan menilai performa dari sistem yang telah
diimplementasikan. Oleh karena itu, pengujian ini akan spesifik pada pengujian
delay pada pengiriman dan penerimaan paket MQTT, pengujian stress load dari
MQTT karena adanya kemungkinan lebih banyak kereta api pada kondisi riil, dan
kecepatan pembacaan RFID tags. Berikut merupakan beberapa fungsi yang telah
penulis lakukan

F.3.1 Pengujian Delay Pengiriman


Pengujian delay pengiriman kinerja protokol komunikasi MQTT berguna
untuk memahami seberapa efisienkah protokol komunikasi ini dalam lingkup
sistem yang bergerak dan sistem tetap. Delay disini juga berperan besar dalam
memberikan gambaran penerapan riil nantinya bila menggunakan protokol
serupa. Berikut merupakan detil dari pengujian nantinya
Tabel 6.33 Deskripsi Pengujian Mainboard Robot
Nama Sistem Mainboard Robot
Nama Kasus Uji Lorem ipsum dolor sit amet, consectetur
adipiscing elit, sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua.
Tujuan Pengujian Lorem ipsum dolor sit amet, consectetur
adipiscing elit, sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua.
Prosedur Pengujian Lorem ipsum dolor sit amet, consectetur
adipiscing elit, sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua.
Harapan Hasil Pengujian Lorem ipsum dolor sit amet, consectetur
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.3 Jenis dan Ukuran Huruf


Jenis huruf yang dipakai dalam skripsi adalah Calibri dengan ketentuan
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.

A.5 Kepala Bab dan Subbab


Kepala bab terdiri dari kata “BAB” yang diikuti dengan nomor bab dan judul
dari bab tersebut, misalnya “BAB 1 PENDAHULUAN” . Kepala subbab diawali
dengan nomor sesuai tingkat hirarkinya dan diikuti dengan judul subbab,

A.6 Nomor Halaman


Bagian awal skripsi menggunakan nomor halaman berupa angka
Romawi kecil (i, ii, iii, iv, dan seterusnya) yang dimulai dari sampul dalam.

158
LAMPIRAN B PERSYARATAN FISIK DAN TATA LETAK

B.1 Margin
Batas pengetikan naskah adalah sebagai berikut :

B.2 Jenis dan Ukuran Huruf


Jenis huruf yang dipakai dalam skripsi adalah Calibri dengan ketentuan
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.

B.4 Kepala Bab dan Subbab


Kepala bab terdiri dari kata “BAB” yang diikuti dengan nomor bab dan judul
dari bab tersebut, misalnya “BAB 1 PENDAHULUAN” . Kepala subbab diawali
dengan nomor sesuai tingkat hirarkinya dan diikuti dengan judul subbab,

B.5 Nomor Halaman


Bagian awal skripsi menggunakan nomor halaman berupa angka
Romawi kecil (i, ii, iii, iv, dan seterusnya) yang dimulai dari sampul dalam.

159
LAMPIRAN C PERSYARATAN FISIK DAN TATA LETAK

C.1 Margin
Batas pengetikan naskah adalah sebagai berikut :

C.2 Jenis dan Ukuran Huruf


Jenis huruf yang dipakai dalam skripsi adalah Calibri dengan ketentuan
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.

C.4 Kepala Bab dan Subbab


Kepala bab terdiri dari kata “BAB” yang diikuti dengan nomor bab dan judul
dari bab tersebut, misalnya “BAB 1 PENDAHULUAN” . Kepala subbab diawali
dengan nomor sesuai tingkat hirarkinya dan diikuti dengan judul subbab,

C.5 Nomor Halaman


Bagian awal skripsi menggunakan nomor halaman berupa angka
Romawi kecil (i, ii, iii, iv, dan seterusnya) yang dimulai dari sampul dalam.

160
LAMPIRAN D PERSYARATAN FISIK DAN TATA LETAK

D.1 Margin
Batas pengetikan naskah adalah sebagai berikut :

D.2 Jenis dan Ukuran Huruf


Jenis huruf yang dipakai dalam skripsi adalah Calibri dengan ketentuan
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.

D.4 Kepala Bab dan Subbab


Kepala bab terdiri dari kata “BAB” yang diikuti dengan nomor bab dan judul
dari bab tersebut, misalnya “BAB 1 PENDAHULUAN” . Kepala subbab diawali
dengan nomor sesuai tingkat hirarkinya dan diikuti dengan judul subbab,

D.5 Nomor Halaman


Bagian awal skripsi menggunakan nomor halaman berupa angka
Romawi kecil (i, ii, iii, iv, dan seterusnya) yang dimulai dari sampul dalam.

161
LAMPIRAN E PERSYARATAN FISIK DAN TATA LETAK

E.1 Margin
Batas pengetikan naskah adalah sebagai berikut :

E.2 Jenis dan Ukuran Huruf


Jenis huruf yang dipakai dalam skripsi adalah Calibri dengan ketentuan
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.

E.4 Kepala Bab dan Subbab


Kepala bab terdiri dari kata “BAB” yang diikuti dengan nomor bab dan judul
dari bab tersebut, misalnya “BAB 1 PENDAHULUAN” . Kepala subbab diawali
dengan nomor sesuai tingkat hirarkinya dan diikuti dengan judul subbab,

E.5 Nomor Halaman


Bagian awal skripsi menggunakan nomor halaman berupa angka
Romawi kecil (i, ii, iii, iv, dan seterusnya) yang dimulai dari sampul dalam.

162

Anda mungkin juga menyukai