Platform-Independent Mobile Robot Communication
Total Page:16
File Type:pdf, Size:1020Kb
Philipp A. Baer Platform-Independent Development of Robot Communication Software kassel university press This work has been accepted by the faculty of Electrical Engineering and Computer Science of the University of Kassel as a thesis for acquiring the academic degree of Doktor der Ingenieurwissenschaften (Dr.-Ing.). Advisers: Prof. Dr. Kurt Geihs Prof. Dr. Gerhard K. Kraetzschmar Additional Doctoral Committee Members: Prof. Dr. Albert Zündorf Prof. Dr. Klaus David Defense day: 04th December 2008 Bibliographic information published by Deutsche Nationalbibliothek The Deutsche Nationalbibliothek lists this publication in the Deutsche Nationalbibliografie; detailed bibliographic data is available in the Internet at http://dnb.d-nb.de. Zugl.: Kassel, Univ., Diss. 2008 ISBN print: 978-3-89958-644-2 ISBN online: 978-3-89958-645-9 URN: urn:nbn:de:0002-6453 © 2008, kassel university press GmbH, Kassel www.upress.uni-kassel.de Printed by: Unidruckerei, University of Kassel Printed in Germany Für Mutti und Mama. Mutti, du bleibst unvergessen. * 29. September 1923 = 14. Oktober 2008 Contents List of Figuresv List of Tables vii Abstract ix I Introduction1 1 Introduction3 1.1 Motivation.........................................4 1.1.1 Software Structure................................5 1.1.2 Development Methodology...........................5 1.1.3 Communication.................................6 1.1.4 Configuration and Monitoring.........................6 1.2 Problem Analysis.....................................7 1.2.1 Development Methodology...........................7 1.2.2 Communication Infrastructure........................8 1.2.3 Resource Discovery...............................8 1.3 Solution Approach....................................9 1.4 Major Results........................................ 11 1.5 Overview.......................................... 12 2 Foundations 13 2.1 Autonomous Mobile Robots............................... 13 2.1.1 Hardware Architecture............................. 14 2.1.2 Robot Software.................................. 16 2.1.3 Mobile Robot Communication......................... 19 2.2 Model-Driven Software Development......................... 20 2.2.1 Model-Driven Architecture........................... 22 2.2.2 Advantages and Drawbacks.......................... 22 2.3 Service-Oriented Architecture............................. 24 2.3.1 The Essence of a SOA.............................. 24 2.3.2 Advantages and Drawbacks.......................... 25 2.4 Networking......................................... 25 2.4.1 IEEE 802.11 Family............................... 26 2.4.2 IEEE 802.15.1................................... 27 2.4.3 Communication Models and Protocols.................... 27 2.5 Security........................................... 29 2.5.1 Authentication.................................. 29 2.5.2 Encryption..................................... 29 i 3 Related Work 33 3.1 Robot Middleware..................................... 33 3.1.1 Miro........................................ 33 3.1.2 CLARAty...................................... 35 3.1.3 SORA........................................ 36 3.1.4 Player/Stage................................... 36 3.1.5 Orocos and Orca................................. 37 3.1.6 Summary..................................... 39 3.2 Development Frameworks................................ 39 3.2.1 MARIE....................................... 40 3.2.2 Microsoft Robotics Developer Studio..................... 41 3.2.3 CoSMIC...................................... 42 3.2.4 Summary..................................... 43 3.3 Resource and Service Discovery............................ 43 3.3.1 UDDI........................................ 43 3.3.2 Zero-Configuration Networking........................ 45 3.3.3 UPnP Service Discovery............................. 46 3.3.4 Service Location Protocol............................ 47 3.3.5 Field Theoretic Service Discovery for Ad Hoc Networks......... 47 3.3.6 Summary..................................... 48 II Spica 51 4 The Spica Development Framework 53 4.1 Development Methodology............................... 54 4.2 Spica Design Decisions.................................. 55 5 Spica Modelling Language 57 5.1 SpicaML Syntax...................................... 58 5.1.1 Annotations.................................... 59 5.1.2 Semantics..................................... 59 5.1.3 Name Variants.................................. 61 5.2 Basic Concepts of SpicaML............................... 62 5.2.1 URN prefix substitutes............................. 62 5.2.2 Namespace.................................... 62 5.2.3 Identifier Generation.............................. 63 5.3 Specification of Messages................................ 64 5.3.1 Structure Characteristics............................ 65 5.3.2 Identification of Data Structures....................... 66 5.3.3 Basic Language Syntax............................. 66 5.3.4 Encoding Rule Interface............................ 67 5.4 Specification of Data Flow................................ 69 5.4.1 Data Management Containers......................... 69 5.4.2 Basic Language Syntax............................. 71 5.5 Specification of Data Filtering............................. 73 5.6 Structure of a SpicaML Model............................. 74 ii Contents 6 Model Transformation 77 6.1 Model Conversion and Representation........................ 78 6.2 Extraction of the Hash, Prefixes, and Namespaces................. 79 6.3 Extraction of Enumerations............................... 79 6.4 Extraction of Data Structures.............................. 80 6.4.1 Message Capabilities.............................. 81 6.4.2 Structure Fields.................................. 84 6.5 Extraction of Modules.................................. 85 6.5.1 Offering Message Types............................. 86 6.5.2 Requesting Message Types........................... 87 6.5.3 Data Management Containers......................... 88 6.5.4 Monitoring Capabilities............................. 89 6.6 Code Generation..................................... 91 6.6.1 StringTemplate Template Engine....................... 91 6.6.2 Spica Code Generation Approach....................... 93 6.7 Code Generation Examples............................... 95 6.7.1 Enumerations................................... 95 6.7.2 Fixed Arrays.................................... 97 6.7.3 Ontology-Supported Code Generation.................... 98 7 Monitoring Framework 101 7.1 Message Format...................................... 102 7.2 Communication Characteristics............................. 103 7.3 Application Interface................................... 104 8 Resource Discovery and Auto-Configuration 105 8.1 Mobile Robots and Discovery.............................. 105 8.2 Geminga Layout Decisions............................... 107 8.3 Geminga Client Negotiation Protocol......................... 107 8.3.1 Protocol Operation................................ 108 8.3.2 Statement Types................................. 108 8.3.3 Application Example............................... 109 8.4 Announcement....................................... 110 8.4.1 Geminga Identifier Generation........................ 110 8.4.2 Resource Type Announcement......................... 111 8.5 Matching.......................................... 112 8.6 Summary.......................................... 113 III Evaluation 115 9 Application 117 9.1 Carpe Noctem Soccer Robots.............................. 118 9.1.1 CaNoSA Architecture.............................. 119 9.1.2 Spica Integration................................. 124 9.1.3 Carpe Noctem Encoding Rules......................... 127 9.1.4 Summary..................................... 127 9.2 Miro............................................. 128 Contents iii 9.2.1 Miro Communication Infrastructure..................... 128 9.2.2 Spica Integration................................. 129 9.2.3 Summary..................................... 130 9.3 Gazebo........................................... 131 9.3.1 Simulation Architecture............................. 131 9.3.2 Spica Integration................................. 133 9.3.3 Summary..................................... 135 9.4 Availability Information................................. 135 10 Evaluation 137 10.1 Applicability........................................ 138 10.1.1 Model Orientation................................ 138 10.1.2 Code Generation................................. 141 10.1.3 Extensibility.................................... 141 10.1.4 Simplification and Weaknesses........................ 142 10.2 Resource Utilisation.................................... 143 10.2.1 Processing Overhead of the Communication Infrastructure....... 143 10.2.2 Memory Footprint................................ 147 10.2.3 Performance.................................... 150 10.3 Distribution......................................... 153 10.3.1 Failure Tolerance................................. 153 10.3.2 Scalability..................................... 153 10.4 Event Orientation..................................... 157 10.4.1 Messaging and Group Communication................... 158 10.4.2 Message-Oriented Communication and Reliability............ 159 10.4.3 Synchronisation and Arbitration....................... 160 10.5 Summary.......................................... 161 11 Conclusions 163 11.1 Requirements Revisited................................. 163 11.1.1 Development Methodology..........................