Sophie

Sophie

distrib > Fedora > 14 > x86_64 > media > updates > by-pkgid > 727fa15453fcace956b835e2377d4269 > files > 842

player-doc-3.0.2-5.fc14.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">

<html>
<!-- $Id: header.html 8799 2010-06-28 04:12:42Z jpgr87 $ -->

<HEAD>


<meta HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=utf-8">
<meta name="keywords" content="stage, robot, simulation, player, player/stage">
<link href="doxygen.css" rel="stylesheet" type="text/css">

<style type="text/css">

.floatright { float: right; margin: 0 0 1em 1em; }

body {
  font-family: sans-serif;
  #font-family: Geneva, Verdana, Helvetica, Arial, sans-serif;
  background-color: #FFF;
  color:#000;
}


a:link { 
	color: #A00;
}

a:visited { 
	color: #800;
}

a { text-decoration: none; }
a:hover { text-decoration: underline; }


.timestamp { text-align:right; background-color: #DDD; font-size:75%;}

h1 { 
  font-size:160%; 
}

h2 {
  font-size:110%;
  #color: #FFF;
  #background-color: #666;
  #padding:3px;
}

h3 { text-align:left; }

img {
  border: 0;
}

ul.menu { 
    position:relative;
    left:-2.5em;
    margin-bottom:0px;
    margin-top:0px;
}

ul.menu1 { 
    position:relative;
    left:-2.1em;
    margin-bottom:0px;
    margin-top:0px;
}

li.menu { 
    list-style-type: none;
    position:relative;
    #left:-0.5em;
}


#sidebar { position: absolute; left:0px; padding:2em; top:0em; width:12em;}

#content { position: absolute; left:12em; top:0em; padding-left:3em; padding-right:3em; padding-bottom:2em; margin-top:1em; margin-right:2em; }

div.box { background-color:#EEE; border: 1px solid #000; padding: 0.5ex 0.4em 0.5ex 0.6em; margin:1em;  }
div.title { font-weight:bold; background-color:#eee; margin-bottom:2px;}

div.topbar { position: absolute; top:0px; left:9em; margin:1em; }

</style>

<TITLE>Player Manual</TITLE>

</HEAD>

<body>

<div id="sidebar"> 

<h2 style="text-align:center;">
<a href="index.html">
<img width=140 src="http://playerstage.sourceforge.net/images/player_button_v3.png" alt="Player logo"><br></a>
</h2>



<div class="box">
<div class=title>Player</div>

<ul class=menu>
<li class=menu><a href="index.html">Frontpage</a>
<li class=menu><a href="modules.html">Contents</a>
</ul>
</div>

<div class="box">
<div class=title>User</div>

<ul class=menu>
<li class=menu><a href="install.html">Installation</a>
<li class=menu><a href="start.html">Quick start</a>
<li class=menu><a href="supported_hardware.html">Supported&nbsp;devices</a>
<li class=menu><a href="group__tutorials.html">Tutorials</a>
<li class=menu><a href="group__utils.html">Utilities</a>
<li class=menu><a href="group__clientlibs.html">Client&nbsp;libraries</a>
<li class=menu><a href="http://playerstage.sourceforge.net/wiki/Basic_FAQ">FAQ</a>
<li class=menu><a href="help.html">Help</a>

</ul>
</div>

<div class=box>
<div class="title">Developer</div>
<ul class=menu>
<li class=menu><a href="architecture.html">Architecture</a>
<li class=menu><a href="group__libplayercore.html">libplayercore</a>
<ul class=menu1>
<li class=menu><a href="group__interfaces.html">interfaces</a></li>
</ul>
<li class=menu><a href="group__libplayerdrivers.html">libplayerdrivers</a>
<ul class=menu1>
<li class=menu><a href="group__drivers.html">drivers</a></li>
</ul>
<li class=menu><a href="group__libplayercommon.html">libplayercommon</a>
<li class=menu><a href="group__libplayerutils.html">libplayerutils</a>
<li class=menu><a href="group__libplayersd.html">libplayersd</a>
<li class=menu><a href="group__libplayertcp.html">libplayertcp</a>
<li class=menu><a href="group__libplayerxdr.html">libplayerxdr</a>
<li class=menu><a href="todo.html">TODO</a>
</ul>
</div>

<div class=box>
<!-- <a href="http://sourceforge.net"><img border=0 src="http://sourceforge.net/sflogo.php?group_id=42445&type=1"></a> -->
<div class="title">Online</div>
<a href="http://playerstage.sourceforge.net">Homepage</a><br>
<a href="http://sourceforge.net/project/showfiles.php?group_id=42445">Download</a><br>
<a href="http://sourceforge.net/projects/playerstage">Project</a><br>
<a href="http://sourceforge.net/tracker/?group_id=42445">Bugs</a><br>
<a href="http://sourceforge.net/mail/?group_id=42445">Help</a>
</div>


</div>

<div id="content" >
<!-- Generated by Doxygen 1.7.1 -->
<div class="header">
  <div class="headertitle">
<h1>The Player Robot <a class="el" href="classDevice.html" title="Encapsulates a device (i.e., a driver bound to an interface).">Device</a> Interface </h1>  </div>
</div>
<div class="contents">
<h3 class="version">3.0.2 </h3><p>Copyright Brian Gerkey and contributors 1999-2007, and beyond. </p>
<p>Part of the Player/Stage/Gazebo Project [<a href="http://playerstage.sourceforge.net">http://playerstage.sourceforge.net</a>]</p>
<h2><a class="anchor" id="Overview"></a>
Overview</h2>
<p>Player is a <em>robot device interface</em>. What does that mean? If you're familiar with operating systems (OS) terminology, Player is a <em>hardware abstraction layer</em> (HAL) for robotic devices. Your OS (Linux, Mac OS X, etc.) hides the details of your computer's hardware by defining generic concepts such as "mouse" and "printer," with each having a standard <em>interface</em>. Programs such as word processors can (to a great extent) avoid knowing the details about your <em>particular</em> mouse or printer, as long each adheres to the appropriate interface. The details of making a particular mouse, say, support the standard "mouse" interface are handled by a <em>driver</em>. </p>
<p>Player serves the same purpose for robotic devices, making it a kind of robot OS. Player defines a set of standard interfaces (<a class="el" href="group__interfaces.html">Interface specifications</a>), each of which is a specification of the ways that you can interact with some class of devices. For example the <a class="el" href="group__interface__position2d.html">position2d</a> 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 <a class="el" href="group__interface__position2d.html">position2d</a> interface, including <a class="el" href="group__driver__p2os.html">p2os</a>, <a class="el" href="group__driver__obot.html">obot</a>, and <a class="el" href="group__driver__rflex.html">rflex</a>, 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. </p>
<h2><a class="anchor" id="Transports"></a>
Transports</h2>
<p>Player also provides <em>transport</em> 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 socet-based transport (see <a class="el" href="start.html">Quick start</a> for an example of this usage). In this setup, the <a class="el" href="group__util__player.html">player server</a> is executed with a configuration file (<a class="el" href="group__tutorial__config.html">Writing configuration files</a>) that defines which drivers to instantiate and how to bind them to hardware. The drivers run inside the <b>player</b> server (often in multiple threads), and the user's control program runs as a client to that server. <a class="el" href="group__clientlibs.html">Client Libraries</a> are available in various languages to facilitate the development of such control programs. Other transports can be used instead; an experimental JINI-based transport is also available. </p>
<h2><a class="anchor" id="repository"></a>
Player as a code respository</h2>
<p>Though most Player drivers directly control hardware, recently a number of <em>abstract</em> drivers have been developed. An abstract driver uses other drivers, instead of hardware, as sources for data and sinks for commands. The main use of abstract drivers is to encapsulate useful algorithms in a way that they can be easily reused. For example, the <a class="el" href="group__driver__amcl.html">amcl</a> driver is an implementation of adaptive Monte Carlo localization, a well-known algorithm for probabalistic localization of a mobile robot. This driver supports both the <a class="el" href="group__interface__position2d.html">position2d</a> interface (so it can be used directly in place of odometry) and the more sophisticated <a class="el" href="group__interface__localize.html">localize</a> interface (which allows for multiple pose hypotheses to be considered). In addition to providing this incredibly useful implementation of a particular localization algorithm, by defining such standard interfaces we build up an environment in which alternative algorithms and implementations can be developed and tested. Other abstract drivers include <a class="el" href="group__driver__vfh.html">vfh</a>, <a class="el" href="group__driver__wavefront.html">wavefront</a>, and <a class="el" href="group__driver__laserbarcode.html">laserbarcode</a>. Ideally, Player will become a common development platform and community code respository for such algorithms. </p>
<h2><a class="anchor" id="Versions"></a>
Versions</h2>
<p>This document describes Player version 2.1.x, which represents minor changes from the 2.0.x line, and significant changes from the 1.6.x line. The information contained herein does <b>not</b> apply to earlier versions of Player.</p>
<h2><a class="anchor" id="License"></a>
License</h2>
<p>All Player source code is distributed under the terms of the GNU General Public License v2 ("GPL"). A copy of this license is included with the sourcecode in the files COPYING.</p>
<p>With the exception of the <a class="el" href="group__libplayerdrivers.html">libplayerdrivers</a> library, all Player source is simultaneously distributed under the terms of the GNU Lesser General Public License v2.1 ("LGPL"). A copy of this license is included with the sourcecode in the files COPYING.lib. Users may use dual-licensed portions of Player under the GPL or the LGPL, at their choosing.</p>
<p>Player documentation is distributed under the GNU Free Documentation License ("FDL"). </p>
</div>
<!-- render the modification time of the source file -->


<div class="timestamp">
<hr>

<table style="width:100%;">
<tr>
<td style="text-align:left;">
Last updated 12 September 2005 21:38:45
<!--
<td style="text-align:right;">
<a href="http://validator.w3.org/check/referer"><img style="vertical-align:middle;border:0;width:88px;height:31px"
          src="http://www.w3.org/Icons/valid-html401"
          alt="Valid HTML 4.01!"></a>

 <a href="http://jigsaw.w3.org/css-validator/">
  <img style="vertical-align:middle;border:0;width:88px;height:31px"
       src="http://jigsaw.w3.org/css-validator/images/vcss"
       alt="Valid CSS!">
 </a>
-->
</tr>
</table>
</div>


</tr>
</table>

</BODY>
</HTML>