101
an der Dualen Hochschule Baden-Württemberg Karlsruhe von Marco Helmerich, Swen König und Franziska Wegner Abgabedatum 08.01.2010 Bearbeitungszeitraum 12 Wochen Kurs TIT07 G1 Gutachter der Studienakademie Prof. H.-J. Haubner Studienarbeit 1 Der Humanoide NAO - Betrachtung eines neuen Robotersystems - Studiengang Informationstechnik

Nao Report(2)

Embed Size (px)

Citation preview

Page 1: Nao Report(2)

an der Dualen Hochschule Baden-Württemberg Karlsruhe

von

Marco Helmerich,

Swen König und Franziska Wegner

Abgabedatum 08.01.2010

Bearbeitungszeitraum 12 Wochen

Kurs TIT07 G1

Gutachter der Studienakademie Prof. H.-J. Haubner

Studienarbeit 1

Der Humanoide NAO

- Betrachtung eines neuen Robotersystems -

Studiengang Informationstechnik

Page 2: Nao Report(2)

Ehrenwörtliche Erklärung

Hiermit erklären wir, dass wir die vorliegende Arbeit mit dem Thema

„Der Humanoide NAO – Betrachtung eines neuen Robotersystems“

selbstständig und ohne Benutzung anderer als der angegebenen Quellen und

Hilfsmittel angefertigt habe.

Alle Stellen, die wörtlich oder sinngemäß aus veröffentlichten und nicht

veröffentlichten Schriften entnommen wurden sind als solche kenntlich

gemacht.

Die Arbeit ist in gleicher oder ähnlicher Form oder auszugsweise im Rahmen

einer anderen Prüfung noch nicht vorgelegt worden.

(Ort, Datum) Marco Helmerich

Swen König

Franziska Wegner

Page 3: Nao Report(2)

Zusammenfassung

Der Bereich der Robotik ist ein interessantes und relativ junges Gebiet der

Informatik, welches sich immer größerer Beliebtheit und Begeisterung erfreut.

Der Versuch in der Robotik die menschlichen Intelligenz nachzubilden und der

stetige Einzug der Robotik in immer mehr Bereiche des täglichen Lebens führt

auch zu vielen kritischen Stimmen auf diesem Forschungsgebiet. Sei es, dass sie

ethische Konflikte ansprechen oder auf soziale Probleme hinweisen.

In der Forschung versucht man verstärkt menschenähnliche Roboter, auch

Humanoiden genannt, zu entwickeln, die im Bewegungsgrad und in der

Reaktionsfähigkeit den Menschen gleichkommen sollen. Eine neue Entwicklung

auf diesem Gebiet ist der Roboter „NAO“.

Diese Arbeit soll diesen neuen Humanoiden beleuchten, seine Fähigkeiten

aufzeigen, aber auch auf die Robotik, ihre Themenfelder, ihre Vorzüge und

Probleme, grundlegend eingehen. In der ersten Hälfte der Arbeit werden die

Grundlagen der Robotik erarbeitet, die zweite Hälfte beschäftigt sich mit dem

neuen Humanoiden.

Dabei werden Möglichkeiten und Grenzen des NAOs aufgezeigt, sowie erste

eigene Entwicklungen illustriert und begutachtet. Jede Entwicklung soll dabei

auch auf Probleme analysiert werden, die durch Grenzen der Robotik oder der

Technik von NAO gesetzt werden.

Page 4: Nao Report(2)

Inhaltsverzeichnis

ABBILDUNGSVERZEICHNIS ............................................................................................................i

TABELLENVERZEICHNIS ................................................................................................................ ii

PROGRAMMVERZEICHNIS .......................................................................................................... iii

1 EINLEITUNG ..............................................................................................................................1

1.1 MOTIVATION .............................................................................................................................. 1

1.2 PROBLEMSTELLUNG...................................................................................................................... 2

1.3 ZIELE DER ARBEIT ......................................................................................................................... 3

2. GRUNDLAGEN DER ROBOTIK ...................................................................................................4

2.1 KURZBESCHREIBUNG DER ROBOTIK .................................................................................................. 4

2.2 GESCHICHTE DER ROBOTIK............................................................................................................. 6

2.3 KOMPONENTEN EINES ROBOTERS ................................................................................................... 9

2.3.1 Aufbau ............................................................................................................................. 9

2.3.2 Aktuatoren .................................................................................................................... 10

2.3.3 Kinematik und Dynamik in der Robotik ......................................................................... 11

2.3.4 Sensoren/Manipulation-Interaktion mit Umgebung ..................................................... 12

2.3.5 Fortbewegung ............................................................................................................... 13

2.3.6 Mensch Maschine Interaktion ....................................................................................... 15

2.3.7 Steuerung ...................................................................................................................... 17

2.3.8 Informatik und Robotik ................................................................................................. 18

2.4 VERSCHIEDENE ROBOTER ............................................................................................................ 20

2.4.1 Aibo ............................................................................................................................... 20

2.4.2 Asimo ............................................................................................................................. 21

2.4.3 Kuka............................................................................................................................... 22

2.4.4 Paro ............................................................................................................................... 23

2.5 EINFÜHRUNG IN DIE KÜNSTLICHE INTELLIGENZ ................................................................................. 24

2.6 BEDEUTUNG UND EINSATZGEBIETE DER ROBOTIK ............................................................................. 27

2.7 ZUKUNFTSAUSSICHTEN................................................................................................................ 29

2.8 PROBLEMATIK DER ROBOTIK ........................................................................................................ 30

2.8.1 Asimov‘s Robotergesetze .............................................................................................. 30

Page 5: Nao Report(2)

2.8.2 Militärische Roboter und Sicherheit .............................................................................. 32

2.8.3 Einschätzung der Sicherheitsaspekte 2009 ................................................................... 34

3. DER HUMANOIDE NAO .......................................................................................................... 35

3.1 ALLGEMEINE BESCHREIBUNG ....................................................................................................... 35

3.1.1 Entwurfsziele bzw. Designkonzepte des NAO ................................................................ 35

3.2 AKTORIK DES NAO .................................................................................................................... 39

3.2.1 Erläuterung des Freiheitsgrad ....................................................................................... 39

3.2.2 Freiheitsgrade des NAO ................................................................................................. 40

3.3 SENSORIK DES NAO ................................................................................................................... 42

3.3.1 Kraftsensoren ................................................................................................................ 43

3.3.2 Trägheitssensoren/Ausrichtung .................................................................................... 43

3.3.3 Ultraschall ..................................................................................................................... 44

3.4 AKUSTISCHE UND VISUELLE INTERAKTIONEN .................................................................................... 48

3.5 HARDWAREKONZEPT DES NAO .................................................................................................... 50

3.6 SOFTWAREKONZEPT DES NAO ..................................................................................................... 52

4. ÜBERBLICK DER ENTWICKLUNGSUMGEBUNGEN ................................................................... 59

4.1 MICROSOFT ROBOTIC STUDIO ...................................................................................................... 59

4.2 CHOREOGRAPH ......................................................................................................................... 59

4.3 URBI ....................................................................................................................................... 60

4.4 MICROSOFT VISUAL STUDIO ........................................................................................................ 60

5. ALDEBARAN CHOREOGRAPH ................................................................................................. 61

5.1 GRUNDKONZEPT ........................................................................................................................ 61

5.2 FUNKTIONSWEISE ...................................................................................................................... 61

6. ERSTE ERFAHRUNGEN MIT NAO ............................................................................................ 67

6.1 MOTORISCHE FÄHIGKEITEN ......................................................................................................... 67

6.2 TEST DER SENSOREN ................................................................................................................... 68

6.2.1 Taktiler Sensor ............................................................................................................... 68

6.2.2 Bumper .......................................................................................................................... 68

6.2.3 Ultraschall ..................................................................................................................... 69

6.2.4 Face Detection ............................................................................................................... 70

6.2.5 Voice Recognition .......................................................................................................... 71

6.2.6 NAO Mark Detection ..................................................................................................... 71

6.3 KONSOLENZUGRIFF .................................................................................................................... 73

6.4 BILDVERARBEITUNG ................................................................................................................... 74

6.5 PROGRAMMIERBEISPIELE ............................................................................................................. 76

6.5.1 NAO-Mark Erkennung ................................................................................................... 76

Page 6: Nao Report(2)

6.5.2 NAO-Mark und Gesichtsverfolgung ............................................................................... 77

6.6 MODULENTWICKLUNG MIT VISUAL STUDIO 2008 ............................................................................ 81

6.7 PROBLEME UND SCHWIERIGKEITEN ............................................................................................... 82

6.8 SERVICEQUALITÄT ALDEBARAN ..................................................................................................... 83

7. FAZIT UND AUSBLICK ............................................................................................................. 85

7.1 FAZIT....................................................................................................................................... 85

7.2 AUSBLICK ................................................................................................................................. 86

LITERATURVERZEICHNIS ............................................................................................................ 87

GLOSSAR ................................................................................................................................... 92

Page 7: Nao Report(2)

i

Abbildungsverzeichnis

ABBILDUNG 1. ROBOTERPARADIGMA ...................................................................................................... 18

ABBILDUNG 2. AIBO ............................................................................................................................. 20

ABBILDUNG 3. AIBOS IM ROBOCUP-WETTBEWERB .................................................................................... 21

ABBILDUNG 4. ASIMO .......................................................................................................................... 22

ABBILDUNG 5. KUKA ............................................................................................................................ 23

ABBILDUNG 6. PARO ............................................................................................................................ 24

ABBILDUNG 7. ROBOTER-SPINNE (L.O.) IN RUHMODUS, (R.O.) PLATINE UND KÜHLUNG, (L.U.) EIN GELENK UND

(R.U.) AKTIV ............................................................................................................................... 26

ABBILDUNG 8. ROBOCUP SENIOR............................................................................................................ 28

ABBILDUNG 9. SWORDS KAMPFROBOTER (1) ......................................................................................... 33

ABBILDUNG 10. NIMBRO – EINE DER ERSTEN HUMANOIDEN BEIM ROBOCUP .................................................. 36

ABBILDUNG 11. FREIHEITSGRADE DES NAO I ............................................................................................ 40

ABBILDUNG 12. KRAFTSENSORIK DES NAO .............................................................................................. 43

ABBILDUNG 13. POSITION DES NAO ....................................................................................................... 44

ABBILDUNG 14. ULTRASCHALLSENSORIK .................................................................................................. 45

ABBILDUNG 15. KAMERAWINKEL ............................................................................................................ 46

ABBILDUNG 16. MIKROFONES DES NAO .................................................................................................. 47

ABBILDUNG 17. TEXTTOSPEECH MODUL ................................................................................................. 49

ABBILDUNG 18. HARDWARECONNECTION ................................................................................................ 51

ABBILDUNG 19: VERTEILTES SOFTWAREKONZEPT DER NAOQI ...................................................................... 54

ABBILDUNG 20. FENSTER DES CHOREOGRAPHEN ....................................................................................... 62

ABBILDUNG 21. ZEITLEISTE EINES BEWEGUNGSABLAUFES ............................................................................ 63

ABBILDUNG 22. EXTRAKTION DES ERZEUGTEN QUELLCODES ......................................................................... 64

ABBILDUNG 23. VERBINDUNGSMENÜ ...................................................................................................... 65

ABBILDUNG 24. MANUELLE VERSTELLUNG DES KOPFGELENKES .................................................................... 66

ABBILDUNG 25. WINKELAUSMAß DER ULTRASCHALSENSOREN ..................................................................... 70

ABBILDUNG 26. WINKEL DER STIRNKAMERA ............................................................................................. 73

ABBILDUNG 27. ZUGRIFF ÜBER KONSOLE ................................................................................................. 74

ABBILDUNG 28. STRUKTUR DES PROGRAMMES ......................................................................................... 77

Alle nicht spezifisch gekennzeichneten Abbildungen sind Fotos, Screenshots bzw. Zeichnungen

von Marco Helmerich, Swen König und Franziska Wegner.

© DHBW 2009

Page 8: Nao Report(2)

ii

Tabellenverzeichnis

TABELLE 1. VERGLEICH DER RECHNERRESSOURCEN ..................................................................................... 25

TABELLE 2. WERTE VON ROBOTERN ........................................................................................................ 37

TABELLE 3. FREIHEITSGRADE DES NAO II .................................................................................................. 41

TABELLE 4. SENSORIK DES NAO ............................................................................................................. 42

TABELLE 5. LED .................................................................................................................................. 48

Alle nicht spezifisch gekennzeichneten sind Tabellen von Marco Helmerich, Swen König und

Franziska Wegner.

© DHBW 2009

Page 9: Nao Report(2)

iii

Programmverzeichnis

PROGRAMM 1. NAO-MARK INITIALISIERUNGSKLASSE ................................................................................ 76

PROGRAMM 2. DATEN DER MARKS ......................................................................................................... 78

PROGRAMM 3. REAKTION AUF DIE NAO-MARK POSITION .......................................................................... 81

Alle nicht spezifisch gekennzeichneten sind Programmbeispiele von Marco Helmerich, Swen

König und Franziska Wegner.

© DHBW 2009

Page 10: Nao Report(2)

1.Kapitel: Einleitung

Motivation

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 1 von 92 | S e i t e

1 Einleitung

1.1 Motivation

Die Robotik ist ein relativ neues Themengebiet, das erst seit Beginn des 20

Jahrhunderts in Erscheinung getreten ist. Seither stimuliert die Vorstellung

autonom arbeitender Maschinen, die den Menschen unangenehme Arbeiten

abnehmen oder für Menschen unmögliche Arbeiten durchführen, die Phantasie

von Schriftstellern und Forschern. Waren die Ideen der Robotik zuerst im

literarischen Bereich verbreitet so sind sie seit Mitte der 50er Jahre des

vergangenen Jahrhunderts in der Wissenschaft angekommen. Die Robotik stellt

heute eines der interessantesten und dynamischsten Forschungsgebiete im

technischen Bereich dar. Grund hierfür ist die interdisziplinare Prägung des

Forschungsgebiets. Biologen, Sprachwissenschaftler, Mechaniker, Physiker,

Informatiker und Experten vieler weiterer Gebiete müssen ihr Wissen vereinen um

die Ziele der Robotik, autonom agierende, kognitiv begabte Maschinen zu

verwirklichen. Zudem wird die Robotik als Zukunftstechnologie angesehen, die die

Art und Weise wie die Gesellschaft in Zukunft aussehen wird vermutlich

entscheidend prägt. So interessant die Robotik ist, so umstritten ist sie auch und

hat neben Anhängern auch viele Kritiker.

Die Bedeutung der Forschung und Entwicklungen in der Robotik für unser

zukünftiges Leben, die starke Dynamik in diesem Forschungsbereich, sowie die

kontroversen Diskusionen zwischen Anhängern und Kritikern, machen es für

Studenten interessant sich in die Themenbereiche der Robotik einzuarbeiten. Da

die Duale Hochschule Baden-Württemberg – Karlsruhe ein Robotiklabor unterhält,

Page 11: Nao Report(2)

1.Kapitel: Einleitung

Problemstellung

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 2 von 92 | S e i t e

bietet es sich an, sich im Rahmen der geforderten Studienarbeiten mit einem der

zur Verfügung stehenden Robotermodelle dem Forschungsgebiet der Robotik zu

nähern.

1.2 Problemstellung

Die „Duale Hochschule Baden Württemberg – Karlsruhe“ hat einen neuartigen

humanoiden Roboter des französischen Unternehmens „Aldebaran Robotics“

erworben. Der Roboter mit der Bezeichnung „NAO“ wird seit 2006 entwickelt und

wird vermutlich 2010 in serienreife gehen d.h. er befindet sich zur Zeit der

Erstellung dieser Studienarbeit noch in einer fortgeschrittenen Entwicklungsphase

und ist als Prototyp anzusehen. NAO ist seit 2008 offizieller Roboter der

humanoiden Liga des Robocup und ist an Universitäten und

Forschungseinrichtungen weit verbreitet. Er wird zurzeit nur an Hochschulen und

an die Robocup Teams ausgeliefert.

Da die Hochschule bisher noch keine Erfahrungen mit dem Robotersystem NAO

hat, ist es vornehmlich notwendig die Fähigkeiten und Möglichkeiten des Systems

zu evaluieren. Dabei ist besonders interessant, welche autonomen Fähigkeiten

NAO hat und inwiefern auch Aufgaben des Robocup mit ihm umgesetzt werden

können. Unabhängig von der Evaluation ist die Problem und Aufgabenstellung frei,

d.h. die Ziele können frei gewählt und auch erst im Rahmen der Arbeit entwickelt

und an die Erkenntnisse während der Arbeit angepasst werden. Um die soeben

genannten Sachverhalte zu überprüfen ist eine umfangreiche Einarbeitung in das

Themenspektrum der Robotik unerlässlich.

Page 12: Nao Report(2)

1.Kapitel: Einleitung

Ziele der Arbeit

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 3 von 92 | S e i t e

1.3 Ziele der Arbeit

Diese Arbeit soll einen grundlegenden Einblick in das Themengebiet der Robotik

geben. Ein Überblick über wichtige Bereich, Begriffe, Zusammenhänge und

Paradigmen, die in der Robotik von Relevanz sind, sollen veranschaulicht werden.

Darüber hinaus soll das Robotersystem „NAO“ in Bezug auf die Architektur von

Soft- und Hardware, sowie die Fähigkeiten des Systems untersucht werden.

Funktionsweise und Grenzen der Sensoren und Aktoren sind zu überprüfen. Der

Roboter wird hierbei auf seine Funktionalitäten getestet und durch die erfassten

Grenzen sollen dann Einsatzmöglichkeiten abgegrenzt und bewertet werden. Des

Weiteren werden verschiedene IDEs überprüft und bewertet, um die weitere

Forschung und Entwicklung am NAO zu vereinfachen und verbessern.

Weiterhin werden Beispiele für die Einsatzmöglichkeiten gegeben und es wird das

Zusammenspiel von Aktorik und Sensorik erläutert. Dabei werden

Programmentwürfe entwickelt, die einen Einblick in die Komplexität der parallelen

Ausführung von Aufgaben geben soll. Es wird des Weiteren auf die wesentlichen

Robotik Axiome eingegangen und die Ergebnisse bezüglich des NAOs

repräsentiert.

Abschließend soll dies als Vorarbeit zu der nächsten dienen und die wichtigsten

Information und Problematiken des Humanoiden aufzeigen.

Page 13: Nao Report(2)

2.Kapitel: Grundlagen der Robotik

Kurbeschreibung der Robotik

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 4 von 92 | S e i t e

2. Grundlagen der Robotik

2.1 Kurzbeschreibung der Robotik

Eine exakte Definition des Begriffs Robotik ist schwierig, da die in den vielen

Anwendungsgebiete unterschiedlichen Erscheinungsformen, mit denen der Begriff

assoziiert wird, eine exakte Definition kaum zulassen. Daher gestaltet sich eine

allgemeine Beschreibung der Bestandteile des Themengebietes einfacher.

Die Robotik befasst sich mit der Steuerung, Architektur, Konstruktion und

Programmierung, oder kurz der Entwicklung, von Robotern. Sie umfasst dabei

Teilgebiete der Informatik, wie beispielsweise das der Künstlichen Intelligenz, der

Elektrotechnik und des Maschinenbaus. Ziel der Robotik ist es u. a. die effektive

und erfolgreiche Zusammenarbeit von mechanischen, elektronischen und

informationstechnischen Komponenten des Roboters zu erreichen (1).

Der VDI1 definiert einen Roboter als: universell einsetzbare Bewegungsautomaten

mit mehreren Achsen, deren Bewegungen hinsichtlich Bewegungsfolge und

Wegen bzw. Winkeln frei (d.h. ohne mechanischen Eingriff) programmierbar und

gegebenenfalls sensorgeführt sind. Sie sind mit Greifern, Werkzeugen oder

anderen Fertigungsmitteln ausrüstbar und können Handhabungs- und/oder

Fertigungsaufgaben ausführen (2).

Ähnlich wie bei der Robotik ist auch der Begriff Roboter schwer zu definieren, die

Definition des VDI beschreibt Industrieroboter recht gut, eine emotionale

Komponente, wie sie bereits in modernen medizinischen Robotern wie dem PAO

1 Verbund Deutscher Ingenieure

Page 14: Nao Report(2)

2.Kapitel: Grundlagen der Robotik

Kurbeschreibung der Robotik

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 5 von 92 | S e i t e

vorhanden ist, taucht in dieser Definition allerdings nicht auf. Auch autonome und

kognitive Systeme, wie sie heute im Fokus der Forschung stehen werden dadurch

nicht ausreichend beschrieben. Die Definition ist deshalb nicht vollständig. Dies

liegt unter anderem auch daran, dass sich Roboter und Robotik sehr schnell

weiterentwickeln und Definitionen somit schnell überholt sind. Die Robotik ein

wissenschaftliches Forschungsgebiet mit enormer Dynamik, dass sich ständig

verändert und weiterentwickelt. Waren früher Roboter hauptsächlich im

industriellen Bereich eingesetzt, gibt es heute bereits erste Anwendungen in

medizinischer Therapie und Pflege. Das Feld der Robotik erweitert sich nahezu

kontinuierlich. Die Entwicklung profitiert hier von der

Entwicklungsgeschwindigkeit bzw. den Leistungszuwächsen im Computerbereich

(3).

Trotz der großen Bedeutung der „statisch programmierten“ Roboter im

industriellen Bereich liegt der Fokus der Forschung heutzutage auf der Entwicklung

autonomer, im Sinne der künstlichen Intelligenz, „intelligenter“ Roboter. Roboter

sollen ihre Umgebung wahrnehmen und situationsbedingt reagieren und

entscheiden können. Auch im Bereich der Schwarmintelligenz bzw. der Interaktion

mehrerer Roboter untereinander und mit ihrer Umgebung wird geforscht (4).

Neben den wissenschaftlichen Aspekten ist die Robotik auch ein sehr emotionales

Feld. Der Begriff wird zum einen euphorisch mit der Vorstellung von einer Welt, in

der Maschinen alle den Menschen unangenehmen Tätigkeiten verrichten

verbunden, andererseits steht auch ein Misstrauen vor einer nicht mehr

kontrollierbaren Technologie im Raum. Die Verarbeitung dieser Vorstellungen in

populärer Literatur und Filmen, wie „I Robot“, „Terminator“ oder aktuell

„Surrogates“, führt zu einer gewissen Popularität des wissenschaftlichen Gebietes

der Robotik. Die Popularität des Themengebietes äußert sich in dem interessanten

Page 15: Nao Report(2)

2.Kapitel: Grundlagen der Robotik

Geschichte der Robotik

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 6 von 92 | S e i t e

Aspekt, dass die Begriffe Roboter und Robotik nicht zuerst im wissenschaftlichen

Kontext auftauchten (1).

Der Begriff Robotik bzw. „Robotics“ wurde zum ersten Mal von Isaac Asimov in

seiner Science Fiction Geschichte „Liar!“ verwendet, die im Mai 1941 veröffentlich

wurde. Asimov war sich nicht bewusst, dass er einen Schlüsselbegriff prägte. Er

nahm an, da die Wissenschaft der elektrischen Schaltkreise Elektronik genannt

wird, würde man die Wissenschaft von Robotern Robotik nennen. Das Word

Roboter wurde von dem Tschechen Karel Capek in einem Theaterstück von 1921

geprägt. (4)

Die Schaffung autonomer selbständig agierender Maschinen war schon Teil von

Literatur und Phantasie bevor die Wissenschaft das Gebiet für sich entdeckte.

2.2 Geschichte der Robotik

Mit ersten mechanischen Automaten wurde bereits in der Antike experimentiert.

Heron von Alexandria erdachte automatische Theater und Musikmaschinen,

während Archytas von Tarent eine Maschine entwickelte, die einer fliegenden

Taube ähnelte. Nach dem Ende der antiken Kulturen verschwanden viele der

wissenschaftlichen Erkenntnisse von Griechen und Römern, mit Ihnen auch die

Idee von automatischen Maschinen. Erst als nach Ende des Mittelalters die

Wissenschaften in der Renaissance wieder auflebten und man die Antike als Ideal

wiederentdeckte, kamen mit den Wissenschaften auch wieder die automatisierten

Maschinen in den Fokus der Gelehrten. Bereits im 15. Jahrhundert fertigte

Leonardo da Vinci Zeichnungen und Skizzen über Androiden an, die natürlich

mangels der technischen Fähigkeiten in der damaligen Zeit nicht umsetzbar

Page 16: Nao Report(2)

2.Kapitel: Grundlagen der Robotik

Geschichte der Robotik

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 7 von 92 | S e i t e

waren. Um 1740 konstruierte und erbaute Jacques de Vaucanson bereits einen

flötenspielenden Automaten und eine mechanische Ente.

Ende des 19 Jahrhunderts brachte vor allem das Militärwesen Neuerungen, z.B.

fernsteuerbare Torpedos und U-Boote. Nach Ende des 2. Weltkrieges erfuhr der

Bereich der Robotik rasante Fortschritte. Ausschlaggebend dafür waren vor allem

die Entwicklung des Transistors in den 40er Jahren und die darauf folgende

Entwicklung von integrierten Schaltkreisen und Computern, die auch in anderen

Bereichen wissenschaftlichen Fortschritt stimulierten. Es folgte eine rasante

Entwicklung der Robotik. In Deutschland wurde die Robotertechnik in Form von

Industrierobotern ab Anfang der 1970er Jahre produktiv eingesetzt. Deutschland

war dabei recht spät, der erste voll programmierbare Roboter wurde bereits 1961

installiert, um heiße Eisenteile aus einem Ofen zu Entnehmen und zu Stapeln.

Im Jahr 1973 wurde an der Waseda-Universität Tokio die Entwicklung des ersten

humanoiden Roboters Wabot 1 gestartet. Im selben Jahr baute der deutsche

Robotikpionier KUKA den weltweit ersten Industrieroboter mit sechs

elektromechanisch angetriebenen Achsen.

Im Jahre 1986 startete Honda das “Humanoid Robot Research and Development

Program”. Ergebnisse waren die humanoiden Roboterversionen P1 bis P3. Eine

Weiterentwicklung stellte Honda 2001 in Form des humanoiden Roboter ASIMO

vor, der u.a. dem NAO als Entwicklungsvorbild dient.

1997 landete der erste mobile Roboter (Pathfinder) auf dem Mars, er erkundete

größtenteils eigenständig die Marsoberfläche und war nur als „Proof of Concept“

gedacht. Ihm folgten noch zwei weitere Roboter „Spirit“ und „Opportunity“ (2004),

die für 90 Tage funktionieren sollten, aber Stand dieser Studienarbeit Ende 2009

immer noch funktionsfähig und aktiv sind. (5) (6)

Page 17: Nao Report(2)

2.Kapitel: Grundlagen der Robotik

Geschichte der Robotik

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 8 von 92 | S e i t e

Sieht man von den eher theoretischen Überlegungen der Antike und den rein

mechanischen ersten Versuchen in der Renaissance ab, so hatte die Disziplin der

Robotik am Anfang der 60er Jahre einen ersten Aufschwung. Hierzu trugen im

Wesentlichen drei Faktoren bei. Der Maschinenbau konnte in Form von

geeigneten Maschinenelementen und -materialien kinematische Ketten geringer

Masse bei großer Festigkeit und Dauerhaftigkeit zur Verfügung stellen. Die

Elektrotechnik steuerte kleine Motoren mit hoher Leistung bei, sowie

elektronische Regler für die präzise Regelung der Robotergelenke. Der

entscheidende Schritt war jedoch die Verfügbarkeit von Digitalrechnern als

Prozessrechner, also ein Beitrag der elektronischen Datenverarbeitung. Die für die

präzise Regelung der Roboter erforderliche Rechenleistung konnte zu geringen

Kosten direkt am Roboter zur Verfügung gestellt werden

Erst durch die Prozessrechnersteuerung wurde es möglich, Bewegungen und

Greifoperationen frei zu programmieren und ihre Abfolge von externen

Ereignissen, welche über einfachste Sensoren erfasst wurden, abhängig zu

machen. Diese Fähigkeit der Programmsteuerung unterscheidet den Roboter

markant von "dummen" ferngesteuerten Automaten, also Spezialmaschinen. (4)

(3) (1)

Page 18: Nao Report(2)

2.Kapitel: Grundlagen der Robotik

Komponenten eines Roboters

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 9 von 92 | S e i t e

2.3 Komponenten eines Roboters

Durch die Vielzahl an Robotermodellen treffen die folgenden Beschreibungen

nicht exakt auf jeden Roboter zu, geben aber einen Überblick über den

grundsätzlichen Aufbau allgemeiner Roboter.

2.3.1 Aufbau

Der Aufbau eines Roboters basiert im Allgemeinen auf dem Konzept der

kinematischen Kette, das der Bereich der Mechanik in die Robotik einbrachte. Eine

Kinematische Kette ist ein System aus mehreren starren Körpern, die durch

Gelenke miteinander verbunden sind. Die Gelenke können dabei unterschiedliche

Freiheitsgrade haben. (7)

Die Funktionalität der kinematischen Kette ist dabei vergleichbar mit der Rolle des

Skeletts im menschlichen Körper. Es sorgt für Stabilität und Belastbarkeit bei

gleichzeitig hohem Grad an Beweglichkeit. Die Kette besteht aus Verbindungen

(den Knochen), Aktuatoren (den Muskeln), und Gelenken, die einen oder mehrere

Freiheitsgrade besitzen können. Die meisten zeitgenössischen Roboter verwenden

eine serielle Anordnung der Kettenglieder. Dies findet man besonders ausgeprägt

bei Industrierobotern, die häufig nur aus einem Roboterarm bestehen.

Andersartige Roboter, wie der im Rahmen der Arbeit vorliegende Humanoid

gehören noch zu einer eher kleineren Gruppe mit komplexerem strukturellem

Aufbau. Die Abbildung von kinematischen Strukturen aus der Biologie in die

Technik bildet eine eigene wissenschaftliche Disziplin, die Biomechanik. Der rein

strukturelle Aufbau des Roboters wird meist ergänzt durch eine Anzahl von

Page 19: Nao Report(2)

2.Kapitel: Grundlagen der Robotik

Komponenten eines Roboters

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 10 von 92 | S e i t e

Sensoren zur Umgebungswahrnehmung und Werkzeugen zur Manipulation der

Umgebung (8).

2.3.2 Aktuatoren

Aktuatoren beim Roboter entsprechen dem Konzept der Muskeln im

menschlichen Körper. Sie setzten gespeicherte Energie, zumeist elektrischer Natur

in Bewegungsenergie um. Die am meisten verbreiteten Aktuatoren sind

elektrische Motoren, die über Getriebe, die Glieder des Roboters bewegen. Dabei

werden neben den gewöhnlichen Elektromotoren auch Schrittmotoren

verwendet, das sind Motoren, die sich nicht frei drehen, sondern immer nur in

bestimmten Schrittweiten rotieren (8).

Der Vorteil von Schrittmotoren liegt in der Steuerung. Der Controller weiß immer

wie weit ein Schrittmotor nach einem Schritt weiter rotiert ist. Bei frei drehbaren

Motoren muss dies über Sensoren abgeprüft werden. Eine relativ neue

Entwicklung sind Piezomotoren. Hier sorgen winzige Piezokristalle (9), die mit

hoher Frequenz schwingen für eine linear oder zirkular Bewegung. Diese Motoren

werden zurzeit in ersten Serien ausgeliefert.

Auch auf dem Gebiet der Aktuatoren wird umfangreiche geforscht. Es gibt bereits

erste serienreife Luftmuskeln, Röhren aus einem Kunststoffgeflecht, die sich bei

Befüllung mit gepresster Luft bis zu 40% zusammenziehen und so ein ähnliches

Verhalten wie menschliche Muskeln aufweisen. Sie werden besonders für Roboter

verwenden, denen eine biologisch orientierte Skelettstruktur zu Grunde liegt.

Allerdings haben sie noch eine sehr geringe Haltbarkeit.

Ebenfalls noch im Forschungsstatus befinden sich Elektroaktive Polymere

Kunststoffe, die je nach angelegter Spannung ihre Ausdehnung verändern. Aktuell

Page 20: Nao Report(2)

2.Kapitel: Grundlagen der Robotik

Komponenten eines Roboters

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 11 von 92 | S e i t e

sind die Stoffe allerdings noch nicht belastungsfähig genug und altern sehr schnell

(10).

Ein vielversprechendes aber noch sehr junges Forschungsfeld gibt es im Bereich

von Kohlenstoffnanoröhrchen, diese molekularen röhrenförmigen Strukturen sind

unter bestimmten Umständen um einige Prozent dehnbar ohne Schaden zu

nehmen. Dabei sind sie in der Lage ca. 10 J/cm3 Energie zu speichern. Ein

menschlicher Bizeps könnte so durch ein Nanoröhrchen-Kabel (11) mit 8mm

Durchmesser ersetzt werden und somit Roboter bei geringer Ausmessung

erheblich leistungsfähiger machen als Menschen, aber gleichzeitig die Struktur

Skelett-Muskeln beibehalten. Allerdings befindet sich die Forschung auf diesem

Gebiet erst am Anfang und kommt über Experimente unter Laborbedingungen

bisher nicht hinaus.

2.3.3 Kinematik und Dynamik in der Robotik

Das physikalische Fachgebiet der Bewegungslehre unterteilt sich in Kinematik und

Dynamik. Die direkte Kinematik bezieht sich auf die Berechnung von Positionen

der Roboterglieder, deren Orientierung, Geschwindigkeit und Beschleunigung, bei

bekannten Stellungen der Gelenke. Die inverse Kinematik berechnet die

Stellungen der Gelenke bei vorgegebener Stellung der Glieder, z.B. in der

Vorberechnung bzw. Planung von Bewegungspfaden. Nachdem alle relevanten

Positionen, Geschwindigkeiten, Beschleunigungen berechnet worden sind, werden

die Methoden der Dynamik verwendet, um die Einflüsse von Kräften bei der

Bewegung zu berechnen. Die direkte Dynamik wird verwendet, um die

Beschleunigungen im Roboter zu berechnen, sobald bekannt ist welche Kräfte auf

den Roboter wirken. Inverse Dynamik wird verwendet, um die Kräfte zu

Page 21: Nao Report(2)

2.Kapitel: Grundlagen der Robotik

Komponenten eines Roboters

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 12 von 92 | S e i t e

berechnen, die notwendig sind, um die Roboterglieder auf die vorgeschriebene

bzw. gewünschte Beschleunigung zu bringen. Die Bewegung eines Roboters

benötigt also ein komplexes System an Operationen (8).

2.3.4 Sensoren/Manipulation-Interaktion mit Umgebung

Zur Interaktion mit ihrer Umgebung müssen Roboter in der Lage sein ihre

Umgebung zu erkennen und benötigen Komponenten, die es ihnen ermöglichen

mit ihrer Umgebung zu interagieren. Um sich in der Umgebung zurechtzufinden,

ist nahezu jeder Roboter mit Sensoren ausgestattet, die zumeist physikalische

Werte zurückliefern, welche die Umgebung des Roboters beschreiben. Hierbei gibt

es Ultraschallsensoren zur Abstandserkennung, Näherungssensoren, Kameras zur

Objekterkennung bzw. Bildanalyse, Mikrofone zur Spracherkennung, Gyroskope

um die Lage relativ zum Bezugssystem zu bestimmen oder auch Taster, die

Kollisionen aufzeigen. Da das in dieser Studienarbeit behandelte Robotermodell

NAO, die soeben beschriebenen Sensoren einsetzt, wird an dieser Stelle auf eine

nähere Beschreibung der Funktionsweisen verzichtet. Der Aufbau der Sensoren

wird folgend noch näher beleuchtet.

Zur Manipulation der Umgebung werden oft „End Effectors“ eingesetzt.

Werkzeuge bzw. Module am Ende des Roboterarms, welcher auch als Manipulator

bezeichnet wird. Ein einfacher „End Effector“ ist beispielsweise ein mechanischer

Greifer, aber auch Vakuumgreifer sind im Einsatz. Im Bereich humanoider Roboter

wird daran geforscht die Bewegungsvielfalt menschlicher Hände nachzubauen.

Mehr oder weniger komplexe Modelle der menschlichen Hand werden schon als

„End Effector“ verwendet. (3) (12)

Page 22: Nao Report(2)

2.Kapitel: Grundlagen der Robotik

Komponenten eines Roboters

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 13 von 92 | S e i t e

2.3.5 Fortbewegung

Es gibt unterschiedliche Fortbewegungsarten für Roboter, dabei stellt die für den

Menschen naheliegendste, die Fortbewegung auf zwei Beinen, eine der

komplexesten Methoden dar. Die Fortbewegung auf mehr als zwei Beinen wird

ebenfalls erprobt und ist leichter umzusetzen, da das Gleichgewicht leichter

gehalten werden kann als auf zwei Beinen.

Zurzeit gibt es verschiedenste Ansätze zur Fortbewegung von Robotern, von

denen jeder für spezielle Aufgabengebiete Vorteile bietet. Folgend soll ein

Überblick über verschiedene Methoden der Gleichgewichtshaltung und

Fortbewegung gegeben werden, die aufgrund der Vielfalt nicht alle existierenden

Möglichkeiten aufzeigt.

Am meisten Verbreitet sind bisher Roboter die sich auf Rädern fortbewegen.

Grund ist die relativ einfache Umsetzbarkeit der Fortbewegungsart. Rollende

Roboter können sich recht schnell fortbewegen und liegen dabei, je nach Anzahl

der Räder, stabil. Zudem sind diese Techniken seit fast einem Jahrhundert im

Automobilbereich etabliert und somit günstig und weit entwickelt.

Humanoide Roboter bewegen sich nicht auf Rollen sondern, menschenähnlich, auf

zwei Beinen. Da zweibeinige Roboter nur an zwei Stellen Kontakt mit dem Boden

haben, muss ihre Bewegung sehr genau unter Beachtung der dynamischen

Stabilität des gesamten Systems geplant werden. Dies ist ein sehr schwieriger

Vorgang, da meist der Torso mehr Masse und Trägheit besitzt, als die Gliedmaßen,

die den Boden berühren. Was der menschliche Körper unbewusst leistet ist im

Page 23: Nao Report(2)

2.Kapitel: Grundlagen der Robotik

Komponenten eines Roboters

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 14 von 92 | S e i t e

Bereich der Robotik ein komplexes Problem. Ein Ansatz der Lösung ist die ZMP2-

Methode. (8)

Die ZMP-Methode ist ein Algorithmus der z.B. von ASIMO oder auch NAO

verwendet wird. Der Computer des Roboters versucht die Trägheitskraft, die sich

aus Gravitation und Beschleunigung zusammensetzt immer entgegengesetzt, der

Gegenkraft, die vom Boden ausgeübt wird zu halten (die Kraft, die vom Boden aus

auf den Fuß des Roboters wirkt). Auf diese Weiße löschen sich beide Kräfte aus

und der Roboter verharrt stabil. Eine resultierende Kraft würde dazu führen, dass

sich der Roboter in irgendeiner Achse dreht und schließlich fällt. Die menschliche

Form der Fortbewegung beruht nicht nur auf statischer Kinematik sondern ist

hochgradig dynamische, entsprechend wirkt die Fortbewegung mit der ZMP-

Methode für den Menschen künstlich (7) (8). Einige Roboter hüpfen, um sich

Fortzubewegen. Am MIT3 gibt es Experimente mit ein bis 4 Beinen, die sich über

Hüpfbewegungen stabil halten und Fortbewegen (13) (14).

Dynamisches Balancieren oder kontrolliertes Fallen ist eine höher entwickelte

Fortbewegungsmethode als ZMP. Hier wird ein dynamischer

Balancierungsalgorithmus verwendet, d.h. die Bewegungen des Roboters werden

kontinuierlich überwacht und die Füße des Roboters werden anhand dieser Daten

ausgerichtet, um die Stabilität zu halten. Der Roboter kann dadurch, auf die auf

ihn ausgeübten Kräfte und Beschleunigungen dynamisch reagieren und seine

Gliedmaßen entsprechend der Einwirkungen von außen so ausrichten, dass er im

Gleichgewicht bleibt. Diese Form der Fortbewegung reagiert wesentlich

unempfindlicher auf Störungen von außen z.B. Stößen.

2 Zero Moment Point

3 Massachusetts Institute of Technology

Page 24: Nao Report(2)

2.Kapitel: Grundlagen der Robotik

Komponenten eines Roboters

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 15 von 92 | S e i t e

Passive Dynamik ist ein Recht neuer Ansatz in der Fortbewegung von Robotern.

Dabei wird die Trägheit der Roboterglieder bzw. die auf sie einwirkende

Gravitationskraft genutzt, um Bewegungen auszuführen. Damit lässt sich

Motorkraft einsparen und somit eine effizientere Nutzung der Energieressourcen

des Roboters erreichen. (15) (16)

Ein modernes Flugzeug kann als fliegender Roboter aufgefasst werden. Der

Autopilot kann alle Stadien des Fluges, Start, Flug, Landung steuern und wird dabei

nur von zwei menschlichen Piloten unterstützt, die bei Bedarf übernehmen.

Gerade im militärischen Bereich werden vermehrt „unmanned aerial vehicles“

(UAVs) eingesetzt (16). Sie werden größtenteils noch von menschlichen Piloten

ferngesteuert, bieten aber schon viele autonome Fähigkeiten. Exotischere

Fortbewegungsarten sind Klettern, Schlängeln, oder Schwimmen. Dabei wird

häufig versucht Bewegungsabläufe bzw. Methoden aus der Natur zu imitieren

(17).

2.3.6 Mensch Maschine Interaktion

Wenn Roboter auch außerhalb der Industrie bzw. außerhalb von

Forschungseinrichtungen, im privaten Umfeld arbeiten sollen, wird es von großer

Bedeutung sein, die Interaktion mit den Robotern zu vereinfachen.

Kommunikation über Command Line Interfaces oder andere komplexe

Steuereinheiten ist hier nicht möglich, da kein Fachpersonal zu Verfügung steht

sondern gewöhnliche Bürger. Da diese Menschen keine oder sehr wenig über

Robotik wissen werden, muss jedes Bedieninterface so einfach und intuitiv

gestaltet sein, dass es für jeden bedienbar ist. Am einfachsten fällt es dem

Menschen über die Sprache (4).

Page 25: Nao Report(2)

2.Kapitel: Grundlagen der Robotik

Komponenten eines Roboters

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 16 von 92 | S e i t e

Die Interpretation kontinuierlicher Sprache in Echtzeit stellt ein großes Problem

für Computer bzw. Roboter dar. Dies liegt nicht nur, aber vor allem auch daran,

dass die physikalische Eigenschaften ein und desselben Wortes je nach Sprecher

variieren. Selbst ein und dieselbe Person mag in unterschiedlichen Situationen ein

und dasselbe Wort anders aussprechen, hinzukommen störende

Umgebungsgeräusche. Das beste zurzeit bekannte Spracherkennungssystem kann

160 Worte pro Minute mit einer Genauigkeit von 95% (18) erkennen.

Gegenstand der Forschung ist ebenfalls die Gesten-Erkennung. Übermittlung von

Informationen über gestikulieren. Auf diesem Gebiet gibt es schon einige Erfolge

(19). Da Menschen üblicherweise ihrem gegenüber sehr viele Informationen

nonverbal, allein über Ausdrücke im Gesicht z.B. Lächeln vermitteln, ist es für eine

zukünftige Mensch-Maschine-Interaktion auch unerlässlich eine zuverlässige

Erkennung und Interpretation von Gesichtsausdrücken zu entwickeln. Das

imitieren menschlicher Gesichtsausdrücke ist allerdings sehr schwierig, da das

menschliche Gesicht 52 Muskeln aufweist, von denen 16 direkt und ausschließlich

mimische Funktion haben. Dabei ist unser Gehirn darauf trainiert

Gesichtsausdrücke zu erkennen und zu interpretieren und ist schon bei kleinsten

falschen Nuancen irritiert d.h. Gesichtsausdrücke wirken nicht echt, wenn bereits

kleine Fehler der Mimik vorhanden sind. (20) (21)

Es wird ebenfalls darüber nachgedacht Zustände des Roboters über künstliche

Emotionen auszudrücken z.B. über Gesichtsausdrücke. Auch die Entwicklung einer

Art Persönlichkeit für Roboter wird diskutiert. Hier finden sich aber Streitpunkte

zwischen Befürwortern und Gegnern. Zurzeit werden in Forschungsprojekten

Roboter entwickelt die eine Persönlichkeit simulieren d.h. sie versuchen über

Körpersprache und Gesichtsausdrücke einen inneren Zustand, wie Freude oder

Page 26: Nao Report(2)

2.Kapitel: Grundlagen der Robotik

Komponenten eines Roboters

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 17 von 92 | S e i t e

Traurigkeit auszudrücken. Der kommerziell erhältliche Roboterdinosaurier „Pleo“

ist beispielsweise in der Lage verschieden Emotionen zu simulieren. (22)

2.3.7 Steuerung

Die mechanische Struktur eines Roboters muss von einer Instanz gesteuert

werden, um Aufgaben ausführen zu können. Die Vorgehensweise zur Steuerung

wird dabei Roboterparadigma genannt und unterteilt sich in drei dedizierte

Phasen: Erkennung, Verarbeitung und Ausführung. Ein Sensor gibt Informationen

über die Umgebung oder einen Zustand im Roboter selbst weiter. Diese

Information wird von einer Logik im Roboter verarbeitet, die notwendigen

Aktionen werden erkannt und den Aktuatoren Signale zur Ausführung der

Aktionen übermittelt. Da die Aufgaben eines Roboters stark variieren, variiert

auch die Komplexität der internen Logik, die die Sensoreingaben verarbeitet.

Komplexe Aufgaben können ein kognitives Verhalten des Roboters erfordern, d.h.

dem Roboter wird eine Art Verstand über ein kognitives Model programmiert.

Kognitive Modelle versuchen dem Roboter, seine Umgebung und deren

Interaktionen abzubilden. Dazu zählt z.B. Mustererkennung und Objekterkennung,

um Objekte in der Umgebung wahrzunehmen und Verfolgen zu können. Über

weitere Techniken kann versucht werden eine Abbild bzw. Modell der Umgebung

des Roboters zu erstellen, auf Basis derer dann Bewegungs- bzw. Pfadplanung

oder andere Methoden der Künstlichen Intelligenz durchgeführt werden können.

Es gibt verschiedene Ebenen der Steuerung. Auf unterster Ebene wird der Roboter

vollständig vom Menschen gesteuert. Gerade bei Autonom operierenden

Robotern sind solche Eigenschaften wichtig. Der nächste Entwicklungsschritt sind

Page 27: Nao Report(2)

2.Kapitel: Grundlagen der Robotik

Komponenten eines Roboters

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 18 von 92 | S e i t e

Roboter, denen der Mensch eine Aufgabe vorgibt, welche der Roboter dann

eigenständig ausführt. Ein autonomer Roboter, kann lange Zeit ohne menschlichen

Eingriff arbeiten. Dabei sagt die Autonomie noch nichts über die kognitiven

Fähigkeiten aus. Ein Roboter kann am Fließband autonom arbeiten, ohne in der

Lage zu sein, seine Umgebung zu erkennen und mit ihr zu interagieren. (8) (4) (21)

(23)

Abbildung 1. Roboterparadigma

2.3.8 Informatik und Robotik

Unabhängig von der physikalischen Entwicklung, d.h. Entwicklung von besseren

Materialien, oder neuen Konstruktionsmöglichkeiten spielt auch die Informatik

eine sehr wichtige Rolle in der Robotik. Besonders im Bereich der Interaktion und

der Entscheidungsfindung.

Ein autonomer Roboter muss in der Lage sein, seine Umwelt zu erkennen und auf

Basis dieser Daten mit Hilfe von Methoden oder Mustern Entscheidungen zu

treffen. Die Forschungstätigkeit umfasst dabei die Entwicklung von physikalischen

Sensoren zum Tasten, zur Präsenzdetektion, zur Messung von Kraft, Moment,

Druck bis hin zu miniaturisierten Kamerasystemen.

Page 28: Nao Report(2)

2.Kapitel: Grundlagen der Robotik

Komponenten eines Roboters

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 19 von 92 | S e i t e

Die Signale, welche von den Sensoren abgegeben werden, müssen vom Roboter

interpretiert werden. Hierfür ist die Entwicklung von informationstechnischen

Methoden notwendig, um Sprachsignale zu interpretieren oder beispielsweise

Muster in Bildern zu erkennen. Während es dem Menschen recht einfach fällt

Objekte in einem Bild zu lokalisieren, muss man in der Informationstechnik

Möglichkeiten finden Objekte im Bild zu identifizieren. Dazu werden verschiedene

Techniken eingesetzt: Klassische Mustererkennung basierend auf statistischen

Verfahren, Neuronale Netzwerke, Methoden aus dem Bereich der Künstlichen

Intelligenz, oder Methoden aus dem Bereich der Fuzzy-Mengen und -Logik.

Ähnlich verhält es sich im Bereich der Spracherkennung. Darüber hinaus muss es

einem Roboter möglich sein sich in seiner Umgebung zurechtzufinden und zu

positionieren. Auch hier spielt die Informationstechnik eine wichtige Rolle darin,

ein Modell der Umgebung des Roboters zu entwickeln und die Signaleingaben so

zu verarbeiten, dass die Position des Roboters in diesem Umgebungsmodell

bestimmt werden kann.

Eines der zentralen Ziele der Robotik-Forschung innerhalb der Informatik ist die

Erforschung von Möglichkeiten, einem Roboter-System kognitive Fähigkeiten, d.h.

solche zur Erkennung und Bewertung seiner Umwelt zu verleihen, um sich in ihr so

autonom wie möglich zurechtzufinden. Dieses Ziel orientiert sich an den

entsprechenden Fähigkeiten des Menschen und ist Forschungsschwerpunkt im

Bereich der Künstlichen Intelligenz. (24)

Page 29: Nao Report(2)

2.Kapitel: Grundlagen der Robotik

Verschiedene Roboter

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 20 von 92 | S e i t e

2.4 Verschiedene Roboter

Im Folgenden Abschnitt wird ein kleiner Auszug der bekanntesten Robotik-

Modelle veranschaulicht. Dies soll zum Einen die verschieden konstruktiven

Möglichkeiten zeigen und zum Anderen auch die Weiterentwicklung der Robotik

aufzeigen.

2.4.1 Aibo

Abbildung 2. Aibo

„Aibo“ (Abbildung 2) ist ein Unterhaltungs-und Spielzeugroboter der Firma Sony.

Er war einer der ersten kommerziell erhältlichen Roboter und gewann durch

seinen Einsatz im Robocup an Popularität. Insgesamt wurden mehr als 150.000

Aibos verkauft (25). Am 26. Januar 2006 gab Sony bekannt die Aibo Plattform nicht

weiterentwickeln zu wollen. Entsprechend wurde ein Nachfolger für Aibo in der

Robocup-Liga (Abbildung 3) gesucht und mit „NAO“ auch gefunden.

Page 30: Nao Report(2)

2.Kapitel: Grundlagen der Robotik

Verschiedene Roboter

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 21 von 92 | S e i t e

Abbildung 3. Aibos im Robocup-Wettbewerb

2.4.2 Asimo

„Asimo“ (Abbildung 4) ist ein weit entwickelter humanoider Roboter von Honda.

Honda begann bereits im Jahr 1986 mit der Forschung an Humanoiden Robotern.

Diverse Entwicklungen führten letztendlich zur Konstruktion von Asimo. Die

Hardware des am 15. Dezember 2004 vorgestellten Forschungsmodells des Asimo

ist 1,20 Meter groß und wiegt 54 Kilogramm. Die integrierte Stromversorgung

reicht für etwa 40 Minuten Betriebszeit, während sich der Roboter gehend

fortbewegt. ASIMO besitzt in der aktuellen Version 34 Freiheitsgrade. Er kann

etwa 2,7 Kilometer pro Stunde (km/h) beim Gehen erreichen, ist in der Lage

Gegenstände zu tragen und kann mit bis zu 6 km/h rennen.

Page 31: Nao Report(2)

2.Kapitel: Grundlagen der Robotik

Verschiedene Roboter

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 22 von 92 | S e i t e

Abbildung 4. Asimo

2.4.3 Kuka

„Kuka“ (Abbildung 5) Roboter sind klassische Industrieroboter, sie setzen sich aus

einem Roboterarm mit 6 Achsen und jeweils variierenden „End Effectors“

zusammen. Die Roboter sind nicht mobil und werden über ein Steuerterminal fest

darauf programmiert eine bestimmte Aufgabe auszuführen. Dabei werden dem

Roboter zumeist die exakten Bewegungsabläufe, die er ausführen muss

einprogrammiert.

Page 32: Nao Report(2)

2.Kapitel: Grundlagen der Robotik

Verschiedene Roboter

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 23 von 92 | S e i t e

Abbildung 5. Kuka

Entscheidungsfindungen werden üblicherweise nicht getroffen. Diese Art von

Industrierobotern wird zumeist in der Fließfertigung z.B. beim Paketieren oder

Schweißen eingesetzt (26).

2.4.4 Paro

„Paro“ (Abbildung 6) ist ein Roboter, der zu medizinischen Zwecken eingesetzt

wird. Er ist dem Baby einer Sattelrobbe nachempfunden und soll dadurch einen

beruhigenden Einfluss auf die Patienten ausüben. Die Entwicklung bzw. das Design

von Paro stützt sich dabei auf Erfahrungen aus der tiergestützten Therapie.

„Paro“ verfügt über taktile Sensorik und kann darüber Streicheln wahrnehmen.

Darauf reagiert „Paro“ mit der Bewegung des Schwanzes und den Augen. Der

Roboter reagiert darüber hinaus auf Geräusche und kann Namen lernen. „Paro“

Page 33: Nao Report(2)

2.Kapitel: Grundlagen der Robotik

Einführung in die Künstliche Intelligenz

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 24 von 92 | S e i t e

macht selbst Geräusche, die denen von echten Sattelrobben-Babys ähneln. Der

Roboter ist seit 2004 verfügbar und wird auch in Deutschland als Therapiemittel in

der Betreuung von Menschen mit Demenz eingesetzt (27).

Abbildung 6. Paro

2.5 Einführung in die Künstliche Intelligenz

Die Künstliche Intelligenz (KI) ist ein Forschungsgebiet in der Informatik. Es ist

zudem ein sehr spannender Themenbereich, der sich nicht nur damit beschäftigt,

zu verstehen wie das Denken funktioniert, sondern versucht eigene intelligente

Einheiten aufzubauen.

Die KI ist ein relativ junger wissenschaftlicher Bereich. Die ersten ernsthaften

Forschungen begannen nach dem zweiten Weltkrieg. Zudem ist der Bereich der KI

relativ unerforscht. Auch wenn es hauptsächlich ein Gebiet ist, welches der

Informatik zugeordnet wird, sollte man es als universelles Gebiet betrachten,

welches viele wissenschaftliche Gebiete mit eingliedert.

In der KI unterscheidet man nach zwei wesentlichen Punkten:

Page 34: Nao Report(2)

2.Kapitel: Grundlagen der Robotik

Einführung in die Künstliche Intelligenz

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 25 von 92 | S e i t e

- Denkprozessen (logisches Herleiten)

- Verhalten (Verhaltensmuster)

Damit spaltet sich die KI also in insgesamt vier Bereiche. Einmal das rationale

denken und ebenso handeln sowie als weiteres das menschliche denken und

handeln (27). Allgemein soll aber verdeutlicht werden, dass KI nicht einfaches

programmieren ist, sondern ein Lernprozess den jeder Roboter individuell

erfahren soll.

Tabelle 1 gibt eine Vorstellung, wie komplex und schnell das menschliche Gehirn

gegenüber einem Computer ist. Es ist ersichtlich, dass die Bandbreite des

menschlichen Gehirns 10.000 Mal höher ist als die eines Computers und die

Differenz der Speicheraktualisierung ist das 10-fache der Differenz der Bandbreite.

Allgemein auf alle Werte in Tabelle 1 bezogen, kann geschlussfolgert werden, dass

das menschliche Gehirn im Moment um einiges Leistungsfähiger ist als ein

Computer. Es sollte jedoch auch das Moore’sche Gesetz beachtet werden, indem

es heißt, dass sich die Rechnerleistung alle zwei Jahre verdoppelt und wir uns

immer mehr der Leistungsfähigkeit eines menschlichen Gehirns annähern.

Die KI versucht trotz der bis jetzt gegeben Einschränkung das menschliche Gehirn

oder besser gesagt das menschliche Verhalten nachzubilden.

Computer Menschliches Gehirn

Recheneinheiten 1 CPU, 108 Gatter 10

11 Neutronen

Speichereinheiten 1010

Bit RAM

1011

Bit Festplatte

1011

Neutronen

1014

Synapsen

Geschwindigkeit 10-9

s 10-3

s

Bandbreite 1010

Bit/s 1014

Bit/s

Speicheraktualisierungen/s 109

1014

Tabelle 1. Vergleich der Rechnerressourcen

Page 35: Nao Report(2)

2.Kapitel: Grundlagen der Robotik

Einführung in die Künstliche Intelligenz

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 26 von 92 | S e i t e

Mit Tabelle 1 wird verdeutlicht wie komplex und schwierig es ist die Natur

nachzubilden. Es scheint zumindest was die Ressourcen angeht schier unmöglich.

Sollte man den Moore’schen Gesetz weiterhin Folge leisten, sowie die Entwicklung

von neuen Technologien beachten, wäre es möglich das Ziel von Robocup, das

Gewinnen gegen die Fußball Nationalmannschaft im Jahre 2050, zu erreichen und

das menschliche Gehirn nachzubilden.

Aber nicht nur das menschliche Verhalten soll emuliert werden.

Abbildung 7. Roboter-Spinne (l.o.) in Ruhmodus, (r.o.) Platine und Kühlung, (l.u.) ein Gelenk und (r.u.) aktiv

Page 36: Nao Report(2)

2.Kapitel: Grundlagen der Robotik

Bedeutung und Einsatzgebiete der Robotik

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 27 von 92 | S e i t e

Abbildung 7 zeigt eine Spinne, die ihre sechs Beine koordiniert bewegen kann und

mithilfe der Kamera Personen erkennt und verfolgt. Dieses Beispiel zeigt

weiterhin, dass die künstliche Intelligenz ebenfalls versucht Gegenstände und

Lebewesen aus der Natur nachzubilden. Allerdings werden auch deutlich die

momentanen Grenzen der aufgezeigt. Die Stromversorgung läuft über einen Arm

dickes Kabel und bei dem Vergleich der Größenordnung zu einer natürlichen

Spinne sieht man die noch vorhandenen Probleme in der technischen Umsetzung

noch sehr deutlich.

2.6 Bedeutung und Einsatzgebiete der Robotik

Roboter finden mittlerweile vielfältigen Einsatz in nahezu allen Bereichen des

Lebens. Dabei erstrecken sich die Anwendungsgebiete von der Industrie, der

Weltraumforschung über den medizinischen bis in den privaten Lebensbereich.

Industrieroboter werden meist in für den Menschen zu gefährlichen oder

unzumutbaren Umgebungen eingesetzt. Roboter erledigen heute stupide

Fließbandarbeit schneller und wesentlich genauer als ein Mensch und können ihn

in immer mehr Bereichen ersetzen. In der Automobilindustrie oder auch der

Halbleiterfertigung sind die Produktionsprozesse ohne Roboter nicht mehr

bewerkstelligbar. (24)

Für den privaten Bereich existieren vereinzelt bereits auf eine Aufgabe

spezialisierte Serviceroboter, die beispielsweise in der Lage sind, Staub zu saugen,

den Boden zu wischen oder den Rasen zu mähen.

Page 37: Nao Report(2)

2.Kapitel: Grundlagen der Robotik

Bedeutung und Einsatzgebiete der Robotik

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 28 von 92 | S e i t e

Forschungsroboter, wie die Marssonden Pathfinder, Spirit oder Opportunity

erkunden weitgehend autonom Planeten oder Monde unseres Sonnensystems. In

anderen Bereichen dringen sie in Katastrophengebiete vor oder sammeln Daten in

menschenfeindlichen Umgebungen, wie Vulkanen.

Im Robocup, einer Roboterfußballliga wird, anhand der Aufgabenstellung des

Fußballspiels, an der Interaktion und Koordination zwischen Roboter-Individuen,

sowie der künstlichen Intelligenz geforscht. Ziel der Veranstaltung ist es bis 2050

eine Robotermannschaft gegen eine Nationalmannschaft antreten zu lassen (28).

Aber auch der Rescue-Bereich im Robocup wird immer mehr ausgebaut. Dabei

geht es um das Retten von Menschenleben in unebenem Gelände. Dabei können

die Opfer versteckt sein und das Gelände sich immer wieder verändern.

Abbildung 8. Robocup Senior

In der Medizin werden Roboter für Untersuchungen, Operationen und

Rehabilitation eingesetzt und verrichten einfache Aufgaben im Krankenhausalltag.

Es existieren ebenfalls bereits Operationsroboter, die den Chirurgen bei diffizilen

Page 38: Nao Report(2)

2.Kapitel: Grundlagen der Robotik

Zukunftsaussichten

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 29 von 92 | S e i t e

Arbeiten z.B. im Bereich der Gehirnchirurgie, in der ein absolut ruhiges Halten der

medizinischen Instrumente notwendig ist, unterstützen können. (24)

Auch im Unterhaltungsbereich gibt es erste Roboter, wie den Roboterhund Aibo

von Sony.

Im militärischen Bereich liegt ein Fokus der Forschung auf Robotern. Die

Möglichkeit ferngesteuerte Maschinen anstatt Menschen in den Kampf zu

schicken, wird in vielen Bereichen des Militärs positiv gesehen. Zunehmend

werden hier mobile Roboter und ferngesteuerte Kampfdrohnen eingesetzt (17).

2.7 Zukunftsaussichten

Gemäß einer Studie des „National Institute of Science and Technology Policy“

(NISTEP, Japan) wird sich die Robotik in den nächsten 10 bis 20 Jahren rasant

entwickeln. Die Studie macht Abschätzungen über technologische Fortschritte bis

ins Jahr 2030. Die einzelnen Meilensteine sind wie folgt (29):

2013-2014 — Agrarroboter

2013-2017 — Pflegeroboter

2017 — medizinische Roboter, die eigenständig kleinere Eingriffe

vornehmen

2017-2019 — voll Funktionsfähige Haushaltsroboter

2019-2021 — Nanoroboter

Page 39: Nao Report(2)

2.Kapitel: Grundlagen der Robotik

Problematik der Robotik

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 30 von 92 | S e i t e

2.8 Problematik der Robotik

Abgesehen von technischen Problemen d.h. den bereits angesprochenen

komplexen und schwierigen technischen Aufgaben im Bereich der Mechanik,

Physik und Informationstechnik, die zur Entwicklung autonomer oder kognitiver

Roboter gelöst werden müssen, gibt es zwei grundlegende nichttechnische

Problemfelder in der Robotik, die sich mit zunehmender Intelligenz bzw. mit

steigender Interaktion von Robotern mit dem menschlichen Umfeld ergeben. Dies

sind zum einen Sicherheitsaspekte d.h. in erster Linie die Sicherheit von Menschen

im Umfeld von Robotern und zum anderen philosophische und ethische

Fragestellungen.

2.8.1 Asimov‘s Robotergesetze

Erstmals tauchen ethische Fragen im Zusammenhang mit der Robotik in fiktionaler

Literatur auf, lange bevor ansatzweise autonome Roboter in Laboratorien gebaut

wurden. Einer der ersten, der sich fiktiv mit den Fragen der Sicherheit im Umgang

mit Robotern beschäftigte war Isaac Asimov. Ein russischer Schriftsteller, der

bereits 1942 in seinem Buch „Ich, der Robot“ drei Robotergesetze aufstellte, die

die Menschen im Umgang mit Robotern schützen sollten.

Die Asimov‘schen Gesetze lauten:

Ein Roboter darf kein menschliches Wesen verletzen oder durch Untätigkeit

gestatten, dass einem menschlichen Wesen Schaden zugefügt wird.

Ein Roboter muss den ihm von einem Menschen gegebenen Befehlen gehorchen –

es sei denn, ein solcher Befehl würde mit Regel eins kollidieren.

Page 40: Nao Report(2)

2.Kapitel: Grundlagen der Robotik

Problematik der Robotik

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 31 von 92 | S e i t e

Ein Roboter muss seine Existenz beschützen, solange dieser Schutz nicht mit Regel

eins oder zwei kollidiert. (30)

Sicherheitsrichtlinien für Roboter ergeben sich aus dem jeweiligen Einsatzbereich

und dem Robotertyp. Industrieroboter werden durch gesetzlich vorgeschriebene

Sicherheitsvorkehrungen wie Käfige, Gitter, Lichtschranken oder andere Barrieren

abgesichert. Mit zunehmender Autonomie jedoch benötigen gegenwärtige oder

zukünftige, komplexere Robotersysteme den Umständen entsprechend

angepasste Sicherheitsvorkehrungen. Durch den vielfältigen Einsatz von Robotern

ist es jedoch utopisch, universelle Sicherheitsregeln für alle Roboter aufzustellen.

Auch die von Isaac Asimov aufgestellten „Drei Regeln der Robotik“ können nur als

ethische Richtlinien für eine mögliche Programmierung verstanden werden, da

unvorhersehbare Situationen vom Roboter nicht kalkulierbar sind. Je autonomer

ein Roboter im Umfeld des Menschen agiert, desto größer ist die

Wahrscheinlichkeit, dass Lebewesen oder Gegenstände zu Schaden kommen

werden.

Forscher, die sich mit künstlicher Intelligenz beschäftigen sehen diese Gesetze

häufig als futuristisches ideal, dessen Umsetzung aber kaum realistisch erscheint.

Grund hierfür ist zum Einen die Tatsache, dass bei zukünftigen autonomen

Robotersystemen Roboter in den verschiedenartigsten Situationen

Entscheidungen treffen müssen, die im Voraus kaum kalkulierbar sind und zum

Anderen sind bereits heute Roboter im Einsatz deren Ziel es ist Menschen zu

töten, die also per Definition bereits nicht den idealisierten Robotergesetzten

gehorchen. Es ist somit nicht mehr wahrscheinlich dass die Gesetzte irgendwann

als Paradigma allgemein gültig seien werden, sie werden jedoch als Denkanstoß

begriffen. Es wird deshalb heute davon ausgegangen, dass universelle

Page 41: Nao Report(2)

2.Kapitel: Grundlagen der Robotik

Problematik der Robotik

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 32 von 92 | S e i t e

Sicherheitskonzepte eher durch eine auf das Einsatzgebiet angepasstes

Sicherheitskonzept für autonome Roboter ersetzt werden wird. (31) (32)

2.8.2 Militärische Roboter und Sicherheit

Der Einsatz mobiler teils autonomer Roboter nimmt auch im militärischen Bereich

stark zu. Neben bewaffneten Kampfrobotern werden auch vermehrt unbemannte

fliegende Kampfdrohnen mit Bewaffnung eingesetzt (Irak, Afghanistan). Die

DARPA4 eine militärische Forschungseinrichtung des Pentagon hat erstmals im Juni

2004 im Grand Challenge ein Preisgeld von einer Million US-Dollar ausgeschrieben.

Die unbemannten Fahrzeuge der Teilnehmer sollten dabei in 10 Stunden quer

durch die Mojawewüste ein Ziel in 175 Meilen Entfernung erreichen. Mittlerweile

wird dieses Ziel von vielen Teilnehmern erreicht. (33)

Mit dem vermehrten Einsatz militärischer Roboter, die in der Lage sind Menschen

zu töten stellt sich die Frage, wie man über Sicherheitskonzepte erreichen kann,

dass Fehlfunktionen der Roboter nicht zum Tode Unschuldiger führen. Somit

existieren auch im militärischen Bereich ähnliche Fragestellungen wie für zivile

Roboter beschrieben. Dass die aktuellen Sicherheitsmechanismen nicht

ausreichend sind, zeigen wiederholte Zwischenfälle und Fehlfunktionen.

Im April 2008 wurde eine SWORDS5 genannte Bauserie autonom agierender

bewaffneter Roboter für den Einsatz im Irakkrieg durch das amerikanische

Verteidigungsministerium aus dem Dienst zurückgezogen, da sich bei mehreren

Vorfällen der Waffenarm des Roboters gedreht hatte, obwohl dies in der

4 Defense Advanced Research Projects Agency

5 Special Weapons ObservationReconnaissance Detection System

Page 42: Nao Report(2)

2.Kapitel: Grundlagen der Robotik

Problematik der Robotik

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 33 von 92 | S e i t e

jeweiligen Situation nicht vorgesehen war. Obwohl bei den Vorfällen niemand

verletzt worden war, wurden die Roboter darauf hin als unsicher eingestuft, und

der Feldeinsatz abgebrochen. (34)

Abbildung 9. SWORDS Kampfroboter

Auch teilweise autonome, teilweise ferngesteuerte Kampfdrohnen des Typs

Predator, haben schon mehrmals nicht mehr auf die Steuerinformationen des

menschlichen Benutzers reagiert und sind unkontrolliert weitergeflogen. Sie

mussten von Abfangjägern abgeschossen werden. (35)

Diese und ähnliche Vorfälle zeugen davon, dass Sicherheitsmechanismen im

Robotikbereich noch nicht immer ausgereift sind und auch in diesem Bereich noch

einige Entwicklungs- und Forschungsarbeit zu leisten ist, um einen sicheren Einsatz

von Robotern zu gewährleisten.

Page 43: Nao Report(2)

2.Kapitel: Grundlagen der Robotik

Problematik der Robotik

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 34 von 92 | S e i t e

2.8.3 Einschätzung der Sicherheitsaspekte 2009

Im Jahr 2009 haben sich akademische und technische Experten im Bereich der

Robotik auf einer Konferenz getroffen, um den Einfluss der hypothetischen

Möglichkeit zu besprechen, dass Roboter und Computer selbstständig werden

könnten und in der Lage sein könnten ihre eigenen Entscheidungen zu treffen. Sie

diskutierten die Möglichkeiten und den Umfang in dem Robotersysteme in der

Lage sein könnten verschiedene Grade der Selbstständigkeit zu erreichen.

Ebenfalls wurde darüber diskutiert wie diese Selbständigkeit zu Gefahren oder

Bedrohungen führen könnte. Sie merkten an, dass einige Roboter diverse Arten

von Halb-Autonomie erreicht haben, so sind einige Roboter in der Lage sich

selbstständig Energiequellen zu suchen und automatisch Ziele für ihr

Waffensystem auszusuchen. Sie bemerkten auch, dass einige Computerviren in

der Lage sind ihre Löschung/Vernichtung zu verhindern und somit eine Art

„Kakerlaken-Intelligenz“ in diesem Bereich erreicht haben. Die

Konferenzteilnehmer waren sich einig, dass die Fähigkeit des Bewusstseins, wie sie

sie in Science Fiction Filmen vorkommt äußerst unwahrscheinlich ist, das aber

durchaus unzählige Gefahrensituation durch die selbständige

Entscheidungsfindung von Robotern entstehen. Einige Experten Zweifeln generell

den Einsatz von Robotern im militärischen Bereich an, besonders wenn diese

autonome Fähigkeiten haben. (36).

Page 44: Nao Report(2)

3.Kapitel: Der Humanoide NAO

Allgemeine Beschreibung

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 35 von 92 | S e i t e

3. Der Humanoide NAO

3.1 Allgemeine Beschreibung

Ein Humanoide ist ein Roboter, dessen Konstruktion und Design der menschlichen

Gestalt nachempfunden ist. Zumeist sind dabei die Positionen der Gelenke, den

menschlichen Gelenkpositionen nachempfunden. Die Bewegungsabläufe des

Roboters orientieren sich dabei an menschlichen Bewegungsabläufen,

üblicherweise bewegen sich humanoide Roboter deshalb auch auf zwei Beinen

fort. Darüber hinaus sind häufig Interaktionsmöglichkeiten über Sprache, Gestik

und Mimik implementiert, um den Roboter noch menschenähnlicher zu machen.

Der Roboter NAO ist ein humanoider Roboter der von Aldebaran Robotics, einem

französischen Unternehmen mit Unterstützung verschiedener französischer

Forschungseinrichtungen entwickelt wurde. Er ist offizieller Roboter der

Roboterliga Robocup, im Bereich humanoider Roboter.

3.1.1 Entwurfsziele bzw. Designkonzepte des NAO

NAO ist eines unter vielen Humanoiden Robotersystemen. Es existieren bereits

vielfältige anders Systeme, wie ASIMO von Honda. Da NAO eine komplette

Neuentwicklung ist, wollte das Herstellerunternehmen ein System entwickeln, das

sich von den aktuell verfügbaren Systemen unterscheidet. (37)

Page 45: Nao Report(2)

3.Kapitel: Der Humanoide NAO

Allgemeine Beschreibung

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 36 von 92 | S e i t e

Abbildung 10. Nimbro – eine der ersten Humanoiden beim Robocup

„Aldebaran Robotics“ hat NAO unter vier Gesichtspunkten bzw. Designzielen

entwickelt. Diese vier Punkte sind Verfügbarkeit, Leistungsfähigkeit, Modularer

Aufbau und offene Architektur (38). Die Vorstellungen, die sich laut dem

Entwicklerunternehmen hinter diesen Begriffen verbergen, werden in den

folgenden Abschnitten erläutert.

Verfügbarkeit bedeutet der Roboter soll für alle verfügbar und erschwinglich sein,

die Interesse an der Robotik haben, in erster Linie stehen hier Forscher im Fokus,

die Interesse an der Forschung im Bereich der Humanoiden Robotik und

künstlichen Intelligenz haben aber auch private Interessenten sollen in der Lage

sein den Roboter erwerben zu können. NAO wurde deshalb stark unter

Kostengesichtspunkten entwickelt, um die Forschung mit einem günstigen und

erschwinglichen Robotermodell zu unterstützen. Darüber hinaus sollen seine

Nachfolger einmal Menschen im alltäglichen Leben helfen und unangenehme

Arbeiten für die Menschen ausführen. (38) (37)

Die bereits existierenden Roboter wie Assimo von Honda sind nicht für alle

Forscher oder Interessierte verfügbar, oder nur für Forscher verfügbar, die

Page 46: Nao Report(2)

3.Kapitel: Der Humanoide NAO

Allgemeine Beschreibung

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 37 von 92 | S e i t e

umfangreiche finanzielle Mittel zur Verfügung haben, um sich die Kosten für

Anschaffung und Wartung leisten zu können. Die folgende Tabelle illustriert die

Kosten für aktuelle Robotermodelle

Tabelle 2. Werte von Robotern

Sogar der recht kleine HOAP von Fujitsu Siemens kostet schon um die 50 000 $.

Trotz der Kostenziele war auch die Leistungsfähigkeit ein Grundsatz, der

Entwicklungsarbeit, somit wird versucht Kosten, wo möglich, einzusparen ohne

dadurch Qualität oder Leistung zu verlieren. Im Falle von NAO heißt das z.B., dass

die gleichen Aktuator-Module in mehreren Gelenken verwendet werden, um

Kosten im Einkauf zu reduzieren. Auf diese Weise wird auch die Anzahl

unterschiedlicher Motoren reduziert. NAO besitzt nur zwei unterschiedliche

Motortypen und 4 Aktuatormodule. Der Roboter kostet zurzeit 10000€ für

Laboratorien, wird allerdings bei serienreife ca. 4000€ kosten. (39) (38)

Page 47: Nao Report(2)

3.Kapitel: Der Humanoide NAO

Allgemeine Beschreibung

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 38 von 92 | S e i t e

Die Leistungsziele von NAO sind flüssige Bewegungsabläufe beim Laufen, auch

wenn die Geschwindigkeit oder Richtung verändert wird. Darüber hinaus wird eine

Vielzahl an Bewegungsmöglichkeiten angestrebt, die der Roboter flüssig und

präzise ausführen soll. Die Laufgeschwindigkeit soll so, wie die von Kindern

gleicher Größe sein, das wären ungefähr 0,6km/h.

Um diese Ziele zu erreichen, ist eine starke und verlässliche Hardware, sowie

präzise Gelenke notwendig. NAO besitzt qualitative hochwertige Bürstenlose

Gleichstrommotoren und hoch präzise magnetische Sensoren in den Aktuatoren.

Ein zweibeiniger Roboter muss darüber hinaus gute Bewegungsleistung im

Verhältnis zu seiner Größe und seinem Gewicht bieten (BMI Body Maß Index).

NAO hat einen BMI von 13,5, das bedeutet er ist sehr leicht im Vergleich zu

anderen Robotern gleicher Größe (siehe Tabelle 2) (38)

Ein Roboter der autonom und interaktiv agieren soll, muss die Möglichkeiten der

Implementierung kognitiver Fähigkeiten bzw. die Fähigkeit der künstlichen

Intelligenz bieten. Dies setzt voraus, dass der Roboter in der Lages ist Sprache, und

menschliche Gesichter bzw. Gesichtszüge zu erkennen. Selbige Funktionen sind bei

NAO bereits integriert. Darüber hinaus muss er ebenfalls in der Lage sein, sich in

seiner Umgebung zu lokalisieren und selbständig zurechtzufinden. Um mit seiner

Umgebung zu interagieren bzw. um seine Umgebung wahrnehmen zu können und

sich in ihr zu orientieren ist NAOs Kopf und Rumpf mit vielfältigen Sensoren

ausgestattet. Seine kognitiven Fähigkeiten hängen von seiner Software und

Programmierung ab, je nachdem wie umfangreich die Programmierer die

Sensoren nutzen, um NAO interaktiv und autonom Entscheidungen treffen zu

lassen. (38) (40)

Page 48: Nao Report(2)

3.Kapitel: Der Humanoide NAO

Aktorik des NAO

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 39 von 92 | S e i t e

Der modulare Aufbau stellt den dritten Grundsatz dar. Zum Einen bezieht sich das

auf die Aktuator-Module, die für verschiedene Gelenke verwendet werden

können. Zum Anderen sind die Gliedmaßen des Roboters Modular aufgebaut, um

sie in Zukunft austauschen zu können, auch der Kopf kann getauscht werden. Alle

Austauschvorgänge bzw. Schnittstellen sind so aufgebaut, dass ein Austausch

ohne großen technischen Aufwand möglich ist.

Der vierte Entwicklungsgrundsatz ist die offene Architektur. Bei einer offenen

Architektur muss die Einarbeitung leicht und die Handhabung einfach sein. Das

schließt mit ein, dass eine ergonomische Software vorhanden sein muss, die es so

vielen, wie möglich, Menschen ermöglicht, das Programm und die

Programmierfunktionen zu bedienen und zu verstehen. Die Software von NAO hat

offene Schnittstellen und kann so in andere Programme integriert werden. Offene

Architektur bedeutet dabei auch, dass der Großteil der Software und das

Betriebssystem eingeschlossen verändert werden können. Zudem ist es auch

möglich die hardwarenahen Softwareteile zu verändern, wenn man dies möchte.

(37) (38)

3.2 Aktorik des NAO

3.2.1 Erläuterung des Freiheitsgrad

Unter einem Freiheitsgrad eines physikalischen Systems versteht man eine

unabhängige Koordinate, mit der das System beschrieben werden kann. Die Zahl

der unabhängigen Freiheitsgrade ist eine Systemeigenschaft. Beispielsweise hat

ein Massenpunkt drei Freiheitsgrade, die Translationsfreiheitsgrade, also seine

Page 49: Nao Report(2)

3.Kapitel: Der Humanoide NAO

Aktorik des NAO

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 40 von 92 | S e i t e

drei Raumkoordinaten, ein starrer Körper hingegen sechs, drei

Translationsfreiheitsgrade und drei Rotationsfreiheitsgrade, beschrieben durch

dessen Drehwinkel (7).

3.2.2 Freiheitsgrade des NAO

Abbildung 11. Freiheitsgrade des NAO I

Page 50: Nao Report(2)

3.Kapitel: Der Humanoide NAO

Aktorik des NAO

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 41 von 92 | S e i t e

Tabelle 3. Freiheitsgrade des NAO II

NAO hat insgesamt 25 Freiheitsgrade (siehe Abbildung 11). Ein Freiheitsgrad wird

auch als „Degree Of Freedom“, kurz DOF bezeichnet. Elf DOF befinden sich in Bein-

/Beckenbereich, also Beinen und Rumpf, und vierzehn DOF in Torso, Armen und

Kopf. Jedes Bein hat zwei Freiheitsgrade zwei am Fußgelenk, einen am Knie und

einen an der Hüfte (siehe auch Tabelle 3). Ein spezieller Mechanismus aus zwei

verbundenen Gelenken an jeder Hüfte stattet den Rumpf aus. Durch die

Verbindung der beiden Gelenke ist nur ein Motor nötig um verschiedene

Freiheitsgrade über ein Getriebe zu erreichen. Dieser Mechanismus ermöglicht es

NAO den Körper nach Vorne zu beugen und gleichzeitig die Beine zu spreizen. Er

ist nützlich, um sich hinzusetzen oder sich nach unten zu beugen, um etwas

aufzuheben. Der Aufbau dieses Gelenks wurde zum Patent angemeldet (41).

Anders als bei Robotern wie Asimo gibt es im Fuß zurzeit kein eigenes Gelenk, was

die Gesamtgeschwindigkeit der Laufbewegung reduziert. (38) (40)

Jeder Arm hat zwei DOF an der Schulter, zwei DOF am Ellbogen, ein DOF am

Handgelenk und ein DOF an den Händen. D.h. die Hände können nur Greifen und

Page 51: Nao Report(2)

3.Kapitel: Der Humanoide NAO

Sensorik des NAO

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 42 von 92 | S e i t e

loslassen, aber keine komplexeren Bewegungen ausführen. Der Kopf kann um

zwei Achsen rotieren.

3.3 Sensorik des NAO

Sämtliche Sensoren des NAO sind in der folgenden Tabelle (Tabelle 4) dargestellt.

Die Halleffekt bzw. Magnetfeldsensoren (MRS) sind dabei in den Aktuatoren

untergebracht, um die Position bzw. Drehung der Motoren bestimmen zu können.

Sie werden in der Regel nicht direkt angesprochen sondern sind bereits über die

ALModule gekapselt. Auf die Rolle der ALModule wird Softwarebereich näher

eingegangen. Folgend werden die Sensoren theoretisch beschrieben. Die

Auswertung der praktischen Erfahrungen und der Abgleich mit den theoretischen

Angaben erfolgt im Laufe der Arbeit.

Tabelle 4. Sensorik des NAO

Page 52: Nao Report(2)

3.Kapitel: Der Humanoide NAO

Sensorik des NAO

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 43 von 92 | S e i t e

3.3.1 Kraftsensoren

In NAOs Füßen befinden sich jeweils im Zehen und Fersenbereich mechanische

Taster. Sie können den auf sie ausgeübten Druck in einem Rahmen von 0 bis 25N

messen.

Abbildung 12. Kraftsensorik des NAO

Die aktuellen Werte der einzelnen Sensoren können dabei aus ALMemory

ausgelesen werden.

3.3.2 Trägheitssensoren/Ausrichtung

Die Trägheitssensorik befindet sich im Brustbereich. Die Werte der

Trägheitssensorik werden durch einen eigenen Prozessor verarbeitet, der sich auf

einer Platine im Brustbereich befindet. Die Ausgangswerte enthalten

Geschwindigkeit und Ausrichtung des Torsos. Die Trägheitseinheit besteht aus

Page 53: Nao Report(2)

3.Kapitel: Der Humanoide NAO

Sensorik des NAO

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 44 von 92 | S e i t e

einem Gyroskop mit 2 Achsen und drei Beschleunigungsmessern. Die Berechnung

der Lage des NAOs, relativ zu seiner Umwelt, erfolgt hartcodiert auf dem

„Controllerboard“ und kann somit nicht direkt beeinflusst werden.

Abbildung 13. Position des NAO

Über das ALInertial Modul können die Daten der Trägheitseinheit aus AlMemory

ausgelesen werden. Abbildung 13 zeigt den NAO und ein integriertes

Koordinatensystem.

3.3.3 Ultraschall

NAO ist mit vier Ultraschallsensoren ausgestattet, die es dem Roboter

ermöglichen Abstände zu Objekten in seiner Umgebung zu messen. Die Reichweite

beträgt dabei 0cm bis 70 cm, wobei es unter 15 cm keine Abstandswerte mehr

gibt. Der Roboter weiß hier nur, dass sich ein Objekt vor ihm befindet.

Page 54: Nao Report(2)

3.Kapitel: Der Humanoide NAO

Sensorik des NAO

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 45 von 92 | S e i t e

Abbildung 14. Ultraschallsensorik

Zum Abfragen der Daten des Sensors sollten 500 ms als Abfrageintervall als

Untergrenze eingehalten werden. Der Rückgabewert der Abstandsmessung ist ein

Array mit drei Werten. Dem Abstand von den Linken Sensoren, dem Abstand von

den Rechten Sensoren und die Beschreibung der Erkennung, d.h. Object, Nothing

oder Time-out. Die Position der Ultraschallsensoren ist Abbildung 14 zu

entnehmen.

NAO hat zwei integrierte Kameras mit 30 fps und einer Auflösung von 640x480.

Eine der Kameras ist nach vorne, eine nach vorne unten ausgerichtet. Sie eignet

sich besonders um Objekte vor NAOs Füßen zu erkennen. Abbildung 15 zeigt die

Position der Kameras in NAOs Kopf.

Page 55: Nao Report(2)

3.Kapitel: Der Humanoide NAO

Sensorik des NAO

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 46 von 92 | S e i t e

Abbildung 15. Kamerawinkel

NAO besitzt zusätzlich 4 Mikrofone. Sie arbeiten im Bereich zwischen 300 Hz und 8

kHz. Die unten stehende Grafik zeigt die Position der Mikrofone. Dabei können die

beiden an den Ohren positionierten Mikrofone dafür verwendet werden Rauschen

aus den Signalen die die beiden anderen Mikrofone aufnehmen heraus zurechnen.

Page 56: Nao Report(2)

3.Kapitel: Der Humanoide NAO

Sensorik des NAO

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 47 von 92 | S e i t e

Right microphone

Front microphone

Rear microphone

Abbildung 16. Mikrofones des NAO

Zusätzlich besitzt NAO einen berührungsempfindlichen taktilen Sensor direkt auf

dem Kopf, der wie ein Schalter arbeitet.

Page 57: Nao Report(2)

3.Kapitel: Der Humanoide NAO

Akustische und visuelle Interaktionen

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 48 von 92 | S e i t e

3.4 Akustische und visuelle Interaktionen

Tabelle 5. LED

Zur Kommunikation mit seiner Umgebung besitzt NAO einen „TextToSpeech

Generator“, Lautsprecher und LEDs, um über verschiedene Farben und

Leuchtintensitäten und durch Geräusche und Sprache kommunizieren zu können.

Tabelle 5. LED listet die vorhandene LEDs auf.

Das ALAudioPlayer Modul ermöglicht es WAV und MP3 Dateien über die beiden

Stereolautsprecher, von denen sich je einer in einem Ohr befindet abzuspielen.

Der Audioplayer ist dabei eine simpler Wrapper um den in Linux integrierten

Audioplayer.

Das ALTextToSpeech Modul kann über eine simple API bedient werden. Die

dahinterstehende Architektur, die von der API angesprochen wird, wird in

Abbildung 17 dargestellt.

Page 58: Nao Report(2)

3.Kapitel: Der Humanoide NAO

Akustische und visuelle Interaktionen

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 49 von 92 | S e i t e

Abbildung 17. TextToSpeech Modul

Die Acapela Text-To-Speech Engine transformiert Text in Sprachsignale. Die

Sprachgenerierung basiert auf Sprachpaketen (Voices). Ein Sprachpaket enthält

einzelne Sprachbausteine aus denen letztendlich komplette Worte synthetisiert

werden können.

Das FX Main Voice Modul führt eine Tonlagenverschiebung durch. Das FX Modul

Doubling Voice führt ebenfalls eine andere Tonlagenverschiebung durch.

Der Mixing Prozess summiert beide stimmen auf, dabei werden beide Stimmen

unterschiedlich gewichtet. Ergebnis ist eine etwas verfremdete Roboterstimme,

die durch das Standard Soundausgabemodul ALSA über die Lautsprecher

ausgegeben wird.

Page 59: Nao Report(2)

3.Kapitel: Der Humanoide NAO

Hardwarekonzept des NAO

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 50 von 92 | S e i t e

Das ALSpeechRecognition Modul ermöglicht es dem Roboter Wörter aus

Sprachsignalen, die er über seine Mikrofone aufnimmt zu erkennen. Die zu

erkennenden Worte sind dabei in englischer oder französischer Sprache zu halten

und können dem ALSpeechRecognition Modul als Parameter übergeben werden.

Der Roboter wird dann beim auffangen der Sprachsignale, die Signale auf seine

Wortliste prüfen und bei Erkennung entsprechende Informationen in das

ALMemory in der Variablen ALSpeechRecognitionRecognizedWords speichern. Die

Struktur des Rückgabewerts besteht aus dem erkannten Wort und einem Float-

Wert, der die Erkennungssicherheit angibt. Die Ohrmikrofone können verwendet

werden, um eine Rauschunterdrückung zu implementieren, da NAO für die

Spracherkennung nur das Frontmikrofon verwendet.

3.5 Hardwarekonzept des NAO

NAOs Kopf ist mit einem AMD GEODE 500MHz x86 Prozessor mit 256MB SDRAM

ausgestattet. Zusätzliche 1 GB Flash Memory sind integriert. Die Kommunikation

mit dem Roboter ist über den WLAN mit dem 802.11g Standard möglich. Die CPU

verwaltet Audio, Video und WLAN, sowie weitere komplexere Funktionen. Ein

ARM7-60MHz Mikrokontroller, der sich im Torso befindet, verteilt die

Informationen zu allen Aktuator-Modul Mikrokontrollern (Microchip 16 bit

dsPICS). Der AMR7 und die Mikrokontroller und Sensoren in den Gelenken sind

mit einem RS485-Bus verbunden, der 460kbit/s Bandbreite bietet. Abbildung 18

illustriert die Controller und Busverbindungen.

Page 60: Nao Report(2)

3.Kapitel: Der Humanoide NAO

Hardwarekonzept des NAO

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 51 von 92 | S e i t e

Abbildung 18. Hardwareconnection

Es gibt zwei RS485 Busse, einen der den ARM7 Mikrokontroller mit den

Kontrollern im oberen und einen der ihn mit den dsPICs Modulen im unteren

Bereich des NAOs verbindet. Dieser Bus-Aufbau erhöht den Durchsatz, da nicht

alle Module an einem Bus hängen. Der AMR7 ist über USB mit der CPU verbunden

und hat somit einen maximalen Durchsatz von 11Mbit/s. Er wird u.a. verwendet

um die Stabilität des Roboters über die Trägheitseinheit zu steuern. Das

Betriebssystem ist Linux basiert, kann aber vollständig modifiziert werden, wenn

der Anwender das wünscht.

Page 61: Nao Report(2)

3.Kapitel: Der Humanoide NAO

Softwarekonzept des NAO

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 52 von 92 | S e i t e

Die 16Bit-dsPICs Mikrokontroller steuern die Aktuatoren. Die Motoren sind mit

MRE-Sensoren ausgestattet, um die Position des Motors bzw. seine

Rotationsbewegung genau bestimmen zu können. Ein dsPIC, der mit dem AMR7

über einen I2C Bus verbunden ist, ist einzig für die Signalverarbeitung von zwei

Gyroskopen und drei Beschleunigungssensoren verantwortlich. Die Daten dieser

Sensoren können verwendet werden, um die Ausrichtung des Torsos zu

bestimmen und die Stabilität des Roboters zu gewährleisten und stellen die

Trägheitseinheit dar. Ein weiterer dsPIC steuert den Infrarot Sender und

Empfänger sowie die LEDs an.

Der Kopf des NAOs beinhaltet eine CMOS-Videokamera mit 30 FPS Kamera und

640x480 Auflösung. Diese kann über den I2C Bus angesteuert werden. Alle

Sensoren und Aktuatoren werden jede Millisekunde (ms) aktualisiert, d.h. eine

Signalabfrage an Sensoren und Aktuatoren erfolgt jede Millisekunde. Der

Entscheidungskreislauf der höheren Ebenen, d.h. Reaktion auf Signale über die

Software kann alle 10ms erfolgen. Alle 20ms werden die Sensordaten im Speicher

aktualisiert. (38) (40)

3.6 Softwarekonzept des NAO

NAOs Betriebssystem ist ein angepasstes GNU/Linux auf dem Aldebaran Robotics

Steuerungssoftware für NAO, die NaoQi genannt wird, läuft. NaoQi ist ein

Software Framework, das ebenfalls patentiert ist und auf einer verteilten

Architektur basiert. Sie ist modulare aufgebaut und kann rein lokal auf NAO oder

als verteiltes System betrieben werden. Die Architektur ist grundsätzlich

ereignisgesteuert. Dabei werden sowohl parallele als auch sequentielle

Page 62: Nao Report(2)

3.Kapitel: Der Humanoide NAO

Softwarekonzept des NAO

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 53 von 92 | S e i t e

Aufrufmethoden unterstützt. Die Vorteile eines verteilten Systems ergeben sich

daraus, dass der Nutzer Verhaltensweisen lokal z.B. als Simulation auf dem

Rechner oder remote, z.B. Programmierung am Rechner direkt auf dem NAO

Roboter ausführen, ablaufen lassen kann.

Die Funktionalitäten von NaoQi sind im Überblick:

- Programmierung in verschiedenen Sprachen: C++, Python, Mathlab, Java,

grafisch Choreograph, C#

- Nutzer können einen realen Roboter steuern oder eine Simulation

ablaufen lassen

- Methoden können parallel, sequentiell oder ereignisgesteuert System Calls

auslösen.

- Multi-platform framework das Linux, Specific linux OS on Geode, Windows

XP, Windows Vista, and Mac OS X unterstützt.

- Kapseln der Kommunikation. Nutzer können Methoden oder Prozesse zur

Ausführung auswählen, ohne über Konzepte wie SOAP oder CORBA für

verteilte Systeme Bescheid zu wissen.

- Shared memory management. Read, Write und Subscription-Prozeduren

für den internen Speicher sind verfügbar und threadsafe.

Page 63: Nao Report(2)

3.Kapitel: Der Humanoide NAO

Softwarekonzept des NAO

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 54 von 92 | S e i t e

Abbildung 19: Verteiltes Softwarekonzept der NaoQi

Page 64: Nao Report(2)

3.Kapitel: Der Humanoide NAO

Softwarekonzept des NAO

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 55 von 92 | S e i t e

Abbildung 19 zeigt den Aufbau der verteilten Systemarchitektur der NaoQi. Bevor

die Beschreibung der Darstellung im Detail erfolgen kann, ist es wichtig zuerst

über die wichtigsten Begriffe und Komponenten Bescheid zu wissen, die in der

Darstellung erwähnt werden. Die vier wichtigsten Objekte in der NaoQi

Architektur sind:

Broker:

Broker machen Module für den Rest der Architektur verfügbar. Ein Modul muss

zwingend mit einem Broker verbunden werden, wenn das Modul von anderen

Modulen erreichbar sein soll. Die Broker übernehmen dabei die

Netzwerkkommunikation, d.h. wenn Module auf unterschiedlichen Rechnern im

verteilten System arbeiten, stellen die Broker die Verbindung her, ohne dass der

Modulprogrammierer sich darüber Gedanken machen muss, wie das passiert.

Module:

Module sind vorgefertigte Bausteine, z.B. Bewegungsabläufe oder

Spracherkennung. Des Weiteren können auch Module vom Nutzer selbst in

verschiedenen Programmiersprachen programmiert werden. So kann man eigene

Module zum Beispiel zur Verarbeitung der Bilddaten erstellen. Um die Module in

die NaoQi einzubinden, muss man ein Modul mit einem Broker verbinden, um das

Modul im Netzwerk verfügbar zu machen.

BIND Method:

In der NaoQi gibt es einen Prozessbaum, einen Verzeichnisdienst in dem alle

Broker im System, alle freigegebenen Module und Methoden verzeichnet sind. Um

eine selbstgeschriebene Methode im Verbund bzw. Netzwerk verfügbar zu

Page 65: Nao Report(2)

3.Kapitel: Der Humanoide NAO

Softwarekonzept des NAO

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 56 von 92 | S e i t e

machen muss man sie über die BIND Methode in diesem Verzeichnis

veröffentlichen.

Proxy:

Das Proxy Objekt ermöglicht es in einem Modul, Methoden eines anderen Moduls

aufzurufen, das irgendwo auf dem gleichen Rechner, aber auch irgendwo im

Netzwerk des Systems liegen kann. Der Proxy arbeitet dabei als

Stellvertreterobjekt. Bei Aufruf einer Methode parst der Proxy den hierarchischen

Broker bzw. Prozessbaum um die Lokation des Modules im Netzwerk zu finden der

die bestimmte Methode enthält, dann wählt es den optimalen bzw., besten Weg

mit dem Modul zu kommunizieren.

Beim erstellen eines Moduls instanziiert der Nutzer einen Broker. Dann verbindet

er sein Modul mit der Broker-Instanz. Das Modul wird dann automatisch seine

Methoden propagieren, so dass sie gefunden werden können. Zu jeder Zeit kann

der Nutzer einen Proxy instanziieren, indem er den gewünschten Modulnamen

spezifiziert. Sobald der Proxy bereit ist. Kann der User die Methoden des Moduls

aufrufen ohne sich Gedanken darüber zu machen, wo sich das Modul befindet

oder in welcher Programmiersprache es geschrieben ist. Die entfernten Methoden

können dabei auf dem gleichen Rechner als Local Function Call (LCF) oder auf

einem anderen System, Remote Function Call (RFC) aufgerufen werden. Es ist zu

beachten, dass die Kommunikation über CORBA abgewickelt wird. RFC ist also eine

Aldebaran eigene Bezeichnung und korrespondiert nicht mit dem System RFC.

Die Broker sind hierarchisch aufgebaut. An der Spitze steht der MainBroker. Der

Mainbroker ist die NaoQi, welche sich im NaoQi Basisverzeichnis (AL-dir/bin)

Page 66: Nao Report(2)

3.Kapitel: Der Humanoide NAO

Softwarekonzept des NAO

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 57 von 92 | S e i t e

befindet. Der Mainbroker läuft üblicherweise auf NAO. Der Mainbroker nimmt

eine Sonderrolle ein. In ihm laufen die Module, die für die Stabilität von NAO

verantwortlich sind. Ausgeführte Userprogramme erhalten immer einen eigenen

Broker. Dies ist eine Sicherheitsmaßnahme. Stürzt der Broker ab, stürzt auch NAO,

physisch. Um dies zu vermeiden wird für Nutzerprogramme ein eigener Broker

erstellt, der dem Nutzermodul zugeordnet ist. Stürzt das Modul ab stürzt auch nur

der Nutzerbroker ab, und NAO kann noch arbeiten.

Folgend eine kurze Beschreibung elementarer Module:

Drei Module bilden den Kern des NaoQi, ALMemory, ALLogger, und

ALPreferences. Sie werden automatisch beim booten geladen. ALMemory aktiviert

inter- und intra-Prozess-Memorysharing. Aldebaran Module und Nutzer-Module

können Variablen von ALMemory lesen bzw. Variablen zu ALMemory hinzufügen.

Das ALPreferences Modul verwaltet alle Einstellungen und initialisiert XML

Dateien. Jedes Modul kann ALPreferences verwenden, um Attribute zu lesen, zu

schreiben, oder sie im ALMemory zu speichern. Das gesamte Speichersystem ist

dabei thread-safe ausgelegt. ALLogger ist für das Logging aller Systemvorgänge

zuständig.

Der Device Control Manager D.C.M. ist NAOs Echtzeit Modul und Teil des NaoQi

Systems. Es steuert die elektronischen Komponenten des NAOs, mit Ausnahme

von Sound und Kamerasystem. DCM kann als Vermittlerschicht zwischen den

höheren Modulen und der Software, die auf den elektronischen Platinen

hartverdrahtet ist, angesehen werden. Die D.C.M. Module, wie Bewegung

(ALMotion) und LED (AlLeds), können Kommandos direkt an die Aktuatoren

schicken. Sensoren können direkt in ALMemory schreiben. Im Falle von

Aktuatoren, müssen Module zeitlich definierte Update-Requests an die D.C.M.

Page 67: Nao Report(2)

3.Kapitel: Der Humanoide NAO

Softwarekonzept des NAO

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 58 von 92 | S e i t e

schicken. Ein Update-Request bzw. „Timed-Command“ ist eine Anordnung aus

Gleitkommazahl, die zum Aktuator gesendet werden soll und einem absoluten

Zeitwert, wann dies gesendet werden soll. Der Zeitwert ist ein absoluter Wert in

ms basierend auf der Systemzeit. Der DCM speichert alle „Time-Commands“ für

alle Aktuatoren und sendet diese im 20ms Rhythmus an die Aktuatoren. D.C.M

analysiert dabei die folgenden und vorhergegangen Kommandos und ermittelt

über lineare Interpolation das jeweils aktuell zu sendende Kommando, da die

Zeitverzögerung (20 ms Rhythmus) u.U. ein leicht verändertes Signal nötig macht.

Durch das sammeln der Kommandos im D.C.M wird sichergestellt, das immer ein

kontinuierlicher, zeitlich definierbarer Kommandofluss an die Aktuatoren

sichergestellt ist. Durch diese Zwischenspeicherung werden auch

Netzwerkverzögerungen ausgeglichen. Die Synchronisation der verschiedenen

Module wird so erleichtert.

Das Bewegungsmodul ALMotion bietet folgende Funktionen:

- Steuerung des Kinematischen Models, von Gelenken Winkeln und den

Händen

- Steuerung des Centers of Gravity, d.h. die Position relativ zum stützenden

Fuß, Eigenstabilität des Roboters, automatische Halten des Gleichgewichts.

- Steuerung und Erstellung von Bewegungsmustern

- Steuerung von Hardwareparametern wie Steifheit.

Page 68: Nao Report(2)

4.Kapitel: Überblick der Entwicklungsumgebungen

Microsoft Robotic Studio

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 59 von 92 | S e i t e

4. Überblick der Entwicklungsumgebungen

4.1 Microsoft Robotic Studio

Seitens Aldebaran existiert ein Simulationsmodul für das veraltetet und zur Zeit

der Erstellung dieser Studienarbeit nicht mehr im Handel verfügbaren MS Robotic

Studio Version 1.5. Für die aktuelle Version des Robotics Studio, MS Robotics

Studio 2008, existiert kein Simulationsmodul. Es soll im ersten Quartal 2010

veröffentlicht werden. Der Einsatz des Robotics Studio zum aktuellen Zeitpunkt

macht somit wenig Sinn, da die Vorteile der Simulation nicht genutzt werden

können. Die reine Programmierung kann auch gut mit anderen IDEs wie Eclipse

oder Visual Studio durchgeführt werden, die für reine Programmieraufgaben

optimiert sind.

4.2 Choreograph

Aldebaran Choreograph ist eine von Aldebaran entwickelte Simulations- und

Programmierumgebung, die mit NAO ausgeliefert wird. Sie bietet sowohl

abstrakte grafische Programmiermöglichkeiten als auch

Programmiermöglichkeiten mit Python. Die Fähigkeiten des Choreographs werden

im 5. Kapitel ausführlich beleuchtet.

Page 69: Nao Report(2)

4.Kapitel: Überblick der Entwicklungsumgebungen

Urbi

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 60 von 92 | S e i t e

4.3 Urbi

Die französische Firma Gostai hat die Sprache Urbi speziell zur Programmierung

von Robotern entwickelt. NAO kann über den Choreograph auch in Urbi

programmiert werden. Zudem bietet Gostai eine eigene Entwicklungsumgebung

zur Programmierung in Urbi an. Da die Sprache sich noch in der Entwicklung

befindet und auch die Entwicklungsumgebung derzeit noch nicht verfügbar ist,

werden wir vorerst davon absehen diese Entwicklungsumgebung zu testen. Zudem

ist es schwierig externe Bibliotheken, die beispielsweise in C++ vorliegen in Urbi zu

integrieren, da die meisten Bibliotheken keine Schnittstellen zu Urbi haben.

4.4 Microsoft Visual Studio

Microsoft Visual Studio ist eine Entwicklungsumgebung für C++, Visual Basic und

C# im .NET Bereich. Die neueste Version der NaoQi erlaubt neben der

Programmierung in C++ auch die Programmierung in C# und .Net. (41) Da es in

diesem Bereich sehr viele hilfreiche Bibliotheken und Frameworks, beispielsweise

auch im Bildverarbeitungsbereich gibt, werden wir die Möglichkeit der

Programmierung eigener Module für NAO mittels Microsoft Visual Studio 2008

testen.

Page 70: Nao Report(2)

5.Kapitel: Aldebaran Choreograph

Grundkonzept

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 61 von 92 | S e i t e

5. Aldebaran Choreograph

5.1 Grundkonzept

Aldebaran Choreograph ist eine plattformübergreifende Anwendungsumgebung

mit der Bewegungen und Verhalten für den NAO erstellt und gesteuert werden

können. Unter Verhalten versteht man eine Reihe von elementaren Handlungen,

deren Abfolge durch Ereignis- oder Zeit-basierte Zuständen bestimmt wird. Die

Zeitachse ist gut geeignet, um Bewegungen und Multimedia Elemente zu erstellen.

Im Gegensatz dazu kann der Ereignismanager zur Planung und Auslösen von

Verhalten genutzt werden. Choreograph vereint diese beiden Konzepte.

Die Anwendung stellt eine Verbindung über LAN oder WLAN mit dem NAO auf.

Bewegungen können so direkt durch den verbundenen NAO ausgeführt werden.

5.2 Funktionsweise

Der Choreograph vereinigt viele Funktionalitäten in einer IDE kompakt. Allerdings

soll gleich zum Anfang erwähnt sein das er noch nicht ausgereift ist und noch

einigen Verbesserungen unterzogen werden muss (dazu später).

In Abbildung 20 sieht man einen Überblick über die IDE des Choreographen. Dabei

unterscheidet man zwischen den folgenden Fenstern:

1. Standardmenü

Page 71: Nao Report(2)

5.Kapitel: Aldebaran Choreograph

Funktionsweise

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 62 von 92 | S e i t e

2. Symbolleiste

3. Zeitleiste mit Verhalten, Bewegung und Motorenwinkel

4. Box-Bibliothek

5. Fließdiagramm (Programmfenster)

6. Simulation des NAOs

7. Liste vordefinierter Positionen

Abbildung 20. Fenster des Choreographen

2

3

4

1

5 6 7

Page 72: Nao Report(2)

5.Kapitel: Aldebaran Choreograph

Funktionsweise

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 63 von 92 | S e i t e

Die Symbolleiste vereinfacht die Navigation und beinhaltet die gebräuchlichsten

Funktionalitäten des Standardmenüs, wie Programmstart und –stop sowie Anzeige

der Warnungen u.v.m.

In der Zeitleiste hat man die Möglichkeit einem Verhalten, Bewegungsabläufe und

Motorenwinkel zuzuschreiben. Es ist dabei die zeitliche Angabe des

Bewegungsablaufs möglich, sowie die Angabe des Winkelverlaufes der Motoren.

Abbildung 21. Zeitleiste eines Bewegungsablaufes

Die Abbildung 21 zeigt den modifizierten Bewegungsablauf des „Dance-

Movement“. Hierbei bedeutet jeder viereckige Punkt (unteres Diagramm) eine

Winkelangabe (in Bogenmaß) des jeweiligen Gelenkes (Legende links). Es ist

weiterhin möglich nach der grafischen Erstellung der Bewegung den Quellcode,

der im Hintergrund erzeugt wurde, mittels des Kontextmenüs heraus zu

extrahieren (Abbildung 22).

Page 73: Nao Report(2)

5.Kapitel: Aldebaran Choreograph

Funktionsweise

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 64 von 92 | S e i t e

Abbildung 22. Extraktion des erzeugten Quellcodes

Diese Funktion ist sehr praktisch für das weitere Vorgehen, da trotz der viele

Funktionalitäten, die der Choreograph bietet, zu einer anderen IDE gewechselt

werden. Die Gründe dieser Entscheidung sind die problematische Umsetzung von

komplexeren Programmen, die Verwendung von vielfältigen Bibliotheken zur

digitalen Bildverarbeitung und das Entwickeln einer überschaubaren

Softwarearchitektur. Ein weiterer und weitaus Schwerwiegender Punkt ist das

sogenannte Debuggen. Der Choreograph bietet zwar die debugging Möglichkeit

an, jedoch ist dies zum Einen nur für lokale Ausführung gedacht und zum Anderen

ist die Ausgabe der Fehler eher mit kryptische Meldungen zu vergleichen, die nicht

immer sofort auf einen Syntaxfehler hinweisen. Wenn das Programm sofort auf

den NAO gestartet wird, fällt diese Funktionalität jedoch weg und die einzige

Möglichkeit zu Debuggen sind die logging und tracing Nachrichten auf dem NAO

die mittels Browser aufgerufen werden können.

Um nun mit einem NAO zu verbinden, bietet der Choreograph die Möglichkeit

über das Standard- oder Symbolmenü ein Verbindungsfenster aufzurufen

Page 74: Nao Report(2)

5.Kapitel: Aldebaran Choreograph

Funktionsweise

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 65 von 92 | S e i t e

(Abbildung 23). In dem Verbindungsmenü kann man auf alle, mit dem Netzwerk

verbundenen, NAOs zugreifen. Es ist jedoch nur immer möglich mit einem NAO

per Computer verbunden zu sein (außer bei Änderung des Standardports).

Abbildung 23. Verbindungsmenü

Eine weitere Möglichkeit, die angeboten wird, ist das manuelle Einstellen der

Position des NAO (Abbildung 24). Dies ist sehr praktisch, um Positionen

auszutesten und Werte dafür zu ermitteln und um die gewählte Position in eine

andere Programmiersprache zu transferieren.

Page 75: Nao Report(2)

5.Kapitel: Aldebaran Choreograph

Funktionsweise

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 66 von 92 | S e i t e

Abbildung 24. Manuelle Verstellung des Kopfgelenkes

Page 76: Nao Report(2)

6.Kapitel: Erste Erfahrungen mit NAO

Motorische Fähigkeiten

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 67 von 92 | S e i t e

6. Erste Erfahrungen mit NAO

6.1 Motorische Fähigkeiten

NAO weißt sehr umfangreiche Bewegungsmöglichkeiten auf. Bis auf die Hände

welche sich nur öffnen und schließen können, somit also nur als Greifer zu

verwenden sind, besitzt jedes Gelenk mehrere Freiheitsgrade. Die Radien die, die

einzelnen Gelenke dabei abdecken übersteigen die Dehnfähigkeit des Menschen

oft bei Weitem. So lässt sich der Kopf in einem Radius von 240 Grad drehen. Die

Beweglichkeit NAOs ist somit als gut zu bewerten. Zudem können die Bewegungen

und Radien, um die die Gelenke weiterbewegt werden sollen sehr genau

angegeben werden. Während NAO die Bewegung ausführt kommt es oft zu

starken Wackelbewegungen des Torsos, bzw. des ganzen Roboters. Der

Roboterkörper stabilisiert sich zwar wieder sobald die Endposition erreicht ist,

allerdings ist die Bewegung während ihres Ablaufs durch die Schwankungen nicht

präzise. Die Wackelbewegungen wirken sich auch negativ auf die Bilderkennung

aus, da durch da sich durch das Wackeln das Gesichtsfelds NAOs ständig verändert

und man softwareseitig diese Bewegungen in Betracht ziehen muss. Im

Allgemeinen ist die Präzision der Bewegungen für die Tests im Rahmen dieser

Arbeit ausreichend gewesen.

Die Geschwindigkeit der Bewegungsabläufe ist mit maximal 0,6 km/h sehr gering.

Bewegungen der Arme und des Torsos lassen sich schneller ausführen.

Laufbewegungen mittels der Integrierten ZMP-Methode verlaufen allerdings wie

in Zeitlupe. Im Rahmen der Arbeit und Aufgabenstellungen wie Elfmeterschießen

bedeutet dies, dass Dynamik eine Untergeordnete Rolle in der Entwicklung von

Page 77: Nao Report(2)

6.Kapitel: Erste Erfahrungen mit NAO

Test der Sensoren

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 68 von 92 | S e i t e

Programmen spielt. Wenn NAO einen Ball erreicht ist dieser höchstwahrscheinlich

schon ausgerollt und man findet eine statische Situation vor.

6.2 Test der Sensoren

6.2.1 Taktiler Sensor

Der taktile Sensor am Kopf des NAOs ist in drei Bereiche unterteilt: Front, Middle

und Rear. Jeder der drei Bereiche verfügt über eine Schalterfunktion, die einzeln

ausgelesen werden können. Die Werte der Schalter können über ALMemory

ausgelesen werden. Die zurückgegebenen Werte sind 0 und 1, für nicht betätigt

und betätigt. Bei Druck des Schalters reagiert NAO automatisch mit einer

Erhöhung der Intensität, der um den Taktilen Sensor angebrachten LEDs.

6.2.2 Bumper

NAOs Sensoren an den Füßen sind Kraftmesser, die zwischen 0 und 25N messen

können. Die Bumper können aber auch in reiner Schalterfunktion verwendet

werden. Jeweils zwei Sensoren an den beiden Füßen können getrennt ausgelesen

werden. Es gibt eine Variable mit welcher man den Nutzungstyp der Bumper

angeben kann. Der Modus „Switch“ aktiviert beispielsweise die Schalterfunktion

Werte die zurückgegeben werden sind 0 oder 1 (betätig und nicht betätigt).

Page 78: Nao Report(2)

6.Kapitel: Erste Erfahrungen mit NAO

Test der Sensoren

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 69 von 92 | S e i t e

6.2.3 Ultraschall

Der Ultraschallsensor besteht aus jeweils zwei Sensoren auf der linken und der

rechten Seite von NAOs Brust. Der zurückgelieferte Wert ist entsprechend ein

rechter und ein linker Abstandswert in Metern. Verwendet man den Sensor, so

kann man über einen Parameter mitgeben bis zu welchem Abstand Gegenstände

erkannt werden sollen. Mehr als ein Meter Erkennungsabstand ist dabei nicht

zielführend, da sonst zu viele Objekte in der Umgebung auf das Messergebnis

Einfluss nehmen, eine differenzierte Auswertung ist bei einem größeren

Erkennungsradius nicht mehr möglich. Abbildung 25 verdeutlicht in welchem

Bereich der Ultraschallsensor Gegenstände erkennen kann. Objekte die Näher als

15 cm am Körper sind, kann NAO erkennen, jedoch sind keine Abstandsangaben

mehr möglich. Lediglich die Gegenwart eines Objekts wird erkannt. Unebene

Objekte sind schwer zu identifizieren. Da der Sensor die Werte der den rechten

und linken Abstandswert vergleicht und bei Übereinstimmung entscheidet, dass

sich ein Objekt im Erkennungsbereich befindet werden, werden nur flache

Objekte, wie beispielsweise Wände zuverlässig erkannt. Das Erkennungsverhalten

lässt sich optimieren, indem man nicht die vorgefertigte Sensorauswertung

verwendet, sondern auf die rohen Messdaten zurückgreift und eigene

Algorithmen zur Auswertung verwendet. NAO kann Objekte ab einer Oberfläche

von ca. 5x2 cm erkennen.

Des Weiteren werden alle Werte im Bogenmaß angegeben.

Page 79: Nao Report(2)

6.Kapitel: Erste Erfahrungen mit NAO

Test der Sensoren

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 70 von 92 | S e i t e

vertikalhorizontal

α - 180°

α + 180°

β + 180°

β - 180°

0° 0°

Im Rahmen der Messgenauigkeit

α = 45°

β = 45°

Abbildung 25. Winkelausmaß der Ultraschalsensoren

6.2.4 Face Detection

NAOs Gesichtserkennung arbeitet zuverlässig. Der Roboter kann zwischen einem

und drei Gesichter gleichzeitig erkennen. Die obere Grenze wird dadurch

bestimmt, dass im Ausleuchtungsbereich der Kamera nicht mehr als drei Gesichter

Platz finden, wenn der Abstand von NAO auf einen Meter begrenzt wird. Die

Begrenzung ergibt sich aus der Tatsache, dass der Gesichtserkennungsalgorithmus

bei einem Abstand größer als einem Meter keine Erkennungswerte mehr

zurückliefert. Als Rückgabewerte bei Erkennung eines Gesichts erhält man ein

Array mit Werten, vergleichbar der NAO-Mark-Erkennung.

Die genaue Interpretation der zurückgegebenen Werte wird im folgenden

Abschnitt näher behandelt.

Page 80: Nao Report(2)

6.Kapitel: Erste Erfahrungen mit NAO

Test der Sensoren

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 71 von 92 | S e i t e

6.2.5 Voice Recognition

Mit seinen vier Mikrophonen und einem integrierten Spracherkennungsmodul

kann NAO sowohl englische als auch französische Wörter erkennen. Diese

Funktion ist bereits im Auslieferungszustand vorhanden, so dass sie ohne weitere

Einstellungen genutzt werden kann. Im Choreograph nutzt das Modul „Choise“ die

Voice Recognition. Die Voice Recognition funktioniert nur bei sehr deutlicher

Aussprache und wenig Umgebungsgeräuschen. Auch unter optimalen

Bedingungen ist die Spracherkennung relativ träge. Es vergehen zwischen fünf und

sieben Sekunden bis NAO die Rückmeldung gibt, ob er ein Wort erkannt hat oder

nicht. Die Reaktionszeit könnte man möglicherweise optimieren indem man das

Erkennungsmodul auf einem leistungsfähigen Rechner ausführt und nur die

Ergebnisse an NAO übermittelt.

6.2.6 NAO Mark Detection

Die Erkennung der NAO-Marks erfolgt sehr überzeugend. NAO erkennt eine NAO-

Mark bis zu einem Abstand von maximal 3,15m. Bis zu einem Abstand von 2,8m ist

die Detektion sinnvoll einsetzbar, d.h. die Detektion erfolgte in den Tests

zuverlässig auch unter schwierigeren Lichtbedingungen. Der Minimale

Detektionsabstand beträgt ca. 25cm. NAO kann dabei mehrere NAO-Marks

gleichzeitig erkennen. Begrenzt wird die Anzahl erkennbarer NAO-Marks rein

durch den Erfassungswinkel der Kamera. Im Test konnten bis zu sechs NAO-Marks

synchron erkannt werden. Mehr NAO-Marks konnten nicht gleichzeitig im

Kamerafeld platziert werden. Die zurückgelieferten Werte können verwendet

werden, um die Position der NAO-Mark relativ zur Blickrichtung des Roboters zu

bestimmen. Die zurückgelieferten Werte sind wie folgt strukturiert:

Page 81: Nao Report(2)

6.Kapitel: Erste Erfahrungen mit NAO

Test der Sensoren

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 72 von 92 | S e i t e

[ [timestamp_seconds, timestamp_microseconds], [mark_info_0, mark_info_1, .. ,

mark_info_N] ]

Je nach Anzahl erkannter NAO-Marks gibt es eine unterschiedliche Anzahl an

„mark_Info“ Tags. Die Struktur der Tags lautet:

[ [shape, alpha, beta, sizeX, sizeY, heading], [markID] ].

„Alpha“ und „beta“ beschreiben die Position der NAO-Mark in Kamerawinkeln.

„SizeX“ und „SizeY“ sind die Größe der NAO-Mark, ebenfalls in Kamera Winkeln.

„MarkID“ ist eine Interger-Zahl. Jede NAO-Mark ist ein spezielles Muster, das eine

Zahl repräsentiert. Über die MarkIDs können die unterschiedlichen Muster

identifiziert werden.

Zur Interpretation der Werte ist es wichtig, dass der Mittelpunkt des Blickfeldes als

Nullpunkt definiert ist und als Ausganspunkt eins Koordinatenkreuzes betrachtet

werden kann. Der Winkel Beta beschreibt die Position der NAO-Mark in der

vertikalen Achse, der Winkel Alpha die Position in der horizontalen Achse. Der

Wertebereich von Beta reicht von -0,25 (oben) bis (0,1) unten. Der Wertebereich

von Alpha reicht von -0,3 (rechts) bis + 0,3 (links). Die Werte sind Winkelangaben

im Bogenmaß. Der Erkennungsbereich wird in Abbildung 26 nochmals illustriert.

Page 82: Nao Report(2)

6.Kapitel: Erste Erfahrungen mit NAO

Konsolenzugriff

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 73 von 92 | S e i t e

vertikal horizontal

αmin = 40°

αmax = 19,44°

α - 180°

α + 180°

βmax = 59,92°

βmin = 54°

β + 180°

β - 180°

0° 0°

Im Rahmen der Messgenauigkeit

Abbildung 26. Winkel der Stirnkamera

6.3 Konsolenzugriff

Zugriff auf NAO ist per SSH über einen entsprechenden Client möglich. Bei initialer

Anmeldung ist der User „nao“ mit dem Passwort „nao“ vorkonfiguriert. Mit „su

root“ kommt man in den root-Nutzer und kann Benutzerpasswörter setzen und

neue Nutzer anlegen. NAOs Bedienoberfläche ist ein Standard GNU/Linux, mit

sämtlichen gängigen Unix Befehlen, wie cd, which, ls usw. Auf NAO läuft per

Standard ein FTP-Server, über ihn können Dateien z.B. selbst erstellte Libraries auf

NAO übertragen werden. Die Handhabung der Unix Umgebung kann den gängigen

Standardwerken entnommen werden (42).

Page 83: Nao Report(2)

6.Kapitel: Erste Erfahrungen mit NAO

Bildverarbeitung

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 74 von 92 | S e i t e

Abbildung 27. Zugriff über Konsole

6.4 Bildverarbeitung

NAOs Möglichkeiten der Bildverarbeitung beschränken sich auf die von Aldebaran

zur Verfügung gestellten Module FaceDetection und LandmarkDetection. Die

Module liegen als kompilierte dll-Dateien vor und können nicht abgeändert

werden.

Aldebarans Modul ALVision ermöglicht es auf die Bilder der Kamera zuzugreifen

und die Kameraeigenschaften, wie Helligkeit und Auflösung einzustellen. Deshalb:

Selber schreiben oder Libraries.

Es besteht also die Möglichkeit das Rohbildmaterial auszulesen. Operationen auf

diesem Bildmaterial, z.B. Objekt und Mustererkennung zum Erkennen und

Verfolgen eines Balles müssen selbst implementiert werden. In der aktuellen

Version der NaoQi ist die Python Image Library (PIL) integriert. Sie ermöglicht es

Page 84: Nao Report(2)

6.Kapitel: Erste Erfahrungen mit NAO

Bildverarbeitung

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 75 von 92 | S e i t e

Basisoperationen zur Bildtransformation, wie Helligkeitsveränderung oder

Konvertieren in schwarz/weiß, bereits auf NAO auszuführen. Darüber hinaus

ermöglicht sie den Zugriff auf einzelne Pixel im Quellbild. Komplexere Funktionen

wie Bildoperationen sind nicht möglich. Die Funktionen der Python Image Library

können im Choreograph verwendet werden.

Für die komplexe Bildverarbeitung, wie sie zum realisieren von Funktionen wie

Fußballspielen notwendig sind existieren bereits Bibliotheken, die komplexe

Bildoperatoren, Musterkennung und Bewegungsverfolgung implementieren. Eine

der am weitesten entwickelten frei zugänglichen Bibliotheken ist die OpenCV, die

unter anderem von verschiedenen Universitäten gepflegt wird und auch im

Robocup häufig zum Einsatz kommt. Die OpenCV ist zur Programmierung in C++

entwickelt worden bringt aber ein Python Interface mit. Die Einbindung der

Bibliothek in die Programmierung ist möglich aber nicht sinnvoll. Programme die

im Choreograph programmiert und gestartet werden, werden auf der NaoQi des

Roboters ausgeführt. Mit einer 500Mhz CPU und 128Mb Arbeitsspeicher ist die

Roboterplattform nicht geeignet um die komplexen Bildoperationen zusätzlich zu

den Bewegungsaufgaben zu erfüllen. Es ist deshalb sinnvoll ein für die

Bildverarbeitung eigene Module zu entwickeln, die auf einem Leistungsstarken

Rechner laufen. Im Abschnitt 6.6 wird beschrieben wie eigene Module erstellt

werden können.

Page 85: Nao Report(2)

6.Kapitel: Erste Erfahrungen mit NAO

Programmierbeispiele

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 76 von 92 | S e i t e

6.5 Programmierbeispiele

In diesem Abschnitt werden Aufgaben vorgestellt, die der NAO lösen musste. Dazu

werden zu jedem Bereich Programmauszüge vorgestellt.

6.5.1 NAO-Mark Erkennung

Bevor es mit variablen Objekten und der Bildverarbeitung, der Umgebung,

beginnt, werden hier Beispiele zur Erkennung von Logos, den sogenannten NAO-

Marks, und Gesichtern, gegeben. Die Erkennung dieser erfolgt mittels einer der

beiden Kameras.

1 class MyClass(GeneratedClass):

2 def __init__(self):

3 GeneratedClass.__init__(self)

4 self.ALMarkDetection = ALProxy("ALLandMarkDetection")

5 self.ALLeds = ALProxy("ALLeds")

6 self.started = False

7 self.period = 600

8 self.precision = 1.0

9 self.strALMemoryVal =

10 "extractors/allandmarkdetection/landmarkdetected"

11 self.bInDatachanged = False;

12 13 def onUnload(self):

14 if(self.started == True):

15 self.started = False

16 self.ALMarkDetection.unsubscribe(self.getName())

17 self.ALLeds.on( "AllLedsGreen" );

18 19 def onInput_onStart(self):

20 self.gotoAndStop(1)

21 if(self.started == False):

22 self.started = True

23 self.ALMarkDetection.subscribe(self.getName(),

24 self.period,self.precision)

25 self.ALLeds.on( "AllLedsBlue" );

26 27 def onInput_onStop(self):

28 self.onUnload()

29 self.onStopped()

Programm 1. NAO-Mark Initialisierungsklasse

Page 86: Nao Report(2)

6.Kapitel: Erste Erfahrungen mit NAO

Programmierbeispiele

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 77 von 92 | S e i t e

6.5.2 NAO-Mark und Gesichtsverfolgung

Die Erkennung von NAO-Marks und Gesichtern, und deren Verfolgung verläuft

nach dem gleichen Schema. Aus diesem Grund wird in diesem Abschnitt es

Anhand der NAO-Marks nachvollzogen. Abbildung 28 zeigt das Grundgerüst des

Programmes im Choregraphe. Dabei stellt die erste Box im oberen Verlauf das

Programm 2 dar und die zweite, darauf folgende, Box das Programm 3 dar. Die

anderen Boxen sollen in diesem Beispiel nicht weiter betrachtet werden.

Abbildung 28. Struktur des Programmes

Programm 2 filtert dabei alle wichtigen Daten der NAO-Mark heraus. Dies

geschieht auf ähnlicher Weise wie in Abschnitt 6.5.1. Deswegen möchte ich nicht

weiter darauf eingehen.

Page 87: Nao Report(2)

6.Kapitel: Erste Erfahrungen mit NAO

Programmierbeispiele

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 78 von 92 | S e i t e

1 class MyClass(GeneratedClass):

2 def __init__(self):

3 GeneratedClass.__init__(self)

4

5 def onUnload(self):

6 #puts code for box cleanup here

7 pass

8

9 def onInput_onStart(self, p):

10 markIDs = []

11 shapeInfo = []

12 # Generic Extractor output format:

13 # p = [ [timeStampMaj, timeStampMin], [ tag0, tag1, ... tagN] ]

with tag = [ shapeInfo, moreInfo ]

14 if(len(p) > 0):

15 markInfoArray = p[1]

16 markInfo = markInfoArray[0]

17 shapeInfo = markInfo[0]

18 self.onStopped(shapeInfo)

19 20 def onInput_onStop(self):

pass

Programm 2. Daten der Marks

In Programm 3 erfolgt aus die herausgefilterten NAO-Mark-Daten (Programm 2)

die eigentliche Aktion. Ziel dieses Programmteiles ist es der NAO-Mark zu folgen

und sich ihr zu nähern. Dabei müssen die Daten ausgewertet werden. Bei jeder

Aktion wird ein Log gesetzt mithilfe „self.log()“ wie z.B. in Zeile 25. In Zeile 26 – 28

werden wichtige Strukturen für die Bewegung definiert. Dabei ist „jointCodes“ für

die Art des zu bewegenden Gelenkes zuständig, „time“ für das zu benötigende

Zeitintervall und „angles“ für den Winkel, um den das Gelenk bewegt werden soll.

Die Struktur „input“ stellt dabei die gefilterte Information aus dem Programm 2,

die in diese Methode hineingegeben wird. In Zeile 34 wird als weiteres überprüft,

um welchen Delta-Wert sich die Eingabe zum vorangegangen Wert verändert hat.

Sollte die Änderung groß genug sein dann erfolgt eine Drehung zur NAO-Mark

(Zeilen 35 - 75). Anderenfalls wird auf die NAO-Mark zugelaufen (Zeilen 77 - 93).

Sollte keine NAO-Mark gefunden werden, wird nur ein Wert zurückgegeben (Zeile

Page 88: Nao Report(2)

6.Kapitel: Erste Erfahrungen mit NAO

Programmierbeispiele

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 79 von 92 | S e i t e

95 - 97). Für jede Aktion wird ein anderer Wert zurückgegeben, der letztendlich

eine andere Augenfarbe darstellt (Abbildung 28 – erster Verlauf, Box 3 und 4).

1 #! /usr/bin/python

2 import time

3 class MyClass(GeneratedClass):

4 alpha = 0.0

5 beta = 0.0

6

7 def __init__(self):

8 GeneratedClass.__init__(self)

9 self.abs_diff_value = 0.0

10 self.period = 0

11 self.search_pos = 1.2

12 13 def onLoad(self):

14 #~ puts code for box initialization here

15 pass

16 17 def onUnload(self):

18 #~ puts code for box cleanup here

19 pass

20

21 def onInput_onStart(self, input):

22 # input => [shape, alpha, beta, sizeX, sizeY, heading]

23 # alpha is horizontal (left, center, right)

24 # beta is vertikal (top, center, buttom)

25 self.log("NaoMarkReaction: Move head in the position of the

NAO mark")

26 jointCodes = list()

27 angles = list()

28 times = list()

29 if (len(input)>0):

30 self.log("NaoMarkReaction: NAO Mark detected")

31 alpha = input [1]

32 beta = input [2]

33 self.abs_diff_value = abs(alpha)

34 if self.abs_diff_value > 0.2 :

35 self.log("NaoMarkReaction: Diff_betrag > 0.2: move")

36 self.onStopped(1)

37 jointCodes.append("HeadPitch")

38 # head position -0,7 and +0,6 are the maximum values of

movement vertical (in RAD goes to maximum)

39 # value = -0,7 => max. head up position vertical

40 # value = 0 => center position vertical

41 # value = 0.6 => max. head down position vertical

42 angles.append([beta])

43 times.append([1.90000])

44 jointCodes.append("HeadYaw")

45 # head position -1 and +1 are the maximum values of

movement horizontal (in RAD goes to maximum)

46 # value = -1 => max. right position; horizontal

Page 89: Nao Report(2)

6.Kapitel: Erste Erfahrungen mit NAO

Programmierbeispiele

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 80 von 92 | S e i t e

47 # value = 0 => center position; horizontal

48 # value = +1 => max. left position; horizontal

49 angles.append([alpha])

50 times.append([1.90000])

51 try:

52 motion = ALProxy("ALMotion")

53 moveId = motion.post.doMove(jointCodes, angles, times,

1)

54 except BaseException, err:

55 self.log("NaoMarkReaction: Error")

56 pass

57 jointCodes.append("HeadPitch")

58 angles.append([0])

59 times.append([3.00000])

60 jointCodes.append("HeadYaw")

61 angles.append([0])

62 times.append([3.00000])

63 try:

64 motion = ALProxy("ALMotion")

65 moveId = motion.post.doMove(jointCodes, angles, times,

1)

66 except BaseException, err:

67 self.log("Error")

68 pass

69 if (alpha < 0):

70 ALMotion.addTurn(alpha+0.1, 70)

71 else:

72 ALMotion.addTurn(alpha-0.1, 70)

73

74 ALMotion.walk() #Blocking Function

75 self.onStopped()

76 else:

77 self.log("NaoMarkReaction: Diff_betrag < 2: Position of

NAO mark is in a intervall so that we can say it was not changed")

78 self.onStopped(2)

79 jointCodes.append("HeadPitch")

80 angles.append([0])

81 times.append([3.00000])

82 jointCodes.append("HeadYaw")

83 angles.append([0])

84 times.append([3.00000])

85 try:

86 ALMotion.clearFootsteps()

87 motion = ALProxy("ALMotion")

88 moveId = motion.post.doMove(jointCodes, angles, times,

1)

89 except BaseException, err:

90 self.log("NaoMarkReaction: Error")

91 pass

92 ALMotion.addWalkStraight(0.05, 70)

93 ALMotion.walk() #Blocking Function

94 else:

95 # no NAO mark detected -> bring the head to center

96 self.onStopped(3)

97 self.log("NaoMarkReaction: no NAO Mark")

98 99 def onInput_onStop(self):

Page 90: Nao Report(2)

6.Kapitel: Erste Erfahrungen mit NAO

Modulentwicklung mit Visual Studio 2008

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 81 von 92 | S e i t e

100 101 ALMotion.clearFootsteps()

102 self.onUnload() #~ it is usually a good idea to call onUnload

of this box in a onStop method, as the code written in onUnload is

used to finish the working of the box as well

pass

Programm 3. Reaktion auf die NAO-Mark Position

Auf ähnliche Weise erfolgt die Gesichtserkennung und –verfolgung. Im zweiten

Verlauf (Abbildung 28) ist dann noch die Suche im Raum nach NAO-Marks

platziert, die nur dann benötigt wird, wenn keine NAO-Mark direkt zu finden ist.

6.6 Modulentwicklung mit Visual Studio 2008

Aldebaran bietet ein NaoQi Software Development Kit zur Entwicklung eigener

Module und Programme an. Das SDK wird für Windows XP, MacOSX und Linux

angeboten und kann in beliebige Entwicklungsumgebungen(IDE), wie Eclipse oder

Visual Studio integriert werden. Die Entwicklung ist mit den Sprachen Python, C++,

C# bzw. .Net und Java möglich. Wir haben uns für die Entwicklung mit C++

entschieden, da die Integration der OpenCV Bibliothek in eine .Net-Sprache noch

nicht problemlos möglich ist.

Zur Entwicklung eines eigenen Moduls benötigt man einen eigenen Broker, den

man mit dem Mainbroker auf der NaoQi verbinden kann. Der Broker ist dann in

der Lage auf entfernet Module wie ALMotion auf NAO zuzugreifen und auch in der

Lage ist Methoden des eigenen Moduls im verteilten System verfügbar zu machen.

Dieser Broker braucht nicht selbst implementiert zu werden.

Page 91: Nao Report(2)

6.Kapitel: Erste Erfahrungen mit NAO

Probleme und Schwierigkeiten

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 82 von 92 | S e i t e

Zur Erstellung des eigenen Moduls wird eine Installation des NaoQi-SDK benötigt.

Für die Installation ist eine Anleitung im Reddoc vorhanden. Die SDK enthält einen

Modulgenerator der in der Lage ist den Rumpf für ein Modul inklusive Broker zu

generieren. Die Quelldateien des Moduls, cpp und h Dateien können mittels des

Tools cmake, welches Open Source und im Internet verfügbar ist, zu einem Visual

Studio Projekt kompiliert werden. Das so generierte Modul kann dann in der

Entwicklungsumgebung Visual Studio, geöffnet werden. In Visual Studio sind dann

sämtliche Programmiertätigkeiten mit allen Vorzügen einer ausgereiften

Entwicklungsumgebung, wie Syntax Highlighting, IntelliSense oder Refactoring

möglich. Eine Beschreibung der Modulerstellung findet sich im Reddoc von

Aldebaran. (43)

6.7 Probleme und Schwierigkeiten

Während der Testphase kam es mehrmals vor, dass die NaoQi auf dem Roboter

nicht mehr richtig arbeitete, ohne dass Fehlermeldungen auftraten. Neue

Programme, die über den Choreograph gestartet wurden, kamen nicht mehr auf

NAO zur Ausführung, die zuvor gestarteten Programme liefen weiter. Ein Neustart

NAOs behebt das Problem.

Die Debugging-Funktionalität des Choreograph ist miserabel. Fehlermeldungen

erscheinen praktisch nur in einem Logfile welches per Webschnittstelle auf NAO

zugänglich ist. Die Fehlermeldungen sind sehr allgemein und geben keinen Hinweis

auf die Zeile in der der Fehler aufgetreten ist. Es ist möglich eigene Strings in das

Logfile zu schreiben, was beim Debuggen hilft. Trotzdem ist das Debugging sehr

müßig. Für effizientes und effektives Programmieren ist es zu empfehlen eine

Page 92: Nao Report(2)

6.Kapitel: Erste Erfahrungen mit NAO

Servicequalität Aldebaran

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 83 von 92 | S e i t e

vollwertige IDE zu verwenden. Der Choreograph ist allerdings ein unersetzbares

Hilfsmittel zum entwickeln von Bewegungsabläufen, die hier graphisch erstellt und

in C++-Code exportiert werden können.

NAO ist noch ein Prototyp und das merkt man ihm auch an. Die Dokumentation

liegt in Form von HTML-Seiten vor, die keine Suchfunktionen besitzen. Man muss

Informationen folglich oft umständlich suchen. Zudem sind viele Funktionen nur

spärlich dokumentiert. Ein paar kurze Sätze oder Bilder weisen auf eine

Funktionalität hin, erläutern und erklären sie meist aber nicht. In der Arbeit mit

NAO muss sehr viel durch Trial and Error evaluiert werden. Auch die API

Dokumentation gibt nur grundlegende Informationen, die eigentliche

Funktionalität und Anwendung vieler API-Funktionalitäten muss man im Code

selbst ausprobieren. Auch das Format indem Rückgabewerte von Sensoren

gespeichert werden, wird oft nirgends vermerkt und muss erprüft werden. Im

Bereich der Dokumentation ist noch ein verstärkter Nachholbedarf seitens

Aldebaran zu verzeichnen. So sind auch die Informationen zur Erstellung von

Modulen und zum Verwenden von Visual Studio lückenhaft und viele Schritte

müssen selbst evaluiert werden.

6.8 Servicequalität Aldebaran

NAO war bei Lieferung defekt. Der interne Trägheitssensor arbeitete nicht korrekt,

was zu einer Instabilität des gesamten Systems führte. Nach Kontaktaufnahme mit

Aldebaran Robotics wurde eine XML-Datei zugesandt, die zur Prüfung der

Rückgabewerte der Sensoren im Telepath dient. Während der Prüfung stellte sich

heraus, dass der Trägheitssensor keinerlei Signale liefert. NAO wurde zur

Page 93: Nao Report(2)

6.Kapitel: Erste Erfahrungen mit NAO

Servicequalität Aldebaran

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 84 von 92 | S e i t e

Reparatur eingeschickt und traf innerhalb einer Woche wieder an der DHBW

Karlsruhe vollständig repariert ein. Während der Fehlersuche und in der Zeit der

Reparatur war der Support seitens Aldebaran sehr positiv. Anfragen per E-Mail

werden innerhalb sehr kurzer Zeit kompetent beantwortet. Dabei merkt man dem

Support an, dass versucht wird die bestmögliche Lösung für den Kunden zu finden.

Aldebaran bietet ein Forum für Besitzer eines „Nao Academic Edition“ an in dem

man Fragen stellen und Probleme schildern kann. Im Forum besteht die

Möglichkeit Hilfe von Aldebaran Mitarbeitern oder anderen Entwicklungsteams,

zumeist von Universitäten, zu erhalten. Das Forum ist eine wichtige

Informationsquelle für gängige allgemeine Fehler und hilft bei den

Startschwierigkeiten, bei spezielleren Fehlern ist das Forum weniger

vielversprechend.

Page 94: Nao Report(2)

7.Kapitel: Fazit und Ausblick

Fazit

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 85 von 92 | S e i t e

7. Fazit und Ausblick

7.1 Fazit

Obwohl wir noch weit von dem menschlichen Interaktionsraum und der

Denkensweise in der Robotik entfernt sind, wird durch den NAO schon deutlich

gezeigt, dass die Entwicklung in der Robotik und der künstlichen Intelligenz immer

mehr Voranschreitet. Mit diesem Roboter konnten innerhalb kürzester Zeit Erfolge

erzielt werden, die mit anderen älteren Modellen nach einigen Jahren erst erzielt

werden konnten.

Obwohl der Interaktionsraum schon recht groß ist, sind dem NAO einige Grenzen

gesetzt. Eine noch schwerwiegende Grenze ist die Reaktionsgeschwindigkeit der

Aktorik und Reichweite der Sensorik.

Die schnellen Erfolge konnten zum einen durch die Basismodule und Bibliotheken

erreicht werden, sowie durch den sehr guten Support der Firma Aldebaran.

Zusammenfassend ist der NAO ein gelungener Humanoid, der durch seine Vielfalt

besticht.

Page 95: Nao Report(2)

7.Kapitel: Fazit und Ausblick

Ausblick

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 86 von 92 | S e i t e

7.2 Ausblick

Im weiteren Verlauf der Studienarbeit wird angedacht in den Bereich Fußball zu

gehen. Dabei soll vor allem auf die Erkennung von Objekten eingegangen werden

und mehrere Bewegungsabläufe erstellt werden, die fließend ineinander

übergehen bzw. parallel vollzogen werden.

Am Ende soll dabei eventuell ein Fußballspiel zustande kommen.

Page 96: Nao Report(2)

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 87 von 92 | S e i t e

Literaturverzeichnis

1. Technische Fakultät der Universität Bielefeld. Studiengang Robotik. [Online] o.J. [Zitat

vom: 31. 10 209.] http://www.techfak.uni-

bielefeld.de/kommissionen/leko/Studienplanmodelle/Robotik/welcome.html.

2. Norm VDI 2860. VDI Norm 2860. Montage- und Handhabungstechnik;

Handhabungsfunktionen, Handhabungseinrichtungen; Begriffe, Definitionen, Symbole.

3. Matthias, Haun. Handbuch der Robotik. Berlin : Springer, 2007.

4. Ichbiah, Daniel. Roboter. Geschichte-Technik-Entwicklungen. s.l. : Knesebeck, 2005.

5. Nasa. Nasa Marsrover. [Online] [Zitat vom: 31. 10 09.]

http://marsrovers.nasa.gov/mission/spacecraft_surface_rover.html.

6. —. Nasa Pathfinder Operation. [Online] [Zitat vom: 31. 10 09.]

http://marsprogram.jpl.nasa.gov/MPF/index1.html.

7. Dankert, Jürgen und Dankert, Helga. Technische Mechanik. s.l. : Vieweg+Teubner, 2009

5.Aufl.

8. Husty, Manfred, Karger, Adolf und Sachs, Hans. Kinematik und Robotik: Maschinenbau

Forschung und Entwicklung. Berlin : Springer, 1997.

9. Aviation Week. Defense Technology. [Online] [Zitat vom: 22. 10 2009.]

http://www.aviationweek.com/aw/blogs/defense/index.jsp?plckController=Blog&plckBlo

gPage=BlogViewPost&newspaperUserId=27ec4a53-dcc8-42d0-bd3a-

01329aef79a7&plckPostId=Blog%3a27ec4a53-dcc8-42d0-bd3a-

01329aef79a7Post%3a32530e23-3fa1-4379-8f67-3f785feb01fd&plc.

10. Otake, Mikoho und Yoshiharu, Kagami. Neuroscint - University of Tokio, University of

Hokaido. Shape Design of Gel Robots made of Electroactive Polymer Gel. [Online] [Zitat

vom: 31. 10 2009.]

http://www.neuroscint.org/otake/uploads/papers/Otake_smems2001ems.pdf.

Page 97: Nao Report(2)

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 88 von 92 | S e i t e

11. Collins, Steven Hartley und Ruina, Andy. Cornell University - Robotics Andy Ruina. A

Bipedal Walking Robot with Efficient and Human-Like Gait. [Online] [Zitat vom: 10. 12

2009.]

http://ruina.tam.cornell.edu/research/topics/locomotion_and_robotics/papers/efficient_

bipedal_robots/bipedal_walking_robot_cornell.pdf.

12. Allcock, Andrew. Machinery. Home of Production Egineering. [Online] [Zitat vom: 31.

10 2009.] http://www.machinery.co.uk/article/7593/Anthropomorphic-hand-is-almost-

human.aspx.

13. Raibert, M. H. Trotting, pacing, and bounding by a quadruped robot. s.l. : Journal of

Biomechanics, 1991.

14. Massachusets Institute of Technology. Artificial Intelligence. Leg Lab. [Online] [Zitat

vom: 10. 28 09.] http://www.ai.mit.edu/projects/leglab/robots/robots-main-

bottom.html.

15. Collins, Steve, et al. Efficient bipedal robots based on passive-dynamic Walkers.

Science. 307, 2007, 1082.

16. L, Dickerson. UAVs on the Rise. Aviation Week and Space Technology. 15.01.2007.

17. Pfister, Beate und Tobias, Kaufmann. Sprachverarbeitung: Grundlagen und Methoden

der Sprachsynthese und Spracherkennung. Berlin : Springer, 2008.

18. Kohler, MArkus. Remote Vision-Based Multi-type Gesture Interaction .

Berlin/Heidelberg : Springer Lectures, 2004.

19. Massachusets Institute of Technology. Artificial Intelligence. Kismet. [Online] [Zitat

vom: 10. 12 2009.] http://www.ai.mit.edu/projects/humanoid-robotics-

group/kismet/kismet.html.

20. Jazar, Reza. Theory of Applied Robotics. Berlin : Springer, 2007.

21. Pleo. PleoWorld. Pleo. [Online] [Zitat vom: 10. 10 2009.]

http://www.pleoworld.com/Home.aspx.

22. Lämmel, Uwe Kleve, Jürgen. Künstliche Intelligenz. s.l. : Hanser Fachbuch, 2008, 3.

Auflage.

Page 98: Nao Report(2)

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 89 von 92 | S e i t e

23. Technische Fakultät der Universität Bielefeld. Studienplan Robotik. [Online] [Zitat

vom: 2009. 10 31.]

http://www.techfak.net/kommissionen/leko/Studienplanmodelle/Robotik/Robotik.html.

24. Sony Europe. Aibo Offizielle Webseite. [Online] [Zitat vom: 10. 26 2009.]

http://support.sony-europe.com/aibo/index.asp?language=de.

25. Kuka Robotics GmbH. Industrieroboter. [Online] [Zitat vom: 26. 10 2009.] Kuka

Robotics GmbH.

26. Paro. Paro Therapeutic Robot. [Online] [Zitat vom: 26. 10 2009.]

http://www.parorobots.com/.

27. Russell, Stuart und Norvig, Peter. Künstliche Intelligenz. II. München/ Germany :

Pearson Studium, 2003.

28. Robocup Foundation. Offizielle Robocup Webpräsenz. [Online] [Zitat vom: 10. 10

2009.] http://124.146.198.189/02.html.

29. NISTEP - Natiol Institute of Science and Technology Policy. The Seventh Technology

Foresight - Future Technology in Japan toward the Year 2030. [Online] 2001. [Zitat vom:

12. 10 2009.] http://www.nistep.go.jp/index-e.html.

30. Asimov, Isaac. Ich der Robot. Düsseldorf : Rauch-Verlag, 1952.

31. Moravec, Hans. The Age of Robots. [Online] Carnegie Mellon University Pittsburgh, 06

1993. [Zitat vom: 10. 10 2009.]

http://www.frc.ri.cmu.edu/~hpm/project.archive/general.articles/1993/Robot93.html.

32. New Scientist. Rules for the Modern Robot. New Scientist. 2006, 2544.

33. DARPA. DARPA Grand Challenge. [Online] [Zitat vom: 10. 10 2009.]

http://www.darpa.mil/grandchallenge/index.asp.

34. Schachtmann, Noah. Wired Magazine. First Armed Robots on Patrol in Iraq. [Online] 2.

8 2007. [Zitat vom: 11. 10 2009.]

http://www.wired.com/dangerroom/2007/08/httpwwwnational/.

35. Markoff, John. Scientists Worry Machines May Outsmart Men. [Online] New York

Times, 25. 07 2009. [Zitat vom: 10. 11 2009.]

http://www.nytimes.com/2009/07/26/science/26robot.html?_r=2&ref=todayspaper.

Page 99: Nao Report(2)

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 90 von 92 | S e i t e

36. Aldebaran Robotics. Aldebaran Robotics. [Online] [Zitat vom: 10. 10 2009.]

http://www.aldebaran-robotics.com.

37. Gouaillier, David und Hugel, Vincent, Blazevic, Pierre. The NAO humanoid :a

combination of performance and affordability. Paris : University of Versailles, France,

2008.

38. Honda Worldwide. Asimo. [Online] [Zitat vom: 26. 10 2009.]

http://world.honda.com/ASIMO/.

39. Aldebaran Robotics. Nao Academics Edition. [PDF] Paris : Aldebaran Robotics, 2009.

40. Maisonnier, B. und Gouilliar, D. Am´ elioration d’un robot pouvant ecarter ses jambes

par rapport a la verticale (in French). no. 07 06580 France, 2008.

41. Aldebaran Robotics. Reddoc. Advanced Documentation. Paris : s.n., 2009.

42. Tanenbaum, Andrew S. Moderne Betriebssysteme. 3. s.l. : Pearson Studium, 2009.

43. Jähne, Bernd. Digitale Bildverarbeitung. Berlin : Springer, 2005 6., überarb. u. erw.

Aufl.

44. Pedram, Azad Gockel, TiloDillmann, Rüdiger. Computervision. o.A : Elektor Verlag,

2007.

45. Zöller-Greer, Peter. Künstliche Intelligenz-Grundlagen und ANwendungen. Berlin :

composia, 2007.

46. Nolfi, Stefano Floreano, Dario. Evolutionary Robotics. s.l. : The MIT Press, 2004.

47. Madden, John D. Mobile Robots: Motor Challenges and Materials Solutions. Science.

318, 2007, Bd. 5853, 1097.

48. Palmer, Jason. Call for debate on killer robots. BBC News. [Online] BBC, 03. 08 2009.

[Zitat vom: 10. 11 2009.] http://news.bbc.co.uk/2/hi/technology/8182003.stm.

49. Newscale Technologise. Squgigle Piezo Motors. [Online] [Zitat vom: 31. 10 2009.]

http://www.newscaletech.com/squiggle_overview.html.

50. Aldebaran Robotics. Aldebaran Robotics. DataSheet NAO Academics Version. [Online]

[Zitat vom: 2009. 10 31.] http://www.aldebaran-robotics.com/Files/DSV3+_Light.pdf.

51. —. Greendoc. Dokumentation Aldebaran Choreograph. Paris : s.n., 2009.

Page 100: Nao Report(2)

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 91 von 92 | S e i t e

52. —. Bluedoc. NaoQi API Referenz. Paris : s.n., 2009.

53. o.A. Army. [Online] http://www4.army.mil/ocpa/uploads/large/SWORDS22004-12-

03.jpg.

Page 101: Nao Report(2)

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 92 von 92 | S e i t e

Glossar

DARPA Defense Advanced Research Projects Agency

MIT Massachusetts Institute of Technology

SWORDS Special Weapons Observation Reconnaissance Detection System

VDI Verbund Deutscher Ingenieure

ZMP Zero Moment Point