Steuerungsentwicklung für einen Präsentationsroboter

Job type:
remote
Start:
ab sofort
Duration:
6 months (extension possible)
From:
NOX Robots Inh. Tobias Danzer
Place:
Pforzheim
Date:
02/11/2019
Country:
flag_no Germany

Project description:
Warning
This project is archived and not active any more.
You will find vacant projects in our project database.
Für den Präsentationsroboter NOX und seinen Nachfolger soll eine neue Steuerung entwickelt werden.

Informationen bitte vertraulich behandeln.

Der Roboter ist ein mechatronisches Kostüm ohne elektrische Unterstützung der Arm- und Beinbewegung. In dem Kostüm ist ein Mensch, der alle Interaktionen sowie Showeffekte des Roboters von innen steuert. Zu den Showeffekten gehören die Sound- und Sprachausgabe, die Steuerung der Lichteffekte sowie das Steuern von Servos und das Schalten von externen Geräten wie bspw. eine Nebelmaschine. Die Effekte und Sounds lassen sich über ein Tastenfeld bedienen. Des Weiteren verfügt der Roboter über verschiedene Displays, die Kundenlogos sowie Statusinformationen wie bspw. Akkustand und IP-Adresse anzeigen.

Die Interaktionen des Roboters sind in ihrer Reihenfolge festgelegt und können wie eine Playlist abgespielt werden. Die Show wird über die Tasten Start, Pause und Skipp (Springen zwischen den einzelnen Tracks) gesteuert. Weitere Tasten ermöglichen es aber auch individuell auf spezielle Situationen zu reagieren.

Die Steuerung soll neu entwickelt werden, da die aktuelle Steuerung instabil und sehr wartungsintensiv ist. Das neue System soll systemstabil und wartungsfreundlich, daneben aber auch leicht erweiterbar sein, um zukünftige Weiterentwicklungen des Roboters zu erleichtern.

Video Link zu NOX in Aktion
https://vimeo.com/224456001

Beschreibung des jetzigen Systems:
Der Präsentationsroboter wird über eine speziell für den Roboter NOX entwickelte Zusatzplatine in Verbindung mit einem Raspberry Pi gesteuert. Die Steuerung ist in Python programmiert. Vor dem Auftritt müssen Änderungen im Python-Skript vorgenommen werden, um die Soundfiles und Farbeinstellungen nach Kundenvorstellung zu gestalten.
Auf dem entwickelten Board sind verschiedene Ausgänge: für die NEOPIX (wird über einen FadeCandy angesteuert), für Servos, für 4-Zeilen-Displays sowie Direktausgänge für das Schalten der Batteriespannung auf Masse. Eingänge für einen JOYSTICK, eine 4x4-Tastenmatrix und für diverse Taster sind vorhanden.


?
Zur Realisierung des Projektes soll entweder ein Linux-System eingesetzt werden, das verschiedene Microcontroller anspricht, oder zwei Linux-Systeme, die miteinander kommunizieren.
Ihre Aufgabe besteht in der Auswahl der System-Komponenten sowie der Programmierung der Steuerung.

Anforderungsliste:
• Modularer Aufbau mit möglichst im Handel erhältlichen elektronischen Bauteilen
o Erste Möglichkeit: Zentrale Steuerzentrale, die über ein geeignetes BUS-System oder LAN dezentrale Controller ansteuert.
o Zweite Möglichkeit: Zwei Komplettsysteme, die Aus- und Eingänge direkt ansprechen und miteinander über LAN kommunizieren.
• EMV- und ESD-sicher
• Getrennte Zugänge für Administrator und Benutzer
o Web-Oberfläche, über die der Benutzer LED’s entsprechend der Firmenfarben, das Firmenlogo und Soundbelegung programmieren kann.
• Beleuchtung
o RGB Hintergrundbeleuchtung, kein statisches Licht, sondern langsames Pulsieren (ein Steuersignal für alle LEDs)
o Animiertes Licht (LEDs einzeln ansteuerbar, z.B. WS2812)
? Visualisieren von Sprache
? Animation an Gelenken
? Animation von Emotionen
• Servomotoren
o Bewegung des Kopfs (Eingangssignal ist eine Joystick-Auslenkung)
o Bewegung des Munds abhängig von der Sprache
o Anfahren definierter Positionen, z.B. Öffnen und Schließen einer Klappe
• Eingänge
o Taster/Schalter
o Tastenmatrix
o Joystick (Servosteuerung)
o Möglichkeit weitere Sensoren einzubinden (z.B. Ultraschall / Beschleunigung)
• Ausgänge
o Servomotoren
o LEDs
o Schalten der Batteriespannung für z.B. Wasserpumpe
o Digital- und Analogausgänge
• Überwachung
o Der Systemstatus soll auf einem Display am Roboter angezeigt werden sowie über ein Webinterface abrufbar sein
? Akkustatus
? Temperatur
? Aktuelle Position in der Playlist
? Erweiterbar z.B. CPU-Auslastung, Servobelastung