Sie sind auf Seite 1von 101

Studienarbeit 1

Der Humanoide NAO


- Betrachtung eines neuen Robotersystems -

Studiengang Informationstechnik

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


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
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.
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
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
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
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

i
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

ii
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

iii
1.Kapitel: Einleitung
Motivation

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,

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


1.Kapitel: Einleitung
Problemstellung

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.

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


1.Kapitel: Einleitung
Ziele der Arbeit

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.

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


2.Kapitel: Grundlagen der Robotik
Kurbeschreibung der Robotik

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

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


2.Kapitel: Grundlagen der Robotik
Kurbeschreibung der Robotik

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

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


2.Kapitel: Grundlagen der Robotik
Geschichte der Robotik

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

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


2.Kapitel: Grundlagen der Robotik
Geschichte der Robotik

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)

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


2.Kapitel: Grundlagen der Robotik
Geschichte der Robotik

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)

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


2.Kapitel: Grundlagen der Robotik
Komponenten eines Roboters

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

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


2.Kapitel: Grundlagen der Robotik
Komponenten eines Roboters

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

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


2.Kapitel: Grundlagen der Robotik
Komponenten eines Roboters

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

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


2.Kapitel: Grundlagen der Robotik
Komponenten eines Roboters

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)

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


2.Kapitel: Grundlagen der Robotik
Komponenten eines Roboters

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

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


2.Kapitel: Grundlagen der Robotik
Komponenten eines Roboters

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

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


2.Kapitel: Grundlagen der Robotik
Komponenten eines Roboters

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).

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


2.Kapitel: Grundlagen der Robotik
Komponenten eines Roboters

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

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


2.Kapitel: Grundlagen der Robotik
Komponenten eines Roboters

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

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


2.Kapitel: Grundlagen der Robotik
Komponenten eines Roboters

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.

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


2.Kapitel: Grundlagen der Robotik
Komponenten eines Roboters

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)

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


2.Kapitel: Grundlagen der Robotik
Verschiedene Roboter

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.

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


2.Kapitel: Grundlagen der Robotik
Verschiedene Roboter

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.

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


2.Kapitel: Grundlagen der Robotik
Verschiedene Roboter

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.

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


2.Kapitel: Grundlagen der Robotik
Verschiedene Roboter

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“

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


2.Kapitel: Grundlagen der Robotik
Einführung in die Künstliche Intelligenz

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:

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


2.Kapitel: Grundlagen der Robotik
Einführung in die Künstliche Intelligenz

- 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 1011 Neutronen
Speichereinheiten 1010 Bit RAM 1011 Neutronen
1011 Bit Festplatte 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

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


2.Kapitel: Grundlagen der Robotik
Einführung in die Künstliche Intelligenz

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

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


2.Kapitel: Grundlagen der Robotik
Bedeutung und Einsatzgebiete der Robotik

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.

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


2.Kapitel: Grundlagen der Robotik
Bedeutung und Einsatzgebiete der Robotik

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

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


2.Kapitel: Grundlagen der Robotik
Zukunftsaussichten

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

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


2.Kapitel: Grundlagen der Robotik
Problematik der Robotik

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.

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


2.Kapitel: Grundlagen der Robotik
Problematik der Robotik

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

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


2.Kapitel: Grundlagen der Robotik
Problematik der Robotik

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

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


2.Kapitel: Grundlagen der Robotik
Problematik der Robotik

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.

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


2.Kapitel: Grundlagen der Robotik
Problematik der Robotik

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).

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


3.Kapitel: Der Humanoide NAO
Allgemeine Beschreibung

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)

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


3.Kapitel: Der Humanoide NAO
Allgemeine Beschreibung

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

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


3.Kapitel: Der Humanoide NAO
Allgemeine Beschreibung

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)

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


3.Kapitel: Der Humanoide NAO
Allgemeine Beschreibung

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)

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


3.Kapitel: Der Humanoide NAO
Aktorik des NAO

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

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


3.Kapitel: Der Humanoide NAO
Aktorik des NAO

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

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


3.Kapitel: Der Humanoide NAO
Aktorik des NAO

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

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


3.Kapitel: Der Humanoide NAO
Sensorik des NAO

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

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


3.Kapitel: Der Humanoide NAO
Sensorik des NAO

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

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


3.Kapitel: Der Humanoide NAO
Sensorik des NAO

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.

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


3.Kapitel: Der Humanoide NAO
Sensorik des NAO

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.

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


3.Kapitel: Der Humanoide NAO
Sensorik des NAO

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.

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


3.Kapitel: Der Humanoide NAO
Sensorik des NAO

Front microphone

Rear microphone

Right microphone

Abbildung 16. Mikrofones des NAO

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


dem Kopf, der wie ein Schalter arbeitet.

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


3.Kapitel: Der Humanoide NAO
Akustische und visuelle Interaktionen

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.

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


3.Kapitel: Der Humanoide NAO
Akustische und visuelle Interaktionen

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.

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


3.Kapitel: Der Humanoide NAO
Hardwarekonzept des NAO

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.

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


3.Kapitel: Der Humanoide NAO
Hardwarekonzept des NAO

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.

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


3.Kapitel: Der Humanoide NAO
Softwarekonzept des NAO

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

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


3.Kapitel: Der Humanoide NAO
Softwarekonzept des NAO

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.

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


3.Kapitel: Der Humanoide NAO
Softwarekonzept des NAO

Abbildung 19: Verteiltes Softwarekonzept der NaoQi

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


3.Kapitel: Der Humanoide NAO
Softwarekonzept des NAO

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

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


3.Kapitel: Der Humanoide NAO
Softwarekonzept des NAO

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)

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


3.Kapitel: Der Humanoide NAO
Softwarekonzept des NAO

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.

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


3.Kapitel: Der Humanoide NAO
Softwarekonzept des NAO

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.

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


4.Kapitel: Überblick der Entwicklungsumgebungen
Microsoft Robotic Studio

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.

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


4.Kapitel: Überblick der Entwicklungsumgebungen
Urbi

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.

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


5.Kapitel: Aldebaran Choreograph
Grundkonzept

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ü

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


5.Kapitel: Aldebaran Choreograph
Funktionsweise

2. Symbolleiste

3. Zeitleiste mit Verhalten, Bewegung und Motorenwinkel

4. Box-Bibliothek

5. Fließdiagramm (Programmfenster)

6. Simulation des NAOs

7. Liste vordefinierter Positionen

1
2

5 6 7

Abbildung 20. Fenster des Choreographen

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


5.Kapitel: Aldebaran Choreograph
Funktionsweise

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).

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


5.Kapitel: Aldebaran Choreograph
Funktionsweise

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

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


5.Kapitel: Aldebaran Choreograph
Funktionsweise

(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.

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


5.Kapitel: Aldebaran Choreograph
Funktionsweise

Abbildung 24. Manuelle Verstellung des Kopfgelenkes

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


6.Kapitel: Erste Erfahrungen mit NAO
Motorische Fähigkeiten

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

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


6.Kapitel: Erste Erfahrungen mit NAO
Test der Sensoren

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).

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


6.Kapitel: Erste Erfahrungen mit NAO
Test der Sensoren

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.

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


6.Kapitel: Erste Erfahrungen mit NAO
Test der Sensoren

α - 180° β + 180°

β = 45° 0° 0°
α = 45°

α + 180° β - 180°

horizontal vertikal

Im Rahmen der Messgenauigkeit

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.

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


6.Kapitel: Erste Erfahrungen mit NAO
Test der Sensoren

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:

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


6.Kapitel: Erste Erfahrungen mit NAO
Test der Sensoren

[ [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.

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


6.Kapitel: Erste Erfahrungen mit NAO
Konsolenzugriff

α - 180° β + 180°

αmin = 40° βmax = 59,92°


αmax = 19,44°
0° 0°
βmin = 54°

α + 180° β - 180°

vertikal horizontal

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).

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


6.Kapitel: Erste Erfahrungen mit NAO
Bildverarbeitung

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

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


6.Kapitel: Erste Erfahrungen mit NAO
Bildverarbeitung

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.

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


6.Kapitel: Erste Erfahrungen mit NAO
Programmierbeispiele

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

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


6.Kapitel: Erste Erfahrungen mit NAO
Programmierbeispiele

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.

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


6.Kapitel: Erste Erfahrungen mit NAO
Programmierbeispiele

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

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


6.Kapitel: Erste Erfahrungen mit NAO
Programmierbeispiele

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

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


6.Kapitel: Erste Erfahrungen mit NAO
Programmierbeispiele

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):

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


6.Kapitel: Erste Erfahrungen mit NAO
Modulentwicklung mit Visual Studio 2008

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.

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


6.Kapitel: Erste Erfahrungen mit NAO
Probleme und Schwierigkeiten

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

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


6.Kapitel: Erste Erfahrungen mit NAO
Servicequalität Aldebaran

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

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


6.Kapitel: Erste Erfahrungen mit NAO
Servicequalität Aldebaran

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.

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


7.Kapitel: Fazit und Ausblick
Fazit

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.

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


7.Kapitel: Fazit und Ausblick
Ausblick

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.

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 86 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.

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 87 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.

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 88 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.

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 89 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.

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 90 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.

Der Humanoide NAO – Betrachtung eines neuen Robotersystems 91 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

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

Das könnte Ihnen auch gefallen