Kristian Regenstein

Modulare, verteilte Hardware-Software- Architektur für humanoide Roboter

Modulare, verteilte Hardware-Software- Architektur für humanoide Roboter von Kristian Regenstein Dissertation, Karlsruher Institut für Technologie Fakultät für Informatik Tag der mündlichen Prüfung: 27.04.2010 Referenten: Prof. Dr.-Ing. Rüdiger Dillmann, Prof. Dr.-Ing. Heinz Wörn

Impressum Karlsruher Institut für Technologie (KIT) KIT Scientific Publishing Straße am Forum 2 D-76131 Karlsruhe www.ksp.kit.edu

KIT – Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft

Diese Veröffentlichung ist im Internet unter folgender Creative Commons-Lizenz publiziert: http://creativecommons.org/licenses/by-nc-nd/3.0/de/

KIT Scientific Publishing 2010 Print on Demand

ISBN 978-3-86644-527-7 Inhaltsverzeichnis

1 Einleitung 1 1.1 Humanoide Roboter ...... 1 1.2 Aufgabenstellung und Beitrag der Arbeit ...... 2 1.3 Gliederung und Aufbau ...... 5

2 Stand der Forschung 7 2.1 Software-Rahmenwerke und Middleware für autonome Roboter ..... 7 2.1.1 aRD - Agile Robot Development ...... 8 2.1.2 OROCOS - Open Robot Control Software ...... 11 2.1.3 Player ...... 13 2.1.4 MARIE - Mobile and Autonomous Robotics Integration Environment 15 2.1.5 MCA2 - Modular Controller Architecture ...... 17 2.1.6 Vergleich und Bewertung ...... 21 2.2 Hardware für autonome Robotersysteme ...... 24 2.2.1 Hardwarerealisierungen am DLR ...... 24 2.2.2 Hardwarerealisierungen an der EPFL ...... 24 2.2.3 Hardwarerealisierungen am AIST ...... 25 2.2.4 Hardwarerealisierungen am KAIST ...... 25 2.2.5 Hardwarerealisierungen bei Honda ...... 25 2.3 Steuerungsarchitekturen für autonome Robotersysteme ...... 26 2.3.1 Deliberative Architektur ...... 26 2.3.2 Reaktive Architektur ...... 27 2.3.3 Hybride Architektur ...... 29 2.4 Hardware-Software-Architekturen bei humanoiden Robotern ...... 30 2.4.1 ASIMO ...... 30 2.4.2 H7 ...... 32 2.4.3 HRP-2 ...... 34 2.4.4 KHR ...... 37 2.4.5 KHR-2 ...... 39 2.4.6 Wabian-2 ...... 40 2.4.7 Johnnie ...... 41 2.5 Zusammenfassung und Bewertung ...... 44

3 Vorgaben und Anforderungen 47 3.1 Vorgaben für humanoide Roboter ...... 47 3.2 Roboterfähigkeiten ...... 48 3.3 Anforderungen an die Hardware-Software-Architektur ...... 50 3.3.1 Anforderungen an die Steuerungsarchitektur ...... 50 3.3.2 Anforderungen an die Softwarearchitektur ...... 53 3.3.3 Anforderungen an die Hardwarearchitektur ...... 54 3.4 Zusammenfassung ...... 56

4 Konzeption der Architektur 59 4.1 Funktional-logische Steuerungsarchitektur ...... 59 4.1.1 Prozesse im Bereich der Perzeption ...... 60 4.1.2 Prozesse im Bereich der Planung ...... 61 4.1.3 Prozesse im Bereich der Aktion ...... 62 4.1.4 Datenspeicherung und Datenaustausch ...... 64 4.1.5 Datenflüsse in der Steuerungsarchitektur ...... 64 4.2 Softwarearchitektur ...... 68 4.2.1 Rahmenwerk MCA2 ...... 68 4.2.2 Formale Darstellung der MCA-Struktur in UML ...... 72 4.3 Hardwarearchitektur ...... 75 4.3.1 Rechnersystem ...... 76 4.3.2 Regelungskomponente UCoM ...... 83 4.3.3 Sensoren ...... 87 4.3.4 Aktoren ...... 90 4.3.5 Schnittstellen ...... 91 4.4 Zusammenfassung ...... 93

5 Umsetzung und Evaluierung 95 5.1 Die Entwicklung des humanoiden Robotersystems ARMAR-III ...... 95 5.1.1 Das mechanische System ...... 95 5.1.2 Aktor- und Sensorsystem ...... 96 5.2 Hardware-Software-Architektur auf ARMAR-III ...... 105 5.2.1 Hardwarearchitektur ...... 105 5.2.2 Umsetzung der Steuerungsarchitektur und des Softwarerahmen- werks ...... 112 5.3 Evaluation anhand der Küchen-Demo ...... 117 5.3.1 Ablauf der Küchen-Demo ...... 118 5.4 Leistungsbewertung der Regelungskomponente ...... 121 5.4.1 Benchmarks zur Leistungsbestimmung ...... 121 5.4.2 UCoM-Auslastung in ARMAR-III ...... 130 5.5 Eignung für weitere Robotersysteme ...... 131 5.5.1 LAURON-IV ...... 131 5.5.2 KAIRO-II ...... 132 5.5.3 Odete ...... 133 5.5.4 Puma200 ...... 133 5.5.5 RoSi - Rotierender Sick-Laserscanner ...... 134

6 Zusammenfassung und Ausblick 135 6.1 Ergebnisse der Arbeit ...... 135 6.2 Ausblick ...... 136

A Quantitative Abschätzung der Anforderungen an die Hardware-Software- Architektur 139

B UCoM 141 B.1 Einbindung von DSP und FPGA ...... 141 B.2 Kommunikation über CAN-Bus ...... 141 B.2.1 Aufbau der CAN-Nachrichten ...... 142 B.2.2 Vergabe der Identifier ...... 143 B.2.3 Signalisierung des Init-Zustandes ...... 145 B.2.4 Zuordnung der Nachrichten-Funktion ...... 146 B.3 Software auf dem UCoM ...... 146 B.3.1 Der Bootloader ...... 148 B.3.2 FPGA ...... 153 B.4 Flexibilität des UCoMs ...... 156 B.5 Konfiguration der UCoMs ...... 159

C Vergleich UCoM - C167 163 C.1 Architektur des Mikrocontrollers ...... 163 C.1.1 C167-Kern-Komponenten ...... 164 C.1.2 C167-Instruction-Pipelining ...... 164 C.2 Architektur des digitalen Signalprozessors ...... 165 C.2.1 Aufbau des DSP-Kerns ...... 166 C.2.2 DSP-Kern-Komponenten ...... 166 C.2.3 DSP-MAC-Einheit ...... 166 C.3 Leistungsvergleich ...... 167 C.3.1 Benchmark - Ackermann ...... 167 C.3.2 Benchmark - Sieb des Eratosthenes ...... 168 C.3.3 Benchmark - Fibonacci ...... 169 C.4 Assemblersourcen zu den Benchmarks ...... 171

D Schaltungsdetails zu UCoM und Motorboard 173 D.1 Schaltplan ...... 173 D.2 Layout ...... 175 D.3 Steckerbelegung ...... 177

E Abbildungsverzeichnis 179

F Tabellenverzeichnis 185

G Literaturverzeichnis 187 1. Einleitung

Es ist ein lang gehegter Traum des Menschen, Maschinen zu entwickeln, die ihm die Arbeit erleichtern oder gar abnehmen. Im Bereich der Robotik gibt es bereits seit einiger Zeit vielver- sprechende Ansätze zur Umsetzung dieses Traums. Es existieren schon zum heutigen Zeitpunkt eine Vielzahl von Robotersystemen, die Arbeiten in der industriellen Produktion oder Arbeiten in einem für Menschen gefährlichen Umfeld übernehmen. Allerdings sind die meisten der heu- tigen Roboter sehr speziell für eine Anwendungsklasse entworfen und nicht an beliebiger Stelle und bei wechselndem Bedarf einsetzbar. Besonders für die Interaktion zwischen Mensch und Roboter bzw. zum Lernen neuer Fähigkeiten eines Roboters ist dessen Programmierung durch einen Spezialisten notwendig. Der Begriff Roboter wurde durch Karel Capekˇ geprägt. In seinem Stück „Rossum’s Universal Robots“ beschreibt Capekˇ wie menschenähnliche Maschinen einge- setzt werden, um dem Menschen die Arbeit zu erleichtern. Das Wort Roboter leitet sich hierbei aus dem slawischen Wort robota, was soviel wie Fronarbeit oder schwere Arbeit bedeutet, ab [98]. Die VDI-Richtlinie 2860 definiert:

„Industrieroboter sind universell einsetzbare Bewegungsautomaten mit mehreren Achsen, deren Bewegungen hinsichtlich Bewegungsfolge und Wegen bzw. Winkeln frei (d.h. ohne mechanischen Eingriff) programmierbar und gegebenenfalls sensor- geführt sind. Sie sind mit Greifern, Werkzeugen oder anderen Fertigungsmitteln ausrüstbar und können Handhabungs- und/oder Fertigungsaufgaben ausführen.“ [156]

1.1. Humanoide Roboter

Humanoide Roboter sind Robotersysteme, die in ihrem Aussehen und in ihrem Verhalten dem Menschen nachempfunden sind. Im Gegensatz zu Industrierobotern sind die Anforderungen an diese Roboter darauf ausgerichtet, dass Mensch und Maschine im gleichen Arbeitsraum sicher miteinander agieren können. Üblicherweise verfügt ein humanoider Roboter über einen Torso mit Kopf, zwei Arme und zwei Beine. Allerdings ist diese Form der Realisierung nicht zwingend. So gibt es auch huma- noide Roboter die nur Teilaspekte realisieren. Beispielsweise gibt es einige Roboter bei denen die Beine durch eine mobile Plattform ersetzt sind. Abhängig vom Einsatzgebiet des humano-

1 1. Einleitung iden Roboters wird der Schwerpunkt auf einzelne Teilaspekte gelegt. Eigenschaften, die zumin- dest in Teilen erfüllt sein müssen, damit ein Roboter als humanoider Roboter eingeordnet wird, sind Autonomie, Lernfähigkeit, menschenähnliche Gestalt und Verhalten, Interaktions- und Ko- operationsfähigkeit und hohe Systemsicherheit. Die Anwendungsmöglichkeiten für