By Edrick 11601003
BACHELOR’S DEGREE in
MECHANICAL ENGINEERING – MECHATRONICS CONCENTRATION FACULTY OF ENGINEERING AND INFORMATION TECHNOLOGY
SWISS GERMAN UNIVERSITY The Prominence Tower
Jalan Jalur Sutera Barat No. 15, Alam Sutera Tangerang, Banten 15143 – Indonesia
STATEMENT BY THE AUTHOR
I hereby declare that this submission is my own work and to the best of my knowledge, it contains no material previously published or written by another person, nor material which to a substantial extent has been accepted for the award of any other degree or diploma at any educational institution, except where due acknowledgement is made in the thesis.
Edrick
_____________________________________________
Student
Date Approved by:
Dr. Rusman Rusyadi, B. Eng., M. Sc.
_____________________________________________
Thesis Advisor Date
Dr. Maulahikmah Galinium, S. Kom., M.Sc.
_____________________________________________
Dean Date
ABSTRACT
OUTDOOR AMR USING ROBOT OPERATING SYSTEM (ROS) AND GNSS
By Edrick Phoa
Dr. Rusman Rusyadi, B. Eng, M.Sc., Advisor
SWISS GERMAN UNIVERSITY
The purpose of this thesis is to create an autonomous mobile robot with an outdoor navigation system to deliver goods in between warehouses in industries. The autonomous mobile robot is equipped with varies of sensors that integrates and work together to generate a desirable output without constantly being controlled. The robot will be using GPS for outdoor localization, and other navigation sensors (IMU, odometer and camera). To be able to generate precise location and positioning of the robot, Kalman filter method will be applied. Kalman filter is a method to estimate and predict the output in linear and quadratic form. Linorobot is a ROS development platform which supports a variety of sensors and will be a great advantage to be use in the mobile robot. Another development platform called Husky is also used and integrated for outdoor purposes which will help in localize the GPS data with the other sensors. After collecting several waypoints, the robot is able to follow the data collected and configure the heading with the initial condition. The testing of the actual performance conduct by the robot’s positioning using GPS verifies the outdoor AMR using GNSS.
Keywords: AMR, ROS, Outdoor Navigation, Kalman Filter, GPS Waypoints
© Copyright 2020 by Edrick All rights reserved
DEDICATION
I dedicate this work to God, my beloved families and friends, to my advisor, all lecturers and Ari Hidayat from Mechatronic batch 2016. Rest in Peace Ari.
ACKNOWLEDGEMENTS
I am grateful for God’s grace and guidance that I am able to finish my thesis despite the obstacles that occurred throughout its completion.
I also would like to express my deepest gratitude to my parents for their guidance, love, prayers, and sacrifices in order to prepare for my future.
I would like to express my most sincere gratitude to my advisor Dr. Rusman Rusyadi, B. Eng, M. Sc. for his guidance, motivation, time, and support throughout the completion of the thesis.
I want to express my gratitude to my friends: Alvin Tri Hartono, Fendy Heryanto, Oliver Benedict, Dwi Karuna, Einser Nahiman Turjono, Giovanni Firdaus Putra, Quincy Juventinus, and especially Wilvan Gunawan that has been through ups and downs throughout half of my lifetime. Thank you for your support, strength, and motivation throughout the thesis.
Finally, I would like to thank PT. Kreasi Solusi Mandiri (KSM) for all the effort and help in making the mechanical work, and all the lecturer for giving me advice, and constant encouragement throughout my years in SGU, and also my friends for supporting me.
TABLE OF CONTENTS
Page
STATEMENT BY THE AUTHOR ... 2
ABSTRACT... 3
DEDICATION ... 5
ACKNOWLEDGEMEN TS ... 6
TABLE OF CONTENTS... 7
LIST OF FIGURES ... 11
LIST OF TABLES ... 13
1. CHAPTER 1 – IN TRODUCTION... 14
1.1 Background... 14
1.2 Thesis Objectives... 15
1.3 Thesis Problem ... 16
1.4 Thesis Scopes ... 16
1.5 Thesis Limitations ... 16
1.6 Significance of Study ... 17
1.7 Thesis Organizations ... 17
2. CHAPTER 2 - LITERATURE REVIEW ... 19
2.1 Introduction ... 19
2.2 Robot Operating System (ROS) ... 19
2.3 Global Navigation Satellite System (GNSS)... 20
2.5 Rosserial ... 23
2.6 Mapviz ... 24
2.7 Robot Localization ... 25
2.7.1 Sensor Fusion with Robot Localization ... 26
2.8 Visual Sensor ... 27
2.9 Arduino IDE ... 28
2.10 Qt Creator ... 28
2.11 Drive Motor ... 29
2.12 Previous Studies... 29
2.12.1 MiR100 Robot ... 29
2.12.2 Linorobot ... 30
2.12.3 Husky... 31
3. CHAPTER 3 – RESEARCH METHODS... 32
3.1 Introduction ... 32
3.2 General Methodology ... 32
3.3 System Design ... 34
3.4 Kinematic and Modelling of Robot ... 35
3.5 Haversine Formula ... 38
3.6 Electrical Design ... 39
3.6.1 Adafruit Ultimate GPS ... 39
3.6.2 Xbox 360 Kinect... 40
3.6.3 Inertial Measurement Unit (IMU) MPU 9250 ... 41
3.6.4 Rotary Encoder ... 42
3.6.5 Microcontroller ... 43
3.6.6 Accumulator Battery ... 44
3.6.7 Motor Driver... 46
3.6.8 DC Motor... 47
3.7 ROS (Robot Operating System) Packages ... 50
3.7.1 Mapviz ... 50
3.7.2 Linorobot ... 50
3.7.3 GPS Communication ... 51
3.7.4 GPS Data Parser ... 51
3.7.5 Outdoor Waypoint Navigation ... 52
3.7.6 Freenect Camera ... 52
3.7.7 Depth Image to Laserscan ... 53
3.7.8 Robot Localization ... 53
3.7.9 Image Rotate... 53
3.7.10 Teleop Twist Packages ... 54
3.8 Development Tools ... 54
3.9 Software Design ... 56
3.9.1 Image Rotate into Depth Image to Laserscan... 57
4. CHAPTER 4 – RESULTS AND DISCUSSIONS ... 60
4.1 Introduction ... 60
4.2 Testing GPS with Mapviz ... 60
4.3 Camera Calibration... 63
4.3.1 Depth Image to Laserscan ... 64
4.3.2 Depth Image to Laserscan in Mapviz ... 68
4.4 IMU Calibration ... 69
4.5 PID Calibration... 70
4.6 Teleop Twist ... 72
4.7 Odometry Configuration ... 73
4.8 GPS Collect Waypoint ... 77
4.8.1 Collecting Fix Data from GPS ... 78
4.9 GPS Waypoint Testing ... 82
5. CHAPTER 5 – CONCLUSIONS AND RECCOMENDATIONS ... 85
5.1 Conclusions ... 85
5.2 Recommendations ... 86
GLOSSARY ... 87
REFERENCES ... 88
APPENDICES ... 90
LIST OF FIGURES
Figures Page
Figure 2-1 ROS Logo... 19
Figure 2-2 Arduino Mega ... 22
Figure 2-3 Teensy 4.0 ... 23
Figure 2-4 Rosserial ... 23
Figure 2-5 Mapviz User Interface ... 24
Figure 2-6 ROS Navigation Stack ... 25
Figure 2-7 Graph example of Kalman Filter. This figure was found in (Amador, 2018) ... 26
Figure 2-9 Arduino IDE ... 28
Figure 2-10 Drive Motor placement based on MiR100 ... 29
Figure 2-11 MiR100 ... 30
Figure 2-12 Linorobot example from ground up ... 31
Figure 3-1 General Methodology... 32
Figure 3-2 Electrical Design ... 34
Figure 3-3 Kinematic Model of the Robot... 35
Figure 3-4 Adafruit Ultimate GPS ... 39
Figure 3-5 Inertial Measurement Unit (IMU) MPU-9250 ... 41
Figure 3-6 Rotary Encoder HE50B-8-360-3-N-24 ... 42
Figure 3-7 Teensy 4.0 ... 43
Figure 3-8 Arduino Mega 2560 ... 44
Figure 3-9 Acummulator Battery - Panasonic 70D23L ... 45
Figure 3-10 IBT 2 – Motor Driver ... 47
Figure 3-11 DC Motor 8DCG24-25-30 ... 48
Figure 3-12 ROS Mapviz ... 50
Figure 3-13 ROS lino_install ... 51
Figure 3-14 ROS GPS Communication with Linux ... 51
Figure 3-15 ROS NMEA Package to Parse GPS Data ... 52
Figure 3-18 Arduino IDE ... 54
Figure 3-19 Qt Creator ... 55
Figure 3-20 Software Design ... 56
Figure 3-21 Rotated image into scan topic ... 58
Figure 3-22 Flowchart of Mapviz Configuration with Plug- ins ... 59
Figure 4-1 Pinout Arduino and GPS Module ... 60
Figure 4-2 Modified GPS Launch file ... 61
Figure 4-3 GPS Data ... 62
Figure 4-4 Mapviz UI Showing the GPS Position ... 63
Figure 4-5 RGB Camera Calibration ... 64
Figure 4-6 Camera's launch file ... 65
Figure 4-7 Depthimage_to_laserscan package ... 66
Figure 4-8 Depth Image Rotated... 67
Figure 4-9 Mapviz UI using RGB Camera ... 69
Figure 4-10 IMU Calibration ... 70
Figure 4-11 PID Configuration ... 71
Figure 4-12 Config File ... 72
Figure 4-13 Rqt_graph of the odometer configuration ... 74
Figure 4-14 RViz and Encoder readings... 76
Figure 4-15 Collect GPS Waypoints... 77
Figure 4-16 Mapviz UI using coordinate_picker ... 82
LIST OF TABLES
Table Page
Table 3-1 Adafruit Ultimate GPS Specification ... 39
Table 3-2 Xbox 360 Kinect Specification... 41
Table 3-3 Rotary Encoder HE50B-8-360-3-N-24 ... 43
Table 3-4 Accumulator Battery Specification ... 46
Table 3-5 Motor Driver Specification... 47
Table 3-6 DC Motor Specification... 48
Table 4-1 Camera Distance Testing... 67
Table 4-2 Ziegler-Nichols Method ... 71
Table 4-3 Odometry Testing ... 75
Table 4-4 Fix Data from GPS for 30 seconds ... 78
Table 4-5 Distance Calculation using Haversine Formula for Table 4-4 ... 79
Table 4-6 GPS Data After Moving from Origin for 15 Minutes ... 80
Table 4-7 Distance Calculation using Haversine Formula for Table 4-6 ... 81
Table 4-8 Waypoint Testing with Automatically Initialized Origin ... 83
Table 4-9 Manual Waypoint Testing ... 84