Transcript

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-Universität BambergProfessur für Angewandte Informatik insb. Kognitive SystemeProf. Dr. Ute Schmid

KogSys-Proj-B: Bachelor/Master Projekt Kognitive SystemeBetreuer: Christian Reißner

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 Ansätze . . . . . . . . . . . . . . . . . . . . . . . . 164.2.3 Umsetzung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174.2.4 Weitere Tests, Anpassungen und Möglichkeiten . . . . . . . . . . . . . . . . . 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 Ansätze . . . . . . . . . . . . . . . . . . . . . . . . 264.4.3 Umsetzung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274.4.4 Weitere Tests, Anpassungen und Möglichkeiten . . . . . . . . . . . . . . . . . 27

4.5 Objektgedächtnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Zusätzliche projektspezifische Aspekte 356.1 Aufgetretene Probleme und Lösungen . . . . . . . . . . . . . . . . . . . . . . . . . . 356.2 Weitere Implementierungsvorschläge . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 alltäglichen Umgang. Um Interaktionsmöglichkei-ten zu testen, wird das Spiel „Ich sehe was, das du nicht siehst...“ als Rahmen verwendet. In derImplementierung des Spiels wird vor allem die Natürlichkeit der Interaktion betrachtet und dabeierläutert, wie die Implementierung der sprachlichen Interaktion, der Objekterkennung und der Be-wegung umgesetzt wurde. Es werden jeweils Voraussetzungen, Probleme und weitere Möglichkeitenbeschrieben. Zusammenfassend lässt sich sagen, dass NAO Potenzial hat, jedoch große Problemein der Sprach- und Objekterkennung aufweist, die bisher allgemein nicht gelöst werden konnten.Darunter leidet die Natürlichkeit in der Interaktion mit NAO. Weitere Tests und Verbesserungender Software sind wünschenswert, um die Natürlichkeit und den leichteren Umgang mit Roboternin Zukunft zu fördern.

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 (Böhm, 07.08.2014 und Böhm,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 unterstützen. Roboter bekommen einen immer höheren Stellenwertin unserer Gesellschaft und werden in vielen alltäglichen 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 beschäftigt 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 werdenkönnen. 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 natürlicher Umgang zum Beispiel in Form einer Sprachsteuerung, aber auch in Form einerObjekterkennung von Bedeutung, um gemeinsam gesehene Objekte referenzieren zu können. DieseFähigkeiten 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 möchten 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 für 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 hierbeierwähnt 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, Möglichkeiten 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 wählten wir „Ich sehe was, das dunicht siehst...“. Dieses Spiel bietet sowohl Raum für sprachliche Interaktion verbunden mit Objek-terkennung, als auch einen Rahmen für eine natürliche Interaktion. Inwieweit diese Aspekte mitdem humanoiden Roboter NAO umgesetzt werden können, 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 Objektgedächtnis diskutiert. Es werden je-weils NAO-spezifische Möglichkeiten, gegebenenfalls Tests, Probleme und Ansätze, so wie die Imple-mentierung beschrieben. Daraufhin wird beschrieben, wie das Spiel mit Hilfe eines Bootloader ohneFernsteuerung auf NAO lauffähig gemacht wird. Abschließend folgen weitere projektspezifische An-merkungen, eine Zusammenfassung der Erkenntnisse und ein Ausblick für 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, möchten 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 möchtenwir ein besonderes Augenmerk auf die Gestaltung einer möglichst natürlichen Interaktion mit demmenschlichen Gegenüber legen. Daher sollen in diesem Abschnitt vor allem NAOs Interaktionskom-ponenten genauer beschrieben werden. Zu den hier beschriebenen Komponenten zählen Hardwa-rekomponenten wie z. B. Sensoren, mit denen NAO Informationen aus der Umwelt aufnimmt oderSoftwaremodule, die eine Spracherkennung und –ausgabe ermöglichen.NAO ist ein zweibeiniger humanoider Roboter (siehe Abbildung 1), der von dem französischen

Unternehmen Aldebaran-Robotics hergestellt wird. Das Unternehmen verfolgt nach eigenen An-gaben mit NAOs Herstellung mehrere Ziele: Der Roboter soll zum einen finanziell günstig, zumanderen aber leistungsfähig und qualitativ hochwertig sein. Darüber hinaus soll die Benutzung undErweiterung von Verhaltensprogrammen des Roboters so einfach wie möglich sein. Einstellungen andem Roboter sollen sowohl mit, als auch ohne Verwendung einer Programmiersprache vorgenommenwerden können. Zudem soll es durch eine offene Architektur möglich sein, eigene Verhaltensmodulezu programmieren und diese ohne großen 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 gegenüber stehen und einen Wettkampf austragen (Wikipedia, 2014 a).

(a) NAO (Gouaillier, et al. 2008) (b) technischer NAO (Aldebaran-Robotics, 2006–2012 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 Höhe von 0,57 m und ein Gewicht von 4,5 kg. Mit einem Body-Mass-Index (BMI)von 13,5 kg/m2 gehört 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 gehören zu NAOs Ausstattung(Aldebaran-Robotics, 2011/2012 a) und sind insbesondere für unser Projekt wichtig:

• Kamera: NAO besitzt zwei Kameras mit einer Auflösung von 1,22 Megapixel, die am Kopfangebracht sind. Die Kameras haben bei voller Auflösung (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 möglich (Eng-lisch, Französisch, 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 nachrüsten.

• Spracherkennung: Die Spracherkennungssoftware von NAO wird von Nuance entwickelt.Nach Angaben des Herstellers kann NAO komplette Sätze oder bestimmte Wörter in Sät-zen verstehen. Sprachen, die erkannt werden können sind Englisch, Französisch, 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 Sensitivität der Mikrofone beträgt 37 bis43 dB, die Frequenzreichweite beträgt 20 Hz bis 20 kHz und das Signal-Rauschen-Verhältnisbeträgt 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, 2006–2012 d) und Lautsprecher(Aldebaran-Robotics, 2006–2012 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 fürunser 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 Benutzeroberfläche dieProgrammierung von einfachen Verhaltensprogrammen ermöglicht.Darüber hinaus stellt Aldebaran-Robotics für NAOs Programmierung das Softwareframework

NAOqi zur Verfügung. Das Framework unterstützt die Programmiersprachen C++, Python, .Net,Java und Matlab. (Aldebaran-Robotics, 2011/2012 a) Allerdings können Verhaltensmodule, dieautonom auf dem Roboter laufen sollen, nur mit C++ oder Python geschrieben werden. Mit denanderen Sprachen können Module programmiert werden, die den Roboter über einen Computerfern steuern. Da unser Programm später 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...“ erläutert 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 auswählt. Dieser Gegenstand soll für alle anderen mitspielendenPersonen ebenfalls sichtbar sein. Als Beispiel könnte ein grünes Buch in einem Regal ausgewähltwerden. Daraufhin sagt die Person, die sich einen Gegenstand ausgewählt hat: „Ich sehe was, das dunicht siehst und das ist grün!“. Nun sehen sich die anderen mitspielenden Personen um und suchengrüne Gegenstände. 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 nächstes 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 SzenarioFür Menschen ist es sehr einfach ihre gesamte Umgebung zu betrachten. Dabei bewegen sie nichtnur den Kopf, sondern drehen zum Beispiel den gesamten Oberkörper oder stehen auf, um dieUmgebung aus verschiedenen Perspektiven zu inspizieren. Für NAO müsste jede Bewegung einzelnmodelliert werden und sehr viele verschiedene Aspekte berücksichtigt werden. Dazu gehört unteranderem, ob NAO sitzt, steht oder liegt. Außerdem müsste die Orientierung im Raum und die Po-sition im Raum eingerechnet werden. Diese Informationen sind wichtig, um den Blickwinkel richtigzu wählen, aber auch damit NAO nicht zum Beispiel von einem Tisch fällt. Für eine natürliche In-teraktion wäre es sodann wichtig, dass NAO nicht immer die selbe Bewegung durchführt. Je mehrBewegungsfreiheit NAO im Raum bekommt, desto mehr Fälle müssten 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 Höhe zu sein und eine natürliche Interaktion zu gewährleisten. Durch dieSitzposition ist NAOs Blickfeld natürlich auf einen bestimmten Bereich eingeschränkt. Dies sollunter anderem im vorliegenden Szenario durch eine natürliche Kopfbewegung von ungefähr 180◦

ausgeglichen werden. Dennoch wird die Auswahl von Objekten dadurch stark reduziert, weshalbeine Wand mit einem offenen Regal als Setting ausgewählt 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 für das Ratespiel verwendet werden,sondern des Weiteren die Größe und das Material des Objektes zum Raten oder als Hinweis hinzu-gezogen werden können. Da die Objekterkennung mit NAO nur bis zu einem bestimmten Abstandmöglich ist, soll NAO ungefähr 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 gehören Spielregeln, die im folgenden in der Interaktion mit NAO präzisiert werden.In der vorliegenden Implementierung geht es vorrangig um das Spielen mit einer einzelnen Inter-aktionsperson. Natürlich können 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 ausgewählt und erraten. Es ist folglich egal, ob das Objekt derInteraktionsperson richtig erraten wurde. Das vorliegende Spiel enthält keine Punktevergabe. Einbereits ausgewähltes Objekt kann ein zweites Mal gewählt werden, jedoch wird NAO selbst dieseStrategie nicht nutzen. Wird ein Objekt nicht beim ersten Mal erraten, so können Hinweise gegebenwerden. Dabei können die bereits benannten Attributklassen Farbe, Größe und Material verwendetwerden. Für NAO ist es dabei wichtig, dass man fair und ehrlich mit ihm umgeht. Denn NAO ist aneinigen Stellen sehr leichtgläubig. So müssen Angaben zu Objekten konsistent sein. Sollte man ihmmitteilen, dass das Objekt weiß ist und als weiteren Tipp, dass das Objekt blau wäre, dann wirdNAO kein passendes Objekt mehr finden, sich aber auch nicht über die Inkonsistenz beschweren.Auch wenn man NAO zunächst sagt, dass das von NAO erratene Objekt nicht das gewählte seiund ihm daraufhin sagt, dass man genau dieses Objekt gewählt hatte, wird NAO es als ein Objektauffassen, dass er einfach nicht in Erwägung 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 zunächstdie oberste Ebene der Spielsteuerung besprochen. Je nach Wahl des Menschen kann der Menschoder NAO damit beginnen, ein gewähltes Objekt zu erraten. Die unterschiedlichen Verläufe 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 Berührung von NAOs Kopf startet. Nach der Berührung begrüßt NAO sein menschlichesGegenüber und fragt, ob die Person mit ihm „Ich sehe was, das du nicht siehst...“ (Englisch: I spywith my little something that is...) spielen möchte. 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 für NAO, ist NAO am Zug und der Roboter springt in die nächsteInteraktionsebene, die im Abschnitt 4.1.2 beschrieben wird. Seine Aufgabe ist dann ein Objektzu finden und dem Menschen ein Attribut zu nennen. Möchte die Person jedoch selbst beginnen,springt NAO in eine andere Interaktionsebene, die in Abschnitt 4.1.3 erläutert 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 möchte. Falls die Person bejaht, geht der nächste 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 Gegenstände, 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 möglichst natürlichenBewegung seinen Kopf nach links, rechts, oben und unten. Dabei merkt er sich alle gefundenen Ob-jekte und fügt zudem sich selbst als weiteres Objekt hinzu, so dass immer mindestens ein Objekterkannt wird. Damit Abwechslung in das Spiel kommt und die zu erratenden Gegenstände sichnicht wiederholen, verwirft NAO zunächst alle Objekte, die bereits von ihm oder dem Menschenim Spielverlauf gewählt wurden. Er muss daher in einem Kurzzeitgedächtnis alle Gegenstände spei-chern, die im Spiel bereits gewählt wurden – d. h. zu Spielbeginn ist sein Kurzzeitgedächtnis leer.Von den übriggebliebenen Objekten wählt er anschließend nach Zufall ein Objekt aus. Möglicher-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 zurück. In dieserEbene wird die Person gefragt, ob sie trotzdem weiterspielen möchte. Hat NAO jedoch einen nochnicht gewählten Gegenstand gefunden, sucht er nach Zufall ein Attribut des Objekts aus. Er kanndabei zwischen drei verschiedenen Attributen (Farbe, Größe oder Material) wählen. Daraufhin sagtNAO „I spy with my little eye something that is...“ und sein menschliches Gegenüber 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) zurück.

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 gehört. Der Mensch hat also die Aufgabe ein Objekt zufinden, das in NAOs Sichtfeld liegt und daraufhin entweder seine Farbe, Größe 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. Anschließend gleicht er das Attributmit den gefundenen Gegenständen ab und verwirft alle Objekte, die nicht zum genannten Attributpassen. Aus den übriggebliebenen Objekten wählt 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 zurück. Ist seine Antwort jedoch falsch, fragt NAO nach einem weiteren Attribut,solange bis er entweder beim nächsten Versuch richtig liegt (vorausgesetzt er findet weitere passendeObjekte) oder bis der Mensch alle drei zum Objekt gehörigen Attribute genannt hat. Findet er dasObjekt nach möglicherweise mehreren Versuchen nicht, fragt er den Menschen, welcher Gegenstandgesucht war und kehrt anschließend zur vorherigen Interaktionsebene (siehe Abschnitt 4.1.1) zurück.

12

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

Spiel wirddurch Kopf-berührunggestartet

NAObegrüßt

Person undfragt, obPersonspielenmöchte

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 grünen 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 wählt einObjekt aus undsagt: I spy withmy little eye...

NAOwartet undregistriertAntwort

NAO nenntdas Objekt

Ende – zurückzur 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 führt über diegrüne Box wieder in die Steuerungsebene (siehe Abbildung 4).

14

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

NAO hörtzu

NAO suchtUmgebung ab

Nao fragt nachNAO erfragtein weiteresAttribut

Nao gleichtAttribut

mitgefundenenObjekten

ab

NAO wähltein Objekt aus

NAObenenntObjekt

Anzahl derbisherigenWiederho-lungen

Anzahl derWiederho-lungen

Ende – zurückzur Steue-rungsebene

versteht Attribut

versteht Attribut nicht

passende Objekte > 0

richtigfalsch

kein passendes Objekt

<3

=3 oder bereits Tipp

=3

<3

<3

Abbildung 6: Ebene: Mensch ist am Zug. Der Ablauf beginnt mit der roten Box und führt über diegrüne Box wieder in die Steuerungsebene (siehe Abbildung 4).

15

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 Äußerungen von NAO und der Spracherkennung durchNAO unterschieden werden. Für beide Punkte sollen im Folgenden die Voraussetzungen besprochenwerden. Des Weiteren werden die ersten Tests sowie die dabei entstandenen Probleme dargestellt.Anschließend werden die dadurch resultierenden Ansätze kurz diskutiert. Daraufhin wird kurz aufdie Implementierung eingegangen und Tests, Anpassungen und weitere Möglichkeiten besprochen.

4.2.1 NAOs Voraussetzungen

Der uns zur Verfügung gestellte NAO-Typ mit der Version V4 verwendet für die Sprachaspekte eineSoftware von NUANCE. (Aldebaran-Robotics, 2006–2012 a und Aldebaran-Robotics, 2006–2012 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 heißt es, dass zunächst der Start des Sprach-Inputs bestimmt wird. Daraufhin werden Hintergrundgeräusche mit Hilfe von Audio-Technikenherausgefiltert. Das verbleibende Audio-Material wird sodann in Segmente aufgeteilt, die eine Längezwischen 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 möglichen, zuvor festgelegten, Kombinationen verglichen. (Wikipedia, 2014 b)

4.2.2 Erste Tests, Probleme und Ansätze

Sprachausgabe: Für die Sprachausgabe in Python benötigt es nur die Verwendung eines Sprach-moduls, auf das die Methode say aufgerufen wird. Dies wird als kleine Einführung in Python unterNutzung eines einfachen Editors in NAOs Dokumentation erläutert und diente auch uns als Ein-stieg im Umgang mit Python und der Sprachausgabe. (Aldebaran-Robotics, 2006–2012 j) Hierbeiist es je nach Sprachpaket möglich noch unterschiedliche Sprachen zu wählen und die Lautstärkeund Geschwindigkeit der gesprochenen Worte oder Sätze einzustellen. Der verwendete NAO sollteauf Englisch interagieren, wodurch die voreingestellten Werte ohne Änderung übernommen werdenkonnten. Für die Tests war für uns von Bedeutung, ob NAOs Worte verständlich sind. Deshalbnutzten wir die Objekte, die NAO später erkennen sollte als Ansatzpunkt für Worte, die wir teste-ten. Des Weiteren nutzten wir Sätze, die für das Spiel relevant sein oder dem Spiel einen Rahmengeben könnten. Dabei wurde deutlich, dass NAO manche Worte, wie exhausted mit einem briti-schen Akzent ausspricht, während Worte, wie bottle eher eine amerikanische Aussprache vermutenlassen. Des Weiteren gibt es Worte, die NAO sehr unnatürlich oder falsch ausspricht. Dazu gehörenWorte wie wastebin, bei dem NAO das e als eigenen Vokal ausspricht oder aber cupboard, das vonNAO sehr unsauber und unverständlich 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 Sätze hin und wieder sehr unverständlich,oder NAO hebt die Stimme, obwohl dies an dieser Stelle nicht nötig oder richtig ist.

Spracherkennung: Zum Testen der Spracherkennung verwendeten wir zunächst die mitgelieferteSoftware Choregraphe. Dieses Interface ist für Test der Spracherkennung besonders geeignet, daeine vorimplementierte Box zur Verfügung 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, während das Pro-gramm auf NAO bereits gestartet ist, geändert werden. Des Weiteren zeigt die Software in einfacherArt die verstandenen und nicht verstandenen Worte und Sätze an. Diese können dann mit den ei-gentlich gesagten Worten und Sätzen abgeglichen werden. Zunächst war für uns von Bedeutung,in wie weit NAO überhaupt Worte und Sätze versteht. Dabei stellte sich schnell heraus, dass derAbstand zu NAO und folglich zu NAOs Mikrofonen einen erheblichen Einfluss auf die Spracherken-nung ausübt. Da die Mikrofone im Kopf sitzen und NAO im vorliegenden Setting auf dem Tischsitzt, sollte die mitspielende Person sich höchstens einen Meter von NAOs Kopf entfernen und ambesten in NAOs Richtung sprechen. Dadurch erhöht man die Chance einer korrekten Spracherken-nung. Als zweiter wichtiger Aspekte war für das zu implementierende Spiel von Interesse, ob Sätzewie „I spy with my little eye something that is orange.“ und „I spy with my little eye somethingthat is blue.“ richtig unterschieden werden können. Hierzu testeten wir, ob es reicht die einzelnenFarben orange und blue in die Wortliste aufzunehmen. Dies führte jedoch genauso wenig zu zufrie-denstellenden Ergebnisse, wie auch die Verwendung der ganzen Sätze. 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 Sätze 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 Natürlichkeit des Spiels. Des Weiteren wurde deutlich, dass NAOnatürlich während er auf eine Spracheingabe wartet, jedes Geräusch 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 unnatürlich undwir überlegten uns, wie wir diese Aspekte bei der Implementierung in den Griff bekommen könnten.

4.2.3 Umsetzung

Das gesamte Spiel läuft über Sprachsteuerung. Nachdem das Spiel gestartet wurde, fragt NAO,ob man spielen möchte. Daraufhin wird ausgehandelt, wer beginnt, sodann werden Attribute undObjekte benannt und eine Antwort gegeben. Die Korrektheit dieser Antwort wird geprüft und rück-gemeldet. Als Abschluss jeder Runde wird des Weiteren gefragt, ob man aufhören oder weiterspielenmöchte.

Sprachausgabe: Dabei stellt die Sprachausgabe bis auf manche weniger gut verstandenen Worteund Sätze 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 größerenHerausforderungen. Im Spracherkennungsmodul wurde zur Spracherkennung eine Methode imple-mentiert, der das jeweilige zu verstehende Vokabular übergeben wird. In der Methode wird zunächstdas 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 ausführen zu kön-nen, wird hier mit dem Befehl post das parallele Arbeiten angestoßen. Die erkannten Worte werdenin NAOs internen Memory gespeichert und können dort mit einem Befehl wieder abgerufen werden.Dabei werden, wie auch schon bei den NAO-Marks mehr Informationen gespeichert, als wir benöti-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 wäre es auch möglich, noch den Threshold, der in Choregraphe als Parameter einstell-bar ist, nachzubilden. Da jedoch unter den gegebenen Umständen nur einzelne Worte verstandenwerden mussten, stellte sich heraus, dass dieser Wert nicht verändert oder beachtet werden muss.Um die Spracherkennung gezielt starten zu können, verwendeten wir in einer ersten Version und

vor allem zum Testen einen Sensor. So sollte die Methode zur Spracherkennung erst dann gestartetwerden, wenn ein Fußsensor gedrückt wird. NAO teilte dies dem Menschen mit und wartete auf dieBerührung. Dadurch konnte, wie in einer natürlichen Situation üblich, die ratende Person mitunterlaut denken und NAO reagierte erst, wenn man ihn durch Betätigen des Sensors direkt ansprach.

4.2.4 Weitere Tests, Anpassungen und Möglichkeiten

Sprachausgabe: Auf Seiten der Sprachausgabe erkannten wir des Weiteren bald, dass nach kurzerZeit das Spielen ermüdend und langweilig wurde, da NAO immer mit dem gleichen Satz auf eineSituation reagierte. Deshalb entschieden wir uns für alle relevanten und entscheidenden Situationeneine Auswahl von Sätzen zu verwenden. Diese mussten vom Inhalt übereinstimmen, aber sich dochin der einen oder anderen Art unterscheiden. Dadurch sollte auch die Natürlichkeit in der Interak-tion mit NAO gesteigert werden. So wird nun zumeist aus drei Sätzen einer zufällig ausgewählt undgesagt. Da die einzelnen Spielsituationen in einem gemäßigten Abstand kommen, fällt es zumeistnicht auf, falls in einer bestimmten Situation wiederholt der gleiche Satz gesagt wird. Des Weite-ren ist dieses Phänomen auch bei Menschen bekannt, die in bestimmten Situationen auch hin undwieder mit dem gleichen Satz antworten. Aber auch dieses Problem könnte man beheben, indemder Satz, der beim letzten Mal genannt wurde, für die nächste Runde markiert und somit nichtausgewählt werden kann.

Spracherkennung: Das Drücken der Sensoren zur gezielten Spracheingabe führte zwar auf dereinen Seite zu einer größeren Natürlichkeit 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 möchte, ihn zunächst berühren zu müssen. Deshalb entschieden wir uns ineiner Überarbeitungsphase dafür, NAO sofort zuhören 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 Präsentieren von NAO in einerGruppe junger Schüler Wiedererkennen konnten. NAO fasst jedes Wort auf und bezieht es auf sich.So war es während des Spieles kaum möglich den Schülern Aspekte zum Spiel zu erklären.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 unnatürlichen 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 dafür, 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 Klärung wer beginnen soll, wird in diesem Modul organisiert und geht ähnlich vor.Da die Programmlogik bei allen anderen Fällen 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 Fällen die Steuerung in den Programmablauf integriert und nur die Spracherkennungs-methode mit einem bestimmten Vokabular aufgerufen. Während in einer ersten Version immeralle möglichen 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 Gedächt-nis zusammen. Dort können zum Beispiel die einzelnen Attribute oder Objekte abgerufen werdenund diese dienen dann als Wortliste für die Spracherkennung.Das größte Problem, das wir in unserer Implementierung nicht in den Griff bekommen konnten,

liegt in der Spracherkennung. Da NAO bei längeren Sätzen größere Probleme mit dem Verständnisaufweist, bleibt hier die Natürlichkeit der Interaktion zurück. In der vorliegenden Implementierungwird versucht durch gezielte Frage nach einem Attribut diese Situation zu umgehen, jedoch würdedas 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 gelöst werden.

19

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

4.3 KopfbewegungWie bereits in Abschnitt 3.1 erwähnt, ist es uns von Bedeutung, dass NAO im Spielverlauf währendder Suche nach Gegenständen seinen Kopf möglichst natürlich bewegt. Darüber hinaus soll NAOverschiedene Kopfbewegungen beherrschen und zwischen diesen Bewegungen variieren, so dass seinVerhalten insgesamt natürlich wirkt. In diesem Abschnitt wird zunächst dargestellt, welche Vor-aussetzungen NAO mitbringt. Anschließend 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, 2006–2012 i)

4.3.1 NAOs Voraussetzungen

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

und Geschwindigkeit zur Erreichung des Zielwinkels definiert werden. Mithilfe von verschiedenenInterpolationen ist es möglich, 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 für 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 wäre es möglich die Bewegungsdaten direkt im Pythoncode zu definieren. Das ProgrammChoregraphe bietet bei der Bewegungsmodellierung unter anderem jedoch eine visuelle Unterstüt-zung mithilfe eines Timeline-Editors an und ermöglicht es zudem, die Bewegungen gleichzeitig mitNAO zu simulieren oder, als mit NAO manuell duchgeführte Bewegungssequenz, aufzunehmen.Dies erleichtert die Modellierung in vielen Aspekten. Unser vorgehen soll hier in Form einer kleinenAnleitung beschrieben werden.

Kopfbewegung in Choregraphe modellieren: Zunächst muss das Programm Choregraphe ge-öffnet werden. Nach dem Öffnen wird ein leerer Diagrammbereich angezeigt, der genutzt werdenkann, um Verhaltensabläufe zu programmieren. In den Boxlibraries auf der linken Seite findet manverschiedene vordefinierte Bewegungsabläufe, die durch Ziehen in den Diagrammbereich und Ver-bindung mit anderen Boxen in den Verhaltensablauf integriert werden können. Da wir eine eigeneBewegung modellieren möchten, benötigen wir die Box Timeline, die in dem Ordner Templates zufinden ist. Die Box muss zunächst 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 geöffnet wird, sieht man verschiedene Behaviorlayers, die zu der Bewegung gehören. 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 vorausgewählten Symbol platziert ist, umgeschaltetwerden.

Abbildung 10: Timeline-Editor: Hier muss auf die Ansicht Curves (Symbol links neben dem ausge-wählten 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. Für die Kopfbewegung werden, wie bereitserwähnt, 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. Dafür muss man in die Behaviorlayer-Ansicht zurückkehren. Anschließend müssen, mit ei-nem Rechtsklick auf einen beliebigen Keyframe und der Auswahl Selection sowie Select all, alleKeyframes ausgewählt werden. Sind alle Keyframes selektiert, kann man wie in Abbildung 12 dar-gestellt, wiederum mit einem Rechtsklick auf einen beliebigen Keyframe Export motion to clipboardauswählen und danach Python und Bezier auswählen.

Abbildung 12: Kopfbewegung in Pythencode exportieren

Auf dem gerade beschriebenen Weg haben wir insgesamt vier verschiedene Kopfbewegungen model-liert, die von NAO zufällig durchgeführt werden, sobald er seine Umgebung nach Objekten absucht.Zudem wurden drei kürzere Kopfbewegungen entwickelt, die genutzt werden, wenn NAO nur eineSuche simuliert, jedoch auf bereits gefundene Objekte in seinem Gedächtnis zurückgreift. 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 durchführt. Nachdem die Bewegung abgeschlossen ist, muss die Stiffness dementsprechendwieder ausgeschaltet werden.

4.3.3 Bewertung

Nachdem wir zunächst einige Kopfbewegungen in Choregraphe über eine Remoteverbindung anNAO getestet hatten und uns schließlich auf ein Set von Kopfbewegungen festlegten, konnten wirdie Kopfbewegungen in den Interaktionsablauf des Spieles integrieren. Wir prüften die Natürlichkeitder Kopfbewegungen während 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 natürlich wie es uns mit NAO möglich

erscheint. Sicherlich liegt es aber im Auge des Betrachters, wie natürlich die Bewegungen bewer-tet werden. Hier wäre es möglicherweise sinnvoll, ein Ratingverfahren mit einer Stichprobe vonProbanden durchzuführen, um die Natürlichkeit 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 für 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, kreisförmig und ihr Inneres ist mit unterschiedlichen Formen zu unter-schiedlichen Flächenanteilen gefüllt. Jede Mark hat eine Nummer und wird von NAO mit dieserNummer erkannt. Die Anzahl der mitgelieferten NAO-Marks ist jedoch auf zehn Stück begrenzt.Die Objekterkennung enthält zunächst keine Objekte. Diese können beliebig zum Beispiel mit Hilfedes Choregraphe Interfaces gelernt werden. Objekte müssen erfasst und können 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 zugehörigen Methoden in der gerade verfügbaren NAO-Version nicht verwendet wur-de. Die ebenfalls mitgelieferte NAO-Software Monitor war vor allem zum Testen von Bedeutung.Mit Hilfe dieses Interfaces können 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 Ansätze

Um Herauszufinden, wie die Objekterkennung von NAO im vorliegenden Spiel implementiert wer-den könnte, 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 äußeren Einflüsse, wie unterschiedliche Licht-verhältnisse, eine Rolle spielen. Als dritten entscheidenden Aspekt wollten wir erfahren, ob dieNAO-Mark einen bestimmten Winkel oder eine bestimmte Orientierung benötigt, um erkannt zuwerden.Im ersten Setting saß NAO auf einem Tisch und wir hielten ihm die einzelnen NAO-Marks vor

die Kamera. In späteren Versuchen stellten wir die NAO-Marks in das Regal, wie auf Abbildung 3zu sehen ist. Dabei erkannten wir, dass auf die Entfernung von ungefähr zwei Metern NAO-Marksmit einem Durchmesser von 9 cm zu klein sind. Daraufhin verwendeten wir NAO-Marks mit einemDurchmesser von ungefähr 13 cm. Diese wurden von NAOs Sitzposition gut erkannt, wie Abbil-dung 14 verdeutlicht. Auch die Lichtverhältnisse spielen eine bedeutende Rolle bei der Erkennungder Marks. Die Marks werden auf Grund von Kontrastunterschieden erkannt. (Aldebaran-Robotics,2006–2012 g) Hält 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 Rahmenmöglich. Ein weiterer sehr wichtiger Aspekt für 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 führen, dass andere oder gar keine Mark erkannt wird, was ebenfalls in Abbildung 14ersichtlich wird. Dies gilt auch zum Beispiel für den Fall, dass die Mark vor NAO auf dem Tischliegt. Ein weiteres erkanntes Phänomen 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 Außenkonturen des Objekts müssen sodann per Hand umzeichnet werden.Daraufhin kann dem Bild des Objekts eine Beschreibung und Position hinzugefügt werden odereinem Buch oder Ort zugeordnet werden. Objekte werden in einer Bibliothek gespeichert undkönnen daraufhin auf NAO geladen werden. Auch diese Objekte werden, sobald sie ungefähr diePosition des hinterlegten Bildes einnehmen, erkannt. Um die Verwendung der Objekterkennungjedoch umzusetzen, hätte es noch eine Vielzahl an weiteren Tests benötigt, 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 für jedes Objekt aus verschiedenenPositionen erstellt und kategorisiert werden muss. Des Weiteren kann durch die NAO-Marks einflexibleres Setting erreicht werden. Die Marks können überall angebracht werden und zum Beispielkönnen verschiedene Bücher als Stellvertreter der Mark genutzt werden. Bei der Objekterkennungwürde nur ein spezifisches Buch in einer vordefinierten Position zur Erkennung führen. Aus diesenGründen beschränken 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 Marksangestoßen. Die Daten befinden sich sodann im Modul für NAOs Gedächtnis, ü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 für das Spiel bekannten Marks liegen im eigens implemen-tierten Objektgedächtnis. Nur Marks, die mit diesen Nummern übereinstimmen, werden ausgewähltund als gefunden zurückgegeben.

4.4.4 Weitere Tests, Anpassungen und Möglichkeiten

Die Mark-Detection funktioniert im vorliegenden Fall, solange das Setting eingehalten wird, sehrgut. Probleme gibt es vor allem dann, wenn Licht durch die Fenster ungünstig 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 größeresProblem dar. Die Anzahl der Marks ist jedoch sehr gering, wodurch die Spielmöglichkeiten sehrschnell erschöpft werden. Deshalb fragten wir in der Aldebaran Community nach, ob es weitereMarks gibt. Daraufhin erhielten wir neue Marks, sodass insgesamt 29 Stück zur Verfügung 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 könnte zur Erweiterung des Spieles genutzt werden. Da aber für unsere Zweckenicht das Spiel als solches im Vordergrund steht, sondern eher die Erkenntnisse über Optionen imUmgang mit humanoiden Robotern, beließen 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 ObjektgedächtnisDamit NAO im Spielverlauf zu den erkannten NAO-Marks Objektnamen oder Objektattributeabrufen kann, ist es notwendig, dass er ein Objektgedächtnis besitzt. In diesem Abschnitt wirdbeschrieben, welche Voraussetzungen bei NAO für ein Objektgedächtnis bereits gegeben sind undwie wir das Gedächtnis implementierten. Dabei soll zunächst auf die Datenstruktur eingegangenund anschließend die Abrufmethoden beschrieben werden. Schließlich folgt eine kurze Bewertungdes Vorgehens.

4.5.1 NAOs Voraussetzungen

Für den Zweck des Spiels benötigt NAO ein Gedächtnis, das Objekte und dazugehörige Attributespeichern kann. Darüber hinaus muss NAO mit Abruffunktionen ausgestattet sein, die ihm er-möglichen, in einer bestimmten Situation die gewünschten Inhalte der Objekten zu bestimmen.Ist NAO beispielsweise am Zug und hat ein Objekt gewählt, muss er alle dazugehörigen Attributeabrufen, damit er im nächsten Schritt seinem menschlichen Gegenüber eines nennen kann. Zudemmuss NAO auf der anderen Seite imstande sein, zu einem gegebenen Attribut alle passenden Ge-genstände aus dem ihm bekannten Objekten herauszufiltern, um auf ein vom Menschen gegebenenAttribut reagieren zu können.Das mitgelieferte Framework NAOqi bietet ein Memory-Modul an, in dem Schlüssel-Wert-Paare

gespeichert werden können. Dies ermöglicht es, Werte mithilfe eines Schlüssels abzuspeichern undspäter wieder abzurufen. Allerdings besitzt es nicht die gerade beschriebenen Abruffunktionen, dieNAO im Laufe des Spiels benötigt. Daher implementierten wir ein eigenes Objektgedächtnis alsPython-Modul, das auf die speziellen Gegebenheiten des Spiels angepasst ist.

4.5.2 Umsetzung

Das Gedächtnis besteht im Kern aus einer Liste, die aus mehreren Unterlisten aufgebaut ist. JedeUnterlisten repräsentieren ein Objekt, das NAO kennt und enthält folglich eine NAO-Mark-ID, denObjektnamen sowie die Attribute Objektfarbe, Objektgröße und Objektmaterial. Ein Beispiel für dasObjekt Stuhl sieht folgendermaßen aus:

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

Mithilfe von verschiedenen Abruffunktionen, die in Tabelle 1 dargestellt sind, soll es NAO möglichsein, je nach Spielsituation die gewünschten Informationen abzurufen.Durch die Implementierung eines individuell an das Spiel angepasste Gedächtnismodul lassen sich

beliebige weitere Abruffunktionen ergänzen. Die Repräsentationen der Gedächtnisinhalte in Formvon Listen machen den Zugriff auf das Gedächtnis besonders einfach. Zudem lassen sich beliebigeObjekte und Attribute ohne großen Aufwand ergänzen. Weitere Objekte können hierbei einfach inder Liste hinzugefügt werden, nach einem Hinzufügen von neuen Attributen müssen lediglich dieAbrufmethoden angepasst oder ergänzt werden.

29

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

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

stimmten Objekt gehören und wird dann verwendet, wennNAO am Zug ist und ein zufälliges Attribut von dem ge-wählten Objekt nennen soll.

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

Diese Methoden geben einzelne Attribute für ein be-stimmtes Objekt zurück.

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

Diese Methoden rufen alle Objekte aus dem Gedächtnisab, die bestimmte Attribute haben und geben deren IDszurück. 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 für NAOs Spracherkennungsmodus.

Tabelle 1: Abruffunktionen des, an das Spiel angepassten, Gedächtnis-Moduls.

4.5.3 Tests

Tests ergaben, dass alle notwendigen Inhalte aus dem Gedächtnis abgerufen werden können. Dar-über hinaus ließen sich die Funktionen einfach in den Spielablauf integrieren. Daher erschien es füruns nicht notwendig, Anpassungen an der Struktur vorzunehmen. Für die im vorliegenden Fall we-nigen zu verwaltenden Objekte ist die Struktur ausreichend, jedoch könnte sich dies ändern, wenndie Anzahl der zu verwaltenden Objekte oder Attribute in einem hohen Maße ausgeweitet wird.

30

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

5 Nutzung eines BootloadersDer verwendete Bootloader ermöglicht es, Programme, die auf NAO aufgespielt wurden, ohne dieHilfe eines Computers anzusteuern. In der vorliegenden Implementierung soll das Spiel beginnen,wenn der mittlere Kopfsensor berührt wird.Hierfür verwenden wir eine Bootloader-Datei, die zusammen mit allen Programm-Dateien in

einem Ordner auf NAO liegen müssen. 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 erläutert 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, 2006–2012 c) und einem Beispiel aus einem vorherigen dokumentiertenProjekt entwickelt.Zunächst haben wir eine Bootloader-Datei (bootloader.py) erstellt, in der eine Klasse Bootloa-

der definiert ist. Das Python-Modul ist für das Laden des Hauptprogramms zuständig und solldie Funktion steuern, die das Spiel per Berührung 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 ausgeführt wird, sobaldder mittlere Kopfsensor berührt wird.Damit unsere Bootloader-Datei als NAOqi-Modul auf NAO lauffähig wird, muss diese einen

Broker enthalten. Der Broker ist dafür zuständig, 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 Programmläuft. 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 ausgeführt. Diese erstellt eineInstanz der zuvor definierten Bootloader-Klasse, die oben beschrieben ist und welche wiederumunser Spiel lädt.

32

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

5.2 Up- und Download von Dateien auf NAOFür den Up- und Download von Dateien auf NAO stellt die mitgelieferte Software Choregraphe eineinfaches Interface zur Verfügung, das auch im vorliegenden Fall verwendet wurde. Während des Up-und Downloads muss eine Verbindung zu NAO bestehen. In der Choregraphe-Version 1.14.5 kannunter dem Menüpunkt Connection der Unterpunkt Advanced ausgewählt werden. Dort wiederumgibt es die Möglichkeit den Punkt File transfer zu wählen (siehe Abbildung 15). Nach Eingabe deszu NAO gehörenden Namens und Passwortes öffnet sich ein Fenster in dem die Ordner und Dateienangezeigt werden, die auf NAO gespeichert sind.

Abbildung 15: File Transfer

Hier können mit einem Rechtsklick weitere Optionen gewählt werden und dadurch unter anderemOrdner angelegt oder gelöscht werden. Des Weiteren stehen Buttons zum Up- und Download zurVerfügung, die in gewohnter Art das Auswählen einer Datei oder das Auswählen eines Speicherortsermöglichen.Die zu ersetzende autoload.ini-Datei kann unter folgendem Pfad gefunden werden:

naoqi\preferences\autoload.ini.

5.3 autoload.iniDie Datei autoload.ini enthält eine Liste derjenigen Module, die beim Starten zusätzlich zu dennormalen NAO-Modulen kompiliert werden. Dabei wird zwischen Modulen, Python-Modulen undProgrammen unterschieden. Um diese Datei zu ändern, sollte sie zunächst 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, 2006–2012 f)Beim Uplaod-Fenster gelangt man zunächst 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 einzufügende Pfad wie folgt aus: /home/nao/ispy/bootloader.pySodann kann diese Datei mit einem Upload, wie in Abschnitt 5.2 beschrieben, auf NAO geändert

werden. Nach einem Neustart von NAO wird das Programm, das in bootloader.py programmiertist, ausgeführt.

34

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

6 Zusätzliche projektspezifische Aspekte6.1 Aufgetretene Probleme und LösungenZu den bereits geschilderten Problemen soll zusätzlich in diesem Projektbericht kurz auf weite-re Aspekte eingegangen werden, die während des Projekts aufgetreten sind. Dazu gehört unteranderem eine weitere von Aldebaran-Robotics mitgelieferte Software namens Webots, die NAOsFunktionen in einem größeren 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 hätte dabei geholfen, auch ohne NAO zur Verfügung zu haben, neueTeile der Implementierung zu testen. Für die Simulation von Sensoren diente ein von einer anderenStudierenden erhaltener Simulationhelper, der auf einem kleinen Python-Programm basiert. Füralle anderen Aspekte musste jedes Mal an NAO selbst getestet werden. Ein weiteres Problem er-gab sich aus einer fehlerhaften oder eingeschränkten 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 Fällen auf Grund einer in Wartung befindlichen Online-Dokumentation auf diemit NAO ausgelieferte CD zurückgegriffen werden, die natürlich auch nicht an jeder Stelle auf demaktuellen Stand ist.

6.2 Weitere ImplementierungsvorschlägeGerade Spiele haben ein hohes Potenzial an Verbesserungsmöglichkeiten. Im Folgenden sollen einpaar Ideen kurz angesprochen werden. Zum einen könnte das Sprachverständnis von NAO weiterausgebaut werden. So könnte zum Beispiel auch die Antwort of course eine Zustimmung auf eineja-nein-Frage darstellen. Dies würde eine natürlichere Interaktion begünstigen, trifft aber auf diebereits angesprochenen Probleme der Spracherkennung. Des Weiteren kann NAO in der vorlie-genden Implementierung auf Abbrüche während des Spiels nicht reagieren. Hierzu könnte man anbeliebigen Stellen Abbruchbedingungen per Sprachsteuerung oder Sensoren einbauen. Dabei müss-te jedoch jeweils zusätzlich geprüft 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. Für eine natürliche Interaktion könnte NAO des Wei-teren eine zufällige oder auf Grund des Spielverlaufs bedingte emotionale Verfassung mitgegebenwerden. NAOs Reaktion auf das falsche oder richtige Erraten eines Objekts könnten dabei eineRolle spielen, aber auch, wie lange das Spiel schon dauert. Zusätzlich würde es helfen, wenn NAOhin und wieder die Blickrichtung eines Menschen verfolgt und dadurch vielleicht einen Tipp fürdas richtige Objekt erhält. Dabei wäre es wahrscheinlich hilfreich NAOs Position nicht nur auf dasSitzen auf einem Tisch zu beschränken. Hinzu kommt die Beschränkung auf ein faires und ehrlichesSpiel zwischen Menschen. NAOs naives Verhalten könnte mit Hilfe von Prüfalgorithmen verbessertwerden. Des Weiteren wäre es möglich 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 natürliche 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 darüber zu leis-ten, inwiefern humanoide Roboter in den Alltag integriert werden können. 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...“ für NAO (einem humanoiden Roboter vonAldebaran-Robotics) zu programmieren, das auf Grund eines klaren Rahmens und Spielregeln alsBasis für die Untersuchung der Interaktion mit humanoiden Robotern dienen kann. Bei der Umset-zung des Spiels sollte die Interaktion so natürlich wie möglich gestaltet werden, so dass im idealenFall vom menschlichen Gegenüber im Spiel kein Unterschied gemacht wird zwischen Roboter undMensch. Dass dieses Ziel nur eingeschränkt erreicht werden kann, zeigen die Probleme, mit denenwir bei der Gestaltung einer möglichst natürlichen 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 Wörter beziehungsweise Sätze richtigauszusprechen oder zu betonen. Auch bei der Spracherkennung zeigen sich Probleme, die nochetwas schwerwiegender in der Gestaltung einer möglichst natürlichen Interaktion sind. Sowohl dieErkennung einzelner Wörter, als auch die ganzer Sätze weisen noch Defizite auf. Daher haben wiruns dazu entschlossen, die Kommunikation auf ein Minimum an Wörtern zu reduzieren, die vomMenschen gesprochen und von NAO erkannt werden müssen. 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 flüssiger gestalten. Ein anderer Punkt, der die Kommunikation unnatürlichmacht, ist die Tatsache, dass es nicht möglich ist, NAO zu unterbrechen, während 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.Darüber hinaus zeigen sich Probleme in der Objekterkennung. Die sicherste Methode, mit der

NAO einigermaßen zuverlässig Objekte erkennen kann, ist der Einsatz von NAO-Marks. Abgese-hen davon, dass NAO-Marks in einer natürlichen Umgebung unrealistisch ist, gibt es auch mitdiesen einige Probleme, die einen reibungslosen Spielablauf nicht immer gewährleisten. Wie in Ab-schnitt 4.4 beschrieben, müssen die NAO-Marks in einer bestimmten Position aufgehängt. Werdendiese Umstände nicht eingehalten können ab einem bestimmten Winkel oder Abstand die NAO-Marks nicht mehr erkannt werden. Zudem müssen bestimmte Lichtverhältnisse 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 natürliche Bewegung

vorliegt. Die von uns modellierten Bewegungen sind in unseren Augen so natürlich wie es unsmit NAO möglich erscheint. Andere interagierende Personen halten diese aber möglicherweise fürunnatürlich.Darüber hinaus zeigt sich, dass NAO an manchen Stellen im Spielverlauf sehr naiv ist und nicht

überprüft, 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 anschließend „Blau“, falls seinerster Versuch falsch war, würde er dies einfach akzeptieren und nicht in Frage stellen. Hier bestehenalso noch Probleme, die sich aber leicht beheben lassen. Die Erkennung von solchen Inkonsistenzenkönnte mit einigen Prüfalgorithmen verbessert werden.Des Weiteren wird NAO vermutlich niemals in der Lage sein, festzustellen, ob der Mensch ehrlich

ist und sich fair nach den Spielregeln verhält. 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 lügt, fällt jedoch auch einem Menschen schwer. Daher wird dieser Aspekt in der Natürlichkeitvon NAOs Verhalten nicht so stark von uns gewichtet und es wird einfach davon ausgegangen, dassdie Spielregeln fair angewendet werden.Unserer Meinung nach ist eine natürliche Interaktion mit NAO insgesamt schwer möglich, da man

NAO auf jeden möglichen Fall in einer Interaktion vorbereiten muss. Eine Verhaltensvariabilitätkann beispielsweise nur durch eine randomisierte Anwendung von vorgegebenen Sätzen, die in einerbestimmten Situation gesagt werden können, erzeugt werden. Das bedeutet, eine echte Natürlichkeitkann bei einem fest vorgegebenen Ablauf nicht hergestellt werden, sondern es kann nur versuchtwerden, die Interaktion so natürlich wie möglich wirken zu lassen. Auch wenn es Probleme gibt, diesich in dieser Hinsicht schwer lösen lassen, ist uns ein möglichst natürliches Verhalten an einigenStellen gelungen.Letztendlich bleibt es aber im Ermessen des Betrachters, wie natürlich die Interaktion mit NAO

ist. Eine Beurteilung der Natürlichkeit von NAOs Interaktionsverhalten lässt sich möglicherwei-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 größere Bedeutung in unserem Alltag. Eine größere Natürlichkeit in der Interaktionkönnte die allgemeine Akzeptanz von Robotern im Alltag erhöhen und dadurch ihren Einsatz zumBeispiel für soziale Projekte im Umgang mit hilfsbedürftigen Menschen erleichtern.

37

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

Literatur[Aldebaran-Robotics] (2006–2012 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] 2006–2012 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] (2006–2012 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] (2006–2012 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] (2006–2012 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] (2006–2012 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] (2006–2012 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] (2006–2012 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] (2006–2012 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] (2006–2012 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.

[Böhm] 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

[Böhm] 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 für 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 ErklärungWir erklären hiermit, dass wir den vorstehenden Projektbericht selbständig verfasst und keineanderen als die angegebenen Quellen und Hilfsmittel verwendet haben.

Bamberg, den 29. August 2014Unterschrift

Bamberg, den 29. August 2014Unterschrift


Recommended