Title: Player Tutorial
1Player Tutorial
- Boyoon Jung
- Robotic Embedded Systems Lab
- Robotics Research Lab
- Center for Robotics and Embedded Systems
2Player/Stage/Gazebo
- Player
- Device server that provides a powerful, flexible
interface to a variety of sensors and actuators - Stage
- 2D, multi-robot simulator
- Gazebo
- 3D, dynamic, multi-robot simulator
3Robot Programming
User Program
PCI
Camera
Sensory Data Acquisition
USB
Laser
Serial
Planner
Sonar
Odometry
Motor Command Generation
Desired Motion
Motors
Serial Canbus
4Player a device server
Player
User Program
PCI
Camera
Sensory Data Acquisition
USB
Laser
Serial
Planner
Sonar
Odometry
Motor Command Generation
Desired Motion
Motors
Serial Canbus
5Client / Server Model
Player Server Device driver
Interface
Player Client Library C/C C Java Tcl Python
Ruby Lisp Octave
TCP/IP
SICK LMS 200
Data
laser
sicklms200
SICK PLS
laser
Configuration
sickpls
User Program
Command
position
Pioneer
p2os
position
Segway
segwayrmp
IPC
position
Khepera
khepera
6Hardware Abstraction
Player Client Library C/C C Java Tcl Python
Ruby Lisp Octave
Player Server
Robot Hardware
Player Server
Stage Simulator
User Program
Gazebo Simulator
Player Server
7Communication
Player Client Library
Player Server
- Establish connection
- Subscribe device(s)
- Sensor data
- Actuator commands
User Program
Robot Hardware
8Running Player
- Building and installation
- http//playerstage.sourceforge.net
- ./configure
- make
- make install
- Execution
- player p ltportgt ltconfig filegt
- playerv hostnameport
- playerjoy hostnameport
9Player config file
Player Server
blobfinder0 ( driver acts
devicepath/dev/video0 channel 0 ) laser0
( driver sicklms200 port /dev/ttyS1
resolution 50 ) position0 ( driver
p2os_position port /dev/ttyS0
max_xspeed 500 )
Camera
Laser
Motors
10Player Programming
- Player client libraries
- C (libplayerc), C (libplayerclient), Tcl
(tclPlayer), etc. - Programming step
- Establish connection.
- Subscribe device(s).
- Read sensory data.
- Processing.
- Send motor command.
Repeat
11Example Code
- PLAYER/examples/c/laserobstacleavoid.cc
include ltplayerclient.hgt char host256
localhost int port PLAYER_PORTNUM //
6665 int main(int argc, char argv) // 1.
Establish connection PlayerClient robot(host,
port) // 2. Subscribe device(s)
PositionProxy pp(robot, 0, w) LaserProxy
lp(robot, 0, r)
12 for () // repeat // 3. Read
sensory data if (robot.Read()) exit(1) //
4. Procesing ... double l (1e5minR)/500
100 double r (1e5minL)/500 100 newspeed
(r1)/1e3 newturnrate (r-l)/1e3 newturnrat
e DTOR(min(newturnrate, 40)) newturnrate
DTOR(max(newturnrate, -40)) // 5. Send motor
commands pp.SetSpeed(newspeed, newturnrate)
13Player an algorithm repository
Player
User Program
PCI
Camera
Sensory Data Acquisition
USB
Laser
Serial
Sonar
Planner
Odometry
Motor Command Generation
Desired Motion
Motors
Serial Canbus
14Computational devices
- amcl (Adaptive Monte-Carlo Localization)
- vfh (Vector Field Histogram)
position
amcl
localize
laser / sonar / wifi
map
position
position
vfh
lase
15Player
- A device server
- Hardware abstraction
- Network transparency
- Language independence
- An algorithm repository