Für viele Aufgaben werden Daten von realen Robotern, oder alternativ aus einer Robotersimulator benötigt. Eine Möglichkeit dazu ist USARSim (engl: Unified System for Automation and Robot Simulation). Dieser Simulator ist kostenlos und basier auf den Computerspielen der Unreal Tournament Serie. Zunächst muss das Unreal Development Kit (UDK) installiert werden, bevor die Änderungen des eigentliche USARSim eingespielt werden. Anschließend kann man sich über eine TCP/IP-Schnittstelle mit beispeilsweise einem C/C++/Python/...-Programm mit dem Simulator verbinden, Roboter steuern und simulierte Sensordaten erhalten. Der Simulator läuft nicht nur, aber am besten unter Windows. Die Roboterkontrollprogramme können selbstverständlich unter jedem betriebssystem ausgeführt werden. Im Folgenden beschreiben wir die Schritte, die dazu nötig sind.
Die Server-Adresse
ist localhost,
falls Usar.exe auf dem selben Rechner
ausgeführt wird. Der Port ist standardmässig 3000. Klicken
Sie connect, um sich zum Unreal-Server zu
verbinden, und führen Sie folgenden Befehl aus:
INIT {ClassName USARBot.KR6} {Location .4, .4, 1.8}
um einen Roboter zu erzeugen. Wenn alles funktioniert hat, sollten Sie
einen KUKA KR6 Roboter in der Ansicht sehen.
Nun sollten Sie sich zunächst die IP-Adresse
des Computer (oder virtuellen Maschine) mit dem Unreal-Servers
notieren und den Server mit VMAC2011.bat
starten. Evtl. müssen Sie die Firewall der beteiligten Rechner
entsprechend konfigurieren. Anschließend können Sie von
einem UNIX-Rechner folgende Befehle ausprobieren.
telnet 192.168.1.180 3000
INIT {ClassName USARBot.ROBOT} {Location .4, .4, 1.8}
Nun können Sie ein C/C++-Programm schreiben, was sich mit dem Unreal-Server verbindet und einen Roboter initialisiert, indem das INIT-Kommando gesendet wird. Stellen Sie sicher, dass die Verbindung danach aufrechterhalten wird, da der Roboer verschwindet, sobald sie abbricht. Selbstversändlich können Sie auch mehrere Roboter gleichzeitig steuern.
Zunächst machen Sie sich bitte mit ROS
vertraut und arbeiten die Tutorial durch. Um mit ROS (engl.: Robot
Operating System) einen Roboter in USARSim zu steuern, laden Sie
sich bitte folgende Datei
herunter: ros_usarsim.zip. Entpacken
Sie das zip-File und modifizieren Sie die
Datei src/usarsim.cpp, indem Sie die
IP-Adresse des USARSim-Servers eintragen. Platzieren Sie nun das ROS
package in den ROS Pfad und übersetzen Sie es. Nun können Sie
folgendes Kommando ausführen:
rosrun usarsim usarsim x y z RobotName
x, y, z sind wiederum die Startkoordinaten des Roboters (vgl. 0.4,
0.4, 1.4 oben). Wählen Sie einen eindeutigen Namen für Ihren
Roboter. Das ROS-Programm
Das folgende Video zeigt die USARSim
Simulation. P3AT Roboter, ausgestattet mit SICK LMS200 Laserscannern,
verwenden die Freiraumnavigation mit Spurfahrt, wie sie in Kapitel
7.3.1 auf Seite 266ff beschrieben ist, um ohne Kollisionen
herumzufahren. Dies ist eine Musterlösung zu Übung 7.2.