By
Victor Nugraha Putera 11301041
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
January 2018
Revision after the Thesis Defence on 18 January 2018
Victor Nugraha Putera STATEMENT BY 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.
Victor Nugraha Putera
_____________________________________________
Student Date
Approved by:
Dr. Rusman Rusyadi, B. Sc., M. Sc.
_____________________________________________
Thesis Advisor Date
Dr. Irvan Kartawiria, S. T., M. Sc.
_____________________________________________
Dean Date
Victor Nugraha Putera ABSTRACT
FURTHER DEVELOPMENT OF AN AUTONOMOUS MOBILE ROBOT NAVIGATION SYSTEM USING ROBOT OPERATING SYSTEM
By
Victor Nugraha Putera
Dr. Rusman Rusyadi, B.Sc., M. Sc., Advisor SWISS GERMAN UNIVERSITY
The purpose of this thesis is to do further development towards the navigation system of an existing autonomous mobile robot by implementing robotics middleware called Robot Operating System (ROS). Wall follower technique and parking mechanism are the two mandatory navigation systems that will be developed in this thesis. A laser scanner sensor called RPLIDAR will be used as a primary sensor to determine angle and range of detected wall or object, both of the angle and range data obtained will be used as the input data. The input data will be processed in Nvidia Jetson Tegra K1 mini PC to obtain the output data, all of the software and program packages needed will also be stored in mini PC since the mini PC worked as the main processing data hardware.
Output data which consist of steering control and drive motor speed will be executed by Arduino Microcontroller.
Keywords: Autonomous, Arduino, Laser Scanner, LIDAR, Microcontroller, Navigation System, Mini PC, Radio Control Car, Robot Operating System, Wall Follower, Parking
Victor Nugraha Putera
© Copyright 2018 Victor Nugraha Putera
All rights reserved
Victor Nugraha Putera DEDICATION
I dedicated this thesis project for the future of engineering and science in all over the world.
Victor Nugraha Putera ACKNOWLEDGEMENTS
First of all, I would like to express my gratitude to Jesus Christ for His guidance and blessing which allow me to finish this thesis project in time.
I would like to express my sincere gratitude to my family, who always support me mentally, spiritually, and financially.
Furthermore, I would like to give my deepest gratitude to Dr. Rusman Rusyadi, B.Sc., M.Sc., as my thesis advisor for his guidance, patience, and support that make me able to finish my thesis project.
Last but not least, I would also like to give my deepest gratitude to my teammates Aulia Syamil and Kevin Ariesta, SGU Lectures, and all of my friends. Without all of those who have listed above, I would not be capable of finishing my thesis project.
Victor Nugraha Putera TABLE OF CONTENTS
Page
STATEMENT BY AUTHOR... 2
ABSTRACT ... 3
© Copyright 2018 ... 4
DEDICATION ... 5
ACKNOWLEDGEMENTS ... 6
TABLE OF CONTENTS ... 7
LIST OF FIGURES ... 12
LIST OF TABLES ... 16
LIST OF EQUATIONS ... 17
CHAPTER 1 – INTRODUCTION ... 18
1.1 Background ... 18
1.2 Objectives ... 19
1.3 Thesis Problem... 19
1.4 Thesis Scope ... 19
1.5 Thesis Limitation ... 19
1.6 Thesis Outline ... 20
CHAPTER 2 – LITERATURE REVIEW ... 21
2.1 Introduction ... 21
2.2 Robot Operating System ... 21
2.3 Radio Controller Car ... 23
2.4 Light Detection and Ranging Sensor ... 24
2.5 Mini PC ... 26
Victor Nugraha Putera
2.6 Arduino Microcontroller ... 27
2.7 Previous Studies ... 28
2.7.1 MIT RACECAR ... 28
2.7.2 Reconfiguration and Implementation of MIT RACECAR Navigation ... 30
2.7.3 Neato Autonomous Parking ... 30
2.7.4 Cornell University Autonomous Parallel Parking ... 31
CHAPTER 3 – RESEARCH METHOD ... 33
3.1 Introduction ... 33
3.2 General Methodology ... 33
3.3 System Design ... 34
3.4 Component Selection ... 35
3.4.1 Tamiya TT - 01 ES XB Series 1/10 Scale Radio Controlled Car ... 35
3.4.1.1 Tamiya TT-01 ES XB Series 1/10 Scale - Mechanical Design ... 35
3.4.1.2 Tamiya TT-01 ES XB Series 1/10 Scale - Electrical Design ... 36
3.4.1.3 Steering Servo PWM Value Experiment ... 38
3.4.1.4 ESC PWM Value Experiment ... 38
3.4.2 RPLIDAR A2 Laser Scanner ... 39
3.4.2.1 RPLIDAR A2 Software Development Kit ... 40
3.4.3 Nvidia Jetson Tegra K1 Mini PC ... 41
3.4.3.1 Nvidia Jetson Tegra K1 Remote Access ... 42
3.4.4 Arduino UNO Microcontroller ... 43
3.5 Robot Operating System Package ... 44
3.5.1 RPLIDAR Package ... 46
3.5.2 Teleop_twist_keyboard ... 46
3.5.3 Rosserial ... 46
3.5.4 Ros_lib Arduino Package ... 47
3.5.5 Wall Follower Package... 47
3.5.6 Autonomous Parking Package ... 47
3.6 Platform Design ... 48
Victor Nugraha Putera
3.7.1 Wall Reference ... 49
3.7.2 Filtering ... 49
3.7.3 Polar to Euclidean Conversion ... 50
3.7.4 PID Controller ... 51
3.8 Autonomous Parking Navigation System Algorithm ... 53
3.8.1 Initial Parking ... 53
3.8.2 Position Alignment ... 54
3.8.3 Parking Mechanism ... 55
3.8.3.1 Parallel Parking ... 55
3.8.3.2 Perpendicular Parking ... 55
CHAPTER 4 – RESULT AND DISCUSSIONS ... 57
4.1 Introduction ... 57
4.2 Tamiya TT-01 ES XB Series Mechanical Design ... 57
4.2.1 Ackermann Steering Mechanism Prove ... 57
4.2.2 Tamiya TT-01 ES XB Maximum Steering Angle Calculation ... 59
4.3 Tamiya TT-01 ES XB Series Electrical Design ... 60
4.3.1 Steering Servo PWM Value Calibration ... 60
4.3.2 Motor RPM According to the ESC PWM Value ... 62
4.3.3 RPM to Speed Calibration ... 64
4.4 RPLIDAR A2... 65
4.4.1 RPLIDAR SDK Installation ... 65
4.4.2 Scan Data Collection ... 66
4.5 Nvidia Jetson Tegra K1 Remote Access ... 67
4.5.1 Dnsmasq Installation ... 67
4.5.2 Dnsmasq Issue ... 68
4.6 Platform Design ... 69
4.6.1 Base Platform ... 69
4.6.2 RPLIDAR A2 Base Platform ... 70
Victor Nugraha Putera
4.6.3 Shield Platform ... 71
4.6.4 Previous Platform Design Issue... 72
4.7 Wall Follower Navigation System ... 72
4.7.1 Input Data Collection ... 73
4.7.2 RPLIDAR A2 Window Angle... 73
4.7.3 Recalibration of Proportional and Derivative Control ... 75
4.7.3.1 Oscillation Behavior ... 76
4.7.3.2 New Proportional and Derivative Value ... 78
4.7.4 Speed and Steering Controller Algorithm ... 78
4.7.4.1 Speed and Steering Controller Indicator Consideration ... 79
4.7.4.2 Slope and Intercept Value ... 80
4.7.4.3 Speed and Steering Behavior According to Slope Value ... 81
4.7.4.4 Speed and Steering Behavior According to Intercept Value ... 84
4.7.4.5 Speed Value Calculation ... 87
4.8 Autonomous Parking Navigation System ... 88
4.8.1 Initial Parking ... 88
4.8.1.1 Initial Parking When There is No Available Parking Spot ... 89
4.8.1.2 Initial Parking When There is An Available Parking Spot ... 90
4.8.2 Autonomous Parking Issue ... 91
4.9 Autonomous Forward Parking Navigation System ... 93
4.9.1 Implementation of Safety Algorithm into Wall Follower Algorithm ... 94
4.9.2 Autonomous Forward Parking Behavior ... 95
CHAPTER 5 – CONCLUSIONS AND RECOMMENDATIONS ... 97
5.1 Conclusions ... 97
5.2 Recommendations ... 99
GLOSSARY ... 100
REFERENCES ... 101
APPENDIX A – TAMIYA TT-01 ES XB SERIES MECHANICAL PARTS ... 104
APPENDIX B – TAMIYA TT-01 ES XB SERIES ELECTRICAL PARTS ... 106
Victor Nugraha Putera
B.1 Nvidia Jetson Tegra K1 ... 108
B.2 Arduino UNO ... 111
B.3 RPLIDAR A2 ... 112
APPENDIX D – PROGRAM CODE ... 114
C.1 wall_follow.py... 114
C.2 parking.py ... 123
C.3 speed_and_steering_controller.ino ... 127
C.4 wall_follower.launch ... 129
C.5 parking.launch ... 129
APPENDIX E – BILL OF MATERIALS ... 130
CURRICULUM VITAE ... 131