Überblick

Der Whiteboard Roboter funktioniert nicht von alleine, sondern besteht aus mehreren Komponenten:

  • Der Roboter selbst kann fahren und die Motoren für das Heben und Senken des Stifts und des ‘Radiergummis’ ansprechen.
  • Damit verbunden ist ein blidgets Board, das Befehle per Bluetooth über Bluetooth 4.0 LE empfangen kann und diese an den Roboter weiter gibt.
  • Zusätzlich befindet sich daran noch ein Android Tablet. Dessen Rotations- und Gravitationssensoren werden zur Lagebestimmung verwendet.
  • Die Position des Roboters wird durch eine Tiefenkamera festgestellt.

Einzelheiten

Roboter steuern

Der Controller verbindet sich per Bluetooth 4.0 LE mit dem blidget und kann darüber Steuerkommandos verschicken.

Position feststellen

Die Position wird durch die Tiefenkamera festgestellt. Hierfür wird das in C++ geschriebene Programm TouchTable verwendet, das bei jedem Durchlauf den Mittelpunkt des Roboters berechnet und diesen mit UDP-Paketen an eine IP-Adresse (Port 12345 - ist aber einstellbar) schickt.
Der ursprüngliche (und in Zukunft aktuellere) Code befindet sich im Repository von Patrick Bader. Mein Fork, der in Zukunft wahrscheinlich keine Updates mehr erhalten wird, sondern in das Ursprungsprojekt integriert wird, befindet sich in diesem Repository.

Lage feststellen

Hierfür läuft auf dem Android Tablet ein Programm, das die aktuellen Daten bezüglich Rotation und Gravitation mit UDP-Paketen an einen beliebigen Port einer IP-Adresse im Netzwerk versendet.

Alles zusammenführen

Der Controller überwacht den Port auf seiner IP-Adresse und empfängt sowohl die Positions- als auch die Lage-Informationen.
Diese werden verwendet um die nächsten Befehle zu berechnen und diese an den Roboter zu übergeben.
Der Code hierfür findet sich in diesem github Repository.