Alma Bot – ein deutschsprachiger TJBot-Roboter

Alma basiert auf IBM TJBot, einem Open-Source Robotik-Projekt, über das Dienste der künstlichen Intelligenz auf einfache und lustige Weise ausprobiert werden können. So ein TJBot kann als 3D Druck oder als Laser Cut selber hergestellt werden und mit einem der verfügbaren Beispiele zum Leben erweckt werden.

Alma ist eine deutschsprachige Variante solch eines Beispiels und verwendet dazu die deutschsprachige Version der folgenden IBM Watson Services aus dem Bereich der künstlichen Intelligenz:

  • IBM Speech To Text: Wandelt die Sprachbefehle in Text um (Almas Ohren).
  • IBM Watson Assistant: Erkennt aus dem Text, was Alma genau tun soll, gibt eine entsprechende Antwort und kann ggf. Rückfragen stellen, wenn etwas unklar ist (Almas Gehirn).
  • IBM Text To Speech: Wandelt die Antwort vom Watson Assistant in Sprache um (Almas Mund).
  • IBM Visual Recognition: Erkennt Gegenstände in dem von der Kamera aufgenommenen Bild (Almas Augen).

Hier ein Beispiel was Alma so alles kann (bitte Lautstärke aufdrehen):

https://youtu.be/hSWbMVd4BS0

Um Alma zum Leben zu erwecken, brauchst du zuerst mal einen TJBot. Es gibt Vorlagen für den 3D Druck und für den Laser Cut. Wir haben unseren TJBot auf Basis der Laser Cut Vorlage aus Holz ausgeschnitten und zusammengeleimt. Auch eine Möglichkeit. Außerdem gibt es noch ein paar Hardware-Komponenten zu besorgen und zusammenzubauen:

* = Affiliatelinks/Werbelinks

Alle notwendigen Schritte sind hier und hier detailliert beschrieben.

Zuerst solltest du versuchen, mit einem der offiziellen „Recipes“ deinen TJBot zu testen.

Alma in Aktion
Alma in Aktion

Wenn das funktioniert, lass uns versuchen, Alma zum Leben zu erwecken. Dazu musst du den Node JS Beispielcode auschecken, der Alma steuert, in dem er die verschiedenen Watson KI Dienste aufruft. Dieser Beispielcode kann direkt von meinem GitHub Repository https://github.com/MarzlS/almabot heruntergeladen werden.

Öffne auf dem Raspberry Pi eine Kommandozeile, wechsle nach „Desktop“ und gib folgenden Befehl ein:

$ cd Desktop
$ git clone https://github.com/MarzlS/almabot

Dies legt auf dem Desktop das Verzeichnis „almabot“ an. Wechsle nun in dieses Verzeichnis und installiere die notwendigen Bibliotheken:

$ cd almabot
$ npm install

Wenn das erledigt ist – es dauert ein paar Minuten – legst du dir aus der Vorlage config.default.js eine eigene Konfigurationsdatei config.js an. Die Konfigurationsdatei enthält alle wichtigen Infos, die Alma braucht, um sich mit den Watson Services zu verbinden.

$ cp config.default.js config.js

Als nächstes legst du auf deinem IBM Cloud Account – 30 Tage Testversion ist verfügbar – einen Watson Assistant Service als Lite Version im Frankfurter Data Center an. Öffne den Service, kopiere den Wert „API-Schlüssel“ und ändere in der Datei config.js den Parameter apikey im Bereich exports.credentials.conversation auf diesen Wert. Über das Programm nano oder einen Texteditor kannst du die Datei ändern.

$ nano config.js

Öffne über „Watson Assistant starten“ die Assistant Oberfläche und importiere über „Skills > Create Skill > Import“ die Datei skill-Alma-Bot.json . Dies legt dir einen neuen Skill „Alma Bot“ an. Klicke auf die drei Punkte an dem Skill, dann auf „View API Details“ und kopiere dir die „Workspace ID“ von diesem Skill. Öffne die Datei config.js und ändere den Parameter exports.workspaceId auf diese Id.

Dann brauchst du noch die Watson Dienste „Speech To Text“ und „Text To Speech“ und jeweils ihren API-Schlüssel. Lege diese Dienste mit dem Standort Frankfurt in der IBM Cloud an. Für den „Visual Recognition“ Service musst du als Standort Dallas verwenden, weil es diesen aktuell noch nicht in Frankfurt gibt. Für alle diese Services genügt die kostenfreie Lite Version. Den API Schlüssel der Services trägst du auch wieder in die Datei config.js ein.

Da wir eine externe USB Soundkarte verwenden benötigen wir noch PulseAudio für die Tonausgabe. Die Installation von PulseAudio erfolgt mittels Befehl sudo apt-get install pulseaudio, dann PulseAudio starten über:

$ pulseaudio --start

Dann kann es endlich losgehen. Starte Alma mit dem Befehl:

$ sudo node almabot.js

Versuche zum Beispiel mal die folgenden Befehle:

  • Hallo Alma!
  • Alma, wie geht es dir?
  • Alma, erzähle etwas über dich.
  • Alma, was kannst du alles?
  • Alma, färbe das Licht Grün! (oder Rot, Pink, Gelb, Blau, Orange, …)
  • Mach das Licht aus, Alma.
  • Alma, lass uns Disco machen!
  • Wie viel Uhr ist es, Alma?
  • Alma, welcher Tag ist heute?
  • Alma, was siehst du gerade?
  • Gut gemacht, Alma!
  • Alma, erzähle mir einen Witz!
  • Alma, spiele mit mir Schere, Stein, Papier.
  • Alma, wirf eine Münze.
  • Wie alt bist du, Alma?
  • Was ist dein Lieblingstier/Lieblingsessen, Alma?
  • Gute Nacht, Alma!

Um das Alma Programm zu beenden sage entweder „Tschüß, Alma“ oder drücke die Tasten Strg und C.

Falls du weitere Ideen hast, was Alma noch alles lernen soll, kannst du es gerne unten in die Kommentare schreiben.

Leider ist die Stimme der deutschen Aussprache vom „Text To Speech“ Service zur Zeit nicht sehr angenehm und spricht manche Worte teilweise sehr komisch aus. Daher haben wir im Moment „intern“ noch den TJBot Lucy in der Entwicklung – mit englischer Sprache und einer schöneren Stimme. Dazu kommt demnächst noch ein „Making of“-Beitrag von uns.

Also schau demnächst wieder vorbei, oder folge mir auf Twitter um den nächsten Beitrag nicht zu verpassen.

3 Gedanken zu „Alma Bot – ein deutschsprachiger TJBot-Roboter

  1. Hi, toller Artikel. Ich habe leider nach wie vor Probleme mit der LED und muss sagen Birgit klingt wirklich nicht ganz so toll 🙂 Trotzdem danke für die „deutsche Version“, macht gleich mehr Spaß!

    1. Hi und danke für deinen Kommentar, freut mich das die Alma auch bei dir funktioniert 🙂
      Zu deinem LED Problem: Leuchtet sie gar nicht? Dann ist es evtl. ein Problem mit der Verkabelung oder die LED ist defekt. Wenn sie „falsch“ leuchtet, also falsche Farben zeigt oder während der Audio-Ausgabe flackert, dann liegt es an der Überschneidung mit dem analogen Audio-Ausgang.
      Ich verwende deswegen die USB Soundkarte fürs Audio, dann kann man den analogen Audio-Ausgang deaktivieren und die LED funktioniert wie sie soll.

      1. Hi Marcell,
        danke für deine Antwort, Premium-Support 🙂

        Doch doch sie leuchtet, zumindest wie im offiziellen Guide beschrieben mit der Alternative 5Volt-Pinout. Am 3 Volt ist sie tot.

        Hab noch keine andere probiert, weil sie eben leuchtet. Allerdings leuchtet sie nur, Reaktion erfolgt keine. Dabei hab ich unterschiedliche Pin-Outs zu den Recipies gefunden und ausprobiert. Muss wohl warten bis zu den Feiertagen. Schöne Weihnachten!

Kommentare sind geschlossen.