Player Tutorial
description
Transcript of Player Tutorial
![Page 1: Player Tutorial](https://reader036.fdocuments.in/reader036/viewer/2022081504/56814a50550346895db77285/html5/thumbnails/1.jpg)
1
Player Tutorial
Boyoon Jung
Robotic Embedded Systems LabRobotics Research Lab
Center for Robotics and Embedded Systems
![Page 2: Player Tutorial](https://reader036.fdocuments.in/reader036/viewer/2022081504/56814a50550346895db77285/html5/thumbnails/2.jpg)
2
Player/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
![Page 3: Player Tutorial](https://reader036.fdocuments.in/reader036/viewer/2022081504/56814a50550346895db77285/html5/thumbnails/3.jpg)
3
Robot Programming
Camera
Laser
Sonar
Odometry
Motors
User Program
SensoryData
Acquisition
MotorCommandGeneration
PCI
USB
Serial
…
SerialCanbus
…
Planner
DesiredMotion
![Page 4: Player Tutorial](https://reader036.fdocuments.in/reader036/viewer/2022081504/56814a50550346895db77285/html5/thumbnails/4.jpg)
4
Player
Player: a device server
Camera
Laser
Sonar
Odometry
Motors
User Program
SensoryData
Acquisition
MotorCommandGeneration
PCI
USB
Serial
…
SerialCanbus
…
Planner
DesiredMotion
![Page 5: Player Tutorial](https://reader036.fdocuments.in/reader036/viewer/2022081504/56814a50550346895db77285/html5/thumbnails/5.jpg)
5
Player Server
Device driver Interface
Client / Server Model
PlayerClientLibrary
C/C++C#
JavaTcl
PythonRubyLisp
Octave
UserProgram
SICKLMS 200
Pioneer
SICKPLS
Segway
Khepera
sicklms200
sickpls
p2os
segwayrmp
khepera
laser
laser
position
position
position
Data
Configuration
Command
TCP/IP
IPC
![Page 6: Player Tutorial](https://reader036.fdocuments.in/reader036/viewer/2022081504/56814a50550346895db77285/html5/thumbnails/6.jpg)
6
PlayerServer
Hardware Abstraction
PlayerClientLibrary
C/C++C#
JavaTcl
PythonRubyLisp
Octave
UserProgram
RobotHardware
StageSimulator
GazeboSimulator
PlayerServer
PlayerServer
![Page 7: Player Tutorial](https://reader036.fdocuments.in/reader036/viewer/2022081504/56814a50550346895db77285/html5/thumbnails/7.jpg)
7
Communication
PlayerClient
Library
UserProgram
PlayerServer
RobotHardware
1. Establish connection
2. Subscribe device(s)
3. Sensor data
4. Actuator commands
![Page 8: Player Tutorial](https://reader036.fdocuments.in/reader036/viewer/2022081504/56814a50550346895db77285/html5/thumbnails/8.jpg)
8
Running Player
Building and installation http://playerstage.sourceforge.net ./configure make make install
Execution player [–p <port>] <config file> playerv [hostname:port] playerjoy [hostname:port]
![Page 9: Player Tutorial](https://reader036.fdocuments.in/reader036/viewer/2022081504/56814a50550346895db77285/html5/thumbnails/9.jpg)
9
Player config file
PlayerServer
Camera
Laser
Motors
blobfinder:0 ( driver “acts” devicepath=“/dev/video0” channel 0)
laser:0 ( driver “sicklms200” port “/dev/ttyS1” resolution 50)
position:0 ( driver “p2os_position” port “/dev/ttyS0” max_xspeed 500)
![Page 10: Player Tutorial](https://reader036.fdocuments.in/reader036/viewer/2022081504/56814a50550346895db77285/html5/thumbnails/10.jpg)
10
Player Programming
Player client libraries C (libplayerc), C++ (libplayerclient), Tcl (tclPlayer), etc.
Programming step1. Establish connection.
2. Subscribe device(s).
3. Read sensory data.
4. Processing.
5. Send motor command.
Repeat
![Page 11: Player Tutorial](https://reader036.fdocuments.in/reader036/viewer/2022081504/56814a50550346895db77285/html5/thumbnails/11.jpg)
11
Example Code $PLAYER/examples/c++/laserobstacleavoid.cc
#include <playerclient.h>
char host[256] = “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’);
![Page 12: Player Tutorial](https://reader036.fdocuments.in/reader036/viewer/2022081504/56814a50550346895db77285/html5/thumbnails/12.jpg)
12
for (;;) // repeat {
// 3. Read sensory dataif (robot.Read())
exit(1);
// 4. Procesing...double l = (1e5*minR)/500 – 100;double r = (1e5*minL)/500 – 100;
newspeed = (r+1)/1e3;newturnrate = (r-l)/1e3;newturnrate = DTOR(min(newturnrate, 40));newturnrate = DTOR(max(newturnrate, -40));
// 5. Send motor commandspp.SetSpeed(newspeed, newturnrate);
}}
![Page 13: Player Tutorial](https://reader036.fdocuments.in/reader036/viewer/2022081504/56814a50550346895db77285/html5/thumbnails/13.jpg)
13
Player
Player: an algorithm repository
Camera
Laser
Sonar
Odometry
Motors
User Program
SensoryData
Acquisition
MotorCommandGeneration
PCI
USB
Serial
…
SerialCanbus
…
Planner
DesiredMotion
![Page 14: Player Tutorial](https://reader036.fdocuments.in/reader036/viewer/2022081504/56814a50550346895db77285/html5/thumbnails/14.jpg)
14
Computational devices
amcl (Adaptive Monte-Carlo Localization)
vfh (Vector Field Histogram)
position
laser / sonar / wifi
amcl localize
map
position vfhposition
lase
![Page 15: Player Tutorial](https://reader036.fdocuments.in/reader036/viewer/2022081504/56814a50550346895db77285/html5/thumbnails/15.jpg)
15
Player
A device server Hardware abstraction Network transparency Language independence
An algorithm repository