Zum Inhalt springen
Deutsch

Linux (Ubuntu)

Spielserver und Controller-Programm auf demselben Computer ausführen

Abschnitt betitelt „Spielserver und Controller-Programm auf demselben Computer ausführen“

Führe zuerst den Spielserver und dein Controller-Programm auf demselben Computer aus. Das entspricht nicht dem Setup beim Wettbewerb, ist aber praktisch, um lokal zu debuggen.

Öffne die Welt und drücke im Steuerfenster auf „TOGGLE REMOTE“. Der Button wird orange, sobald der Remote-Modus eingeschaltet ist.

Der Button TOGGLE REMOTE, eingeschaltet

Wenn das Steuerfenster nicht angezeigt wird, klicke im Scene Tree mit der rechten Maustaste auf „DEF MAINSUPERVISOR Robot“ und wähle „Show Robot Window“.

Öffne ein Terminal und führe die folgenden Befehle aus. Ersetze dabei <Your controller path> durch den Pfad zu deinem Controller-Programm.

Terminal-Fenster
export WEBOTS_HOME=/usr/local/webots
"$WEBOTS_HOME/webots-controller" "<Your controller path>"

Das setzt voraus, dass Webots mit dem .deb-Paket in /usr/local/webots installiert wurde. Wenn du es woanders installiert hast, passe WEBOTS_HOME entsprechend an.

Der Controller verbindet sich mit Webots und wartet, bis das Spiel beginnt.

Drücke den Start-Button im Steuerfenster. Der Roboter erscheint, und dein Programm beginnt zu laufen.

Um das Spiel zu stoppen, drücke Strg+C im Terminal.

Wenn die Simulation endet, wird auch die Spielverwaltung von Erebus beendet. Um das Spiel noch einmal zu starten, lade die Welt neu.

Den Spielserver auf einem anderen Computer ausführen

Abschnitt betitelt „Den Spielserver auf einem anderen Computer ausführen“

Dieses Setup wird bei offiziellen Wettbewerben verwendet. Der Computer, auf dem dein Controller läuft (der Client), und der Computer, auf dem das Spiel läuft (der Server), müssen mit demselben Netzwerk verbunden sein.

  1. (Server) Starte Webots auf dem Server, öffne die Welt und schalte im Steuerfenster den Remote-Modus ein.

  2. (Server) Finde die IP-Adresse des Servers heraus, zum Beispiel mit dem Befehl ip addr.

  3. (Client) Führe die folgenden Befehle aus. Ersetze dabei <Your controller path> durch den Pfad zu deinem Controller-Programm und <Server IP address> durch die IP-Adresse aus dem vorherigen Schritt.

    Terminal-Fenster
    export WEBOTS_HOME=/usr/local/webots
    "$WEBOTS_HOME/webots-controller" --protocol=tcp --ip-address=<Server IP address> "<Your controller path>"
  4. (Server) Starte das Spiel mit dem Start-Button.

  • Der Controller kann sich nicht verbinden: Prüfe, ob sich die beiden Computer gegenseitig erreichen, zum Beispiel mit ping, ob die Firewall des Servers den TCP-Port 1234 zulässt und ob die Liste der erlaubten IPs im Tab „Network“ der Webots-„Preferences“ leer ist oder den Client enthält.
  • No robot name provided wird angezeigt: Diese Meldung ist normal, solange der Controller wartet. Verschwindet sie nicht, ist der Remote-Modus nicht eingeschaltet: Prüfe den Button TOGGLE REMOTE.
  • Der Controller findet eine Python-Bibliothek nicht: Das Programm läuft mit der Python-Installation des Clients, also installiere die Bibliothek dort.

Mehr Details zu diesem Setup findest du im Webots-Handbuch.