Click here to load reader

InteraktionmitdemhumanoidenRoboterNAO · Sommersemester2014 Ispywithmylittleeye InteraktionmitdemhumanoidenRoboterNAO Mike Imhof Matrikelnummer:1509349 [email protected]

  • View
    212

  • Download
    0

Embed Size (px)

Text of InteraktionmitdemhumanoidenRoboterNAO · Sommersemester2014 Ispywithmylittleeye...

Sommersemester 2014

I spy with my little eyeInteraktion mit dem humanoiden Roboter NAO

Mike ImhofMatrikelnummer: 15 09 349

[email protected]

Christina ZellerMartrikelnummer: 17 47 194

[email protected]

29. August 2014

Otto-Friedrich-Universitt BambergProfessur fr Angewandte Informatik insb. Kognitive SystemeProf. Dr. Ute Schmid

KogSys-Proj-B: Bachelor/Master Projekt Kognitive SystemeBetreuer: Christian Reiner

I spy with my little eye: Interaktion mit dem humanoiden Roboter NAO SoSe 2014

Inhaltsverzeichnis1 Einleitung 5

2 Hintergrund 62.1 Allgemeine NAO Beschreibung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.1.1 Technische Merkmale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.1.2 Technische Aspekte der Programmierung . . . . . . . . . . . . . . . . . . . . 8

2.2 Spielbeschreibung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

3 Spielgestaltung mit NAO 93.1 Szenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93.2 Spielregeln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

4 Interaktionsgestaltung 114.1 Allgemeiner Ablauf des Spieles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

4.1.1 Spielsteuerungsebene . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114.1.2 Ebene: NAO ist am Zug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114.1.3 Ebene: Mensch ist am Zug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

4.2 Sprache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164.2.1 NAOs Voraussetzungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164.2.2 Erste Tests, Probleme und Anstze . . . . . . . . . . . . . . . . . . . . . . . . 164.2.3 Umsetzung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174.2.4 Weitere Tests, Anpassungen und Mglichkeiten . . . . . . . . . . . . . . . . . 18

4.3 Kopfbewegung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204.3.1 NAOs Voraussetzungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204.3.2 Umsetzung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214.3.3 Bewertung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

4.4 Objekterkennung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254.4.1 NAOs Voraussetzungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254.4.2 Erste Tests, Probleme und Anstze . . . . . . . . . . . . . . . . . . . . . . . . 264.4.3 Umsetzung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274.4.4 Weitere Tests, Anpassungen und Mglichkeiten . . . . . . . . . . . . . . . . . 27

4.5 Objektgedchtnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294.5.1 NAOs Voraussetzungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294.5.2 Umsetzung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294.5.3 Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

5 Nutzung eines Bootloaders 315.1 Bootloader.py . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315.2 Up- und Download von Dateien auf NAO . . . . . . . . . . . . . . . . . . . . . . . . 335.3 autoload.ini . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

6 Zustzliche projektspezifische Aspekte 356.1 Aufgetretene Probleme und Lsungen . . . . . . . . . . . . . . . . . . . . . . . . . . 356.2 Weitere Implementierungsvorschlge . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

7 Fazit und Ausblick 36

2

I spy with my little eye: Interaktion mit dem humanoiden Roboter NAO SoSe 2014

Abbildungsverzeichnis1 NAO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 Position der Mikrofone und Lautsprecher an NAO . . . . . . . . . . . . . . . . . . . 73 Spiel-Szenario mit NAO vor Regalwand . . . . . . . . . . . . . . . . . . . . . . . . . 94 Spielsteuerungsebene . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 Ebene: NAO ist am Zug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 Ebene: Mensch ist am Zug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 Kopfmotoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 Timeline Box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 Timeline Layer-Ansicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2210 Timeline-Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2211 Curve-Ansicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2312 Python-Export . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2313 Mark-Detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2514 NAOs Perspektive der Mark-Detection . . . . . . . . . . . . . . . . . . . . . . . . . . 2715 File Transfer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

3

I spy with my little eye: Interaktion mit dem humanoiden Roboter NAO SoSe 2014

ZusammenfassungDie vorliegende Arbeit befasst sich mit der Interaktion von NAO einem humanoiden Roboter derFirma Aldebaran-Robotics und Menschen im alltglichen Umgang. Um Interaktionsmglichkei-ten zu testen, wird das Spiel Ich sehe was, das du nicht siehst... als Rahmen verwendet. In derImplementierung des Spiels wird vor allem die Natrlichkeit der Interaktion betrachtet und dabeierlutert, wie die Implementierung der sprachlichen Interaktion, der Objekterkennung und der Be-wegung umgesetzt wurde. Es werden jeweils Voraussetzungen, Probleme und weitere Mglichkeitenbeschrieben. Zusammenfassend lsst sich sagen, dass NAO Potenzial hat, jedoch groe Problemein der Sprach- und Objekterkennung aufweist, die bisher allgemein nicht gelst werden konnten.Darunter leidet die Natrlichkeit in der Interaktion mit NAO. Weitere Tests und Verbesserungender Software sind wnschenswert, um die Natrlichkeit und den leichteren Umgang mit Roboternin Zukunft zu frdern.

4

I spy with my little eye: Interaktion mit dem humanoiden Roboter NAO SoSe 2014

1 EinleitungDer Roboter Hitchbot ist der Zeit in vielen Nachrichten zu finden (Bhm, 07.08.2014 und Bhm,18.08.2014). Es handelt sich um einen trampenden mit Gummistiefel und Handschuhen ausgestat-teten Roboter, der auf seiner eigenen Internetseite, Facebook, Twitter und Instagram von seinerReise durch Kanada berichtet (VanderMaas, 2014). Dabei ist er auf die Hilfe von Menschen ange-wiesen, die ihn beim Trampen untersttzen. Roboter bekommen einen immer hheren Stellenwertin unserer Gesellschaft und werden in vielen alltglichen Situationen eingebunden. Dabei sind Ro-boter zum Beispiel in Fabriken, als einzelne Arme, die Schrauben festziehen, aber auch zum Beispielin Form von Tieren als Unterhaltung und Zeitvertreib anzutreffen.Die vorliegende Projektarbeit beschftigt sich mit dem Thema Humanoide Roboter im Alltag.

Dabei stehen jedoch nicht nur nur technische Aspekte und eine funktionierende Implementierungim Vordergrund. Uns stellt sich die Frage, inwiefern humanoide Roboter im Alltag integriert werdenknnen. Sollen humanoide Roboter nur als Spielzeug und Unterhaltung dienen, oder erscheint esrealistisch, dass humanoide Roboter Hilfestellungen und Erleichterungen im Alltag schaffen? Dabeisteht vor allem die Interaktion im Vordergrund, die wir anhand des humanoiden Roboter NAO derFirma Aldebaran-Robotics untersuchen. In der Interaktion mit Robotern erscheint uns dabei vorallem ein natrlicher Umgang zum Beispiel in Form einer Sprachsteuerung, aber auch in Form einerObjekterkennung von Bedeutung, um gemeinsam gesehene Objekte referenzieren zu knnen. DieseFhigkeiten eines Roboters kann in verschiedensten Situationen eingesetzt werden und werden inder vorliegenden Arbeit in einem klaren Rahmen mit Regeln getestet. In der Wissenschaft entwi-ckelt man Modelle, um komplexe Sachverhalte zu vereinfachen. Wir mchten in der vorliegendenArbeit ein Spiel verwenden, da dies eine Vereinfachung einer komplexen Interaktion im Alltag dar-stellt. Spiele haben einen abgesteckten Rahmen und vorgegebene Regeln, weshalb sie fr uns einideales Umfeld zur Untersuchung bieten. Da jedes Kind auf dieser Welt Spiele spielt, erscheint esauch logisch, dass ein humanoider Roboter diesen menschlichen Aspekt lernt. Jedoch muss hierbeierwhnt werden, dass es uns nicht darum geht, einem Roboter ein neues Spiel beizubringen undeinen anderen Menschen dadurch als Interaktionsperson zu ersetzen. In der vorliegenden Arbeitgeht es vielmehr darum, Mglichkeiten und Grenzen der Interaktion mit einem humanoiden Ro-boter anhand eines Spieles zu erforschen. Das Spiel wird nur als vereinfachte Welt angesehen, inder die Interaktion unter Regeln stattfinden kann. Als Spiel whlten wir Ich sehe was, das dunicht siehst.... Dieses Spiel bietet sowohl Raum fr sprachliche Interaktion verbunden mit Objek-terkennung, als auch einen Rahmen fr eine natrliche Interaktion. Inwieweit diese Aspekte mitdem humanoiden Roboter NAO umgesetzt werden knnen, ist Thema dieser Arbeit.Ausgehend von einer allgemeinen Beschreibung von NAO und dem rahmengebenden Spiel, wer-

den sodann die konkrete Spielsituation und Spielregeln aufgestellt. Daraufhin werden verschiedeneAspekte der Interaktionsumsetzung, wie der Ablauf des Spiels, die Spracherkennung sowie -ausgabe,die Bewegungsmodellierung, Objekterkennung und das Objektgedchtnis diskutiert. Es werden je-weils NAO-spezifische Mglichkeiten, gegebenenfalls Tests, Probleme und Anstze, so wie die Imple-mentierung beschrieben. Daraufhin wird beschrieben, wie das Spiel mit Hilfe eines Bootloader ohneFernsteuerung auf NAO lauffhig gemacht wird. Abschlieend folgen weitere projektspezifische An-merkungen, eine Zusammenfassung der Erkenntnisse und ein Ausblick fr weitere Verbesserungenin der Interaktion mit NAO.

5

I spy with my little eye: Interaktion mit dem humanoiden Roboter NAO SoSe 2014

2 Hintergrund2.1 Allgemeine NAO BeschreibungWie im vorherigen Abschnitt beschrieben, mchten wir den humanoiden Roboter NAO verwenden,um ihm das Spiel Ich sehe was, das du nicht siehst... beizubringen. In den folgenden Abschnittenwerden technische Spezifikationen von NAO beschrieben. Bei der Umsetzung des Spiels mchtenwir ein besonderes Augenmerk auf die Gestaltung einer mglichst natrlichen Interaktion mit demmenschlichen Gegenber legen. Daher sollen in diesem Abschnitt vor allem NAOs Interaktionskom-ponenten genauer beschrieben werden. Zu den hier beschriebenen Komponenten zhlen Hardwa-rekomponenten wie z. B. Sensoren, mit denen NAO Informationen aus der Umwelt aufnimmt oderSoftwaremodule, die eine Spracherkennung und ausgabe ermglichen.NAO ist ein zweibeiniger humanoider Roboter (siehe Abbildung 1), der von dem franzsischen

Unternehmen Aldebaran-Robotics hergestellt wird. Das Unternehmen verfolgt nach eigenen An-gaben mit NAOs Herstellung mehrere Ziele: Der Roboter soll zum einen finanziell gnstig, zumanderen aber leistungsfhig und qualitativ hochwertig sein. Darber hinaus soll die Benutzung undErweiterung von Verhaltensprogrammen des Roboters so einfach wie mglich sein. Einstellungen andem Roboter sollen sowohl mit, als auch ohne Verwendung einer Programmiersprache vorgenommenwerden knnen. Zudem soll es durch eine offene Architektur mglich sein, eigene Verhaltensmodulezu programmieren und diese ohne groen Aufwand auf NAO zu installieren. (Gouaillier, Hugel, &Blazevic, 2008)Einsatzbereiche sind vor allem Forschung und Lehre in den Kognitions- sowie Ingenieurwissen-

schaften (Aldebaran-Robotics, 2011/2012 a). Seit August 2007 ist NAO offizieller Nachfolger desSony AIBO als Standardplattform des RoboCup, bei dem sich humanoide Roboter verschiedenerWissenschaftlerteams gegenber stehen und einen Wettkampf austragen (Wikipedia, 2014 a).

(a) NAO (Gouaillier, et al. 2008) (b) technischer NAO (Aldebaran-Robotics, 20062012 h)

Abbildung 1: NAO

6

I spy with my little eye: Interaktion mit dem humanoiden Roboter NAO SoSe 2014

2.1.1 Technische Merkmale

NAO hat eine Hhe von 0,57 m und ein Gewicht von 4,5 kg. Mit einem Body-Mass-Index (BMI)von 13,5 kg/m2 gehrt er zu den leichtgewichtigen Humanoiden. (Gouaillier, et al., 2008) In unsererVersion von NAO (V4 H25) ist eine Intel ATOM Z530 CPU mit 1,6 GHz und ein Arbeitsspeichervon 1 GB verbaut. Folgende Hardware- und Softwarekomponenten gehren zu NAOs Ausstattung(Aldebaran-Robotics, 2011/2012 a) und sind insbesondere fr unser Projekt wichtig:

Kamera: NAO besitzt zwei Kameras mit einer Auflsung von 1,22 Megapixel, die am Kopfangebracht sind. Die Kameras haben bei voller Auflsung (1280 x 960 px) eine Framerate von29 fps.

Kopfbewegung: NAO kann seinen Kopf 239 in der Horizontale und 68 in der Vertikalebewegen. Die Kameras haben ein Sichtfeld, das sich 61 horizontal und 47 vertikal ausstreckt.

Sprachausgabe: NAOs Sprachausgabe ist in neun verschiedenen Sprachen mglich (Eng-lisch, Franzsisch, Spanisch, Deutsch, Italienisch, Chinesisch, Japanisch, Koreanisch und Por-tugiesisch). In dem von uns verwendeten NAO ist nur das englische Sprachmodul installiert,weitere Sprachmodule lassen sich aber nachrsten.

Spracherkennung: Die Spracherkennungssoftware von NAO wird von Nuance entwickelt.Nach Angaben des Herstellers kann NAO komplette Stze oder bestimmte Wrter in St-zen verstehen. Sprachen, die erkannt werden knnen sind Englisch, Franzsisch, Spanisch,Deutsch, Italienisch, Chinesisch, Japanisch und Koreanisch.

Mikrofone und Lautsprecher: Wie in Abbildung 2 dargestellt, besitzt NAO insgesamtvier Mikrofone, die am Kopf angebracht sind. Die Mikrofone sind an der Stirn, am Hinter-kopf sowie an der linken und rechten Seite. Die Sensitivitt der Mikrofone betrgt 37 bis43 dB, die Frequenzreichweite betrgt 20 Hz bis 20 kHz und das Signal-Rauschen-Verhltnisbetrgt 58 dBA. Des Weiteren ist NAO wie ebenfalls in Abbildung 2 dargestellt mit zweiLautsprechern ausgestattet.

(a) Mikrofone (b) Lautsprecher

Abbildung 2: Position der Mikrofone (Aldebaran-Robotics, 20062012 d) und Lautsprecher(Aldebaran-Robotics, 20062012 b) an NAO

7

I spy with my little eye: Interaktion mit dem humanoiden Roboter NAO SoSe 2014

Weitere Sensoren, mit denen er Informationen aus seiner Umgebung aufnehmen kann, die aber frunser Projekt nicht von Bedeutung sind:

2 Gyrometer

3 Accelerometer

36 MRE (Magnetic rotary encoder; Positionssensoren)

8 FSR (Force-sensitive resistor)

2 Infrarotsensoren

2 Ultraschallsensoren

2.1.2 Technische Aspekte der Programmierung

Zur Ansteuerung der Hardware verwenden wir u. a. das Programm Choregraphe 1.14.4 (Lizenz),eine von Aldebaran mitgelieferte Software, die mithilfe einer grafischen Benutzeroberflche dieProgrammierung von einfachen Verhaltensprogrammen ermglicht.Darber hinaus stellt Aldebaran-Robotics fr NAOs Programmierung das Softwareframework

NAOqi zur Verfgung. Das Framework untersttzt die Programmiersprachen C++, Python, .Net,Java und Matlab. (Aldebaran-Robotics, 2011/2012 a) Allerdings knnen Verhaltensmodule, dieautonom auf dem Roboter laufen sollen, nur mit C++ oder Python geschrieben werden. Mit denanderen Sprachen knnen Module programmiert werden, die den Roboter ber einen Computerfern steuern. Da unser Programm spter autonom auf NAO laufen soll, verwenden wir die Pro-grammiersprache Python.

2.2 SpielbeschreibungIm folgenden Abschnitt soll kurz das Spiel Ich sehe was, das du nicht siehst... erlutert werden.Dieses einfache Kinderspiel kann mit sehr wenigen Mitteln gespielt werden und schult unter ande-rem die Beobachtungsgabe der spielenden Personen. Es geht darum, dass sich eine Person einenGegenstand in der Umgebung auswhlt. Dieser Gegenstand soll fr alle anderen mitspielendenPersonen ebenfalls sichtbar sein. Als Beispiel knnte ein grnes Buch in einem Regal ausgewhltwerden. Daraufhin sagt die Person, die sich einen Gegenstand ausgewhlt hat: Ich sehe was, das dunicht siehst und das ist grn!. Nun sehen sich die anderen mitspielenden Personen um und suchengrne Gegenstnde. Sobald eine Person einen Gegenstand entdeckt hat, fragt sie, ob es sich umdiesen Gegenstand handelt. Bei mehreren Mitspielenden darf die Person, die den Gegenstand erra-ten hat, sich als nchstes einen Gegenstand aussuchen. Dabei wird Ehrlichkeit der mitspielendenParteien vorausgesetzt. (Labb, 2014 und SpieleWiki, 2009)

8

I spy with my little eye: Interaktion mit dem humanoiden Roboter NAO SoSe 2014

3 Spielgestaltung mit NAOUm der Aufgabenstellung und Spielgestaltung mit NAO einen noch klareren Rahmen zu geben,soll im Folgenden kurz das Szenario und die Spielregeln beim Spielen mit NAO skizziert werden.

3.1 SzenarioFr Menschen ist es sehr einfach ihre gesamte Umgebung zu betrachten. Dabei bewegen sie nichtnur den Kopf, sondern drehen zum Beispiel den gesamten Oberkrper oder stehen auf, um dieUmgebung aus verschiedenen Perspektiven zu inspizieren. Fr NAO msste jede Bewegung einzelnmodelliert werden und sehr viele verschiedene Aspekte bercksichtigt werden. Dazu gehrt unteranderem, ob NAO sitzt, steht oder liegt. Auerdem msste die Orientierung im Raum und die Po-sition im Raum eingerechnet werden. Diese Informationen sind wichtig, um den Blickwinkel richtigzu whlen, aber auch damit NAO nicht zum Beispiel von einem Tisch fllt. Fr eine natrliche In-teraktion wre es sodann wichtig, dass NAO nicht immer die selbe Bewegung durchfhrt. Je mehrBewegungsfreiheit NAO im Raum bekommt, desto mehr Flle mssten unterschieden werden. Umdie Aufgabenstellung auf bestimmte Aspekte zu reduzieren, soll in dieser Arbeit folgendes Szenariodie Grundlage bieten: NAO soll sich nicht im Raum bewegen, sondern sitzt auf einem Tisch, ummit Menschen auf einer Hhe zu sein und eine natrliche Interaktion zu gewhrleisten. Durch dieSitzposition ist NAOs Blickfeld natrlich auf einen bestimmten Bereich eingeschrnkt. Dies sollunter anderem im vorliegenden Szenario durch eine natrliche Kopfbewegung von ungefhr 180ausgeglichen werden. Dennoch wird die Auswahl von Objekten dadurch stark reduziert, weshalbeine Wand mit einem offenen Regal als Setting ausgewhlt wurde, das in der implementierten Ver-sion insgesamt zehn Objekte beinhaltet. Um das Spiel aber auch bei wenigen gefundenen Objekteninteressant zu gestalten, soll nicht nur die Attributklasse Farbe fr das Ratespiel verwendet werden,sondern des Weiteren die Gre und das Material des Objektes zum Raten oder als Hinweis hinzu-gezogen werden knnen. Da die Objekterkennung mit NAO nur bis zu einem bestimmten Abstandmglich ist, soll NAO ungefhr zwei Meter von der Wand entfernt sitzen. Daraus ergibt sich dasSzenario, das in Abbildung 3 dargestellt ist.

(a) NAOs Sicht (b) Skizze: von oben

Abbildung 3: Spiel-Szenario mit NAO vor Regalwand

9

I spy with my little eye: Interaktion mit dem humanoiden Roboter NAO SoSe 2014

3.2 SpielregelnZu jedem Spiel gehren Spielregeln, die im folgenden in der Interaktion mit NAO przisiert werden.In der vorliegenden Implementierung geht es vorrangig um das Spielen mit einer einzelnen Inter-aktionsperson. Natrlich knnen auch mehrere Personen auf NAOs Fragen antworten, jedoch wirdNAO dies nicht unterscheiden. Da die Interaktion auf zwei ausgelegt ist, wird in unserer Imple-mentierung abwechselnd ein Objekt ausgewhlt und erraten. Es ist folglich egal, ob das Objekt derInteraktionsperson richtig erraten wurde. Das vorliegende Spiel enthlt keine Punktevergabe. Einbereits ausgewhltes Objekt kann ein zweites Mal gewhlt werden, jedoch wird NAO selbst dieseStrategie nicht nutzen. Wird ein Objekt nicht beim ersten Mal erraten, so knnen Hinweise gegebenwerden. Dabei knnen die bereits benannten Attributklassen Farbe, Gre und Material verwendetwerden. Fr NAO ist es dabei wichtig, dass man fair und ehrlich mit ihm umgeht. Denn NAO ist aneinigen Stellen sehr leichtglubig. So mssen Angaben zu Objekten konsistent sein. Sollte man ihmmitteilen, dass das Objekt wei ist und als weiteren Tipp, dass das Objekt blau wre, dann wirdNAO kein passendes Objekt mehr finden, sich aber auch nicht ber die Inkonsistenz beschweren.Auch wenn man NAO zunchst sagt, dass das von NAO erratene Objekt nicht das gewhlte seiund ihm daraufhin sagt, dass man genau dieses Objekt gewhlt hatte, wird NAO es als ein Objektauffassen, dass er einfach nicht in Erwgung gezogen hatte.

10

I spy with my little eye: Interaktion mit dem humanoiden Roboter NAO SoSe 2014

4 Interaktionsgestaltung4.1 Allgemeiner Ablauf des SpielesDer folgende Abschnitt soll einen berblick ber die Spielsteuerung geben. Dabei wird zunchstdie oberste Ebene der Spielsteuerung besprochen. Je nach Wahl des Menschen kann der Menschoder NAO damit beginnen, ein gewhltes Objekt zu erraten. Die unterschiedlichen Verlufe beiderInteraktionen werden sodann aus NAOs Perspektive beschrieben.

4.1.1 Spielsteuerungsebene

In Abbildung 4 ist die erste Interaktionsebene dargestellt, in die NAO gelangt, wenn man das Spieldurch Berhrung von NAOs Kopf startet. Nach der Berhrung begrt NAO sein menschlichesGegenber und fragt, ob die Person mit ihm Ich sehe was, das du nicht siehst... (Englisch: I spywith my little something that is...) spielen mchte. Im Falle einer Ablehnung bedauert NAO dieEntscheidung und verabschiedet sich wieder von der Person.Geht man auf sein Angebot ein, fragt NAO seinen Spielpartner, wer mit dem Spiel beginnen

soll. Entscheidet die Person sich fr NAO, ist NAO am Zug und der Roboter springt in die nchsteInteraktionsebene, die im Abschnitt 4.1.2 beschrieben wird. Seine Aufgabe ist dann ein Objektzu finden und dem Menschen ein Attribut zu nennen. Mchte die Person jedoch selbst beginnen,springt NAO in eine andere Interaktionsebene, die in Abschnitt 4.1.3 erlutert wird. NAO wartetdann darauf, dass der Mensch ein Attribut nennt, woraufhin er die Umgebung nach Objektenmit dem genannten Attribut absucht. Nachdem ein Zug vorbei ist, fragt NAO, ob die Personweiterspielen mchte. Falls die Person bejaht, geht der nchste Zug automatisch an den jeweilsanderen. Bei einer Verneinung verabschiedet sich NAO von der Person und das Spiel ist beendet.

4.1.2 Ebene: NAO ist am Zug

Wenn NAO am Zug ist (siehe Abbildung 5), sucht er die Umgebung nach Objekten ab. Er erkenntdabei alle Gegenstnde, die in seinem Sichtfeld liegen und mit einem sogenannten NAO-Mark (sieheKapitel 4.4) versehen sind. Um das Sichtfeld zu erweitern, dreht NAO in einer mglichst natrlichenBewegung seinen Kopf nach links, rechts, oben und unten. Dabei merkt er sich alle gefundenen Ob-jekte und fgt zudem sich selbst als weiteres Objekt hinzu, so dass immer mindestens ein Objekterkannt wird. Damit Abwechslung in das Spiel kommt und die zu erratenden Gegenstnde sichnicht wiederholen, verwirft NAO zunchst alle Objekte, die bereits von ihm oder dem Menschenim Spielverlauf gewhlt wurden. Er muss daher in einem Kurzzeitgedchtnis alle Gegenstnde spei-chern, die im Spiel bereits gewhlt wurden d. h. zu Spielbeginn ist sein Kurzzeitgedchtnis leer.Von den briggebliebenen Objekten whlt er anschlieend nach Zufall ein Objekt aus. Mglicher-weise findet NAO keinen Gegenstand, der noch nicht genannt wurde. In diesem Fall bedauert er,dass er kein neues Objekt gefunden hat und kehrt zur oberen Interaktionsebene zurck. In dieserEbene wird die Person gefragt, ob sie trotzdem weiterspielen mchte. Hat NAO jedoch einen nochnicht gewhlten Gegenstand gefunden, sucht er nach Zufall ein Attribut des Objekts aus. Er kanndabei zwischen drei verschiedenen Attributen (Farbe, Gre oder Material) whlen. Daraufhin sagtNAO I spy with my little eye something that is... und sein menschliches Gegenber hat insgesamtdrei Versuche zu erraten, um welches Objekt es sich handelt. Ist seine Antwort falsch, gibt NAOeinen Tipp, indem er ein weiteres Attribut des Gegenstandes nennt. Nachdem der Mensch dreimalfalsch geraten hat, nennt NAO das gesuchte Objekt. Im Falle einer korrekten Antwort, lobt NAOden Menschen und kehrt zur vorherigen Interaktionsebene (siehe Abschnitt 4.1.1) zurck.

11

I spy with my little eye: Interaktion mit dem humanoiden Roboter NAO SoSe 2014

4.1.3 Ebene: Mensch ist am Zug

Falls der Mensch am Zug ist (siehe Abbildung 6), wartet NAO darauf, dass der Mensch ein Attributnennt, das zu dem gesuchten Gegenstand gehrt. Der Mensch hat also die Aufgabe ein Objekt zufinden, das in NAOs Sichtfeld liegt und daraufhin entweder seine Farbe, Gre oder das Materialdes Gegenstands zu benennen. Kann NAO den Menschen nicht verstehen, fragt er noch einmalnach. Hat NAO jedoch verstanden, um welches Attribut es sich handelt, sucht er die Umgebungab und merkt sich alle Objekte, die in seinem Sichtfeld liegen. Anschlieend gleicht er das Attributmit den gefundenen Gegenstnden ab und verwirft alle Objekte, die nicht zum genannten Attributpassen. Aus den briggebliebenen Objekten whlt er nach Zufall eines aus und fragt den Menschen,ob dieses gemeint war. Im Falle einer richtigen Antwort freut NAO sich und kehrt zur vorherigenInteraktionsebene zurck. Ist seine Antwort jedoch falsch, fragt NAO nach einem weiteren Attribut,solange bis er entweder beim nchsten Versuch richtig liegt (vorausgesetzt er findet weitere passendeObjekte) oder bis der Mensch alle drei zum Objekt gehrigen Attribute genannt hat. Findet er dasObjekt nach mglicherweise mehreren Versuchen nicht, fragt er den Menschen, welcher Gegenstandgesucht war und kehrt anschlieend zur vorherigen Interaktionsebene (siehe Abschnitt 4.1.1) zurck.

12

I spy with my little eye: Interaktion mit dem humanoiden Roboter NAO SoSe 2014

Spiel wirddurch Kopf-berhrunggestartet

NAObegrt

Person undfragt, obPersonspielenmchte

NAO fragt:Wer sollbeginnen?

Mensch fragt NAO ratet

NAO fragt Mensch ratet

NAO fragt:Weiterspie-

len?

NAO fragt:Weiterspie-

len?

Verabschiedung

nein

ja

MenschNao

ja

nein

ja

nein

Abbildung 4: Spielsteuerungsebene Das Spiel startet in der roten Box und endet mit einer Ver-abschiedung in der grnen Box.

13

I spy with my little eye: Interaktion mit dem humanoiden Roboter NAO SoSe 2014

NAO suchtUmgebung ab

NAO gibteinen Tipp

NAOfindet einnoch nichtgeratenesObjekt

NAO whlt einObjekt aus undsagt: I spy withmy little eye...

NAOwartet undregistriertAntwort

NAO nenntdas Objekt

Ende zurckzur Steue-rungsebene

ja

nein

korrekte Antwort

< 3 falsche Antworten

3 falsche Antworten

Abbildung 5: Ebene: NAO ist am Zug. Der Ablauf startet mit der roten Box und fhrt ber diegrne Box wieder in die Steuerungsebene (siehe Abbildung 4).

14

I spy with my little eye: Interaktion mit dem humanoiden Roboter NAO SoSe 2014

NAO hrtzu

NAO suchtUmgebung ab

Nao fragt nachNAO erfragtein weiteresAttribut

Nao gleichtAttribut

mitgefundenenObjekten

ab

NAO whltein Objekt aus

NAObenenntObjekt

Anzahl derbisherigenWiederho-lungen

Anzahl derWiederho-lungen

Ende zurckzur Steue-rungsebene

versteht Attribut

versteht Attribut nicht

passende Objekte > 0

richtigfalsch

kein passendes Objekt

I spy with my little eye: Interaktion mit dem humanoiden Roboter NAO SoSe 2014

4.2 SpracheEin sehr wichtiger Aspekt in Hinblick auf die Interaktion im Spiel besteht in NAOs Umgang mitSprache. Dabei muss zwischen sprachlichen uerungen von NAO und der Spracherkennung durchNAO unterschieden werden. Fr beide Punkte sollen im Folgenden die Voraussetzungen besprochenwerden. Des Weiteren werden die ersten Tests sowie die dabei entstandenen Probleme dargestellt.Anschlieend werden die dadurch resultierenden Anstze kurz diskutiert. Daraufhin wird kurz aufdie Implementierung eingegangen und Tests, Anpassungen und weitere Mglichkeiten besprochen.

4.2.1 NAOs Voraussetzungen

Der uns zur Verfgung gestellte NAO-Typ mit der Version V4 verwendet fr die Sprachaspekte eineSoftware von NUANCE. (Aldebaran-Robotics, 20062012 a und Aldebaran-Robotics, 20062012 e)Zu dieser Software werden allerdings keine Einzelheiten zur Implementierung bereitgestellt und zurSprachausgabe konnten keine Informationen erhalten werden. Eine undetaillierte Beschreibung desVorgehens der Software bei der Spracherkennung wird jedoch auf der englischsprachigen Wikipedia-Seite zu Nuance Communications dargestellt. Dort heit es, dass zunchst der Start des Sprach-Inputs bestimmt wird. Daraufhin werden Hintergrundgerusche mit Hilfe von Audio-Technikenherausgefiltert. Das verbleibende Audio-Material wird sodann in Segmente aufgeteilt, die eine Lngezwischen 10 und 100 ms besitzen sollen. Der Sound im jeden einzelnen Segment wird daraufhinfestgestellt. Als letzter Schritt werden die Kombinationen der einzelnen bestimmten Sounds mitden mglichen, zuvor festgelegten, Kombinationen verglichen. (Wikipedia, 2014 b)

4.2.2 Erste Tests, Probleme und Anstze

Sprachausgabe: Fr die Sprachausgabe in Python bentigt es nur die Verwendung eines Sprach-moduls, auf das die Methode say aufgerufen wird. Dies wird als kleine Einfhrung in Python unterNutzung eines einfachen Editors in NAOs Dokumentation erlutert und diente auch uns als Ein-stieg im Umgang mit Python und der Sprachausgabe. (Aldebaran-Robotics, 20062012 j) Hierbeiist es je nach Sprachpaket mglich noch unterschiedliche Sprachen zu whlen und die Lautstrkeund Geschwindigkeit der gesprochenen Worte oder Stze einzustellen. Der verwendete NAO sollteauf Englisch interagieren, wodurch die voreingestellten Werte ohne nderung bernommen werdenkonnten. Fr die Tests war fr uns von Bedeutung, ob NAOs Worte verstndlich sind. Deshalbnutzten wir die Objekte, die NAO spter erkennen sollte als Ansatzpunkt fr Worte, die wir teste-ten. Des Weiteren nutzten wir Stze, die fr das Spiel relevant sein oder dem Spiel einen Rahmengeben knnten. Dabei wurde deutlich, dass NAO manche Worte, wie exhausted mit einem briti-schen Akzent ausspricht, whrend Worte, wie bottle eher eine amerikanische Aussprache vermutenlassen. Des Weiteren gibt es Worte, die NAO sehr unnatrlich oder falsch ausspricht. Dazu gehrenWorte wie wastebin, bei dem NAO das e als eigenen Vokal ausspricht oder aber cupboard, das vonNAO sehr unsauber und unverstndlich ausgesprochen wird. NAO verwendet des Weiteren je nachInterpunktion eine unterschiedliche Intonation. Dadurch kann an der einen oder anderen Stelle dieSprachausgabe modelliert werden. Jedoch werden NAOs Stze hin und wieder sehr unverstndlich,oder NAO hebt die Stimme, obwohl dies an dieser Stelle nicht ntig oder richtig ist.

Spracherkennung: Zum Testen der Spracherkennung verwendeten wir zunchst die mitgelieferteSoftware Choregraphe. Dieses Interface ist fr Test der Spracherkennung besonders geeignet, daeine vorimplementierte Box zur Verfgung steht, die mit wenig Aufwand auf NAO gestartet werden

16

I spy with my little eye: Interaktion mit dem humanoiden Roboter NAO SoSe 2014

kann. Dabei kann ein Wortliste eingegeben werden und einige Werte interaktiv, whrend das Pro-gramm auf NAO bereits gestartet ist, gendert werden. Des Weiteren zeigt die Software in einfacherArt die verstandenen und nicht verstandenen Worte und Stze an. Diese knnen dann mit den ei-gentlich gesagten Worten und Stzen abgeglichen werden. Zunchst war fr uns von Bedeutung,in wie weit NAO berhaupt Worte und Stze versteht. Dabei stellte sich schnell heraus, dass derAbstand zu NAO und folglich zu NAOs Mikrofonen einen erheblichen Einfluss auf die Spracherken-nung ausbt. Da die Mikrofone im Kopf sitzen und NAO im vorliegenden Setting auf dem Tischsitzt, sollte die mitspielende Person sich hchstens einen Meter von NAOs Kopf entfernen und ambesten in NAOs Richtung sprechen. Dadurch erhht man die Chance einer korrekten Spracherken-nung. Als zweiter wichtiger Aspekte war fr das zu implementierende Spiel von Interesse, ob Stzewie I spy with my little eye something that is orange. und I spy with my little eye somethingthat is blue. richtig unterschieden werden knnen. Hierzu testeten wir, ob es reicht die einzelnenFarben orange und blue in die Wortliste aufzunehmen. Dies fhrte jedoch genauso wenig zu zufrie-denstellenden Ergebnisse, wie auch die Verwendung der ganzen Stze. Selbst die Verwendung einesunterschiedlich hohen Schwellenwertes der Wahrscheinlichkeit, dass dieses Wort oder dieser Satzgesagt wurde, was in Choregraphe unter Threshold einstellbar ist, konnte keine Sicherheit geben,dass NAO die Worte oder Stze im jeweiligen Fall und vor allem in der Kombination mit anderenWorten, die gleichzeitig in der Wortliste enthalten waren, richtig versteht. Diese Erkenntnis bedeu-tete ein starker Einschnitt in die Natrlichkeit des Spiels. Des Weiteren wurde deutlich, dass NAOnatrlich whrend er auf eine Spracheingabe wartet, jedes Gerusch analysiert. NAO kann nichtunterscheiden, ob die Worte an ihn gerichtet sind, oder zum Beispiel nur ein lautes Nachdenkenoder beraten mehrerer mitspielenden Personen beinhaltet. Dies erschien uns sehr unnatrlich undwir berlegten uns, wie wir diese Aspekte bei der Implementierung in den Griff bekommen knnten.

4.2.3 Umsetzung

Das gesamte Spiel luft ber Sprachsteuerung. Nachdem das Spiel gestartet wurde, fragt NAO,ob man spielen mchte. Daraufhin wird ausgehandelt, wer beginnt, sodann werden Attribute undObjekte benannt und eine Antwort gegeben. Die Korrektheit dieser Antwort wird geprft und rck-gemeldet. Als Abschluss jeder Runde wird des Weiteren gefragt, ob man aufhren oder weiterspielenmchte.

Sprachausgabe: Dabei stellt die Sprachausgabe bis auf manche weniger gut verstandenen Worteund Stze kein Problem dar und wurde von uns, wie bereits beim Testen beschrieben, in jederMethode direkt angesteuert und verwendet.

Spracherkennung: Die Implementierung der Spracherkennung hingegen stellte uns vor grerenHerausforderungen. Im Spracherkennungsmodul wurde zur Spracherkennung eine Methode imple-mentiert, der das jeweilige zu verstehende Vokabular bergeben wird. In der Methode wird zunchstdas Spracherkennungsmodul aufgerufen. Sodann muss die Sprache gesetzt werden, was in unseremFall Englisch ist. Daraufhin kann der Spracherkennung eine Wortliste, der zu erkennenden Worte,bergeben werden. Um gleichzeitig die Spracherkennung und weitere Aufgaben ausfhren zu kn-nen, wird hier mit dem Befehl post das parallele Arbeiten angestoen. Die erkannten Worte werdenin NAOs internen Memory gespeichert und knnen dort mit einem Befehl wieder abgerufen werden.Dabei werden, wie auch schon bei den NAO-Marks mehr Informationen gespeichert, als wir benti-gen, sodass in der Implementierung nur das jeweilige letzte Wort aus dem Memory abgerufen wird.Wichtig ist, dass nach der Nutzung des Spracherkennungsmodul dieses wieder beendet wird. An

17

I spy with my little eye: Interaktion mit dem humanoiden Roboter NAO SoSe 2014

dieser Stelle wre es auch mglich, noch den Threshold, der in Choregraphe als Parameter einstell-bar ist, nachzubilden. Da jedoch unter den gegebenen Umstnden nur einzelne Worte verstandenwerden mussten, stellte sich heraus, dass dieser Wert nicht verndert oder beachtet werden muss.Um die Spracherkennung gezielt starten zu knnen, verwendeten wir in einer ersten Version und

vor allem zum Testen einen Sensor. So sollte die Methode zur Spracherkennung erst dann gestartetwerden, wenn ein Fusensor gedrckt wird. NAO teilte dies dem Menschen mit und wartete auf dieBerhrung. Dadurch konnte, wie in einer natrlichen Situation blich, die ratende Person mitunterlaut denken und NAO reagierte erst, wenn man ihn durch Bettigen des Sensors direkt ansprach.

4.2.4 Weitere Tests, Anpassungen und Mglichkeiten

Sprachausgabe: Auf Seiten der Sprachausgabe erkannten wir des Weiteren bald, dass nach kurzerZeit das Spielen ermdend und langweilig wurde, da NAO immer mit dem gleichen Satz auf eineSituation reagierte. Deshalb entschieden wir uns fr alle relevanten und entscheidenden Situationeneine Auswahl von Stzen zu verwenden. Diese mussten vom Inhalt bereinstimmen, aber sich dochin der einen oder anderen Art unterscheiden. Dadurch sollte auch die Natrlichkeit in der Interak-tion mit NAO gesteigert werden. So wird nun zumeist aus drei Stzen einer zufllig ausgewhlt undgesagt. Da die einzelnen Spielsituationen in einem gemigten Abstand kommen, fllt es zumeistnicht auf, falls in einer bestimmten Situation wiederholt der gleiche Satz gesagt wird. Des Weite-ren ist dieses Phnomen auch bei Menschen bekannt, die in bestimmten Situationen auch hin undwieder mit dem gleichen Satz antworten. Aber auch dieses Problem knnte man beheben, indemder Satz, der beim letzten Mal genannt wurde, fr die nchste Runde markiert und somit nichtausgewhlt werden kann.

Spracherkennung: Das Drcken der Sensoren zur gezielten Spracheingabe fhrte zwar auf dereinen Seite zu einer greren Natrlichkeit und half einer gezielten Kommunikation, jedoch emp-fanden wir es auf der anderen Seite sehr unnormal, jedes mal wenn man mit einer Person odereinem Roboter reden mchte, ihn zunchst berhren zu mssen. Deshalb entschieden wir uns ineiner berarbeitungsphase dafr, NAO sofort zuhren zu lassen. Dies beschleunigt und erleichtertdie Kommunikation in vielerlei Hinsicht, weshalb wir die bereits benannten Nachteile als kleineresProblem in Kauf nahmen, jedoch zum Beispiel beim Spielen und Prsentieren von NAO in einerGruppe junger Schler Wiedererkennen konnten. NAO fasst jedes Wort auf und bezieht es auf sich.So war es whrend des Spieles kaum mglich den Schlern Aspekte zum Spiel zu erklren.Nach ersten Tests mit der beschriebenen Implementierung entschieden wir uns in die Steuerung

Abbruchbedingungen einzubauen. Auf Grund nicht verstandener Worte konnte es im schlimmstenFall zu Endlosschleifen kommen, in denen NAO den Menschen nicht verstand und immer wiedernachfragte. Gerade auf Grund bestimmter Worte, die NAO nur mit einer sehr unnatrlichen Beto-nung verstand, konnten diese Situation als sehr anstrengend und unangenehm empfunden werden.Deshalb sollte je nach Situation mit falsch verstandenen Worten unterschiedlich umgegangen wer-den. Bei Fragen zu yes und no entschieden wir uns dafr, dass NAO bei einer nicht verstandenenAntwort ein zweites Mal nachfragt. Wird daraufhin wieder nichts verstanden, so geht NAO davonaus, dass die Antwort no war und teilt dieses dem Spielenden mit. Da dieses Verhalten immergezeigt werden soll, wenn es um eine ja-nein-Entscheidung geht, ist diese Methode ebenfalls imModul zur Spracherkennung und greift auf die Methode zur Spracherkennung intern zu. Auch dieMethode zur Klrung wer beginnen soll, wird in diesem Modul organisiert und geht hnlich vor.Da die Programmlogik bei allen anderen Fllen sehr spezifisch ist, und sie unserer Meinung nach

zur bersichtlichkeit im Ablauf der jeweiligen Spiel-Methode ersichtlich sein sollte, wurde in allen

18

I spy with my little eye: Interaktion mit dem humanoiden Roboter NAO SoSe 2014

anderen Fllen die Steuerung in den Programmablauf integriert und nur die Spracherkennungs-methode mit einem bestimmten Vokabular aufgerufen. Whrend in einer ersten Version immeralle mglichen Worte bergeben wurde und NAO sich dann beschwerte, wenn das passende Wortnicht mit einer erwarteten Antwort bereinstimmte, entschlossen wir uns sodann, NAO jeweils nurspezifische Worte mitzugeben. Dadurch konnte die Wahrscheinlichkeit eines richtigen Verstehensdeutlich angehoben werden. Dieses Vokabular stellt sich NAO unter anderem aus seinem Gedcht-nis zusammen. Dort knnen zum Beispiel die einzelnen Attribute oder Objekte abgerufen werdenund diese dienen dann als Wortliste fr die Spracherkennung.Das grte Problem, das wir in unserer Implementierung nicht in den Griff bekommen konnten,

liegt in der Spracherkennung. Da NAO bei lngeren Stzen grere Probleme mit dem Verstndnisaufweist, bleibt hier die Natrlichkeit der Interaktion zurck. In der vorliegenden Implementierungwird versucht durch gezielte Frage nach einem Attribut diese Situation zu umgehen, jedoch wrdedas Spiel normalerweise vom Menschen erfordern, dass die Person I spy with my little eye some-thing that is... sagt. Dies konnte jedoch mit NAOs integrierter Spracherekennungssoftware nichtzufriedenstellend gelst werden.

19

I spy with my little eye: Interaktion mit dem humanoiden Roboter NAO SoSe 2014

4.3 KopfbewegungWie bereits in Abschnitt 3.1 erwhnt, ist es uns von Bedeutung, dass NAO im Spielverlauf whrendder Suche nach Gegenstnden seinen Kopf mglichst natrlich bewegt. Darber hinaus soll NAOverschiedene Kopfbewegungen beherrschen und zwischen diesen Bewegungen variieren, so dass seinVerhalten insgesamt natrlich wirkt. In diesem Abschnitt wird zunchst dargestellt, welche Vor-aussetzungen NAO mitbringt. Anschlieend wird unser Vorgeben beim modellieren verschiedenerKopfbewegungen beschrieben und dieses Vorgehen bewertet.

Abbildung 7: Die beiden Kopfgelenke HeadPitch und HeadYaw sowie deren maximale Drehradien(Aldebaran-Robotics, 20062012 i)

4.3.1 NAOs Voraussetzungen

Das Framework NAOqi erlaubt es, alle Gelenke von NAO entweder in Gruppen (z. B. als KrperteilKopf, das aus zwei Gelenken besteht) oder einzeln anzusteuern. In Abbildung 7 sind die beidenKopfgelenke sowie deren maximale Drehradien dargestellt. Das Gelenk HeadYaw ist fr die Steue-rung des Kopfs in der Horizontalen (max. 119,5 nach links oder rechts) und das Gelenk HeadPitchist fr die Bewegung in der Vertikalen (max. 29,5 nach unten und 38,5 nach oben) zustndig.Um ein Gelenk mit Pythoncode zu steuern, mssen Name des Gelenks, Zielwinkel in Radianten

und Geschwindigkeit zur Erreichung des Zielwinkels definiert werden. Mithilfe von verschiedenenInterpolationen ist es mglich, die Bewegung der Gelenke weich zu modellieren.

20

I spy with my little eye: Interaktion mit dem humanoiden Roboter NAO SoSe 2014

4.3.2 Umsetzung

Da NAO fr unseren Zweck keine vorgefertigten Kopfbewegungen bereitstellte, entscheiden wir unseigene Bewegungen zu modellieren. Zur Modellierung der Kopfbewegung nutzten wir das ProgrammChoregraphe. Nach der Modellierung lassen sich die Bewegungsdaten in Pythoncode exportieren.Alternativ wre es mglich die Bewegungsdaten direkt im Pythoncode zu definieren. Das ProgrammChoregraphe bietet bei der Bewegungsmodellierung unter anderem jedoch eine visuelle Unterstt-zung mithilfe eines Timeline-Editors an und ermglicht es zudem, die Bewegungen gleichzeitig mitNAO zu simulieren oder, als mit NAO manuell duchgefhrte Bewegungssequenz, aufzunehmen.Dies erleichtert die Modellierung in vielen Aspekten. Unser vorgehen soll hier in Form einer kleinenAnleitung beschrieben werden.

Kopfbewegung in Choregraphe modellieren: Zunchst muss das Programm Choregraphe ge-ffnet werden. Nach dem ffnen wird ein leerer Diagrammbereich angezeigt, der genutzt werdenkann, um Verhaltensablufe zu programmieren. In den Boxlibraries auf der linken Seite findet manverschiedene vordefinierte Bewegungsablufe, die durch Ziehen in den Diagrammbereich und Ver-bindung mit anderen Boxen in den Verhaltensablauf integriert werden knnen. Da wir eine eigeneBewegung modellieren mchten, bentigen wir die Box Timeline, die in dem Ordner Templates zufinden ist. Die Box muss zunchst in den Diagrammbereich gezogen werden (siehe Abbildung 8).

Abbildung 8: Timeline Box in den Diagrammbereich ziehen.

Nachdem das Bearbeitungsfenster (siehe Abbildung 9) durch einen Doppelklick auf das Symbol derBox geffnet wird, sieht man verschiedene Behaviorlayers, die zu der Bewegung gehren. Um dieKopfbewegung zu definieren, muss auf das Stiftsymbol im Bereich Motion geklickt werden, das inAbbildung 9 orange eingerahmt ist.

21

I spy with my little eye: Interaktion mit dem humanoiden Roboter NAO SoSe 2014

Abbildung 9: Auf das Stiftsymbol (orangener Rahmen) klicken, um den Timeline-Editor zu ffnen

Daraufhin ffnet sich der Timeline-Editor, der in Abbildung 10 zu sehen ist. In diesem Editor mussauf die Ansicht Curves, das links neben dem vorausgewhlten Symbol platziert ist, umgeschaltetwerden.

Abbildung 10: Timeline-Editor: Hier muss auf die Ansicht Curves (Symbol links neben dem ausge-whlten Symbol) umgeschaltet werden.

Die Curves-Ansicht ist in Abbildung 11 zu sehen. In dieser Ansicht ist eine exemplarische Kopf-bewegung dargestellt. Entlang der X-Achse, auf der die Zeit abgetragen ist, werden die Keyframesplatziert. Die Y-Achse stellt den Winkel der Gelenke dar. Fr die Kopfbewegung werden, wie bereitserwhnt, nur die beiden Kopfgelenke HeadYaw und HeadPitch verwendet.

22

I spy with my little eye: Interaktion mit dem humanoiden Roboter NAO SoSe 2014

Abbildung 11: Curves-Ansicht des Timeline-Editors: Setzen der Keyframes der Gelenke HeadYawund HeadPitch, um die Kopfbewegung zu modellieren.

bertragen der Bewegungsdaten nach Python: Um die Kopfbewegungen in unser Pythonpro-gramm zu integrieren, ist es notwendig die Daten der Keyframes in Pythoncode zu exportie-ren. Dafr muss man in die Behaviorlayer-Ansicht zurckkehren. Anschlieend mssen, mit ei-nem Rechtsklick auf einen beliebigen Keyframe und der Auswahl Selection sowie Select all, alleKeyframes ausgewhlt werden. Sind alle Keyframes selektiert, kann man wie in Abbildung 12 dar-gestellt, wiederum mit einem Rechtsklick auf einen beliebigen Keyframe Export motion to clipboardauswhlen und danach Python und Bezier auswhlen.

Abbildung 12: Kopfbewegung in Pythencode exportieren

Auf dem gerade beschriebenen Weg haben wir insgesamt vier verschiedene Kopfbewegungen model-liert, die von NAO zufllig durchgefhrt werden, sobald er seine Umgebung nach Objekten absucht.Zudem wurden drei krzere Kopfbewegungen entwickelt, die genutzt werden, wenn NAO nur eineSuche simuliert, jedoch auf bereits gefundene Objekte in seinem Gedchtnis zurckgreift. Wichtig

23

I spy with my little eye: Interaktion mit dem humanoiden Roboter NAO SoSe 2014

ist dabei, dass die Stiffness von NAOs Kopfgelenken eingeschaltet wird, bevor NAO eine Kopfbe-wegung durchfhrt. Nachdem die Bewegung abgeschlossen ist, muss die Stiffness dementsprechendwieder ausgeschaltet werden.

4.3.3 Bewertung

Nachdem wir zunchst einige Kopfbewegungen in Choregraphe ber eine Remoteverbindung anNAO getestet hatten und uns schlielich auf ein Set von Kopfbewegungen festlegten, konnten wirdie Kopfbewegungen in den Interaktionsablauf des Spieles integrieren. Wir prften die Natrlichkeitder Kopfbewegungen whrend des Spieles und stellten fest, dass manche Bewegungen anfangs etwaszu schnell und an manchen Stellen zu hektisch und ruckartig wirkten. Daraufhin nahmen wir einigeAnpassungen an den Bewegungsparametern der beiden Kopfgelenke vor.Unserer Ansicht nach wirken die Kopfbewegungen nun so natrlich wie es uns mit NAO mglich

erscheint. Sicherlich liegt es aber im Auge des Betrachters, wie natrlich die Bewegungen bewer-tet werden. Hier wre es mglicherweise sinnvoll, ein Ratingverfahren mit einer Stichprobe vonProbanden durchzufhren, um die Natrlichkeit der Bewegungen zu bewerten.

24

I spy with my little eye: Interaktion mit dem humanoiden Roboter NAO SoSe 2014

4.4 ObjekterkennungIm folgenden Teil soll auf die Voraussetzungen, Probleme und Implementierung der Objekterken-nung fr das Spiel eingegangen werden.

4.4.1 NAOs Voraussetzungen

NAOs Software zur Objekterkennung kann unter anderem mit vorimplementierten Boxen in Cho-regraphe angesteuert werden. Dabei wird zwischen Gesichtserkennung, Objekterkennung und densogenannten NAO-Marks, auch Land-Marks genannt, unterschieden. NAO-Marks sind, wie in Ab-bildung 13 links abgebildet, kreisfrmig und ihr Inneres ist mit unterschiedlichen Formen zu unter-schiedlichen Flchenanteilen gefllt. Jede Mark hat eine Nummer und wird von NAO mit dieserNummer erkannt. Die Anzahl der mitgelieferten NAO-Marks ist jedoch auf zehn Stck begrenzt.Die Objekterkennung enthlt zunchst keine Objekte. Diese knnen beliebig zum Beispiel mit Hilfedes Choregraphe Interfaces gelernt werden. Objekte mssen erfasst und knnen dann als Biblio-thek auf NAO geladen werden. Bei der Gesichtserkennung handelt es sich wiederum um eine bereitsvorimplementierte Option, die in vielen Aspekten erweiterbar ist, jedoch auf Grund verschiedenerProbleme von zugehrigen Methoden in der gerade verfgbaren NAO-Version nicht verwendet wur-de. Die ebenfalls mitgelieferte NAO-Software Monitor war vor allem zum Testen von Bedeutung.Mit Hilfe dieses Interfaces knnen beide Kameras von NAO angesteuert werden und das Bild wirdsofort auf dem Bildschirm angezeigt. Dabei kann durch Zusatzoptionen unter anderem sichtbargemacht werden, welches Gesicht, welches Objekt oder welche NAO-Mark erkannt wird.

(a) NAO-Mark 107(Aldebaran-Robotics, 2011/2012 b)

(b) von NAO falsch erkannte Marks

Abbildung 13: Mark-Detection

25

I spy with my little eye: Interaktion mit dem humanoiden Roboter NAO SoSe 2014

4.4.2 Erste Tests, Probleme und Anstze

Um Herauszufinden, wie die Objekterkennung von NAO im vorliegenden Spiel implementiert wer-den knnte, testeten wir sowohl die Objekterkennung, als auch die NAO-Marks. Da die NAO-Marksbereits vorimplementiert sind, begannen wir damit einige Antworten auf Fragen zur Objekterken-nung zu suchen. Insbesondere wollten wir wissen, wie weit eine NAO-Mark entfernt sein durfte,damit diese gut erkannt werden konnte; oder welche ueren Einflsse, wie unterschiedliche Licht-verhltnisse, eine Rolle spielen. Als dritten entscheidenden Aspekt wollten wir erfahren, ob dieNAO-Mark einen bestimmten Winkel oder eine bestimmte Orientierung bentigt, um erkannt zuwerden.Im ersten Setting sa NAO auf einem Tisch und wir hielten ihm die einzelnen NAO-Marks vor

die Kamera. In spteren Versuchen stellten wir die NAO-Marks in das Regal, wie auf Abbildung 3zu sehen ist. Dabei erkannten wir, dass auf die Entfernung von ungefhr zwei Metern NAO-Marksmit einem Durchmesser von 9 cm zu klein sind. Daraufhin verwendeten wir NAO-Marks mit einemDurchmesser von ungefhr 13 cm. Diese wurden von NAOs Sitzposition gut erkannt, wie Abbil-dung 14 verdeutlicht. Auch die Lichtverhltnisse spielen eine bedeutende Rolle bei der Erkennungder Marks. Die Marks werden auf Grund von Kontrastunterschieden erkannt. (Aldebaran-Robotics,20062012 g) Hlt man eine NAO-Mark vor ein Fenster das von der Sonne beschienen wird, so er-kennt NAO die Mark schlechter. Ebenfalls wird die Erkennung geringer, wenn es in einem Raum zuDunkel wird. Abgesehen von derartigen Extremen ist die Erkennung in einem sehr weiten Rahmenmglich. Ein weiterer sehr wichtiger Aspekt fr die richtige Erkennung einer Mark liegt im Winkelder Mark. Es ist kein Problem die Mark zu drehen und zum Beispiel auf den Kopf zu stellen. Jedochkann ein anderer Winkel, indem zum Beispiel der obere Teil weiter weg ist als der untere Teil derMark, dazu fhren, dass andere oder gar keine Mark erkannt wird, was ebenfalls in Abbildung 14ersichtlich wird. Dies gilt auch zum Beispiel fr den Fall, dass die Mark vor NAO auf dem Tischliegt. Ein weiteres erkanntes Phnomen besteht darin, dass NAO in manchen Situationen Markserkennt, die jedoch gar nicht da sind. Dies ist in Abbildung 13 rechts dargestellt.Auf Grund der guten Testresultate mit den NAO-Marks machten wir nur wenige Tests mit der

Objekterkennung. Die Erfassung eines Objekts ist mit Choregraphe relativ einfach umzusetzen. Esgibt in der Video monitor Ansicht eine Option des Objektlernens. Es wird ein Bild vom gezeigtenObjekt gemacht. Die Auenkonturen des Objekts mssen sodann per Hand umzeichnet werden.Daraufhin kann dem Bild des Objekts eine Beschreibung und Position hinzugefgt werden odereinem Buch oder Ort zugeordnet werden. Objekte werden in einer Bibliothek gespeichert undknnen daraufhin auf NAO geladen werden. Auch diese Objekte werden, sobald sie ungefhr diePosition des hinterlegten Bildes einnehmen, erkannt. Um die Verwendung der Objekterkennungjedoch umzusetzen, htte es noch eine Vielzahl an weiteren Tests bentigt, die hnliche Aspekte wiebei den NAO-Marks aufgreifen. Jedoch ist die Testung und Nutzung von dieser Objekterkennung umeiniges umfangreicher, da erst selbst die Bibliothek mit Bildern fr jedes Objekt aus verschiedenenPositionen erstellt und kategorisiert werden muss. Des Weiteren kann durch die NAO-Marks einflexibleres Setting erreicht werden. Die Marks knnen berall angebracht werden und zum Beispielknnen verschiedene Bcher als Stellvertreter der Mark genutzt werden. Bei der Objekterkennungwrde nur ein spezifisches Buch in einer vordefinierten Position zur Erkennung fhren. Aus diesenGrnden beschrnken wir uns in diesem Projekt auf NAO-Marks.

26

I spy with my little eye: Interaktion mit dem humanoiden Roboter NAO SoSe 2014

Abbildung 14: NAOs Perspektive der Mark-Detection

4.4.3 Umsetzung

Zum Ansteuern der Land-Mark-Detection wird im Suchmodul das Speichern von gefundenen Marksangestoen. Die Daten befinden sich sodann im Modul fr NAOs Gedchtnis, ber den man an dieListe der gefundenen Marks aufrufen kann. Diese Liste beinhaltet viele verschiedene Informationenzur Nummer der gefundenen Mark, unter anderem aber auch zur Zeit und Position des Auffin-dens. Da im vorliegenden Fall nur die Nummer von Interesse ist, greifen wir nur diese Informationab und speichern sie in einer eigenen Variablen. Nachdem die Suche beendet ist, werden die ge-fundenen NAO-Marks noch von fehlerhaften Daten bereinigt. Dies ist notwendig, da zum einenNAO-Marks mehrfach gefunden werden und zum anderen wie bereits beim Testen beschrieben,fehlerhafte Marks erkannt werden. Alle fr das Spiel bekannten Marks liegen im eigens implemen-tierten Objektgedchtnis. Nur Marks, die mit diesen Nummern bereinstimmen, werden ausgewhltund als gefunden zurckgegeben.

4.4.4 Weitere Tests, Anpassungen und Mglichkeiten

Die Mark-Detection funktioniert im vorliegenden Fall, solange das Setting eingehalten wird, sehrgut. Probleme gibt es vor allem dann, wenn Licht durch die Fenster ungnstig einzelne Marksbeleuchtet, oder der Winkel zur Erkennung nicht passt. Da es in der vorliegenden Implementierungjedoch nicht darauf ankommt, dass immer alle Marks entdeckt werden, stellt dies kein greresProblem dar. Die Anzahl der Marks ist jedoch sehr gering, wodurch die Spielmglichkeiten sehrschnell erschpft werden. Deshalb fragten wir in der Aldebaran Community nach, ob es weitereMarks gibt. Daraufhin erhielten wir neue Marks, sodass insgesamt 29 Stck zur Verfgung stehen,die jedoch in der vorliegenden Implementierung nicht alle mit Objekten kategorisiert und verwendet

27

I spy with my little eye: Interaktion mit dem humanoiden Roboter NAO SoSe 2014

werden.1 Des Weiteren wurden wir darauf hingewiesen, dass NAO auch mit Bar-Codes arbeitenkann. Diese Option knnte zur Erweiterung des Spieles genutzt werden. Da aber fr unsere Zweckenicht das Spiel als solches im Vordergrund steht, sondern eher die Erkenntnisse ber Optionen imUmgang mit humanoiden Robotern, belieen wir es in dieser Implementierung bei den NAO-Marks.

1Alle erhaltenen Marks befinden sich auf der beigelegten CD.

28

I spy with my little eye: Interaktion mit dem humanoiden Roboter NAO SoSe 2014

4.5 ObjektgedchtnisDamit NAO im Spielverlauf zu den erkannten NAO-Marks Objektnamen oder Objektattributeabrufen kann, ist es notwendig, dass er ein Objektgedchtnis besitzt. In diesem Abschnitt wirdbeschrieben, welche Voraussetzungen bei NAO fr ein Objektgedchtnis bereits gegeben sind undwie wir das Gedchtnis implementierten. Dabei soll zunchst auf die Datenstruktur eingegangenund anschlieend die Abrufmethoden beschrieben werden. Schlielich folgt eine kurze Bewertungdes Vorgehens.

4.5.1 NAOs Voraussetzungen

Fr den Zweck des Spiels bentigt NAO ein Gedchtnis, das Objekte und dazugehrige Attributespeichern kann. Darber hinaus muss NAO mit Abruffunktionen ausgestattet sein, die ihm er-mglichen, in einer bestimmten Situation die gewnschten Inhalte der Objekten zu bestimmen.Ist NAO beispielsweise am Zug und hat ein Objekt gewhlt, muss er alle dazugehrigen Attributeabrufen, damit er im nchsten Schritt seinem menschlichen Gegenber eines nennen kann. Zudemmuss NAO auf der anderen Seite imstande sein, zu einem gegebenen Attribut alle passenden Ge-genstnde aus dem ihm bekannten Objekten herauszufiltern, um auf ein vom Menschen gegebenenAttribut reagieren zu knnen.Das mitgelieferte Framework NAOqi bietet ein Memory-Modul an, in dem Schlssel-Wert-Paare

gespeichert werden knnen. Dies ermglicht es, Werte mithilfe eines Schlssels abzuspeichern undspter wieder abzurufen. Allerdings besitzt es nicht die gerade beschriebenen Abruffunktionen, dieNAO im Laufe des Spiels bentigt. Daher implementierten wir ein eigenes Objektgedchtnis alsPython-Modul, das auf die speziellen Gegebenheiten des Spiels angepasst ist.

4.5.2 Umsetzung

Das Gedchtnis besteht im Kern aus einer Liste, die aus mehreren Unterlisten aufgebaut ist. JedeUnterlisten reprsentieren ein Objekt, das NAO kennt und enthlt folglich eine NAO-Mark-ID, denObjektnamen sowie die Attribute Objektfarbe, Objektgre und Objektmaterial. Ein Beispiel fr dasObjekt Stuhl sieht folgendermaen aus:

[119, chair, blue, large, made of metal]

Mithilfe von verschiedenen Abruffunktionen, die in Tabelle 1 dargestellt sind, soll es NAO mglichsein, je nach Spielsituation die gewnschten Informationen abzurufen.Durch die Implementierung eines individuell an das Spiel angepasste Gedchtnismodul lassen sich

beliebige weitere Abruffunktionen ergnzen. Die Reprsentationen der Gedchtnisinhalte in Formvon Listen machen den Zugriff auf das Gedchtnis besonders einfach. Zudem lassen sich beliebigeObjekte und Attribute ohne groen Aufwand ergnzen. Weitere Objekte knnen hierbei einfach inder Liste hinzugefgt werden, nach einem Hinzufgen von neuen Attributen mssen lediglich dieAbrufmethoden angepasst oder ergnzt werden.

29

I spy with my little eye: Interaktion mit dem humanoiden Roboter NAO SoSe 2014

Funktion BeschreibunggetAttributesForMarkID(id) Die Methode gibt alle Attribute zurck, die zu einem be-

stimmten Objekt gehren und wird dann verwendet, wennNAO am Zug ist und ein zuflliges Attribut von dem ge-whlten Objekt nennen soll.

getNameForMarkID(id),getColourForMarkID(id),getSizeForMarkID(id),getMaterialForMarkID(id)

Diese Methoden geben einzelne Attribute fr ein be-stimmtes Objekt zurck.

getMarkIDsWithColour(colour),getMarkIDsWithSize(size),getMarkIDsWithMaterial(material)

Diese Methoden rufen alle Objekte aus dem Gedchtnisab, die bestimmte Attribute haben und geben deren IDszurck. Sie werden dann verwendet, wenn der Mensch amZug ist und ein Attribut genannt hat.

getAllKnownAttributes(),getAllKnownColours(),getAllKnownSizes(),getAllKnownMaterials()

Diese Hilfsmethoden dienen zum Definieren eines Voka-bulars fr NAOs Spracherkennungsmodus.

Tabelle 1: Abruffunktionen des, an das Spiel angepassten, Gedchtnis-Moduls.

4.5.3 Tests

Tests ergaben, dass alle notwendigen Inhalte aus dem Gedchtnis abgerufen werden knnen. Dar-ber hinaus lieen sich die Funktionen einfach in den Spielablauf integrieren. Daher erschien es fruns nicht notwendig, Anpassungen an der Struktur vorzunehmen. Fr die im vorliegenden Fall we-nigen zu verwaltenden Objekte ist die Struktur ausreichend, jedoch knnte sich dies ndern, wenndie Anzahl der zu verwaltenden Objekte oder Attribute in einem hohen Mae ausgeweitet wird.

30

I spy with my little eye: Interaktion mit dem humanoiden Roboter NAO SoSe 2014

5 Nutzung eines BootloadersDer verwendete Bootloader ermglicht es, Programme, die auf NAO aufgespielt wurden, ohne dieHilfe eines Computers anzusteuern. In der vorliegenden Implementierung soll das Spiel beginnen,wenn der mittlere Kopfsensor berhrt wird.Hierfr verwenden wir eine Bootloader-Datei, die zusammen mit allen Programm-Dateien in

einem Ordner auf NAO liegen mssen. Damit die Bootloader-Datei beim Starten von NAO auf-gerufen wird, muss die auf NAO liegende autoload.ini-Datei um einen Befehl zum Ansteuern desBootloaders erweitert werden. Die Vorgehensweise soll im Folgenden kurz erlutert werden.

5.1 Bootloader.pyIm vorliegenden Fall wurde eine Python-Datei als Bootloader verwendet, da auch das gesamte Spielin Python geschrieben wurde. Der vorliegende Bootloader wurde mit Hilfe der Aldebaran documen-tation (Aldebaran-Robotics, 20062012 c) und einem Beispiel aus einem vorherigen dokumentiertenProjekt entwickelt.Zunchst haben wir eine Bootloader-Datei (bootloader.py) erstellt, in der eine Klasse Bootloa-

der definiert ist. Das Python-Modul ist fr das Laden des Hauptprogramms zustndig und solldie Funktion steuern, die das Spiel per Berhrung des mittleren Kopfsensors startet. Wie diesfunktioniert, ist in dem folgenden Codeabschnitt dargestellt:

" " "S t a r t s the game on touch o f the middle head senso r o f NAO." " "class Bootloader (ALModule ) :

def __init__( s e l f , name ) :

ALModule . __init__( s e l f , name)

global memoryglobal mainmain = ispy_mainmemory = ALProxy( "ALMemory" )memory . subscribeToEvent ( " MiddleTacti lTouched " , " boot loader " ," onTouched " )

Method s t a r t s the game , when middle head senso r o f NAO i s touched . def onTouched ( s e l f , _args ) :

memory . unsubscribeToEvent ( " MiddleTacti lTouched " , " boot loader " )# s u b s c r i b e to t h e s e even t smemory . subscribeToEvent ( " MiddleTacti lTouched " , " boot loadr " ," onSecondTouch " )# s t a r t main func t i onmain . s t a r t ( )

31

I spy with my little eye: Interaktion mit dem humanoiden Roboter NAO SoSe 2014

Bei der Initialisierung der Klasse Bootloader wird das Hauptmodul des Spiels in eine globaleVariable geladen. Das Spiel wird mit der Methode onTouched gestartet, die ausgefhrt wird, sobaldder mittlere Kopfsensor berhrt wird.Damit unsere Bootloader-Datei als NAOqi-Modul auf NAO lauffhig wird, muss diese einen

Broker enthalten. Der Broker ist dafr zustndig, die Datei autoload.ini und alle darin definiertenBibliotheken zu laden. Die Bibliotheken enthalten ein oder mehrere Module. Da der Broker dieVerbindung zwischen den Modulen herstellt, darf er nicht beendet werden solange das Programmluft. Wir haben den Broker in der Main-Methode unserer Bootloader-Datei erstellt. Im folgendenCode ist dargestellt, wie ein Broker erstellt wird:

def main ( ) :

pa r s e r = OptionParser ( )pa r s e r . add_option ( "pip " ,

help=" Parent broker port . The IP address or your robot " ,des t=" pip " )

par s e r . add_option ( "pport " ,help=" Parent broker port . The port NAOqi i s l i s t e n i n g to " ,des t=" pport " ,type=" in t " )

par s e r . s e t_de f au l t s (pip=NAO_IP,pport=9559)

( opts , args_ ) = par s e r . parse_args ( )pip = opts . pippport = opts . pport

myBroker = ALBroker ( "myBroker " ," 0 . 0 . 0 . 0 " , # l i s t e n to anyone0 , # f i n d a f r e e por t and use i tpip , # parent broker IPpport ) # parent broker por t

global boot loaderboot loader = Boot loader ( " boot loader " )try :

while True :time . s l e e p (1 )

except KeyboardInterrupt :printprint " In te r rupted by user , shut t ing down"myBroker . shutdown ( )sys . e x i t (0 )

Sobald die Bootloader-Datei geladen wird, wird die Main-Methode ausgefhrt. Diese erstellt eineInstanz der zuvor definierten Bootloader-Klasse, die oben beschrieben ist und welche wiederumunser Spiel ldt.

32

I spy with my little eye: Interaktion mit dem humanoiden Roboter NAO SoSe 2014

5.2 Up- und Download von Dateien auf NAOFr den Up- und Download von Dateien auf NAO stellt die mitgelieferte Software Choregraphe eineinfaches Interface zur Verfgung, das auch im vorliegenden Fall verwendet wurde. Whrend des Up-und Downloads muss eine Verbindung zu NAO bestehen. In der Choregraphe-Version 1.14.5 kannunter dem Menpunkt Connection der Unterpunkt Advanced ausgewhlt werden. Dort wiederumgibt es die Mglichkeit den Punkt File transfer zu whlen (siehe Abbildung 15). Nach Eingabe deszu NAO gehrenden Namens und Passwortes ffnet sich ein Fenster in dem die Ordner und Dateienangezeigt werden, die auf NAO gespeichert sind.

Abbildung 15: File Transfer

Hier knnen mit einem Rechtsklick weitere Optionen gewhlt werden und dadurch unter anderemOrdner angelegt oder gelscht werden. Des Weiteren stehen Buttons zum Up- und Download zurVerfgung, die in gewohnter Art das Auswhlen einer Datei oder das Auswhlen eines Speicherortsermglichen.Die zu ersetzende autoload.ini-Datei kann unter folgendem Pfad gefunden werden:

naoqi\preferences\autoload.ini.

5.3 autoload.iniDie Datei autoload.ini enthlt eine Liste derjenigen Module, die beim Starten zustzlich zu dennormalen NAO-Modulen kompiliert werden. Dabei wird zwischen Modulen, Python-Modulen undProgrammen unterschieden. Um diese Datei zu ndern, sollte sie zunchst mit Hilfe eines Dow-nloads, wie im Abschnitt 5.2 beschrieben, auf dem eigenen Rechner gespeichert werden. Sodannkann in der Datei unter [python] der voll spezifizierte Pfad zum Python-Modul angegeben werden.(Aldebaran-Robotics, 20062012 f)Beim Uplaod-Fenster gelangt man zunchst in den Ordner nao. Wird dort zum Beispiel ein neuer

Ordner namens ispy angelegt und ist darin das Python-Modul bootloader.py gespeichert, dann sieht

33

I spy with my little eye: Interaktion mit dem humanoiden Roboter NAO SoSe 2014

der in der autolaod.ini einzufgende Pfad wie folgt aus: /home/nao/ispy/bootloader.pySodann kann diese Datei mit einem Upload, wie in Abschnitt 5.2 beschrieben, auf NAO gendert

werden. Nach einem Neustart von NAO wird das Programm, das in bootloader.py programmiertist, ausgefhrt.

34

I spy with my little eye: Interaktion mit dem humanoiden Roboter NAO SoSe 2014

6 Zustzliche projektspezifische Aspekte6.1 Aufgetretene Probleme und LsungenZu den bereits geschilderten Problemen soll zustzlich in diesem Projektbericht kurz auf weite-re Aspekte eingegangen werden, die whrend des Projekts aufgetreten sind. Dazu gehrt unteranderem eine weitere von Aldebaran-Robotics mitgelieferte Software namens Webots, die NAOsFunktionen in einem greren Rahmen simulieren kann. Diese Software konnte auf mehreren Be-triebssystemen nur bedingt zum Laufen gebracht werden, weshalb sie in dieser Arbeit nicht genutztwerden konnte. Die Simulation htte dabei geholfen, auch ohne NAO zur Verfgung zu haben, neueTeile der Implementierung zu testen. Fr die Simulation von Sensoren diente ein von einer anderenStudierenden erhaltener Simulationhelper, der auf einem kleinen Python-Programm basiert. Fralle anderen Aspekte musste jedes Mal an NAO selbst getestet werden. Ein weiteres Problem er-gab sich aus einer fehlerhaften oder eingeschrnkten Dokumentation der Python-Methoden. DieOnline-Dokumentation war an vielen Stellen mangelhaft oder falsch und enthielt einige nicht funk-tionierende Methoden und unkommentierte oder nicht funktionierende Parameter. Des Weiterenmusste in wenigen Fllen auf Grund einer in Wartung befindlichen Online-Dokumentation auf diemit NAO ausgelieferte CD zurckgegriffen werden, die natrlich auch nicht an jeder Stelle auf demaktuellen Stand ist.

6.2 Weitere ImplementierungsvorschlgeGerade Spiele haben ein hohes Potenzial an Verbesserungsmglichkeiten. Im Folgenden sollen einpaar Ideen kurz angesprochen werden. Zum einen knnte das Sprachverstndnis von NAO weiterausgebaut werden. So knnte zum Beispiel auch die Antwort of course eine Zustimmung auf eineja-nein-Frage darstellen. Dies wrde eine natrlichere Interaktion begnstigen, trifft aber auf diebereits angesprochenen Probleme der Spracherkennung. Des Weiteren kann NAO in der vorlie-genden Implementierung auf Abbrche whrend des Spiels nicht reagieren. Hierzu knnte man anbeliebigen Stellen Abbruchbedingungen per Sprachsteuerung oder Sensoren einbauen. Dabei mss-te jedoch jeweils zustzlich geprft werden, ob nur eine bestimmte Runde oder das gesamte Spielbeendet werden soll. Hinzu kommt, dass ein Abbruch auf Grund von falsch verstandenen Wortenein wenig kontrollierbares Problem darstellt. Fr eine natrliche Interaktion knnte NAO des Wei-teren eine zufllige oder auf Grund des Spielverlaufs bedingte emotionale Verfassung mitgegebenwerden. NAOs Reaktion auf das falsche oder richtige Erraten eines Objekts knnten dabei eineRolle spielen, aber auch, wie lange das Spiel schon dauert. Zustzlich wrde es helfen, wenn NAOhin und wieder die Blickrichtung eines Menschen verfolgt und dadurch vielleicht einen Tipp frdas richtige Objekt erhlt. Dabei wre es wahrscheinlich hilfreich NAOs Position nicht nur auf dasSitzen auf einem Tisch zu beschrnken. Hinzu kommt die Beschrnkung auf ein faires und ehrlichesSpiel zwischen Menschen. NAOs naives Verhalten knnte mit Hilfe von Prfalgorithmen verbessertwerden. Des Weiteren wre es mglich NAO ebenfalls mit Methoden auszustatten, durch die ersich Vorteile verschafft. Die Frage, ob NAO auf Grund dieses Verhalten jedoch mehr oder weni-ger angenommen wird, kann hier nicht beantwortet werden. Diese oder hnliche Aspekte wurdenin der vorliegenden Arbeit auf Grund des ausufernden Umfangs, aber auch auf Grund des Fokusauf die grundlegende natrliche Interaktion, nicht weiter verfolgt, stellen aber sicherlich weitereinteressante Aspekte dar.

35

I spy with my little eye: Interaktion mit dem humanoiden Roboter NAO SoSe 2014

7 Fazit und AusblickIn der vorliegenden Arbeit geht es darum, einen kleinen Beitrag zur Untersuchung darber zu leis-ten, inwiefern humanoide Roboter in den Alltag integriert werden knnen. Dass diese Fragestellungimmer relevanter wird, zeigen beispielsweise Nachrichten zu dem trampenden Roboter Hitchbot,mit dem die Akzeptanz von Robotern im Alltag untersucht werden soll. Ein Ziel unserer Arbeitwar es, das Spiel Ich sehe was, das du nicht siehst... fr NAO (einem humanoiden Roboter vonAldebaran-Robotics) zu programmieren, das auf Grund eines klaren Rahmens und Spielregeln alsBasis fr die Untersuchung der Interaktion mit humanoiden Robotern dienen kann. Bei der Umset-zung des Spiels sollte die Interaktion so natrlich wie mglich gestaltet werden, so dass im idealenFall vom menschlichen Gegenber im Spiel kein Unterschied gemacht wird zwischen Roboter undMensch. Dass dieses Ziel nur eingeschrnkt erreicht werden kann, zeigen die Probleme, mit denenwir bei der Gestaltung einer mglichst natrlichen Interaktion konfrontiert waren. An dieser Stellesollen die diskutierten Probleme noch einmal kurz zusammengefasst werden.Erste Probleme in der Interaktion zeigen sich bei der Sprachproduktion und -erkennung. Wie in

Abschnitt 4.2 dargestellt, hat NAO Probleme damit, manche Wrter beziehungsweise Stze richtigauszusprechen oder zu betonen. Auch bei der Spracherkennung zeigen sich Probleme, die nochetwas schwerwiegender in der Gestaltung einer mglichst natrlichen Interaktion sind. Sowohl dieErkennung einzelner Wrter, als auch die ganzer Stze weisen noch Defizite auf. Daher haben wiruns dazu entschlossen, die Kommunikation auf ein Minimum an Wrtern zu reduzieren, die vomMenschen gesprochen und von NAO erkannt werden mssen. Wenn NAO auf eine Antwort wartet,muss der Mensch nur ein einzelnes Wort sagen, statt einen ganzen Satz zu sprechen. So konnten wirdie Interaktion erheblich flssiger gestalten. Ein anderer Punkt, der die Kommunikation unnatrlichmacht, ist die Tatsache, dass es nicht mglich ist, NAO zu unterbrechen, whrend er spricht. Manmuss immer warten, bis sein Interaktionsprogramm an einer Stelle ist, an der er auf eine Antwortdes Menschen wartet und man kann nur mit einer bestimmten Antwort fortfahren.Darber hinaus zeigen sich Probleme in der Objekterkennung. Die sicherste Methode, mit der

NAO einigermaen zuverlssig Objekte erkennen kann, ist der Einsatz von NAO-Marks. Abgese-hen davon, dass NAO-Marks in einer natrlichen Umgebung unrealistisch ist, gibt es auch mitdiesen einige Probleme, die einen reibungslosen Spielablauf nicht immer gewhrleisten. Wie in Ab-schnitt 4.4 beschrieben, mssen die NAO-Marks in einer bestimmten Position aufgehngt. Werdendiese Umstnde nicht eingehalten knnen ab einem bestimmten Winkel oder Abstand die NAO-Marks nicht mehr erkannt werden. Zudem mssen bestimmte Lichtverhltnisse herrschen und eswerden teilweise Objekte in unserer Testumgebung als NAO-Marks erkannt, die aber keine sind.Bei den Kopfbewegungen ist es am schwierigsten zu beurteilen, ob eine natrliche Bewegung

vorliegt. Die von uns modellierten Bewegungen sind in unseren Augen so natrlich wie es unsmit NAO mglich erscheint. Andere interagierende Personen halten diese aber mglicherweise frunnatrlich.Darber hinaus zeigt sich, dass NAO an manchen Stellen im Spielverlauf sehr naiv ist und nicht

berprft, ob die Aussagen des Menschen richtig. So stellt NAO niemals in Frage, ob die Attribute,die man ihm zu einem bestimmten Objekt nennt, berhaupt zueinander passen. Nennt man ihmbeispielsweise Orange als ein Attribut des gesuchten Objekts und anschlieend Blau, falls seinerster Versuch falsch war, wrde er dies einfach akzeptieren und nicht in Frage stellen. Hier bestehenalso noch Probleme, die sich aber leicht beheben lassen. Die Erkennung von solchen Inkonsistenzenknnte mit einigen Prfalgorithmen verbessert werden.Des Weiteren wird NAO vermutlich niemals in der Lage sein, festzustellen, ob der Mensch ehrlich

ist und sich fair nach den Spielregeln verhlt. Der Mensch kann zum Beispiel NAOs Rateversuche

36

I spy with my little eye: Interaktion mit dem humanoiden Roboter NAO SoSe 2014

jedes Mal verneinen, auch wenn NAO den richtigen Gegenstand genannt hat. Zu erkennen, ob je-mand lgt, fllt jedoch auch einem Menschen schwer. Daher wird dieser Aspekt in der Natrlichkeitvon NAOs Verhalten nicht so stark von uns gewichtet und es wird einfach davon ausgegangen, dassdie Spielregeln fair angewendet werden.Unserer Meinung nach ist eine natrliche Interaktion mit NAO insgesamt schwer mglich, da man

NAO auf jeden mglichen Fall in einer Interaktion vorbereiten muss. Eine Verhaltensvariabilittkann beispielsweise nur durch eine randomisierte Anwendung von vorgegebenen Stzen, die in einerbestimmten Situation gesagt werden knnen, erzeugt werden. Das bedeutet, eine echte Natrlichkeitkann bei einem fest vorgegebenen Ablauf nicht hergestellt werden, sondern es kann nur versuchtwerden, die Interaktion so natrlich wie mglich wirken zu lassen. Auch wenn es Probleme gibt, diesich in dieser Hinsicht schwer lsen lassen, ist uns ein mglichst natrliches Verhalten an einigenStellen gelungen.Letztendlich bleibt es aber im Ermessen des Betrachters, wie natrlich die Interaktion mit NAO

ist. Eine Beurteilung der Natrlichkeit von NAOs Interaktionsverhalten lsst sich mglicherwei-se nur mit einem Test mit mehreren Personen herausfinden, die beispielsweise mit Ratingskalenverschiedene Verhaltenskriterien bewerten.Jedenfalls hat es Sinn, sich mit diesem Bereich weiter auseinanderzusetzen. Roboter gewinnen

eine immer grere Bedeutung in unserem Alltag. Eine grere Natrlichkeit in der Interaktionknnte die allgemeine Akzeptanz von Robotern im Alltag erhhen und dadurch ihren Einsatz zumBeispiel fr soziale Projekte im Umgang mit hilfsbedrftigen Menschen erleichtern.

37

I spy with my little eye: Interaktion mit dem humanoiden Roboter NAO SoSe 2014

Literatur[Aldebaran-Robotics] (20062012 a). Aldebaran documentation: ALSpeechRecognition. Abgeru-

fen am 25. August 2014 von: https://community.aldebaran.com/doc/2-1/naoqi/audio/alspeechrecognition.html?highlight=speechrecognition

[Aldebaran-Robotics] 20062012 b). Aldebaran documentation: Loudspeakers. Abgerufen am25. August 2014 von: https://community.aldebaran.com/doc/2-1/family/robots/loudspeaker_robot.html#robot-loudspeaker

[Aldebaran-Robotics] (20062012 c). Aldebaran documentation: Making a Python module Re-acting to events. Abgerufen am 25. August 2014 von: https://community.aldebaran.com/doc/2-1/dev/python/reacting_to_events.html

[Aldebaran-Robotics] (20062012 d). Aldebaran documentation: Microphones. Abgerufen am25. August 2014 von: https://community.aldebaran.com/doc/2-1/family/robots/microphone_robot.html#robot-microphone

[Aldebaran-Robotics] (20062012 e). Aldebaran documentation: NAO Versions and Body Type.Abgerufen am 25. August 2014 von: https://community.aldebaran.com/doc/2-1/family/body_type.html

[Aldebaran-Robotics] (20062012 f). Aldebaran documentation: Running Python code on the ro-bot. Abgerufen am 25. August 2014 von: https://community.aldebaran.com/doc/2-1/dev/python/running_python_code_on_the_robot.html

[Aldebaran-Robotics] (20062012 g). NAO Software 1.14.5 documentation: ALLandMarkDetec-tion. Abgerufen am 25. August 2014 von: https://community.aldebaran.com/doc/1-14/naoqi/vision/allandmarkdetection.html

[Aldebaran-Robotics] (20062012 h). NAO Software 1.14.5 documentation: NAO H25. Abgerufenam 26. August 2014 von: https://community.aldebaran.com/doc/1-14/family/nao_h25/index_h25.html#nao-h25

[Aldebaran-Robotics] (20062012 i). NAO Software 1.14.5 documentation: H25 Joints. Abgerufenam 25. August 2014 von: https://community.aldebaran.com/doc/1-14/family/nao_h25/joints_h25.html?highlight=headyaw

[Aldebaran-Robotics] (20062012 j). NAO Software 1.14.5 documentation: Python SDK. Abgeru-fen am 25. August 2014 von: https://community.aldebaran.com/doc/1-14/dev/python/index.html

[Aldebaran-Robotics] (2011/2012 a). Datasheet H25 NAO Next Gen En. Im Ordner: download/-Datasheets auf der mit NAO ausgelieferten CD.

[Aldebaran-Robotics] (2011/2012 b). NAOmark.pdf. Im Ordner: download/NAOmark auf der mitNAO ausgelieferten CD.

[Bhm] M. (07.08.2014). Trampender Roboter: Hitchbot hat schon mehr als 2500 Kilometer hintersich. Spiegel online. Abgerufen am 25. August 2014 von: http://www.spiegel.de/netzwelt/web/hitchbot-roboter-hat-per-anhalter-bald-halbe-strecke-geschafft-a-984896.html

38

I spy with my little eye: Interaktion mit dem humanoiden Roboter NAO SoSe 2014

[Bhm] M. (18.08.2014). Trampender Roboter am Ziel: Hitchbot dreht noch eine Ehrenrunde. Spie-gel online. Abgerufen am 25. August 2014 von: http://www.spiegel.de/netzwelt/gadgets/hitchbot-roboter-hat-per-anhalter-kanada-durchquert-und-ist-am-ziel-a-986707.html#ref=veeseoartikel

[Gouaillier] D., Hugel, V., & Blazevic, P. (2008). The nao humanoid: a combination of performanceand affordability. Abgerufen am 25. August 2014 von: www.researchgate.net/publication/220482736_The_NAO_humanoid_a_combination_of_performance_and_affordability/file/72e7e517e36d236fa8.pdf

[Labb] M. (2014). Zzzebra Das Web-Magazin fr Kinder: Ich sehe etwas, was du nicht siehst.Abgerufen am 25. August 2014 von: http://www.labbe.de/zzzebra/index.asp?themaid=332\&titelid=2446

[SpieleWiki] (2009). Ich sehe was, was du nicht siehst. Abgerufen am 25. August 2014 von: http://www.spielewiki.org/wiki/Ich_sehe_was,_was_du_nicht_siehst

[VanderMaas] J. (2014). hitchBot. Abgerufen am 25. August 2014 von: http://www.hitchbot.me/

[Wikipedia] (2014 a). Nao (Roboter). Abgerufen am 25. August 2014 von: http://de.wikipedia.org/wiki/Nao_(Roboter)

[Wikipedia] (2014 b). Nuance Communications. Abgerufen am 25. August 2014 von: http://en.wikipedia.org/wiki/Nuance_Communications

39

Eidesstattliche ErklrungWir erklren hiermit, dass wir den vorstehenden Projektbericht selbstndig verfasst und keineanderen als die angegebenen Quellen und Hilfsmittel verwendet haben.

Bamberg, den 29. August 2014Unterschrift

Bamberg, den 29. August 2014Unterschrift