Sophie

Sophie

distrib > Fedora > 16 > i386 > by-pkgid > 4bc66056a634db26a1f4d0845dc41ca6 > files > 5363

mrpt-doc-0.9.5-0.1.20110925svn2670.fc16.i686.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>mrpt::utils::CRobotSimulator Class Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<div align="left"><a href="http://www.mrpt.org/">Main MRPT website</a> &gt; <b>C++ reference</b> </div>
<div align="right">
<a href="index.html"><img border="0" src="mrpt_logo.png" alt="MRPT logo"></a>
</div>
<!-- Generated by Doxygen 1.7.5 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
          <div class="left">
            <form id="FSearchBox" action="search.php" method="get">
              <img id="MSearchSelect" src="search/mag.png" alt=""/>
              <input type="text" id="MSearchField" name="query" value="Search" size="20" accesskey="S" 
                     onfocus="searchBox.OnSearchFieldFocus(true)" 
                     onblur="searchBox.OnSearchFieldFocus(false)"/>
            </form>
          </div><div class="right"></div>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="namespacemrpt.html">mrpt</a>      </li>
      <li class="navelem"><a class="el" href="namespacemrpt_1_1utils.html">utils</a>      </li>
      <li class="navelem"><a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html">CRobotSimulator</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a>  </div>
  <div class="headertitle">
<div class="title">mrpt::utils::CRobotSimulator Class Reference<div class="ingroups"><a class="el" href="group__mrpt__base__grp.html">[mrpt-base]</a></div></div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="mrpt::utils::CRobotSimulator" --><hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>This class can be used to simulate the kinematics and dynamics of a differential driven planar mobile robot, including odometry errors and dynamics limitations. </p>
<p>The main methods are:</p>
<ul>
<li>movementCommand: Call this for send a command to the robot. This comamnd will be delayed and passed throught a first order low-pass filter to simulate robot dynamics.</li>
<li>simulateInterval: Call this for run the simulator for the desired time period.</li>
</ul>
<p>Versions:</p>
<ul>
<li>23/MAR/2009: (JLBC) Changed to reuse MRPT poses and methods renamed to conform to MRPT style.</li>
<li>29/AUG/2008: (JLBC) Added parameters for odometry noise.</li>
<li>27/JAN/2008: (JLBC) Translated to English!!! :-)</li>
<li>17/OCT/2005: (JLBC) Integration into the MRML library.</li>
<li>1/DIC/2004: (JLBC) Odometry, cumulative errors added.</li>
<li>18/JUN/2004: (JLBC) First creation. </li>
</ul>
</div>
<p><code>#include &lt;<a class="el" href="_c_robot_simulator_8h_source.html">mrpt/utils/CRobotSimulator.h</a>&gt;</code></p>

<p><a href="classmrpt_1_1utils_1_1_c_robot_simulator-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#a6c1da6e0fd56463e060fe1751162637d">CRobotSimulator</a> (float TAU=0, float DELAY=0)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor with default dynamic model-parameters.  <a href="#a6c1da6e0fd56463e060fe1751162637d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#a8169c87f567a47643238d62c65cc902a">~CRobotSimulator</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor.  <a href="#a8169c87f567a47643238d62c65cc902a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#ae6162e9060daf9de6a3158d70148fea4">setDelayModelParams</a> (float TAU_delay_sec=1.8f, float CMD_delay_sec=0.3f)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Change the model of delays used for the orders sent to the robot.  <a href="#ae6162e9060daf9de6a3158d70148fea4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#afd70485327627a145a87f63e3f46c0f4">setOdometryErrors</a> (bool enabled, double Ax_err_bias=1e-6, double Ax_err_std=10e-6, double Ay_err_bias=1e-6, double Ay_err_std=10e-6, double Aphi_err_bias=DEG2RAD(1e-6), double Aphi_err_std=DEG2RAD(10e-6))</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable/Disable odometry errors Errors in odometry are introduced per millisecond.  <a href="#afd70485327627a145a87f63e3f46c0f4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#aa7a397547e3eb7aa404d10cc251ec541">setRealPose</a> (<a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">mrpt::poses::CPose2D</a> &amp;p)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Reset actual robot pose (inmediately, without simulating the movement along time)  <a href="#aa7a397547e3eb7aa404d10cc251ec541"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#acfeab89151d1cf14ae67cdd82bb3d85e">getX</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Read the instantaneous, error-free status of the simulated robot.  <a href="#acfeab89151d1cf14ae67cdd82bb3d85e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#a7212ea0d38f63ffb00ff1ff659dd040a">getY</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Read the instantaneous, error-free status of the simulated robot.  <a href="#a7212ea0d38f63ffb00ff1ff659dd040a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#ab997ae48ce2a8d5164092db450417829">getPHI</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Read the instantaneous, error-free status of the simulated robot.  <a href="#ab997ae48ce2a8d5164092db450417829"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#a1831f5a10e1f25d36523c435b477b83f">getT</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Read the instantaneous, error-free status of the simulated robot.  <a href="#a1831f5a10e1f25d36523c435b477b83f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#a42cfebc010cce5a04ad197dab6426e5a">getV</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Read the instantaneous, error-free status of the simulated robot.  <a href="#a42cfebc010cce5a04ad197dab6426e5a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#a47c7f6bd7b441b9ba6e5ae525c66253c">getW</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Read the instantaneous, error-free status of the simulated robot.  <a href="#a47c7f6bd7b441b9ba6e5ae525c66253c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#aaf3dea3958a5623e22ab533d8ee83c0b">setV</a> (double <a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#a90f94f438267af5d9c7b7022ab67cdd5">v</a>)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set actual robot pose (inmediately, without simulating the movement along time) (Not to be called normally!!)  <a href="#aaf3dea3958a5623e22ab533d8ee83c0b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#a4a4382c4dceebb38b87641fa27255564">setW</a> (double <a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#a7b1ee57d13330e4d389d3fc1df31193a">w</a>)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#a112ea5f8b2d9c74d973e136686ee52db">movementCommand</a> (double lin_vel, double ang_vel)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Used to command the robot a desired movement (velocities)  <a href="#a112ea5f8b2d9c74d973e136686ee52db"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#aae139c1521dae615ac29e236813c1fa3">resetStatus</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Reset all the simulator variables to 0 (All but current simulator time).  <a href="#aae139c1521dae615ac29e236813c1fa3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#a94dee58b5f2e70e74486feb5b8bd0e83">resetTime</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Reset time counter.  <a href="#a94dee58b5f2e70e74486feb5b8bd0e83"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#a5f281ac880ae60050e5442dbbe427078">simulateInterval</a> (double At)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This method must be called periodically to simulate discrete time intervals.  <a href="#a5f281ac880ae60050e5442dbbe427078"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#a35da67924cf97e0ddb3270a162aa585f">resetOdometry</a> (const <a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">mrpt::poses::CPose2D</a> &amp;newOdo=<a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">mrpt::poses::CPose2D</a>())</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Forces odometry to be set to a specified values.  <a href="#a35da67924cf97e0ddb3270a162aa585f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#a6fb34ab58b24f555a18bc9d4d067762f">getOdometry</a> (<a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">CPose2D</a> &amp;pose) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads the simulated robot odometry (this is NOT equal to the actual error-free robot coordinates).  <a href="#a6fb34ab58b24f555a18bc9d4d067762f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#aadb14a50b4cb9277c6d5d1c478e52e64">getOdometry</a> (<a class="el" href="structmrpt_1_1math_1_1_t_pose2_d.html">TPose2D</a> &amp;pose) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads the simulated robot odometry (this is NOT equal to the actual error-free robot coordinates).  <a href="#aadb14a50b4cb9277c6d5d1c478e52e64"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#ad0df3e9f8470ac21384ac09291cd93f5">getRealPose</a> (<a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">CPose2D</a> &amp;pose) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads the real robot pose.  <a href="#ad0df3e9f8470ac21384ac09291cd93f5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#a71f8a19094f5de2f8aec699fa2a9c7d6">getRealPose</a> (<a class="el" href="structmrpt_1_1math_1_1_t_pose2_d.html">TPose2D</a> &amp;pose) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads the real robot pose.  <a href="#a71f8a19094f5de2f8aec699fa2a9c7d6"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">mrpt::poses::CPose2D</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#af815a9bf09e58f15ebd4a459b15eb2ed">m_pose</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Global, absolute and error-free robot coordinates.  <a href="#af815a9bf09e58f15ebd4a459b15eb2ed"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">mrpt::poses::CPose2D</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#aa93bd38e30d659b84a3ea93a57829aca">m_odometry</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Used to simulate odometry (with optional error)  <a href="#aa93bd38e30d659b84a3ea93a57829aca"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#a90f94f438267af5d9c7b7022ab67cdd5">v</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Instantaneous velocity of the robot (linear, m/s)  <a href="#a90f94f438267af5d9c7b7022ab67cdd5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#a7b1ee57d13330e4d389d3fc1df31193a">w</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Instantaneous velocity of the robot (angular, rad/s)  <a href="#a7b1ee57d13330e4d389d3fc1df31193a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#a9c8384f29322cdc2e706a332240eda8a">t</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Simulation time variable.  <a href="#a9c8384f29322cdc2e706a332240eda8a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#a29c7a89b8e3f7d26e2dc3954592d86ca">usar_error_odometrico</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether to corrupt odometry with noise.  <a href="#a29c7a89b8e3f7d26e2dc3954592d86ca"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#a37570294a31ce7ae5d7782d4a793adb6">Command_Time</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Dynamic limitations of the robot.  <a href="#a37570294a31ce7ae5d7782d4a793adb6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#ac217145c519c1d8000695f93bd39b5a2">Command_v</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#a49ade2c3db29f7e3a162d28a5c3d66a8">Command_w</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#a8fc9bf0c7b11a263ac4512d90af6b6d6">Command_v0</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#ad7e0b92a5fbbe7f760eb70b7097da7ab">Command_w0</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#a62e21c4d8000d48b6f378fd02b6c8ba7">cTAU</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The time-constants for the first order low-pass filter for the velocities changes.  <a href="#a62e21c4d8000d48b6f378fd02b6c8ba7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#adcaa142dace96bae962c0c61c6e78545">cDELAY</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The delay constant for the velocities changes.  <a href="#adcaa142dace96bae962c0c61c6e78545"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#a8a9fb5876366f3f2298af967036c9075">m_Ax_err_bias</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#a30c096310cd5d186d1c0801826102a5d">m_Ax_err_std</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#a63579b7af2c4e4ce64a1bd2708173f5b">m_Ay_err_bias</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#ac542bf201a4c6f53718577419722b555">m_Ay_err_std</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#a3ce7977b3d8c31c935d48500ba126425">m_Aphi_err_bias</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#a587ba56ad46d9d47f4baa95c2474205e">m_Aphi_err_std</a></td></tr>
</table>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a6c1da6e0fd56463e060fe1751162637d"></a><!-- doxytag: member="mrpt::utils::CRobotSimulator::CRobotSimulator" ref="a6c1da6e0fd56463e060fe1751162637d" args="(float TAU=0, float DELAY=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">mrpt::utils::CRobotSimulator::CRobotSimulator </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>TAU</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>DELAY</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Constructor with default dynamic model-parameters. </p>

</div>
</div>
<a class="anchor" id="a8169c87f567a47643238d62c65cc902a"></a><!-- doxytag: member="mrpt::utils::CRobotSimulator::~CRobotSimulator" ref="a8169c87f567a47643238d62c65cc902a" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual mrpt::utils::CRobotSimulator::~CRobotSimulator </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Destructor. </p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a6fb34ab58b24f555a18bc9d4d067762f"></a><!-- doxytag: member="mrpt::utils::CRobotSimulator::getOdometry" ref="a6fb34ab58b24f555a18bc9d4d067762f" args="(CPose2D &amp;pose) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CRobotSimulator::getOdometry </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">CPose2D</a> &amp;&#160;</td>
          <td class="paramname"><em>pose</em></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reads the simulated robot odometry (this is NOT equal to the actual error-free robot coordinates). </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#ad0df3e9f8470ac21384ac09291cd93f5" title="Reads the real robot pose.">getRealPose</a> </dd></dl>

<p>Definition at line <a class="el" href="_c_robot_simulator_8h_source.html#l00198">198</a> of file <a class="el" href="_c_robot_simulator_8h_source.html">CRobotSimulator.h</a>.</p>

</div>
</div>
<a class="anchor" id="aadb14a50b4cb9277c6d5d1c478e52e64"></a><!-- doxytag: member="mrpt::utils::CRobotSimulator::getOdometry" ref="aadb14a50b4cb9277c6d5d1c478e52e64" args="(TPose2D &amp;pose) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CRobotSimulator::getOdometry </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmrpt_1_1math_1_1_t_pose2_d.html">TPose2D</a> &amp;&#160;</td>
          <td class="paramname"><em>pose</em></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reads the simulated robot odometry (this is NOT equal to the actual error-free robot coordinates). </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#ad0df3e9f8470ac21384ac09291cd93f5" title="Reads the real robot pose.">getRealPose</a> </dd></dl>

<p>Definition at line <a class="el" href="_c_robot_simulator_8h_source.html#l00205">205</a> of file <a class="el" href="_c_robot_simulator_8h_source.html">CRobotSimulator.h</a>.</p>

</div>
</div>
<a class="anchor" id="ab997ae48ce2a8d5164092db450417829"></a><!-- doxytag: member="mrpt::utils::CRobotSimulator::getPHI" ref="ab997ae48ce2a8d5164092db450417829" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double mrpt::utils::CRobotSimulator::getPHI </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Read the instantaneous, error-free status of the simulated robot. </p>

<p>Definition at line <a class="el" href="_c_robot_simulator_8h_source.html#l00154">154</a> of file <a class="el" href="_c_robot_simulator_8h_source.html">CRobotSimulator.h</a>.</p>

</div>
</div>
<a class="anchor" id="ad0df3e9f8470ac21384ac09291cd93f5"></a><!-- doxytag: member="mrpt::utils::CRobotSimulator::getRealPose" ref="ad0df3e9f8470ac21384ac09291cd93f5" args="(CPose2D &amp;pose) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CRobotSimulator::getRealPose </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">CPose2D</a> &amp;&#160;</td>
          <td class="paramname"><em>pose</em></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reads the real robot pose. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#a6fb34ab58b24f555a18bc9d4d067762f" title="Reads the simulated robot odometry (this is NOT equal to the actual error-free robot coordinates)...">getOdometry</a> </dd></dl>

<p>Definition at line <a class="el" href="_c_robot_simulator_8h_source.html#l00210">210</a> of file <a class="el" href="_c_robot_simulator_8h_source.html">CRobotSimulator.h</a>.</p>

</div>
</div>
<a class="anchor" id="a71f8a19094f5de2f8aec699fa2a9c7d6"></a><!-- doxytag: member="mrpt::utils::CRobotSimulator::getRealPose" ref="a71f8a19094f5de2f8aec699fa2a9c7d6" args="(TPose2D &amp;pose) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CRobotSimulator::getRealPose </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmrpt_1_1math_1_1_t_pose2_d.html">TPose2D</a> &amp;&#160;</td>
          <td class="paramname"><em>pose</em></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reads the real robot pose. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#a6fb34ab58b24f555a18bc9d4d067762f" title="Reads the simulated robot odometry (this is NOT equal to the actual error-free robot coordinates)...">getOdometry</a> </dd></dl>

<p>Definition at line <a class="el" href="_c_robot_simulator_8h_source.html#l00215">215</a> of file <a class="el" href="_c_robot_simulator_8h_source.html">CRobotSimulator.h</a>.</p>

</div>
</div>
<a class="anchor" id="a1831f5a10e1f25d36523c435b477b83f"></a><!-- doxytag: member="mrpt::utils::CRobotSimulator::getT" ref="a1831f5a10e1f25d36523c435b477b83f" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double mrpt::utils::CRobotSimulator::getT </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Read the instantaneous, error-free status of the simulated robot. </p>

<p>Definition at line <a class="el" href="_c_robot_simulator_8h_source.html#l00158">158</a> of file <a class="el" href="_c_robot_simulator_8h_source.html">CRobotSimulator.h</a>.</p>

<p>References <a class="el" href="eigen__plugins_8h_source.html#l00490">t()</a>.</p>

</div>
</div>
<a class="anchor" id="a42cfebc010cce5a04ad197dab6426e5a"></a><!-- doxytag: member="mrpt::utils::CRobotSimulator::getV" ref="a42cfebc010cce5a04ad197dab6426e5a" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double mrpt::utils::CRobotSimulator::getV </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Read the instantaneous, error-free status of the simulated robot. </p>

<p>Definition at line <a class="el" href="_c_robot_simulator_8h_source.html#l00162">162</a> of file <a class="el" href="_c_robot_simulator_8h_source.html">CRobotSimulator.h</a>.</p>

</div>
</div>
<a class="anchor" id="a47c7f6bd7b441b9ba6e5ae525c66253c"></a><!-- doxytag: member="mrpt::utils::CRobotSimulator::getW" ref="a47c7f6bd7b441b9ba6e5ae525c66253c" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double mrpt::utils::CRobotSimulator::getW </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Read the instantaneous, error-free status of the simulated robot. </p>

<p>Definition at line <a class="el" href="_c_robot_simulator_8h_source.html#l00165">165</a> of file <a class="el" href="_c_robot_simulator_8h_source.html">CRobotSimulator.h</a>.</p>

</div>
</div>
<a class="anchor" id="acfeab89151d1cf14ae67cdd82bb3d85e"></a><!-- doxytag: member="mrpt::utils::CRobotSimulator::getX" ref="acfeab89151d1cf14ae67cdd82bb3d85e" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double mrpt::utils::CRobotSimulator::getX </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Read the instantaneous, error-free status of the simulated robot. </p>

<p>Definition at line <a class="el" href="_c_robot_simulator_8h_source.html#l00146">146</a> of file <a class="el" href="_c_robot_simulator_8h_source.html">CRobotSimulator.h</a>.</p>

</div>
</div>
<a class="anchor" id="a7212ea0d38f63ffb00ff1ff659dd040a"></a><!-- doxytag: member="mrpt::utils::CRobotSimulator::getY" ref="a7212ea0d38f63ffb00ff1ff659dd040a" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double mrpt::utils::CRobotSimulator::getY </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Read the instantaneous, error-free status of the simulated robot. </p>

<p>Definition at line <a class="el" href="_c_robot_simulator_8h_source.html#l00150">150</a> of file <a class="el" href="_c_robot_simulator_8h_source.html">CRobotSimulator.h</a>.</p>

</div>
</div>
<a class="anchor" id="a112ea5f8b2d9c74d973e136686ee52db"></a><!-- doxytag: member="mrpt::utils::CRobotSimulator::movementCommand" ref="a112ea5f8b2d9c74d973e136686ee52db" args="(double lin_vel, double ang_vel)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CRobotSimulator::movementCommand </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>lin_vel</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>ang_vel</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Used to command the robot a desired movement (velocities) </p>

</div>
</div>
<a class="anchor" id="a35da67924cf97e0ddb3270a162aa585f"></a><!-- doxytag: member="mrpt::utils::CRobotSimulator::resetOdometry" ref="a35da67924cf97e0ddb3270a162aa585f" args="(const mrpt::poses::CPose2D &amp;newOdo=mrpt::poses::CPose2D())" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CRobotSimulator::resetOdometry </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">mrpt::poses::CPose2D</a> &amp;&#160;</td>
          <td class="paramname"><em>newOdo</em> = <code><a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">mrpt::poses::CPose2D</a>()</code></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Forces odometry to be set to a specified values. </p>

<p>Definition at line <a class="el" href="_c_robot_simulator_8h_source.html#l00191">191</a> of file <a class="el" href="_c_robot_simulator_8h_source.html">CRobotSimulator.h</a>.</p>

</div>
</div>
<a class="anchor" id="aae139c1521dae615ac29e236813c1fa3"></a><!-- doxytag: member="mrpt::utils::CRobotSimulator::resetStatus" ref="aae139c1521dae615ac29e236813c1fa3" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CRobotSimulator::resetStatus </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reset all the simulator variables to 0 (All but current simulator time). </p>

</div>
</div>
<a class="anchor" id="a94dee58b5f2e70e74486feb5b8bd0e83"></a><!-- doxytag: member="mrpt::utils::CRobotSimulator::resetTime" ref="a94dee58b5f2e70e74486feb5b8bd0e83" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CRobotSimulator::resetTime </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reset time counter. </p>

<p>Definition at line <a class="el" href="_c_robot_simulator_8h_source.html#l00183">183</a> of file <a class="el" href="_c_robot_simulator_8h_source.html">CRobotSimulator.h</a>.</p>

<p>References <a class="el" href="eigen__plugins_8h_source.html#l00490">t()</a>.</p>

</div>
</div>
<a class="anchor" id="ae6162e9060daf9de6a3158d70148fea4"></a><!-- doxytag: member="mrpt::utils::CRobotSimulator::setDelayModelParams" ref="ae6162e9060daf9de6a3158d70148fea4" args="(float TAU_delay_sec=1.8f, float CMD_delay_sec=0.3f)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CRobotSimulator::setDelayModelParams </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>TAU_delay_sec</em> = <code>1.8f</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>CMD_delay_sec</em> = <code>0.3f</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Change the model of delays used for the orders sent to the robot. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#a112ea5f8b2d9c74d973e136686ee52db" title="Used to command the robot a desired movement (velocities)">movementCommand</a> </dd></dl>

<p>Definition at line <a class="el" href="_c_robot_simulator_8h_source.html#l00113">113</a> of file <a class="el" href="_c_robot_simulator_8h_source.html">CRobotSimulator.h</a>.</p>

</div>
</div>
<a class="anchor" id="afd70485327627a145a87f63e3f46c0f4"></a><!-- doxytag: member="mrpt::utils::CRobotSimulator::setOdometryErrors" ref="afd70485327627a145a87f63e3f46c0f4" args="(bool enabled, double Ax_err_bias=1e&#45;6, double Ax_err_std=10e&#45;6, double Ay_err_bias=1e&#45;6, double Ay_err_std=10e&#45;6, double Aphi_err_bias=DEG2RAD(1e&#45;6), double Aphi_err_std=DEG2RAD(10e&#45;6))" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CRobotSimulator::setOdometryErrors </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>enabled</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>Ax_err_bias</em> = <code>1e-6</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>Ax_err_std</em> = <code>10e-6</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>Ay_err_bias</em> = <code>1e-6</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>Ay_err_std</em> = <code>10e-6</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>Aphi_err_bias</em> = <code>DEG2RAD(1e-6)</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>Aphi_err_std</em> = <code>DEG2RAD(10e-6)</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Enable/Disable odometry errors Errors in odometry are introduced per millisecond. </p>

<p>Definition at line <a class="el" href="_c_robot_simulator_8h_source.html#l00121">121</a> of file <a class="el" href="_c_robot_simulator_8h_source.html">CRobotSimulator.h</a>.</p>

</div>
</div>
<a class="anchor" id="aa7a397547e3eb7aa404d10cc251ec541"></a><!-- doxytag: member="mrpt::utils::CRobotSimulator::setRealPose" ref="aa7a397547e3eb7aa404d10cc251ec541" args="(mrpt::poses::CPose2D &amp;p)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CRobotSimulator::setRealPose </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">mrpt::poses::CPose2D</a> &amp;&#160;</td>
          <td class="paramname"><em>p</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reset actual robot pose (inmediately, without simulating the movement along time) </p>

<p>Definition at line <a class="el" href="_c_robot_simulator_8h_source.html#l00142">142</a> of file <a class="el" href="_c_robot_simulator_8h_source.html">CRobotSimulator.h</a>.</p>

</div>
</div>
<a class="anchor" id="aaf3dea3958a5623e22ab533d8ee83c0b"></a><!-- doxytag: member="mrpt::utils::CRobotSimulator::setV" ref="aaf3dea3958a5623e22ab533d8ee83c0b" args="(double v)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CRobotSimulator::setV </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>v</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set actual robot pose (inmediately, without simulating the movement along time) (Not to be called normally!!) </p>
<dl class="see"><dt><b>See also:</b></dt><dd>MovementCommand </dd></dl>

<p>Definition at line <a class="el" href="_c_robot_simulator_8h_source.html#l00170">170</a> of file <a class="el" href="_c_robot_simulator_8h_source.html">CRobotSimulator.h</a>.</p>

</div>
</div>
<a class="anchor" id="a4a4382c4dceebb38b87641fa27255564"></a><!-- doxytag: member="mrpt::utils::CRobotSimulator::setW" ref="a4a4382c4dceebb38b87641fa27255564" args="(double w)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CRobotSimulator::setW </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>w</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_robot_simulator_8h_source.html#l00171">171</a> of file <a class="el" href="_c_robot_simulator_8h_source.html">CRobotSimulator.h</a>.</p>

</div>
</div>
<a class="anchor" id="a5f281ac880ae60050e5442dbbe427078"></a><!-- doxytag: member="mrpt::utils::CRobotSimulator::simulateInterval" ref="a5f281ac880ae60050e5442dbbe427078" args="(double At)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CRobotSimulator::simulateInterval </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>At</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This method must be called periodically to simulate discrete time intervals. </p>

</div>
</div>
<hr/><h2>Member Data Documentation</h2>
<a class="anchor" id="adcaa142dace96bae962c0c61c6e78545"></a><!-- doxytag: member="mrpt::utils::CRobotSimulator::cDELAY" ref="adcaa142dace96bae962c0c61c6e78545" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float <a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#adcaa142dace96bae962c0c61c6e78545">mrpt::utils::CRobotSimulator::cDELAY</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The delay constant for the velocities changes. </p>

<p>Definition at line <a class="el" href="_c_robot_simulator_8h_source.html#l00097">97</a> of file <a class="el" href="_c_robot_simulator_8h_source.html">CRobotSimulator.h</a>.</p>

</div>
</div>
<a class="anchor" id="a37570294a31ce7ae5d7782d4a793adb6"></a><!-- doxytag: member="mrpt::utils::CRobotSimulator::Command_Time" ref="a37570294a31ce7ae5d7782d4a793adb6" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double <a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#a37570294a31ce7ae5d7782d4a793adb6">mrpt::utils::CRobotSimulator::Command_Time</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Dynamic limitations of the robot. </p>
<p>Approximation to non-infinity motor forces: A first order low-pass filter, using: Command_Time: Time "t" when the last order was received. Command_v, Command_w: The user-desired velocities. Command_v0, Command_w0: Actual robot velocities at the moment of user request. </p>

<p>Definition at line <a class="el" href="_c_robot_simulator_8h_source.html#l00089">89</a> of file <a class="el" href="_c_robot_simulator_8h_source.html">CRobotSimulator.h</a>.</p>

</div>
</div>
<a class="anchor" id="ac217145c519c1d8000695f93bd39b5a2"></a><!-- doxytag: member="mrpt::utils::CRobotSimulator::Command_v" ref="ac217145c519c1d8000695f93bd39b5a2" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double <a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#ac217145c519c1d8000695f93bd39b5a2">mrpt::utils::CRobotSimulator::Command_v</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_robot_simulator_8h_source.html#l00089">89</a> of file <a class="el" href="_c_robot_simulator_8h_source.html">CRobotSimulator.h</a>.</p>

</div>
</div>
<a class="anchor" id="a8fc9bf0c7b11a263ac4512d90af6b6d6"></a><!-- doxytag: member="mrpt::utils::CRobotSimulator::Command_v0" ref="a8fc9bf0c7b11a263ac4512d90af6b6d6" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double <a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#a8fc9bf0c7b11a263ac4512d90af6b6d6">mrpt::utils::CRobotSimulator::Command_v0</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_robot_simulator_8h_source.html#l00089">89</a> of file <a class="el" href="_c_robot_simulator_8h_source.html">CRobotSimulator.h</a>.</p>

</div>
</div>
<a class="anchor" id="a49ade2c3db29f7e3a162d28a5c3d66a8"></a><!-- doxytag: member="mrpt::utils::CRobotSimulator::Command_w" ref="a49ade2c3db29f7e3a162d28a5c3d66a8" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double <a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#a49ade2c3db29f7e3a162d28a5c3d66a8">mrpt::utils::CRobotSimulator::Command_w</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_robot_simulator_8h_source.html#l00089">89</a> of file <a class="el" href="_c_robot_simulator_8h_source.html">CRobotSimulator.h</a>.</p>

</div>
</div>
<a class="anchor" id="ad7e0b92a5fbbe7f760eb70b7097da7ab"></a><!-- doxytag: member="mrpt::utils::CRobotSimulator::Command_w0" ref="ad7e0b92a5fbbe7f760eb70b7097da7ab" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double <a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#ad7e0b92a5fbbe7f760eb70b7097da7ab">mrpt::utils::CRobotSimulator::Command_w0</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_robot_simulator_8h_source.html#l00089">89</a> of file <a class="el" href="_c_robot_simulator_8h_source.html">CRobotSimulator.h</a>.</p>

</div>
</div>
<a class="anchor" id="a62e21c4d8000d48b6f378fd02b6c8ba7"></a><!-- doxytag: member="mrpt::utils::CRobotSimulator::cTAU" ref="a62e21c4d8000d48b6f378fd02b6c8ba7" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float <a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#a62e21c4d8000d48b6f378fd02b6c8ba7">mrpt::utils::CRobotSimulator::cTAU</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The time-constants for the first order low-pass filter for the velocities changes. </p>

<p>Definition at line <a class="el" href="_c_robot_simulator_8h_source.html#l00094">94</a> of file <a class="el" href="_c_robot_simulator_8h_source.html">CRobotSimulator.h</a>.</p>

</div>
</div>
<a class="anchor" id="a3ce7977b3d8c31c935d48500ba126425"></a><!-- doxytag: member="mrpt::utils::CRobotSimulator::m_Aphi_err_bias" ref="a3ce7977b3d8c31c935d48500ba126425" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double <a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#a3ce7977b3d8c31c935d48500ba126425">mrpt::utils::CRobotSimulator::m_Aphi_err_bias</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_robot_simulator_8h_source.html#l00101">101</a> of file <a class="el" href="_c_robot_simulator_8h_source.html">CRobotSimulator.h</a>.</p>

</div>
</div>
<a class="anchor" id="a587ba56ad46d9d47f4baa95c2474205e"></a><!-- doxytag: member="mrpt::utils::CRobotSimulator::m_Aphi_err_std" ref="a587ba56ad46d9d47f4baa95c2474205e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double <a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#a587ba56ad46d9d47f4baa95c2474205e">mrpt::utils::CRobotSimulator::m_Aphi_err_std</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_robot_simulator_8h_source.html#l00101">101</a> of file <a class="el" href="_c_robot_simulator_8h_source.html">CRobotSimulator.h</a>.</p>

</div>
</div>
<a class="anchor" id="a8a9fb5876366f3f2298af967036c9075"></a><!-- doxytag: member="mrpt::utils::CRobotSimulator::m_Ax_err_bias" ref="a8a9fb5876366f3f2298af967036c9075" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double <a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#a8a9fb5876366f3f2298af967036c9075">mrpt::utils::CRobotSimulator::m_Ax_err_bias</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_robot_simulator_8h_source.html#l00099">99</a> of file <a class="el" href="_c_robot_simulator_8h_source.html">CRobotSimulator.h</a>.</p>

</div>
</div>
<a class="anchor" id="a30c096310cd5d186d1c0801826102a5d"></a><!-- doxytag: member="mrpt::utils::CRobotSimulator::m_Ax_err_std" ref="a30c096310cd5d186d1c0801826102a5d" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double <a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#a30c096310cd5d186d1c0801826102a5d">mrpt::utils::CRobotSimulator::m_Ax_err_std</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_robot_simulator_8h_source.html#l00099">99</a> of file <a class="el" href="_c_robot_simulator_8h_source.html">CRobotSimulator.h</a>.</p>

</div>
</div>
<a class="anchor" id="a63579b7af2c4e4ce64a1bd2708173f5b"></a><!-- doxytag: member="mrpt::utils::CRobotSimulator::m_Ay_err_bias" ref="a63579b7af2c4e4ce64a1bd2708173f5b" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double <a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#a63579b7af2c4e4ce64a1bd2708173f5b">mrpt::utils::CRobotSimulator::m_Ay_err_bias</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_robot_simulator_8h_source.html#l00100">100</a> of file <a class="el" href="_c_robot_simulator_8h_source.html">CRobotSimulator.h</a>.</p>

</div>
</div>
<a class="anchor" id="ac542bf201a4c6f53718577419722b555"></a><!-- doxytag: member="mrpt::utils::CRobotSimulator::m_Ay_err_std" ref="ac542bf201a4c6f53718577419722b555" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double <a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#ac542bf201a4c6f53718577419722b555">mrpt::utils::CRobotSimulator::m_Ay_err_std</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_robot_simulator_8h_source.html#l00100">100</a> of file <a class="el" href="_c_robot_simulator_8h_source.html">CRobotSimulator.h</a>.</p>

</div>
</div>
<a class="anchor" id="aa93bd38e30d659b84a3ea93a57829aca"></a><!-- doxytag: member="mrpt::utils::CRobotSimulator::m_odometry" ref="aa93bd38e30d659b84a3ea93a57829aca" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">mrpt::poses::CPose2D</a> <a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#aa93bd38e30d659b84a3ea93a57829aca">mrpt::utils::CRobotSimulator::m_odometry</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Used to simulate odometry (with optional error) </p>

<p>Definition at line <a class="el" href="_c_robot_simulator_8h_source.html#l00066">66</a> of file <a class="el" href="_c_robot_simulator_8h_source.html">CRobotSimulator.h</a>.</p>

</div>
</div>
<a class="anchor" id="af815a9bf09e58f15ebd4a459b15eb2ed"></a><!-- doxytag: member="mrpt::utils::CRobotSimulator::m_pose" ref="af815a9bf09e58f15ebd4a459b15eb2ed" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">mrpt::poses::CPose2D</a> <a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#af815a9bf09e58f15ebd4a459b15eb2ed">mrpt::utils::CRobotSimulator::m_pose</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Global, absolute and error-free robot coordinates. </p>

<p>Definition at line <a class="el" href="_c_robot_simulator_8h_source.html#l00065">65</a> of file <a class="el" href="_c_robot_simulator_8h_source.html">CRobotSimulator.h</a>.</p>

</div>
</div>
<a class="anchor" id="a9c8384f29322cdc2e706a332240eda8a"></a><!-- doxytag: member="mrpt::utils::CRobotSimulator::t" ref="a9c8384f29322cdc2e706a332240eda8a" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double <a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#a9c8384f29322cdc2e706a332240eda8a">mrpt::utils::CRobotSimulator::t</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Simulation time variable. </p>

<p>Definition at line <a class="el" href="_c_robot_simulator_8h_source.html#l00078">78</a> of file <a class="el" href="_c_robot_simulator_8h_source.html">CRobotSimulator.h</a>.</p>

</div>
</div>
<a class="anchor" id="a29c7a89b8e3f7d26e2dc3954592d86ca"></a><!-- doxytag: member="mrpt::utils::CRobotSimulator::usar_error_odometrico" ref="a29c7a89b8e3f7d26e2dc3954592d86ca" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#a29c7a89b8e3f7d26e2dc3954592d86ca">mrpt::utils::CRobotSimulator::usar_error_odometrico</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Whether to corrupt odometry with noise. </p>

<p>Definition at line <a class="el" href="_c_robot_simulator_8h_source.html#l00081">81</a> of file <a class="el" href="_c_robot_simulator_8h_source.html">CRobotSimulator.h</a>.</p>

</div>
</div>
<a class="anchor" id="a90f94f438267af5d9c7b7022ab67cdd5"></a><!-- doxytag: member="mrpt::utils::CRobotSimulator::v" ref="a90f94f438267af5d9c7b7022ab67cdd5" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double <a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#a90f94f438267af5d9c7b7022ab67cdd5">mrpt::utils::CRobotSimulator::v</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Instantaneous velocity of the robot (linear, m/s) </p>

<p>Definition at line <a class="el" href="_c_robot_simulator_8h_source.html#l00070">70</a> of file <a class="el" href="_c_robot_simulator_8h_source.html">CRobotSimulator.h</a>.</p>

</div>
</div>
<a class="anchor" id="a7b1ee57d13330e4d389d3fc1df31193a"></a><!-- doxytag: member="mrpt::utils::CRobotSimulator::w" ref="a7b1ee57d13330e4d389d3fc1df31193a" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double <a class="el" href="classmrpt_1_1utils_1_1_c_robot_simulator.html#a7b1ee57d13330e4d389d3fc1df31193a">mrpt::utils::CRobotSimulator::w</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Instantaneous velocity of the robot (angular, rad/s) </p>

<p>Definition at line <a class="el" href="_c_robot_simulator_8h_source.html#l00074">74</a> of file <a class="el" href="_c_robot_simulator_8h_source.html">CRobotSimulator.h</a>.</p>

</div>
</div>
</div>
<br><hr><br> <table border="0" width="100%"> <tr> <td> Page generated by <a href="http://www.doxygen.org" target="_blank">Doxygen 1.7.5</a> for MRPT 0.9.5 SVN: at Sun Sep 25 17:20:18 UTC 2011</td><td></td> <td width="100"> </td> <td width="150">  </td></tr> </table>  </body></html>