downloading - Interactive Intelligence group

advertisement
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
Download