DESIGN AND IMPLEMENTATION OF AN AUTONOMOUS ROBOTICS SIMULATOR by Adam Carlton Harris A thesis submitted to the faculty of The University of North Carolina at Charlotte in partial fulfillment of the requirements for the degree of Master of Science in Electrical Engineering Charlotte 2011 Approved by: _______________________________ Dr. James M. Conrad _______________________________ Dr. Ronald R. Sass _______________________________ Dr. Bharat Joshi ii © 2011 Adam Carlton Harris ALL RIGHTS RESERVED iii ABSTRACT ADAM CARLTON HARRIS. Design and implementation of an autonomous robotics simulator. (Under the direction of DR. JAMES M. CONRAD) Robotics simulators are important tools that can save both time and money for developers. Being able to accurately and easily simulate robotic vehicles is invaluable. In the past two decades, corporations, robotics labs, and software development groups have released many robotics simulators to developers. Commercial simulators have proven to be very accurate and many are easy to use, however they are closed source and generally expensive. Open source simulators have recently had an explosion of popularity, but most are not easy to use. This thesis describes the design criteria and implementation of an easy to use open source robotics simulator. SEAR (Simulation Environment for Autonomous Robots) is designed to be an open source cross-platform 3D (3 dimensional) robotics simulator written in Java using jMonkeyEngine3 and the Bullet Physics engine. Users can import custom-designed 3D models of robotic vehicles and terrains to be used in testing their own robotics control code. Several sensor types (GPS, triple-axis accelerometer, triple-axis gyroscope, and a compass) have been simulated and early work on infrared and ultrasonic distance sensors as well as LIDAR simulators has been undertaken. Continued development on this project will result in the fleshing out of the SEAR simulator. iv ACKNOWLEDGMENTS I would like to thank my advisor, Dr. James Conrad for his help and guidance throughout this project and my college career as well as Dr. Bharat Joshi and Dr. Ron Sass for serving on my committee. I must also thank my colleagues (Arthur Carroll, Douglas Isenberg, and Onkar Raut) whose consultations and considerations helped me through some of the tougher technical problems of this thesis. I would also like to thank Dr. Stephen Kuyath for his insights and encouragement. Foremost, I would like to thank my wife and family whose support and encouragement has allowed me to come as far as I have and that has helped me surmount any obstacles that may lie in my way. This work is dedicated to the memory of my grandfather Frank Robert Harris. v TABLE OF CONTENTS LIST OF FIGURES ix LIST OF TABLES xi LIST OF ABBREVIATIONS xii CHAPTER 1: INTRODUCTION 1 1.1 Motivation 1 1.2 Objective 2 1.3 Organization 3 CHAPTER 2: REVIEW OF PREVIOUS WORK 4 2.1 Open Source Simulators and Toolkits 5 2.1.1 Player/Stage/Gazebo 5 2.1.2 USARSim 7 2.1.3 SARGE 9 2.1.4 ROS 10 2.1.5 UberSim 11 2.1.6 EyeSim 12 2.1.7 SubSim 12 2.1.8 OpenRAVE 13 2.1.9 RT Middleware 13 2.1.10 MRPT 14 2.1.11 lpzrobots 14 2.1.12 SimRobot 15 2.1.13 Moby 16 vi 2.2 Commercial Robotics Simulators 16 2.2.1 Microsoft Robotics Developer Studio 17 2.2.2 Marilou 18 2.2.3 Webots 20 2.2.4 robotSim Pro/ robotBuilder 22 2.3 Conclusion 23 CHAPTER 3: CONCEPT REQUIREMENTS 25 3.1 Overview of Concept 25 3.2 Models of Robotic Vehicles 25 3.3 Models of Terrain 25 3.4 Project Settings Window 26 3.5 Sensor Wizard 26 3.6 User Code 26 3.7 Actual Simulation 27 CHAPTER 4: TOOLS USED 28 4.1 Language Selection 28 4.2 Game Engine Concepts 28 4.3 jMonkeyEngine Game Engine 30 4.4 Jbullet-jME 31 4.5 Overview of Previous Work 32 CHAPTER 5: IMPLEMENTATION 34 5.1 General Implementation and Methods 34 5.1.1 Models of Robotic Vehicles 34 vii 5.1.2 Models of Terrain 34 5.1.3 Obstacles 35 5.1.4 Project Settings Window 35 5.1.5 Sensor Wizard 37 5.1.6 User Code 40 5.1.7 The Simulation Window 43 5.2 Sensor Simulation 45 5.2.1 Position Related Sensor Simulation 45 5.2.1.1 GPS 46 5.2.1.2 Compass 49 5.2.1.3 Three-Axis Accelerometer 50 5.2.1.4 Three-Axis Gyroscope 52 5.2.1.5 Odometery 54 5.2.2 Reflective Beam Simulation 55 5.2.2.1 Infrared and Ultrasonic Reflective Sensors 55 5.2.2.2 LIDAR 59 CHAPTER 6: CONCLUSIONS 62 6.1 Summary 62 6.2 Future Work 62 6.2.1 Project Settings Window 63 6.2.2 Sensor Wizard 63 6.2.3 Sensor Simulators 63 6.2.4 Models 64 viii 6.2.5 Simulations 65 6.2.6 Other Considerations 66 REFERENCES 67 APPENDIX A: SIMULATOR COMPARISON TABLE 75 APPENDIX B: SURVEY OF 3D CAD MODELING SOFTWARE 77 B.1 Google Sketchup 77 B.2 Blender 78 B.3 Wings3D 78 B.4 Misfit Model 3D 78 B.5 BRL-CAD 78 B.6 MeshLab 79 B.7 Google Earth 79 B.8 Other Software 79 B.9 Table and Conclusions 80 APPENDIX C: PROJECT SETTINGS WINDOW 81 APPENDIX D: SENSOR WIZARD 86 APPENDIX E: GOOGLE EARTH TERRAIN MODEL IMPORT 91 APPENDIX F: CODE LISTINGS 93 ix LIST OF FIGURES FIGURE 2.1.3: SARGE screen shot 9 FIGURE 2.1.12: SimRobot screen shot 15 FIGURE 2.2.1: Microsoft Robotics Developer Studio screen shot 17 FIGURE 2.2.2: anykode Marilou screen shot 18 FIGURE 2.2.3: Webots screen shot 20 FIGURE 2.2.4: robotSim Pro screen shot 22 FIGURE 3.7: Basic work flow diagram of SEAR project 27 FIGURE 5.1.7: Simulator Window screen shot 43 FIGURE 5.2.2.1: Visible simulation of beam concept. 57 FIGURE C.1: The Terrain Model tab of the Project Settings window 81 FIGURE C.2: The Robot Body Model tab of the Project Settings window 82 FIGURE C.3: The Wheel Models tab of the Project Settings window 83 FIGURE C.4: The Vehicle Dynamics tab of the Project Settings window 84 FIGURE C.5: The Code Setup tab of the Project Settings window 85 FIGURE D.1: Infrared tab of the Sensor Wizard GUI 86 FIGURE D.2: The Ultrasonic tab of the Sensor Wizard GUI 87 FIGURE D.3: The GPS tab of the Sensor Wizard GUI 87 FIGURE D.4: The LIDAR tab of the Sensor Wizard GUI 88 FIGURE D.5: The Accelerometer tab of the Sensor Wizard GUI 88 FIGURE D.6: The Gyroscope tab of the Sensor Wizard GUI 89 FIGURE D.7: The Compass tab of the Sensor Wizard GUI 89 FIGURE D.8: The Odometer tab of the Sensor Wizard GUI 90 x FIGURE E.1: The “Get Current View” button in Google Sketchup 91 FIGURE E.2: The “Toggle Terrain” button in Google Sketchup 92
Description: