Beruflich Dokumente
Kultur Dokumente
Studiengang Informationstechnik
von
Marco Helmerich,
Abgabedatum 08.01.2010
Bearbeitungszeitraum 12 Wochen
Kurs TIT07 G1
Hiermit erklären wir, dass wir die vorliegende Arbeit mit dem Thema
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.
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.
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
1 EINLEITUNG ..............................................................................................................................1
7.1 FAZIT....................................................................................................................................... 85
7.2 AUSBLICK ................................................................................................................................. 86
LITERATURVERZEICHNIS ............................................................................................................87
GLOSSAR ...................................................................................................................................92
Abbildungsverzeichnis
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,
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
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.
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.
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).
Ä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
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).
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
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.
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)
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
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
2.3.2 Aktuatoren
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.
sind die Stoffe allerdings noch nicht belastungsfähig genug und altern sehr schnell
(10).
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.
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.
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
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).
2
Zero Moment Point
3
Massachusetts Institute of Technology
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.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
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
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.
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)
2.4.1 Aibo
Abbildung 2. Aibo
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.
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.
Abbildung 5. Kuka
2.4.4 Paro
„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“
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
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.
- 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.
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.
Abbildung 7. Roboter-Spinne (l.o.) in Ruhmodus, (r.o.) Platine und Kühlung, (l.u.) ein Gelenk und (r.u.) aktiv
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.
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.
Arbeiten z.B. im Bereich der Gehirnchirurgie, in der ein absolut ruhiges Halten der
medizinischen Instrumente notwendig ist, unterstützen können. (24)
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
vornehmen
2019-2021 — Nanoroboter
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.
Ein Roboter muss seine Existenz beschützen, solange dieser Schutz nicht mit Regel
eins oder zwei kollidiert. (30)
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 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.
4
Defense Advanced Research Projects Agency
5
Special Weapons ObservationReconnaissance Detection System
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)
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).
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.
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
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
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)
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 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)
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
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.
3.3.1 Kraftsensoren
Die aktuellen Werte der einzelnen Sensoren können dabei aus ALMemory
ausgelesen werden.
3.3.2 Trägheitssensoren/Ausrichtung
Ü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
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.
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.
Front microphone
Rear microphone
Right microphone
Tabelle 5. LED
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.
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.
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.
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.
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)
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
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:
BIND Method:
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)
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.
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.
- Steuerung des Centers of Gravity, d.h. die Position relativ zum stützenden
Fuß, Eigenstabilität des Roboters, automatische Halten des Gleichgewichts.
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
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.
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.
5. Aldebaran Choreograph
5.1 Grundkonzept
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
In Abbildung 20 sieht man einen Überblick über die IDE des Choreographen. Dabei
unterscheidet man zwischen den folgenden Fenstern:
1. Standardmenü
2. Symbolleiste
4. Box-Bibliothek
5. Fließdiagramm (Programmfenster)
1
2
5 6 7
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.
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
(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).
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.
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
Programmen spielt. Wenn NAO einen Ball erreicht ist dieser höchstwahrscheinlich
schon ausgerollt und man findet eine statische Situation vor.
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).
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.
α - 180° β + 180°
β = 45° 0° 0°
α = 45°
α + 180° β - 180°
horizontal vertikal
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:
„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.
α - 180° β + 180°
α + 180° β - 180°
vertikal horizontal
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).
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.
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.
6.5 Programmierbeispiele
In diesem Abschnitt werden Aufgaben vorgestellt, die der NAO lösen musste. Dazu
werden zu jedem Bereich Programmauszüge vorgestellt.
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()
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.
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.
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
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
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
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.
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)
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.
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.
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
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.
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.
7.2 Ausblick
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.
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.
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.
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.
22. Lämmel, Uwe Kleve, Jürgen. Künstliche Intelligenz. s.l. : Hanser Fachbuch, 2008, 3.
Auflage.
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.
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.
37. Gouaillier, David und Hugel, Vincent, Blazevic, Pierre. The NAO humanoid :a
combination of performance and affordability. Paris : University of Versailles, France,
2008.
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.
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.
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.