← Alle Beiträge

Roboter weltweit fernsteuern: Kamera, Server und Bedienung

Unser Roboter übers Internet: Aufgaben von WLAN-Controller, Server und Kamera, Erfahrungen mit der Verzögerung und sinnvolle Tests vor dem Ferneinsatz.

25. Oktober 20235 min Lesezeit
  • roboter
  • elektronik
  • arduino
Auf YouTube ansehen

Unser Roboter sollte einen ziemlich konkreten Wunsch erfüllen: trotz einer Reise bei einer Geburtstagsfeier dabei sein, herumfahren und sogar Bierpong mitspielen. Der geplante Einsatz aus Los Angeles klappte zeitlich nicht. Erst später gelang der Fernsteuerversuch aus Österreich – aus fast tausend Kilometern Entfernung reagierte der Roboter auf Tastendrücke am Laptop.

Dafür brauchten wir keine Funkfernsteuerung mit riesiger Reichweite. Die Verbindung lief übers Internet. Die eigentliche Aufgabe bestand darin, Fahrbefehle, Elektronik und den Blick vom Roboter zurück zur Bedienung zusammenzubringen.

Vier Aufgaben statt einer großen Robotersteuerung

Unser Aufbau lässt sich nach klaren Rollen verstehen:

  • Bedienoberfläche: Am Computer steuerten wir mit WASD. Ein erster kleiner Funktionstest hatte schon vorher einen Motor über einen Button am Handy bewegt.
  • Server: Er leitete die Steuerbefehle weiter. Damit musste der Laptop nicht in unmittelbarer Funkreichweite des Roboters stehen.
  • WLAN-Mikrocontroller: Ein Arduino-kompatibles ESP8266-Board übernahm die Logik am Roboter und die Anbindung an die Antriebselektronik.
  • Kamerabild: Für die Sicht aus der Ferne sah unser Konzept ein Handy mit Videocall vor. Bildübertragung und Motorsteuerung waren damit getrennte Aufgaben.

Motoren, Motortreiber und Akku nahmen wir aus einem alten Hoverboard. Dazu kamen Servos, Spannungswandler und gedruckte Bauteile. Für einen eigenen Aufbau ist ein D1 Mini mit ESP8266 * eine Controller-Alternative. Gleiche Boardbelegung, Versorgung und Anschlüsse mit deiner Elektronik ab. Das kleine WLAN-Board gibt Steuersignale aus; die Motorleistung läuft über den Motortreiber.

Unsere Projektquellen sind als Roboter- und Bediencode sowie als Servercode aufgeteilt. Für einen neuen Einsatz gehören Zugangsdaten außerhalb öffentlich geteilter Dateien und eine Bedienoberfläche dazu, auf die nur berechtigte Personen zugreifen können.

Was die 0,9 Sekunden praktisch bedeuten

Die 0,9 Sekunden aus unserem Projekttitel gehören zum damaligen Fernsteuerversuch. Beim Test aus Österreich reagierte der Roboter nach unserer Beobachtung innerhalb von weniger als einer Sekunde auf die Taste am Laptop.

Beim Fahren sind allerdings zwei Dinge zu unterscheiden: Wann kommt der Befehl am Roboter an, und wann siehst du seine Bewegung auf deinem Bildschirm? Ein verzögertes Kamerabild kann dazu führen, dass du noch lenkst, obwohl der Roboter bereits weit genug gedreht hat. Taste, Bewegung und sichtbare Rückmeldung solltest du deshalb getrennt beobachten.

Beginne mit kurzen Fahrimpulsen auf einer freien Fläche. Lass den Roboter erst zum Stillstand kommen und betrachte seine neue Position, bevor du weitersteuerst. Besonders beim Wenden hilft diese Ruhe mehr als hektisches Gegenlenken. Zum Testen bleibt jemand vor Ort, der den Antrieb abschalten kann; Personen und Tiere bleiben außerhalb der Fahrfläche.

Internetzugang am Einsatzort zuerst ausprobieren

Ein Handy-Hotspot war unsere Idee, um den Roboter auch außerhalb eines festen WLANs zu nutzen. Beim gelungenen Fernversuch war diese Erweiterung aber nicht angeschlossen. Später ließ sich der Roboter zeitweise nicht mehr bewegen; wir vermuteten eine schlechte WLAN-Verbindung.

Für deine Planung folgt daraus: Teste die Verbindung dort, wo der Roboter tatsächlich fahren soll. Eine funktionierende Verbindung neben dem Router sagt wenig über die hintere Ecke des Grundstücks. Prüfe gleichzeitig Fahrbefehle und Kamerabild. In unserer Werkstatt mit Büro scheiterte schon die Idee eines Livestreams zunächst am Internetzugang – Platz für das Projekt allein reicht also nicht.

Für eine eigene Steuerung würden wir außerdem festlegen: Bleiben neue Fahrbefehle aus, muss der Antrieb selbsttätig stoppen. Probiere diesen Fall gezielt aus, statt erst beim Verbindungsabbruch herauszufinden, was die Software mit dem letzten Befehl macht.

Erst zuverlässig fahren, dann Zusatzfunktionen einbauen

Bei unserem früheren XXL-Saugroboter hatten wir bereits erlebt, dass mehrere einzeln funktionierende Aufgaben zusammen Probleme machen. Der Arduino schaffte die Ansteuerung von Armen, Turbine und Hoverboard-Controller nicht gleichzeitig wie gewünscht. Wir reduzierten die Häufigkeit der Fahrbefehle und trennten Fahr- und Arm-/Turbinenbetrieb über einen Umschalter.

Diese Lösung gehört zum Saugroboter, liefert aber einen guten Testansatz für die Internetsteuerung: zuerst nur den Antrieb betreiben, dann weitere Funktionen einzeln zuschalten und anschließend alles gemeinsam prüfen. So lässt sich eher erkennen, welche Ergänzung die Reaktion verändert.

Auch vorhandene Akkus sollten nicht allein die Planung bestimmen. Bei unserem Elektro-GoKart war vorhandenes Akkumaterial ein wichtiger Grund für die gewählte Versorgung; die Fahrzeit blieb kurz. Für einen Fernsteuerroboter würden wir die benötigte Einsatzdauer deshalb früh festlegen und den vollständigen Aufbau einschließlich Kamera über diese Zeit betreiben.

Elektronik vor dem Fahrtest befestigen

Bei uns verursachten frei liegende Platinen und Kabel tatsächlich einen Kurzschluss. Anschließend haben wir den Aufbau nochmals isoliert und geordnet. Diese Arbeit würden wir vorziehen: Platinen mit geeigneten Abstandshaltern befestigen, offene Kontakte schützen und Leitungen so führen, dass sie weder an Rädern scheuern noch zwischen bewegliche Teile geraten. Vor Arbeiten daran wird der Akku getrennt.

Die wichtigste Zeitersparnis läge für uns heute im frühen Gesamttest. Vor der Reise mussten wir die Serveradresse schon in den Controller schreiben, obwohl der Server noch nicht funktionierte. Besser ist, die vollständige Verbindung aus Bedienung, Server und Roboter einmal vor Ort zum Laufen zu bringen, bevor jemand abreist.

Wir haben selbst viel gelernt, indem wir andere Projekte angeschaut und gezielt nachgefragt haben. Wenn du ein fremdes Steuerungsprojekt untersuchst, beginne deshalb mit einer kleinen Frage: Wie wird aus einer Taste die Bewegung eines einzelnen Motors? Für den ersten eigenen Fernversuch reicht dann eine überschaubare Aufgabe: losfahren, gezielt anhalten und sich anhand des Kamerabilds wieder orientieren. Die Partyfunktionen können danach kommen.

Links zum Projekt

Noch Fragen zum Projekt?

Kurze Fragen zum Video am besten direkt in die YouTube-Kommentare – da antworten wir. Für alles Längere gibt es unseren Discord. Und wenn dir die Anleitung geholfen hat, freuen wir uns über ein Abo.

Mehr davon

YouTube IconInstagram IconDiscord Icon
©baubumms 2021