Installing and Using Software From The Player Project
Installing and Using Software From The Player Project
Overview
Simulation
Player, Stage, and Gazebo
Installation
Configuration
Writing Clients
Demo
Simulation
Approximate of the real-world.
Why would we want to do this?
Faster, easier and cheaper to create;
Easier to experiment with and demonstrate;
Experimental repeatability.
Software Overwiew
Player:
A server, that provides an abstraction layer to robots.
Stage:
A simulator;
2D;
Low fidelity, but can emulate more virtual robots.
Gazebo:
Another simulator;
3D;
High fidelity, but can not emulate as many virtual robots.
Client
Cmds
Player
Gazebo
Data
SHM
TCP/UDP
TCP/UDP
Real Hardware
What is Player?
Hardware abstraction layer for robots.
Implements a client/server model.
Communication over TCP sockets using the
Player protocol.
Officially supported client libraries:
C, C++, Python
Acroname Garcia
Botrics Obot d100
Evolution Robotics ER1 and ERSDK robots
iRobot Roomba vaccuming robot
K-Team Robotics Extension Board (REB) attached to Kameleon 376BC
K-Team Khephera
MobileRobots (formerly ActivMedia) PSOS/P2OS/AROS-based robots (e.g., Pioneer, AmigoBot)
and integrated accessories, including a CMUcam connected to the AUX port.
Nomadics NOMAD200 (and possibly related) mobile robots
RWI/iRobot RFLEX-based robots (e.g., B21r, ATRV Jr) and integrated accessories.
Segway Robotic Mobility Platform (RMP), a custom-modified version of the Human Transport
(HT)
UPenn GRASP Clodbuster
Videre Design ERRATIC mobile robot platform
White Box Robotics 914 PC-BOT
Also supports numerous devices (sensors, actuators), software (e.g.: for speech
recognition), algorithms (e.g.: obstacle detection and avoidance), and simulators
(which we talk about next).
* This list is taken from the Player Project Wiki.
Switch
This is where you should switch to the Stage /
Gazebo slide 6.
Other Simulator
What if Gazebo and Stage are not suitable for
your purposes?
Write your own!
Installation
Instructions on
Player website;
Ubuntu is
recommended;
Try running
/usr/share/stage/
worlds/simple.cfg
should see this
image -->
Use robot-playerv
to play with it.
Installation, continued
I am not going to recreate every students
development environment;
I will be testing your assignments on Ubuntu ;
Windows: Ubuntu VM?
Macintosh: Probably works.
Defining a Robot
Three things:
Interfaces: A set way for drivers to send / receive
data.
Drivers: Piece of code that talks to hardware
(laser, camera, transporter).
Devices: A driver, bound to a particular interface
so that Player can communicate with it.
Configuration Files
For details about any configuration issues, check the
Player website, or Google player stage tutorial and
read the first hit (a PDF by Jennifer Owen)
There are three main types of configuration files in
Player / Stage:
.inc: Use these files to define objects that can appear in
worlds.
.world: This describes everything in the world (robot,
objects, their layout, etc)
.cfg: This describes your robot, what drivers it has (which
will always be stage in this class), how to interface with
each item, etc.
Example: map.inc
gui_nose 0
gui_grid 1
gui_movemask 0
gui_outline 0
gripper_return 0
)
Example: maze-laser.world
# update the screen every 10ms (we need fast update for the
stest demo)
gui_interval 20
# create a robot
pioneer2dx
(
name "robot1"
color "red"
pose [-23.0 23.0 0.0]
sick_laser(samples 361 laser_sample_skip 4)
)
Example: maze-laser.cfg
driver
(
name "stage"
provides ["map:0"]
model "maze"
)
Map Descriptions
Located in the world file;
Accepts bitmaps;
Black pixels are considered walls, everything
else is ignored;
Also describes the size of the simulation (the
unit is meters).
Client Code
After Player / Stage is installed and running,
you need to start some client code for it to do
something.
I recommend using Java. If you plan to use
another language, please come see me about
it first.
http://java-player.sourceforge.net/
Assignment One
I have provided a template. Feel free to
ignore it; its mainly to help you get started.
Please note that the JavaDocs on the website
are not current. Either refer to the generated
JavaDocs or the code for function names, etc.
Switch to Terminal
This is where you should switch to the
terminal and show how to use Player / Stage.