Sophie

Sophie

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

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>position2d<br/>
<small>
[<a class="el" href="group__interfaces.html">Interface specifications</a>]</small>
</h1>  </div>
</div>
<div class="contents">

<p>Planar mobile robot.  
<a href="#_details">More...</a></p>
<table class="memberdecls">
<tr><td colspan="2"><p><a class="anchor" id="amgrpd41d8cd98f00b204e9800998ecf8427e"></a> </p>
<br/><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__interface__position2d.html#ga66fec75cddfc8ff49ef5bca8de091c75">PLAYER_POSITION2D_REQ_GET_GEOM</a>&nbsp;&nbsp;&nbsp;1</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Request/reply: geometry.  <a href="#ga66fec75cddfc8ff49ef5bca8de091c75"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__interface__position2d.html#ga72e5926ea39cef102c7c8c19a574eef6">PLAYER_POSITION2D_REQ_MOTOR_POWER</a>&nbsp;&nbsp;&nbsp;2</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Request/reply: Motor power.  <a href="#ga72e5926ea39cef102c7c8c19a574eef6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__interface__position2d.html#gae49f0820a7309278ebe437235513e400">PLAYER_POSITION2D_REQ_VELOCITY_MODE</a>&nbsp;&nbsp;&nbsp;3</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Request/reply: Change velocity control.  <a href="#gae49f0820a7309278ebe437235513e400"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__interface__position2d.html#ga744d5abae9e19da3d892e74de5bc752c">PLAYER_POSITION2D_REQ_POSITION_MODE</a>&nbsp;&nbsp;&nbsp;4</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Request/reply: Change control mode.  <a href="#ga744d5abae9e19da3d892e74de5bc752c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__interface__position2d.html#ga66d9cc2103dc207554a6466e685fc1fc">PLAYER_POSITION2D_REQ_SET_ODOM</a>&nbsp;&nbsp;&nbsp;5</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Request/reply: Set odometry.  <a href="#ga66d9cc2103dc207554a6466e685fc1fc"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__interface__position2d.html#gaa413820e1c30ab43d3ccae15f2617bef">PLAYER_POSITION2D_REQ_RESET_ODOM</a>&nbsp;&nbsp;&nbsp;6</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Request/reply: Reset odometry.  <a href="#gaa413820e1c30ab43d3ccae15f2617bef"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__interface__position2d.html#gad5292f3dd4b1d067ec46f276694c5a4c">PLAYER_POSITION2D_REQ_SPEED_PID</a>&nbsp;&nbsp;&nbsp;7</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Request/reply: Set velocity PID parameters.  <a href="#gad5292f3dd4b1d067ec46f276694c5a4c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__interface__position2d.html#ga5136458a2b0fd832f408cd178105876c">PLAYER_POSITION2D_REQ_POSITION_PID</a>&nbsp;&nbsp;&nbsp;8</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Request/reply: Set position PID parameters.  <a href="#ga5136458a2b0fd832f408cd178105876c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__interface__position2d.html#ga33449ca0c9a3af384226c50c60b5e7da">PLAYER_POSITION2D_REQ_SPEED_PROF</a>&nbsp;&nbsp;&nbsp;9</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Request/reply: Set linear speed profile parameters.  <a href="#ga33449ca0c9a3af384226c50c60b5e7da"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__interface__position2d.html#gaf0fbfea4fcbea0c2eee0bedabd481fba">PLAYER_POSITION2D_DATA_STATE</a>&nbsp;&nbsp;&nbsp;1</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Data: state (<a class="el" href="group__interface__position2d.html#gaf0fbfea4fcbea0c2eee0bedabd481fba">PLAYER_POSITION2D_DATA_STATE</a>).  <a href="#gaf0fbfea4fcbea0c2eee0bedabd481fba"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__interface__position2d.html#gac73574bdd3cb7850e3235f671c26a08f">PLAYER_POSITION2D_DATA_GEOM</a>&nbsp;&nbsp;&nbsp;2</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Data: geometry.  <a href="#gac73574bdd3cb7850e3235f671c26a08f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__interface__position2d.html#gacaf0b14c255b47d09fef5efd7dd0fb22">PLAYER_POSITION2D_CMD_VEL</a>&nbsp;&nbsp;&nbsp;1</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Command: velocity (<a class="el" href="group__interface__position2d.html#gacaf0b14c255b47d09fef5efd7dd0fb22">PLAYER_POSITION2D_CMD_VEL</a>).  <a href="#gacaf0b14c255b47d09fef5efd7dd0fb22"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__interface__position2d.html#gaf0801065c6a46fda7e2734be3528911c">PLAYER_POSITION2D_CMD_POS</a>&nbsp;&nbsp;&nbsp;2</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Command: position (<a class="el" href="group__interface__position2d.html#gaf0801065c6a46fda7e2734be3528911c">PLAYER_POSITION2D_CMD_POS</a>).  <a href="#gaf0801065c6a46fda7e2734be3528911c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__interface__position2d.html#gafcd67e56caf41a533c474864f90a65b4">PLAYER_POSITION2D_CMD_CAR</a>&nbsp;&nbsp;&nbsp;3</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Command: carlike (<a class="el" href="group__interface__position2d.html#gafcd67e56caf41a533c474864f90a65b4">PLAYER_POSITION2D_CMD_CAR</a>).  <a href="#gafcd67e56caf41a533c474864f90a65b4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__interface__position2d.html#ga046f125f241b20b9569359556f6890d3">PLAYER_POSITION2D_CMD_VEL_HEAD</a>&nbsp;&nbsp;&nbsp;4</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Command: vel/head (<a class="el" href="group__interface__position2d.html#ga046f125f241b20b9569359556f6890d3">PLAYER_POSITION2D_CMD_VEL_HEAD</a>).  <a href="#ga046f125f241b20b9569359556f6890d3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaed27fa566b80a8cdc419156aa7c89707"></a><!-- doxytag: member="interface_position2d::player_position2d_data_t" ref="gaed27fa566b80a8cdc419156aa7c89707" args="" -->
typedef struct <br class="typebreak"/>
<a class="el" href="structplayer__position2d__data.html">player_position2d_data</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__interface__position2d.html#gaed27fa566b80a8cdc419156aa7c89707">player_position2d_data_t</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">position2d data <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3339533a756fe3ba0cd69c0cf864f95d"></a><!-- doxytag: member="interface_position2d::player_position2d_cmd_vel_t" ref="ga3339533a756fe3ba0cd69c0cf864f95d" args="" -->
typedef struct <br class="typebreak"/>
<a class="el" href="structplayer__position2d__cmd__vel.html">player_position2d_cmd_vel</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__interface__position2d.html#ga3339533a756fe3ba0cd69c0cf864f95d">player_position2d_cmd_vel_t</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">position 2d velocity command <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2fadb7e25833370494c4442888f5c6ad"></a><!-- doxytag: member="interface_position2d::player_position2d_cmd_pos_t" ref="ga2fadb7e25833370494c4442888f5c6ad" args="" -->
typedef struct <br class="typebreak"/>
<a class="el" href="structplayer__position2d__cmd__pos.html">player_position2d_cmd_pos</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__interface__position2d.html#ga2fadb7e25833370494c4442888f5c6ad">player_position2d_cmd_pos_t</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">position2d position command <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae2930ca7cfab5bf09666d26ae1eb4bce"></a><!-- doxytag: member="interface_position2d::player_position2d_cmd_car_t" ref="gae2930ca7cfab5bf09666d26ae1eb4bce" args="" -->
typedef struct <br class="typebreak"/>
<a class="el" href="structplayer__position2d__cmd__car.html">player_position2d_cmd_car</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__interface__position2d.html#gae2930ca7cfab5bf09666d26ae1eb4bce">player_position2d_cmd_car_t</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">position2d command setting velocity and steering angle <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga359ee3007e6282b2c880297a8c941cbd"></a><!-- doxytag: member="interface_position2d::player_position2d_cmd_vel_head_t" ref="ga359ee3007e6282b2c880297a8c941cbd" args="" -->
typedef struct <br class="typebreak"/>
<a class="el" href="structplayer__position2d__cmd__vel__head.html">player_position2d_cmd_vel_head</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__interface__position2d.html#ga359ee3007e6282b2c880297a8c941cbd">player_position2d_cmd_vel_head_t</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">position2d command setting velocity and heading <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga55f6e81a3865339b14ff35b9ada7784a"></a><!-- doxytag: member="interface_position2d::player_position2d_geom_t" ref="ga55f6e81a3865339b14ff35b9ada7784a" args="" -->
typedef struct <br class="typebreak"/>
<a class="el" href="structplayer__position2d__geom.html">player_position2d_geom</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__interface__position2d.html#ga55f6e81a3865339b14ff35b9ada7784a">player_position2d_geom_t</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">position2d geom <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5f42a6d6f08e4b311828426e5f3a08e9"></a><!-- doxytag: member="interface_position2d::player_position2d_power_config_t" ref="ga5f42a6d6f08e4b311828426e5f3a08e9" args="" -->
typedef struct <br class="typebreak"/>
<a class="el" href="structplayer__position2d__power__config.html">player_position2d_power_config</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__interface__position2d.html#ga5f42a6d6f08e4b311828426e5f3a08e9">player_position2d_power_config_t</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">position2d power config <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaef8843d607805856a1944419a220861a"></a><!-- doxytag: member="interface_position2d::player_position2d_velocity_mode_config_t" ref="gaef8843d607805856a1944419a220861a" args="" -->
typedef struct <br class="typebreak"/>
<a class="el" href="structplayer__position2d__velocity__mode__config.html">player_position2d_velocity_mode_config</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__interface__position2d.html#gaef8843d607805856a1944419a220861a">player_position2d_velocity_mode_config_t</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">position2d velocity mode config <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga407fc89d2e0c1ab387c17979ebc6b4d4"></a><!-- doxytag: member="interface_position2d::player_position2d_position_mode_req_t" ref="ga407fc89d2e0c1ab387c17979ebc6b4d4" args="" -->
typedef struct <br class="typebreak"/>
<a class="el" href="structplayer__position2d__position__mode__req.html">player_position2d_position_mode_req</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__interface__position2d.html#ga407fc89d2e0c1ab387c17979ebc6b4d4">player_position2d_position_mode_req_t</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">position2d position mode request <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4599992455db4d82784b7a3c663aa8cd"></a><!-- doxytag: member="interface_position2d::player_position2d_set_odom_req_t" ref="ga4599992455db4d82784b7a3c663aa8cd" args="" -->
typedef struct <br class="typebreak"/>
<a class="el" href="structplayer__position2d__set__odom__req.html">player_position2d_set_odom_req</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__interface__position2d.html#ga4599992455db4d82784b7a3c663aa8cd">player_position2d_set_odom_req_t</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">set odometry <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf2eb3fa05cd59964bb7cef7c49d8068e"></a><!-- doxytag: member="interface_position2d::player_position2d_speed_pid_req_t" ref="gaf2eb3fa05cd59964bb7cef7c49d8068e" args="" -->
typedef struct <br class="typebreak"/>
<a class="el" href="structplayer__position2d__speed__pid__req.html">player_position2d_speed_pid_req</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__interface__position2d.html#gaf2eb3fa05cd59964bb7cef7c49d8068e">player_position2d_speed_pid_req_t</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">position2d speed PID req <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf8709fadcc31e3d6924cadbf339fba6c"></a><!-- doxytag: member="interface_position2d::player_position2d_position_pid_req_t" ref="gaf8709fadcc31e3d6924cadbf339fba6c" args="" -->
typedef struct <br class="typebreak"/>
<a class="el" href="structplayer__position2d__position__pid__req.html">player_position2d_position_pid_req</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__interface__position2d.html#gaf8709fadcc31e3d6924cadbf339fba6c">player_position2d_position_pid_req_t</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">position2d position pid req <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0d929081863d129497777ff86a1a137b"></a><!-- doxytag: member="interface_position2d::player_position2d_speed_prof_req_t" ref="ga0d929081863d129497777ff86a1a137b" args="" -->
typedef struct <br class="typebreak"/>
<a class="el" href="structplayer__position2d__speed__prof__req.html">player_position2d_speed_prof_req</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__interface__position2d.html#ga0d929081863d129497777ff86a1a137b">player_position2d_speed_prof_req_t</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">speed prof req <br/></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>Planar mobile robot. </p>
<p>The <code>position2d</code> interface is used to control mobile robot bases in 2D. </p>
<hr/><h2>Define Documentation</h2>
<a class="anchor" id="gafcd67e56caf41a533c474864f90a65b4"></a><!-- doxytag: member="player_interfaces.h::PLAYER_POSITION2D_CMD_CAR" ref="gafcd67e56caf41a533c474864f90a65b4" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PLAYER_POSITION2D_CMD_CAR&nbsp;&nbsp;&nbsp;3</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Command: carlike (<a class="el" href="group__interface__position2d.html#gafcd67e56caf41a533c474864f90a65b4">PLAYER_POSITION2D_CMD_CAR</a>). </p>
<p>The <code>position</code> interface accepts carlike translational velocity + constant turn commands (speed and turning angle) for the robot's motors (only supported by some drivers). </p>

<p>Referenced by <a class="el" href="classER.html#a12a52473e8b394db5147bb9bc0624dea">ER::ProcessMessage()</a>.</p>

</div>
</div>
<a class="anchor" id="gaf0801065c6a46fda7e2734be3528911c"></a><!-- doxytag: member="player_interfaces.h::PLAYER_POSITION2D_CMD_POS" ref="gaf0801065c6a46fda7e2734be3528911c" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PLAYER_POSITION2D_CMD_POS&nbsp;&nbsp;&nbsp;2</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Command: position (<a class="el" href="group__interface__position2d.html#gaf0801065c6a46fda7e2734be3528911c">PLAYER_POSITION2D_CMD_POS</a>). </p>
<p>The <code>position</code> interface accepts new positions for the robot's motors (drivers may support position control, speed control, or both). </p>

<p>Referenced by <a class="el" href="classsnd.html#a92897857622d982630d9d93104fd3b42">snd::ProcessMessage()</a>, and <a class="el" href="classGarciaDriver.html#af0f620f101f28c478f3623d308247adf">GarciaDriver::ProcessMessage()</a>.</p>

</div>
</div>
<a class="anchor" id="gacaf0b14c255b47d09fef5efd7dd0fb22"></a><!-- doxytag: member="player_interfaces.h::PLAYER_POSITION2D_CMD_VEL" ref="gacaf0b14c255b47d09fef5efd7dd0fb22" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PLAYER_POSITION2D_CMD_VEL&nbsp;&nbsp;&nbsp;1</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Command: velocity (<a class="el" href="group__interface__position2d.html#gacaf0b14c255b47d09fef5efd7dd0fb22">PLAYER_POSITION2D_CMD_VEL</a>). </p>
<p>The <code>position</code> interface accepts new velocities for the robot's motors (drivers may support position control, speed control, or both). </p>

<p>Referenced by <a class="el" href="classSegwayRMP400.html#a93f9e247bb5689d176e069c2adff3e1d">SegwayRMP400::HandlePosition2DCmd()</a>, <a class="el" href="classsnd.html#a92897857622d982630d9d93104fd3b42">snd::ProcessMessage()</a>, <a class="el" href="classSegwayRMP400.html#a349a66282dd9c799c541014713d2cec4">SegwayRMP400::ProcessMessage()</a>, <a class="el" href="classSegwayRMP.html#a17e359d0e45f05a98a0891ffab1f2731">SegwayRMP::ProcessMessage()</a>, <a class="el" href="classRFLEX.html#ac7e6af9460ce66489b3cdb094950dbe0">RFLEX::ProcessMessage()</a>, <a class="el" href="classP2OS.html#a91bda6c36ac50b99c6cf4a3f9258cb8c">P2OS::ProcessMessage()</a>, <a class="el" href="classKhepera.html#a7677b4bb9f6eb25531b7c418935ba9f1">Khepera::ProcessMessage()</a>, <a class="el" href="classGarciaDriver.html#af0f620f101f28c478f3623d308247adf">GarciaDriver::ProcessMessage()</a>, <a class="el" href="classER.html#a12a52473e8b394db5147bb9bc0624dea">ER::ProcessMessage()</a>, and <a class="el" href="classClodBuster.html#aae4c6405f68dba4402aea3d95e641c4f">ClodBuster::ProcessMessage()</a>.</p>

</div>
</div>
<a class="anchor" id="ga046f125f241b20b9569359556f6890d3"></a><!-- doxytag: member="player_interfaces.h::PLAYER_POSITION2D_CMD_VEL_HEAD" ref="ga046f125f241b20b9569359556f6890d3" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PLAYER_POSITION2D_CMD_VEL_HEAD&nbsp;&nbsp;&nbsp;4</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Command: vel/head (<a class="el" href="group__interface__position2d.html#ga046f125f241b20b9569359556f6890d3">PLAYER_POSITION2D_CMD_VEL_HEAD</a>). </p>
<p>The <code>position</code> interface accepts translational velocity + absolute heading commands (speed and angular position) for the robot's motors (only supported by some drivers). </p>

</div>
</div>
<a class="anchor" id="gac73574bdd3cb7850e3235f671c26a08f"></a><!-- doxytag: member="player_interfaces.h::PLAYER_POSITION2D_DATA_GEOM" ref="gac73574bdd3cb7850e3235f671c26a08f" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PLAYER_POSITION2D_DATA_GEOM&nbsp;&nbsp;&nbsp;2</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Data: geometry. </p>
<p>This messages is published by drivers which can change their geometry at run time </p>

</div>
</div>
<a class="anchor" id="gaf0fbfea4fcbea0c2eee0bedabd481fba"></a><!-- doxytag: member="player_interfaces.h::PLAYER_POSITION2D_DATA_STATE" ref="gaf0fbfea4fcbea0c2eee0bedabd481fba" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PLAYER_POSITION2D_DATA_STATE&nbsp;&nbsp;&nbsp;1</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Data: state (<a class="el" href="group__interface__position2d.html#gaf0fbfea4fcbea0c2eee0bedabd481fba">PLAYER_POSITION2D_DATA_STATE</a>). </p>
<p>The <code>position</code> interface returns data regarding the odometric pose and velocity of the robot, as well as motor stall information. </p>

<p>Referenced by <a class="el" href="classSegwayRMP.html#a533bab32d35b2733f40e9083d0df0531">SegwayRMP::Main()</a>, <a class="el" href="classRFLEX.html#a521224f2064ccf8a4c8b3529af3dc807">RFLEX::Main()</a>, <a class="el" href="classER.html#af2d9f11435db5bf7851fdc2a2295f00e">ER::Main()</a>, <a class="el" href="classClodBuster.html#a17e7205d0e32302d52aa4dc1ef0d6c5e">ClodBuster::Main()</a>, <a class="el" href="classSegwayRMP400.html#af9a7d2442e7dbd619197c7219afd3b26">SegwayRMP400::ProcessData()</a>, <a class="el" href="classsnd.html#a92897857622d982630d9d93104fd3b42">snd::ProcessMessage()</a>, and <a class="el" href="classSegwayRMP400.html#a349a66282dd9c799c541014713d2cec4">SegwayRMP400::ProcessMessage()</a>.</p>

</div>
</div>
<a class="anchor" id="ga66fec75cddfc8ff49ef5bca8de091c75"></a><!-- doxytag: member="player_interfaces.h::PLAYER_POSITION2D_REQ_GET_GEOM" ref="ga66fec75cddfc8ff49ef5bca8de091c75" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PLAYER_POSITION2D_REQ_GET_GEOM&nbsp;&nbsp;&nbsp;1</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Request/reply: geometry. </p>
<p>To request robot geometry, send a null <a class="el" href="group__interface__position2d.html#ga66fec75cddfc8ff49ef5bca8de091c75">PLAYER_POSITION2D_REQ_GET_GEOM</a> request. </p>

<p>Referenced by <a class="el" href="classSegwayRMP400.html#a349a66282dd9c799c541014713d2cec4">SegwayRMP400::ProcessMessage()</a>, <a class="el" href="classRFLEX.html#ac7e6af9460ce66489b3cdb094950dbe0">RFLEX::ProcessMessage()</a>, <a class="el" href="classKhepera.html#a7677b4bb9f6eb25531b7c418935ba9f1">Khepera::ProcessMessage()</a>, <a class="el" href="classGarciaDriver.html#af0f620f101f28c478f3623d308247adf">GarciaDriver::ProcessMessage()</a>, <a class="el" href="classER.html#a12a52473e8b394db5147bb9bc0624dea">ER::ProcessMessage()</a>, <a class="el" href="classClodBuster.html#aae4c6405f68dba4402aea3d95e641c4f">ClodBuster::ProcessMessage()</a>, and <a class="el" href="classAdaptiveMCL.html#a97cf8c8a874e314c852c73d9ee967df6">AdaptiveMCL::ProcessMessage()</a>.</p>

</div>
</div>
<a class="anchor" id="ga72e5926ea39cef102c7c8c19a574eef6"></a><!-- doxytag: member="player_interfaces.h::PLAYER_POSITION2D_REQ_MOTOR_POWER" ref="ga72e5926ea39cef102c7c8c19a574eef6" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PLAYER_POSITION2D_REQ_MOTOR_POWER&nbsp;&nbsp;&nbsp;2</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Request/reply: Motor power. </p>
<p>On some robots, the motor power can be turned on and off from software. To do so, send a <a class="el" href="group__interface__position2d.html#ga72e5926ea39cef102c7c8c19a574eef6">PLAYER_POSITION2D_REQ_MOTOR_POWER</a> request with the format given below, and with the appropriate <code>state</code> (zero for motors off and non-zero for motors on). Null response.</p>
<p>Be VERY careful with this command! You are very likely to start the robot running across the room at high speed with the battery charger still attached. </p>

<p>Referenced by <a class="el" href="classRFLEX.html#ac7e6af9460ce66489b3cdb094950dbe0">RFLEX::ProcessMessage()</a>, <a class="el" href="classKhepera.html#a7677b4bb9f6eb25531b7c418935ba9f1">Khepera::ProcessMessage()</a>, <a class="el" href="classER.html#a12a52473e8b394db5147bb9bc0624dea">ER::ProcessMessage()</a>, and <a class="el" href="classClodBuster.html#aae4c6405f68dba4402aea3d95e641c4f">ClodBuster::ProcessMessage()</a>.</p>

</div>
</div>
<a class="anchor" id="ga744d5abae9e19da3d892e74de5bc752c"></a><!-- doxytag: member="player_interfaces.h::PLAYER_POSITION2D_REQ_POSITION_MODE" ref="ga744d5abae9e19da3d892e74de5bc752c" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PLAYER_POSITION2D_REQ_POSITION_MODE&nbsp;&nbsp;&nbsp;4</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Request/reply: Change control mode. </p>
<p>To change control mode, send a <a class="el" href="group__interface__position2d.html#ga744d5abae9e19da3d892e74de5bc752c">PLAYER_POSITION2D_REQ_POSITION_MODE</a> request. Null response. </p>

</div>
</div>
<a class="anchor" id="ga5136458a2b0fd832f408cd178105876c"></a><!-- doxytag: member="player_interfaces.h::PLAYER_POSITION2D_REQ_POSITION_PID" ref="ga5136458a2b0fd832f408cd178105876c" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PLAYER_POSITION2D_REQ_POSITION_PID&nbsp;&nbsp;&nbsp;8</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Request/reply: Set position PID parameters. </p>
<p>To set position PID parameters, send a <a class="el" href="group__interface__position2d.html#ga5136458a2b0fd832f408cd178105876c">PLAYER_POSITION2D_REQ_POSITION_PID</a> request. Null response. </p>

</div>
</div>
<a class="anchor" id="gaa413820e1c30ab43d3ccae15f2617bef"></a><!-- doxytag: member="player_interfaces.h::PLAYER_POSITION2D_REQ_RESET_ODOM" ref="gaa413820e1c30ab43d3ccae15f2617bef" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PLAYER_POSITION2D_REQ_RESET_ODOM&nbsp;&nbsp;&nbsp;6</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Request/reply: Reset odometry. </p>
<p>To reset the robot's odometry to <img class="formulaInl" alt="$(x, y, yaw) = (0,0,0)$" src="form_0.png"/>, send a <a class="el" href="group__interface__position2d.html#gaa413820e1c30ab43d3ccae15f2617bef">PLAYER_POSITION2D_REQ_RESET_ODOM</a> request. Null response. </p>

<p>Referenced by <a class="el" href="classRFLEX.html#ac7e6af9460ce66489b3cdb094950dbe0">RFLEX::ProcessMessage()</a>, <a class="el" href="classKhepera.html#a7677b4bb9f6eb25531b7c418935ba9f1">Khepera::ProcessMessage()</a>, <a class="el" href="classER.html#a12a52473e8b394db5147bb9bc0624dea">ER::ProcessMessage()</a>, and <a class="el" href="classClodBuster.html#aae4c6405f68dba4402aea3d95e641c4f">ClodBuster::ProcessMessage()</a>.</p>

</div>
</div>
<a class="anchor" id="ga66d9cc2103dc207554a6466e685fc1fc"></a><!-- doxytag: member="player_interfaces.h::PLAYER_POSITION2D_REQ_SET_ODOM" ref="ga66d9cc2103dc207554a6466e685fc1fc" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PLAYER_POSITION2D_REQ_SET_ODOM&nbsp;&nbsp;&nbsp;5</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Request/reply: Set odometry. </p>
<p>To set the robot's odometry to a particular state, send a <a class="el" href="group__interface__position2d.html#ga66d9cc2103dc207554a6466e685fc1fc">PLAYER_POSITION2D_REQ_SET_ODOM</a> request. Null response. </p>

<p>Referenced by <a class="el" href="classRFLEX.html#ac7e6af9460ce66489b3cdb094950dbe0">RFLEX::ProcessMessage()</a>, <a class="el" href="classKhepera.html#a7677b4bb9f6eb25531b7c418935ba9f1">Khepera::ProcessMessage()</a>, <a class="el" href="classER.html#a12a52473e8b394db5147bb9bc0624dea">ER::ProcessMessage()</a>, and <a class="el" href="classClodBuster.html#aae4c6405f68dba4402aea3d95e641c4f">ClodBuster::ProcessMessage()</a>.</p>

</div>
</div>
<a class="anchor" id="gad5292f3dd4b1d067ec46f276694c5a4c"></a><!-- doxytag: member="player_interfaces.h::PLAYER_POSITION2D_REQ_SPEED_PID" ref="gad5292f3dd4b1d067ec46f276694c5a4c" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PLAYER_POSITION2D_REQ_SPEED_PID&nbsp;&nbsp;&nbsp;7</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Request/reply: Set velocity PID parameters. </p>
<p>To set velocity PID parameters, send a <a class="el" href="group__interface__position2d.html#gad5292f3dd4b1d067ec46f276694c5a4c">PLAYER_POSITION2D_REQ_SPEED_PID</a> request. Null response. </p>

<p>Referenced by <a class="el" href="classClodBuster.html#aae4c6405f68dba4402aea3d95e641c4f">ClodBuster::ProcessMessage()</a>.</p>

</div>
</div>
<a class="anchor" id="ga33449ca0c9a3af384226c50c60b5e7da"></a><!-- doxytag: member="player_interfaces.h::PLAYER_POSITION2D_REQ_SPEED_PROF" ref="ga33449ca0c9a3af384226c50c60b5e7da" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PLAYER_POSITION2D_REQ_SPEED_PROF&nbsp;&nbsp;&nbsp;9</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Request/reply: Set linear speed profile parameters. </p>
<p>To set linear speed profile parameters, send a <a class="el" href="group__interface__position2d.html#ga33449ca0c9a3af384226c50c60b5e7da">PLAYER_POSITION2D_REQ_SPEED_PROF</a> request. Null response. </p>

</div>
</div>
<a class="anchor" id="gae49f0820a7309278ebe437235513e400"></a><!-- doxytag: member="player_interfaces.h::PLAYER_POSITION2D_REQ_VELOCITY_MODE" ref="gae49f0820a7309278ebe437235513e400" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PLAYER_POSITION2D_REQ_VELOCITY_MODE&nbsp;&nbsp;&nbsp;3</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Request/reply: Change velocity control. </p>
<p>Some robots offer different velocity control modes. It can be changed by sending a <a class="el" href="group__interface__position2d.html#gae49f0820a7309278ebe437235513e400">PLAYER_POSITION2D_REQ_VELOCITY_MODE</a> request with the format given below, including the appropriate mode. No matter which mode is used, the external client interface to the <code>position</code> device remains the same. Null response.</p>
<p>The <a class="el" href="group__driver__p2os.html">p2os</a> driver offers two modes of velocity control: separate translational and rotational control and direct wheel control. When in the separate mode, the robot's microcontroller internally computes left and right wheel velocities based on the currently commanded translational and rotational velocities and then attenuates these values to match a nice predefined acceleration profile. When in the direct mode, the microcontroller simply passes on the current left and right wheel velocities. Essentially, the separate mode offers smoother but slower (lower acceleration) control, and the direct mode offers faster but jerkier (higher acceleration) control. Player's default is to use the direct mode. Set <em>mode</em> to zero for direct control and non-zero for separate control.</p>
<p>For the <a class="el" href="group__driver__reb.html">reb</a> driver, 0 is direct velocity control, 1 is for velocity-based heading PD controller. </p>

<p>Referenced by <a class="el" href="classRFLEX.html#ac7e6af9460ce66489b3cdb094950dbe0">RFLEX::ProcessMessage()</a>, <a class="el" href="classKhepera.html#a7677b4bb9f6eb25531b7c418935ba9f1">Khepera::ProcessMessage()</a>, and <a class="el" href="classClodBuster.html#aae4c6405f68dba4402aea3d95e641c4f">ClodBuster::ProcessMessage()</a>.</p>

</div>
</div>
</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>