USARSim and Robocup Rescue options W.Pasman, 27 may 2009 This document gives an overview of RoboCup Rescue, USARSim and related modules, so that we can pick an appropriate configuration for RoboCup Rescue and have the option to control real robots. USARSim USARSim [USARSim09, USARSim07, Wang08] is a robot/physics simulator based on Unreal Tournament 2004. It uses hardware acceleration to render 3D renderings of the scene, and simulates physics with its built-in Karma engine. It seems pretty popular at about 1500 downloads per month. Last modifications are from march 2009 so this project seems still alive although the main activity around it was in 2005. Figure 1. System architecture of USARSim [Wang05] Figure 1 shows the system architecture. It is not easy to connect to Unreal from outside. Therefore USARSim uses Gamebots, an interface to Unreal using sockets. Gamebots has been around since 2002 and has roughly 50 downloads per month. Last modifications are from april 2006 so this is not actively maintained anymore. The simulation consists of: environmental models (levels) of the NIST Yellow, Orange, and Red Arenas (I think this fixedness of the environments is a bit weird, I expected that you could specify the environment yourself) as well as a partially textured version of the Nike Silo reference environment, robot models of commercial 1 and experimental robots, and sensor models. As a simulation user, you are expected to supply the user interfaces and automation and coordination logic you wish to test. For debugging and development “Unreal spectators” can be used to provide egocentric (attached to the robot) or exocentric (third person) views of the simulation. A test control interface is provided for controlling robots manually. Robot control programs can be written using the GameBot interface or Pyro middleware. USARSim also provides drivers for Player. With these USARSim Player drivers, robots and sensors in the simulator can be controlled through Player as if they were real physical devices. Three kinds of sensor are simulated in USARSim. • Proprioceptive sensors – battery state and headlight state. • Position estimation sensors – location, rotation and velocity sensors. • Perception sensors – sonar, laser and pan-tilt-zoom (ptz) camera. The robot is simulated with the Karma engine which is part of Unreal Tournament. It simulates elements like chassis, tires, linkage, sensors, headlight, and torques that are applied to joints. You need to program Unreal Script to program your own robots. Readily provided in USARSim are P2AT, P2DX, iRobot ATRV-Jr, PER, Corky and a standard 4-wheel car (Figure 2). Figure 2. The available robots for USARSim 3.1. USARSim 3.1.3 supports more robots. QuickTime™ and a TIFF (Uncompressed) decompressor are needed to see this picture. Figure 3. P2AT Robot QuickTime™ and a TIFF (Uncompressed) decompressor are needed to see this picture. Figure 6. PER robot QuickTime™ and a TIFF (Uncompressed) decompressor are needed to see this picture. Figure 4. P2DX robot QuickTime™ and a TIFF (Uncompressed) decompressor are needed to see this picture. Figure 7. Corky Robot 2 QuickTime™ and a TIFF (Uncompressed) decompressor are needed to see this picture. Figure 5. ATRV-Jr Robot QuickTime™ and a TIFF (Uncompressed) decompressor are needed to see this picture. Figure 8. Four-wheeled Car If I understand it right, USARSim allows quickly changing between real and virtual environment for all supported robots, without needing to change the other components. I assume that this is the case assuming you use an appropriate controller like Player (see the next section). There also is a testing interface called USAR_UI, which you can use to send commands to the server manually via keyboard, mouse and/or joystick. There is an example interface called SimpleUI that shows how video images are received and handled. The manual indicates that only Windows 2000, Windows XP and Linux are supported. It recommends to run the USARSim server on a separate machine under Linux, due to a bug that prohibits switching focus to other tasks. The full 'system' is a complex web of python, C, java, Unreal Script, configuration files. According to Arnoud Visser (personal Communications by Koen Hindriks) USARSim in practice can handle at most 4 robots, due to limitations of the physics engine. Also he indicates that the Pioneer P2AT robot gives the least problems, and that in practice you need two machines to run USARSim, one to run the simulator, one to run the controllers. Im not sure which platforms are actually supported. I first read that only Windows is supported. But [Carpin07] states that USARsim is platform independent and runs on Windows, Linux and MacOS. The USARSim Download Page [USARsim] shows a Windows and a Linux download but not OSX. Controllers A controller is a hardware abstraction layer (HAL) for robotic devices. Robot controllers allow both simulated and real robots to be controlled. USARSim supports three robot controllers: MOAST, Pyro and Player. Pyro is outdated, below we discuss only MOAST and Player. MOAST MOAST (Mobility Open Architecture Simulation and Tools) [MOAST09] is a hierarchical modular set of controllers, interfaces and tools. The controllers range from low-level servo control to high-level robot team control. MOAST is written in Java and C. MOAST is available only for Linux. The manual suggests that all robot classes of USARSim are supported. MOAST uses NLM (Neutral Message Language) [NLM09] to communicate between modules. MOAST is based on the 4D/RCS architecture, which is based on a layered system of Observer-Orient-Decide-Act loops. The higher level layers gives goals to the lower level layers, and a higher level layer works on a longer time frame than the lower layer it instructs. This is shown in Figure 9. 3 Figure 9. The 4D/RCS Architecture. From [Finkelstein08] Player Player [Player08] defines a set of standard interfaces (Interface specifications), each of which is a specification of the ways that you can interact with some class of devices. For example the position2d interface covers ground-based mobile robots, allowing them to accept commands to make them move (either velocity or position targets) and to report their state (current velocity and position). Many drivers support the position2d interface, including p2os, obot, and rflex, each of which controls a different kind of robot. The job of the driver is to make the robot support the standard interface. This way, Player control code that works with one robot will work (within reason) on another robot. Player also supports abstract drivers, implementing useful algorithms such as probabilistic localization in a robot-independent way. Player also provides transport mechanisms that allow data to be exchanged among drivers and control programs that are executing on different machines. By far the most common transport in use now is a client/server TCP socket-based transport. Player is written mainly in C and C++ hence is machine dependent. The download page mentions compatibility with most UNIX systems, particularly Linux and OSX. Windows is not supported. There are 13 robot drivers available for Player, these are listed on http://playerstage.sourceforge.net/doc/Player-cvs/player/supported_hardware.html. There are also other plug-ins, for image capture, speech recognition, networking, blob tracking, obstacle avoidance, etc. 4 Finally there are the Gazebo simulator and the Stage simulator that can be plugged into Player, to simulate the environment in 2D or 3D. MrCS Multirobot Control System [MrCS09] is an extension/frontend for USARSim. It is written in Java. Source code is at http://athiri.cimds.ri.cmu.edu/cvstrac/usarsim/dir? d=UsarSim-src/UsarSim. Figure 10 shows a snapshot of MrCS in action. This interface is designed such that a human operator can help and guide the robots. The interface depends highly on the competition rules and the choices made by the team. The MrCS team decided to have a human operator in the loop even though that will divide their final score by 4 in this contest. QuickTime™ and a TIFF (Uncompressed) decompressor are needed to see this picture. Figure 10. MrCS user interface for human-assisted rescue robots. From [Velagapudi08]. What has to be done to couple GOAL to Robocup? I discuss two variants: Virtual Robot Simulation and Rescue Agents. The Robocup Soccer is less relevant for us now [Pasman09]. Robocup Rescue Virtual Robot Simulation RoboCup Rescue Virtual Robots is a simulator for rescue actions [Visser09]. The rescue team consists of a team of robots, controlled by a (sometimes human) operator. Compared to the Robot league, the focus is on team work and situational awareness of the operator. The simulator is entirely in Java and platform independent. USARSim can be hooked into this simulator to render nice pictures, but I suppose that will render the simulator platform dependent. According to Arnoud Visser (personal Communications by Koen Hindriks) The most autonomous competition that is available is the "Deployment test" and there is software to automatically determine the winner. This competition is not so challenging, for instance there are no victims to be localised. An environment that requires localization of victims has not been made public. The other two competitions 5 for the Virtual Robot Simulation involve a human operator in the loop (Figure 10) and are not what we are looking for. Robocup Rescue Rescue Agents [Yotsukura08] describes how to couple Robocup Rescue Agents to USARsim, which greatly can improve the graphics (Figure 11). The Robocup Rescue Simulator (RCRS) stays an independent simulation engine and instances of USARSim are hooked into this (Figure 12). Hooking in GOAL involves a number of pretty straightforward hacks into the RCRS source code to modify clock behaviour, to set up a socket to USARSim, and setting up a few configuration files. Vraag van Koen: kunnen de agents hier lopen zonder dat we allerlei patroon herkenning moeten gaan doen? It is not clear whether robocup rescue agents can actually be coupled to real robots. USARSim can be coupled into the system but so far it seems just to generate images, not to steer real robots. Figure 11. Snapshot with USARSim connected to RoboCup Rescue Agents. The gray map is the standard RoboCup Rescue screen. The three video screens at the right must be simulated video from USARSim. 6 Figure 12. USARSim instances hooked into the robocup rescue simulator. - Hoeveel tijd gaat naar jou inschatting eea duren? Wat moet er allemaal gebeuren? References [Carpin07] Carpin, S., Lewis, M., Wang, J., Balakirsky, S., & Scrapper, C. (2007). USARSim: a robot simulator for research and education. Proc. IEEE Int. Conf. on Robotics and Automation (ICRA 2007, Roma, Italy), p.1400-1405 . http://user.it.uu.se/~annikak/lewis-usarsim.pdf. [Wang05] Wang, J. (2005). USARSim: A Game-based Simulation of the NIST Reference Arenas. http://usl.sis.pitt.edu/wjj/USAR/Release/USARsim-manual.pdf [USARSim] USARsim Download Page. http://usl.sis.pitt.edu/ulab/usarsim_download_page.htm. [Yotsukura08] Yotsukura, S. (2008). Protocols combining RoboCup Rescue Simulation and USARSim. http://sakura.meijou.ac.jp/~yotsukura2008/Documentation/ver.1.0.0/guide.html [GameBots02] Gamebots: Agents in Computer Games. http://gamebots.sourceforge.net. [UsarSim09] USARSim: Unified System for Automation and Robot Simulation. http://sourceforge.net/projects/usarsim. 7 [USARSim07] USARSim: Unified System for Automation and Robot Simulation. http://usarsim.sourceforge.net/. [Wang08] Wang, J., & Balakirsky, S. (2008). USARSim V3.1.3: A Game-based Simulation of Mobile Robots. http://sourceforge.net/project/showfiles.php?group_id=145394&package_id=180746. [MOAST09] Balakirsky, S. (2009). MOAST: Mobility Open Architecture Simulation and Tools Reference Manual. http://sourceforge.net/project/showfiles.php?group_id=148555. [Player08] The Player Project. http://playerstage.sourceforge.net/. [NLM08] Real-Time Control Systems Library –– Software and Documentation. NIST. http://www.isd.mel.nist.gov/projects/rcslib/. [Finkelstein08] 4d/Rcs: An Autonomous Intelligent Control System For Robots And Complex Systems Of Systems. http://www.gwu.edu/~uscs/docs/0809/GWU%20Presentation%204DRCS%20And%2 0Cybernetics.ppt. [RobocupRescue07] Rescue Virtual Robot Simulation (2007). http://wiki.cc.gatech.edu/robocup/index.php/Rescue_Virtual_Robot_Simulation [Visser09] Visser, A., Carpin, S., & Balakirsky, S. (2009). Roboup Rescue Simulation League Virtual Robots Competition Rules Document. http://www.robocuprescue.org/wiki/images/Rules2009v2.pdf [Velagapudi08] Velagapudi, P., Kwak, J., Scerri, P., Lewis, M., & Sycara, K.(2008). Robocup Rescue - Virtual Robots Team STEEL (USA) MrCS The Multirobot Control System. http://athiri.cimds.ri.cmu.edu/twiki/pub/UsarSim/WebHome/steel-tdp-2008.pdf [MrCS09] Welcome to the UsarSim web! http://athiri.cimds.ri.cmu.edu/twiki/bin/view/UsarSim/WebHome [Pasman09] Environment for MKT2. Technical Report, Delft University of Technology. 8