Runswift Team Report 2010 Robocup Standard Platform League
Total Page:16
File Type:pdf, Size:1020Kb
rUNSWift Team Report 2010 Robocup Standard Platform League Adrian Ratter Bernhard Hengst Brad Hall Brock White Benjamin Vance Claude Sammut David Claridge Hung Nguyen Jayen Ashar Maurice Pagnucco Stuart Robinson Yanjin Zhu fadrianr,bernhardh,bradh,brockw,bvance,claude,davidc,dhung,jayen,morri,stuartr,yanjinzg @cse.unsw.edu.au October 30, 2010 School of Computer Science & Engineering University of New South Wales Sydney 2052, Australia Abstract RoboCup continues to inspire and motivate our research interests in cognitive robotics and ma- chine learning, particularly layered hybrid architectures, abstraction, and high-level programming languages. The newly formed 2010 rUNSWift team for the Standard Platform League mainly in- cludes final year undergraduate students under the supervision of leaders who have been involved in RoboCup for many years. In 2010 the team revamped the entire code-base and implemented a new integrated project management system. Several innovations have been introduced in vi- sion, localisation, locomotion and behaviours. This report describes the research and development undertaken by the team in the 2009/2010 year. Contents 1 Introduction 1 1.1 Project Management....................................1 1.2 Research Interests.....................................2 1.2.1 Humanoid Robots.................................4 1.2.2 Locomotion.....................................4 1.2.3 Localisation.....................................4 1.2.4 Vision........................................4 1.2.5 Software Engineering and Architecture......................5 1.3 2010 Developments.....................................5 1.3.1 System Architecture................................5 1.3.2 Vision........................................5 1.3.3 Localisation.....................................6 1.3.4 Motion.......................................7 1.3.5 Behaviour......................................7 1.4 Outline of Report......................................7 2 Robotic Architecture8 2.1 Introduction.........................................8 2.2 Agents and Agent Architectures..............................9 2.2.1 Task Hierarchies.................................. 11 2.3 rUNSWift 2010 Robotic Architecture........................... 12 2.4 Conclusions and Future Work............................... 14 3 System Implementation 15 3.1 Interacting with the Nao robot.............................. 15 3.1.1 The `libagent' NaoQi module........................... 15 3.1.2 The `runswift' Executable............................. 16 i 3.2 Debugging.......................................... 17 3.2.1 Logging....................................... 17 3.2.2 Off-Nao....................................... 18 3.2.3 Speech........................................ 19 3.3 Python interpreter..................................... 20 3.3.1 Automatic Reloading for Rapid Development.................. 20 3.4 Network Communication.................................. 22 3.4.1 GameController................................... 22 3.4.2 Inter-Robot Communication............................ 22 3.4.3 Remote Control................................... 22 3.5 Configuration files..................................... 23 4 Vision 25 4.1 Introduction......................................... 25 4.2 Background......................................... 26 4.3 Kinematic Chain...................................... 28 4.4 Camera to Robot Relative Coordinate Transform.................... 28 4.5 Horizon........................................... 29 4.6 Body Exclusion....................................... 29 4.7 Nao Kinematics Calibration................................ 30 4.8 Colour Calibration and Camera Settings......................... 32 4.9 Saliency Scan and Colour Histograms.......................... 33 4.10 Field-Edge Detection.................................... 34 4.11 Region Builder....................................... 35 4.11.1 Region Detection.................................. 37 4.11.2 Region Merging and Classification........................ 39 4.12 Field-Line Detection.................................... 41 4.13 Robot Detection...................................... 42 4.13.1 Initial Robot Detection Processing........................ 42 4.13.2 Final Robot Detection Processing........................ 44 4.14 Ball Detection........................................ 44 4.14.1 Edge Detection................................... 45 4.14.2 Identification of Ball Properties.......................... 46 4.14.3 Final Sanity Checks................................ 47 4.15 Goal Detection....................................... 48 ii 4.15.1 Identification of Goal Posts Using Histograms.................. 48 4.15.2 Identification of Goal Post Dimensions...................... 49 4.15.3 Goal Post Sanity Checks.............................. 50 4.15.4 Goal Post Type and Distance Calculation.................... 50 4.16 Camera Colour Space Analysis.............................. 51 4.17 Results............................................ 52 4.18 Future Work........................................ 54 4.19 Conclusion......................................... 55 5 Localisation 56 5.1 Introduction......................................... 56 5.2 Background......................................... 56 5.3 Kalman Filter Updates................................... 57 5.3.1 Local Updates................................... 58 5.3.1.1 Field-Edge Update............................ 58 5.3.1.2 Single Post Update........................... 59 5.3.1.3 Field Line Updates........................... 60 5.3.2 Global Updates................................... 61 5.3.2.1 Two-Post Updates............................ 61 5.3.2.2 Post-Edge Updates........................... 63 5.4 False-Positive Exclusion and Kidnap Factor....................... 63 5.4.1 Outlier Detection Using `Distance-to-Mean'................... 63 5.4.2 Intersection of Field Edges and Goal Posts................... 64 5.5 Particle Filter........................................ 64 5.5.1 Filter Process.................................... 65 5.5.2 Weight Updates.................................. 65 5.5.3 Discarding Particles................................ 66 5.5.4 Particle Generation................................. 67 5.5.5 Filter by Posts and Edges............................. 68 5.5.6 Bounding Box Criteria............................... 68 5.6 Ball Filter.......................................... 69 5.6.1 Robot-Relative Ball Position........................... 69 5.6.2 Egocentric Absolute Ball Position........................ 69 5.6.3 Team Shared Absolute Ball Position....................... 69 5.7 Obstacle Filter....................................... 69 iii 5.7.1 Multi-modal Kalman filter............................. 70 5.7.2 Adaptive Fixed-Particle Filter.......................... 70 5.8 Discussion.......................................... 70 5.9 Future Work........................................ 71 5.10 Conclusion......................................... 72 6 Motion and Sensors 73 6.1 Introduction......................................... 73 6.2 Background......................................... 74 6.2.1 Walk Basics..................................... 74 6.2.2 Related Work.................................... 75 6.3 Motion Architecture.................................... 76 6.3.1 ActionCommand.................................. 77 6.3.2 Touch........................................ 78 6.3.3 Generator...................................... 78 6.3.4 Effector....................................... 78 6.4 WaveWalk.......................................... 79 6.5 Adaption of Aldebaran Walk............................... 81 6.6 SlowWalk and FastWalk Generators........................... 81 6.6.1 Inverse Kinematics................................. 82 6.7 SlowWalk.......................................... 85 6.8 FastWalk.......................................... 88 6.8.1 Process Steps of the FastWalk Generator.................... 88 6.8.2 FastWalk Task-Hierarchy............................. 90 6.8.3 Inverted Pendulum Dynamics........................... 91 6.8.4 Feedback Control.................................. 93 6.8.5 FastWalk Development.............................. 96 6.9 Omni-directional Kick................................... 97 6.10 SlowWalk Kicks....................................... 98 6.10.1 The Forward Kick | An Example........................ 98 6.10.2 Other Kicks..................................... 99 6.10.3 Results....................................... 100 6.11 Other Motions....................................... 100 6.11.1 Get-ups....................................... 101 6.11.2 Initial Stand.................................... 101 iv 6.11.3 Goalie Sit...................................... 101 6.12 Joint Sensors........................................ 101 6.13 Chest and Foot Buttons.................................. 101 6.14 Inertial and Weight Sensors................................ 102 6.15 Sonar............................................ 102 6.16 Sonar Filter........................................ 102 6.17 Discussion.......................................... 103 6.18 Future Work........................................ 103 6.19 Conclusion......................................... 104 7 Behaviour 105 7.1 Introduction......................................... 105 7.2 Background......................................... 105 7.3 Skill Hierarchy and Action Commands.......................... 106 7.4 SafetySkill.........................................