Sophie

Sophie

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

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::slam::CActionRobotMovement2D 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_1slam.html">slam</a>      </li>
      <li class="navelem"><a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html">CActionRobotMovement2D</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="#pub-static-attribs">Static Public Attributes</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a>  </div>
  <div class="headertitle">
<div class="title">mrpt::slam::CActionRobotMovement2D Class Reference<div class="ingroups"><a class="el" href="group__mrpt__obs__grp.html">[mrpt-obs]</a></div></div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="mrpt::slam::CActionRobotMovement2D" --><!-- doxytag: inherits="mrpt::slam::CAction" --><hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>Represents a probabilistic 2D movement of the robot mobile base. </p>
<p>See the tutorial on <a href="http://www.mrpt.org/Probabilistic_Motion_Models">probabilistic motion models</a>.</p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_action.html" title="Declares a class for storing a robot action.">CAction</a> </dd></dl>
</div>
<p><code>#include &lt;<a class="el" href="_c_action_robot_movement2_d_8h_source.html">mrpt/slam/CActionRobotMovement2D.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for mrpt::slam::CActionRobotMovement2D:</div>
<div class="dyncontent">
<div class="center"><img src="classmrpt_1_1slam_1_1_c_action_robot_movement2_d__inherit__graph.png" border="0" usemap="#mrpt_1_1slam_1_1_c_action_robot_movement2_d_inherit__map" alt="Inheritance graph"/></div>
<map name="mrpt_1_1slam_1_1_c_action_robot_movement2_d_inherit__map" id="mrpt_1_1slam_1_1_c_action_robot_movement2_d_inherit__map">
<area shape="rect" id="node2" href="classmrpt_1_1slam_1_1_c_action.html" title="Declares a class for storing a robot action." alt="" coords="61,155,200,181"/><area shape="rect" id="node4" href="classmrpt_1_1utils_1_1_c_serializable.html" title="The virtual base class which provides a unified interface for all persistent objects in MRPT..." alt="" coords="48,80,212,107"/><area shape="rect" id="node6" href="classmrpt_1_1utils_1_1_c_object.html" title="The virtual base class of all MRPT classes with a unified RTTI system." alt="" coords="63,5,197,32"/></map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>

<p><a href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmrpt_1_1slam_1_1_c_action_robot_movement2_d_1_1_t_motion_model_options.html">TMotionModelOptions</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The parameter to be passed to "computeFromOdometry".  <a href="structmrpt_1_1slam_1_1_c_action_robot_movement2_d_1_1_t_motion_model_options.html#details">More...</a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html#a2ea0c517210c0b4dd54269463af5debd">TEstimationMethod</a> { <a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html#a2ea0c517210c0b4dd54269463af5debda922e4ea1f9b65d3a56400d31247248f3">emOdometry</a> =  0, 
<a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html#a2ea0c517210c0b4dd54269463af5debda0549c4bcb992f7709a4c6da28f042084">emScan2DMatching</a>
 }</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A list of posible ways for estimating the content of a <a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html" title="Represents a probabilistic 2D movement of the robot mobile base.">CActionRobotMovement2D</a> object.  <a href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html#a2ea0c517210c0b4dd54269463af5debd">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html#ac4dd42d8fd31dc832ab208a363697dbc">TDrawSampleMotionModel</a> { <a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html#ac4dd42d8fd31dc832ab208a363697dbca5d2877076d3cfbe54d3d170f51e8775d">mmGaussian</a> =  0, 
<a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html#ac4dd42d8fd31dc832ab208a363697dbcaa9dcf67357c38d2a4ca44c60bf6ff690">mmThrun</a>
 }</td></tr>
<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_1slam_1_1_c_action_robot_movement2_d.html#a7e31dbd8335f1602f181587746504cd5">CActionRobotMovement2D</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor.  <a href="#a7e31dbd8335f1602f181587746504cd5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html#aba12831e0fe69f7fbdaf8e6e1ebd7ae1">CActionRobotMovement2D</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html">CActionRobotMovement2D</a> &amp;o)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor.  <a href="#aba12831e0fe69f7fbdaf8e6e1ebd7ae1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html">CActionRobotMovement2D</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html#acfeb9619d5a620c80e8550b9c91bea52">operator=</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html">CActionRobotMovement2D</a> &amp;o)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy operator.  <a href="#acfeb9619d5a620c80e8550b9c91bea52"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html#abec4ddfffa1d6e4f9a8bef933dcdfe23">~CActionRobotMovement2D</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor.  <a href="#abec4ddfffa1d6e4f9a8bef933dcdfe23"></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_1slam_1_1_c_action_robot_movement2_d.html#ae311480bde721a04b002cc7b08597fbf">computeFromOdometry</a> (const <a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">CPose2D</a> &amp;odometryIncrement, const <a class="el" href="structmrpt_1_1slam_1_1_c_action_robot_movement2_d_1_1_t_motion_model_options.html">TMotionModelOptions</a> &amp;options)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the PDF of the pose increment from an odometry reading and according to the given motion model (speed and encoder ticks information is not modified).  <a href="#ae311480bde721a04b002cc7b08597fbf"></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_1slam_1_1_c_action_robot_movement2_d.html#a30d63b72cd9936daa3e51b6628742edf">computeFromEncoders</a> (double K_left, double K_right, double D)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">If "hasEncodersInfo"=true, this method updates the pose estimation according to the ticks from both encoders and the passed parameters, which is passed internally to the method "computeFromOdometry" with the last used PDF options (or the defualt ones if not explicitly called by the user).  <a href="#a30d63b72cd9936daa3e51b6628742edf"></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_1slam_1_1_c_action_robot_movement2_d.html#aaebfa84dc557574c20cbf69b6fd4282f">drawSingleSample</a> (<a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">CPose2D</a> &amp;outSample) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Using this method instead of "poseChange-&gt;drawSingleSample()" may be more efficient in most situations.  <a href="#aaebfa84dc557574c20cbf69b6fd4282f"></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_1slam_1_1_c_action_robot_movement2_d.html#af05a0f29e49a4c146e41a32b07c6f826">prepareFastDrawSingleSamples</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Call this before calling a high number of times "fastDrawSingleSample", which is much faster than "drawSingleSample".  <a href="#af05a0f29e49a4c146e41a32b07c6f826"></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_1slam_1_1_c_action_robot_movement2_d.html#a9b23f283b6c7399c069e9aeea4b272d6">fastDrawSingleSample</a> (<a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">CPose2D</a> &amp;outSample) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Faster version than "drawSingleSample", but requires a previous call to "prepareFastDrawSingleSamples".  <a href="#a9b23f283b6c7399c069e9aeea4b272d6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1utils_1_1_c_object_ptr.html">mrpt::utils::CObjectPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_object.html#a534695890364f4b916bba07dad311bcf">duplicateGetSmartPtr</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a copy of the object, indepently of its class, as a smart pointer (the newly created object will exist as long as any copy of this smart pointer).  <a href="#a534695890364f4b916bba07dad311bcf"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1utils_1_1_c_object.html">CObject</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_object.html#a9ef7857a0b36059c078e195a0a65ac00">clone</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Cloning interface for smart pointers.  <a href="#a9ef7857a0b36059c078e195a0a65ac00"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmrpt_1_1poses_1_1_c_pose_p_d_f_ptr.html">CPosePDFPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html#a657f5eb086d62c2cd601e5ea2ab11514">poseChange</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The 2D pose change probabilistic estimation.  <a href="#a657f5eb086d62c2cd601e5ea2ab11514"></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">CPose2D</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html#ab4f05a72db0653e3c720de473da1e8e9">rawOdometryIncrementReading</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the raw odometry reading, and only is used when "estimationMethod" is "TEstimationMethod::emOdometry".  <a href="#ab4f05a72db0653e3c720de473da1e8e9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html#a2ea0c517210c0b4dd54269463af5debd">TEstimationMethod</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html#a866e3568f5318af626be763fa20bf10e">estimationMethod</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This fields indicates the way this estimation was obtained.  <a href="#a866e3568f5318af626be763fa20bf10e"></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_1slam_1_1_c_action_robot_movement2_d.html#a36126efa474d8a610162a5a2c9708acc">hasEncodersInfo</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">If "true" means that "encoderLeftTicks" and "encoderRightTicks" contain valid values.  <a href="#a36126efa474d8a610162a5a2c9708acc"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html#aaf34db5580aa5fd8447f6766088fa19a">encoderLeftTicks</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">For odometry only: the ticks count for each wheel FROM the last reading (positive means FORWARD, for both wheels);.  <a href="#aaf34db5580aa5fd8447f6766088fa19a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html#a2615b2e729d7f5f4f2e6e66fd4de26db">encoderRightTicks</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html#a51b72a53b3a6723026705281505c45ae">hasVelocities</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">If "true" means that "velocityLin" and "velocityAng" contain valid values.  <a href="#a51b72a53b3a6723026705281505c45ae"></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_1slam_1_1_c_action_robot_movement2_d.html#a937d53f74c8e9c43ce7695d0a5c7968e">velocityLin</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The velocity of the robot, linear in meters/sec and angular in rad/sec.  <a href="#a937d53f74c8e9c43ce7695d0a5c7968e"></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_1slam_1_1_c_action_robot_movement2_d.html#ab719534719b2c0e6c4e44d7c9850d299">velocityAng</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct OBS_IMPEXP <br class="typebreak"/>
<a class="el" href="structmrpt_1_1slam_1_1_c_action_robot_movement2_d_1_1_t_motion_model_options.html">mrpt::slam::CActionRobotMovement2D::TMotionModelOptions</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html#a772ea4a2f27795ea62dc1a22814cc68f">motionModelConfiguration</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__time__date.html#ga42674286d8d56afea013b6329bb7327a">mrpt::system::TTimeStamp</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_action.html#a9d186d88fdba0217ef490b1bdd11eb17">timestamp</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The associated time-stamp.  <a href="#a9d186d88fdba0217ef490b1bdd11eb17"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pub-static-attribs"></a>
Static Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const <br class="typebreak"/>
<a class="el" href="structmrpt_1_1utils_1_1_t_runtime_class_id.html">mrpt::utils::TRuntimeClassId</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_object.html#acb51e4dd811d62c2696aee449d0a4715">classCObject</a></td></tr>
<tr><td colspan="2"><div class="groupHeader">RTTI stuff</div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const <br class="typebreak"/>
<a class="el" href="structmrpt_1_1utils_1_1_t_runtime_class_id.html">mrpt::utils::TRuntimeClassId</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_serializable.html#a28ec2a03d277a8469b8ecfc81892afdf">classCSerializable</a></td></tr>
<tr><td colspan="2"><h2><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html#a3206d11ad02740472260eb168286b0f9">computeFromOdometry_modelGaussian</a> (const <a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">CPose2D</a> &amp;odometryIncrement, const <a class="el" href="structmrpt_1_1slam_1_1_c_action_robot_movement2_d_1_1_t_motion_model_options.html">TMotionModelOptions</a> &amp;o)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the PDF of the pose increment from an odometry reading, using a Gaussian approximation as the motion model.  <a href="#a3206d11ad02740472260eb168286b0f9"></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_1slam_1_1_c_action_robot_movement2_d.html#ad28a41b226b3edfa4742f42b53b6008d">computeFromOdometry_modelThrun</a> (const <a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">CPose2D</a> &amp;odometryIncrement, const <a class="el" href="structmrpt_1_1slam_1_1_c_action_robot_movement2_d_1_1_t_motion_model_options.html">TMotionModelOptions</a> &amp;o)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the PDF of the pose increment from an odometry reading, using the motion model from Thrun's book.  <a href="#ad28a41b226b3edfa4742f42b53b6008d"></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_1slam_1_1_c_action_robot_movement2_d.html#a38128e72c998ddd50cf214d085dd9518">drawSingleSample_modelGaussian</a> (<a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">CPose2D</a> &amp;outSample) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The sample generator for the model "computeFromOdometry_modelGaussian", internally called when the user invokes "drawSingleSample".  <a href="#a38128e72c998ddd50cf214d085dd9518"></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_1slam_1_1_c_action_robot_movement2_d.html#a381e991eb3c19f8bcbbfb0a7ecc40782">drawSingleSample_modelThrun</a> (<a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">CPose2D</a> &amp;outSample) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The sample generator for the model "computeFromOdometry_modelThrun", internally called when the user invokes "drawSingleSample".  <a href="#a381e991eb3c19f8bcbbfb0a7ecc40782"></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_1slam_1_1_c_action_robot_movement2_d.html#a04f7c9e0f1263e248cd04a8e7d40f87d">prepareFastDrawSingleSample_modelGaussian</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal use.  <a href="#a04f7c9e0f1263e248cd04a8e7d40f87d"></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_1slam_1_1_c_action_robot_movement2_d.html#afddd953bc5f97afd51c7743ee7d13e4c">prepareFastDrawSingleSample_modelThrun</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal use.  <a href="#afddd953bc5f97afd51c7743ee7d13e4c"></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_1slam_1_1_c_action_robot_movement2_d.html#aff903693343b8e002d765eb635ce93e8">fastDrawSingleSample_modelGaussian</a> (<a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">CPose2D</a> &amp;outSample) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal use.  <a href="#aff903693343b8e002d765eb635ce93e8"></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_1slam_1_1_c_action_robot_movement2_d.html#ae9198f9196ddfb73fa8191cdaf232254">fastDrawSingleSample_modelThrun</a> (<a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">CPose2D</a> &amp;outSample) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal use.  <a href="#ae9198f9196ddfb73fa8191cdaf232254"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_serializable.html#a0b6b801e67bca3d8e0d355e7035f8013">writeToStream</a> (<a class="el" href="classmrpt_1_1utils_1_1_c_stream.html">mrpt::utils::CStream</a> &amp;out, int *getVersion) const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Introduces a pure virtual method responsible for writing to a <a class="el" href="classmrpt_1_1utils_1_1_c_stream.html" title="This base class is used to provide a unified interface to files,memory buffers,..Please see the deriv...">CStream</a>.  <a href="#a0b6b801e67bca3d8e0d355e7035f8013"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_serializable.html#a73ba83035a64939cdc3aa1c0dfed23ec">readFromStream</a> (<a class="el" href="classmrpt_1_1utils_1_1_c_stream.html">mrpt::utils::CStream</a> &amp;in, int version)=0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Introduces a pure virtual method responsible for loading from a <a class="el" href="classmrpt_1_1utils_1_1_c_stream.html" title="This base class is used to provide a unified interface to files,memory buffers,..Please see the deriv...">CStream</a> This can not be used directly be users, instead use "stream &gt;&gt; object;" for reading it from a stream or "stream &gt;&gt; object_ptr;" if the class is unknown apriori.  <a href="#a73ba83035a64939cdc3aa1c0dfed23ec"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacemrpt_1_1math.html#a58d0ee60eee38e990848ccb8b83e8338">CMatrixDouble33</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html#a987805d7f75ae92c570b6b740baa435b">m_fastDrawGauss_Z</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Auxiliary matrix.  <a href="#a987805d7f75ae92c570b6b740baa435b"></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">CPose2D</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html#aa802538fa49a6e64a10df9e5283cdeb0">m_fastDrawGauss_M</a></td></tr>
<tr><td colspan="2"><h2><a name="member-group"></a>
RTTI stuff</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const <br class="typebreak"/>
<a class="el" href="structmrpt_1_1utils_1_1_t_runtime_class_id.html">mrpt::utils::TRuntimeClassId</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_action.html#a73b9cd63508ed3b128c2691c97882aef">classCAction</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_action.html#a6fec28a53e20dfc1c4d046c26f9f7b48">mrpt::utils::CStream</a></td></tr>
<tr><td colspan="2"><h2><a name="member-group"></a>
RTTI stuff</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structmrpt_1_1slam_1_1_c_action_robot_movement2_d_ptr.html">CActionRobotMovement2DPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html#a70723c38fee7598751494a3b1135216c">SmartPtr</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structmrpt_1_1utils_1_1_c_l_a_s_s_i_n_i_t.html">mrpt::utils::CLASSINIT</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html#a1dda7115c2534ea7cb870f6c904b4f2f">_init_CActionRobotMovement2D</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structmrpt_1_1utils_1_1_t_runtime_class_id.html">mrpt::utils::TRuntimeClassId</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html#a27199bb2d2abb2a3c00efeade8fe3ce4">classCActionRobotMovement2D</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const <br class="typebreak"/>
<a class="el" href="structmrpt_1_1utils_1_1_t_runtime_class_id.html">mrpt::utils::TRuntimeClassId</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html#ac81f89f391eb7dbf632508682dded6d6">classinfo</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const <br class="typebreak"/>
<a class="el" href="structmrpt_1_1utils_1_1_t_runtime_class_id.html">mrpt::utils::TRuntimeClassId</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html#acf574be876ef34253f6d392b6c476a03">_GetBaseClass</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual const <br class="typebreak"/>
<a class="el" href="structmrpt_1_1utils_1_1_t_runtime_class_id.html">mrpt::utils::TRuntimeClassId</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html#a8a316e322313ceaa5df8a1124dc0961d">GetRuntimeClass</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns information about the class of an object in runtime.  <a href="#a8a316e322313ceaa5df8a1124dc0961d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classmrpt_1_1utils_1_1_c_object.html">mrpt::utils::CObject</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html#a7e8d6d2fb451afbde43e9ac7221ddc9b">duplicate</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a copy of the object, indepently of its class.  <a href="#a7e8d6d2fb451afbde43e9ac7221ddc9b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classmrpt_1_1utils_1_1_c_object.html">mrpt::utils::CObject</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html#ac2efc1b3234fa0527b02d42cd911d27f">CreateObject</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structmrpt_1_1slam_1_1_c_action_robot_movement2_d_ptr.html">CActionRobotMovement2DPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html#ae1236eceed82b840e699fd3828391175">Create</a> ()</td></tr>
</table>
<hr/><h2>Member Typedef Documentation</h2>
<a class="anchor" id="a70723c38fee7598751494a3b1135216c"></a><!-- doxytag: member="mrpt::slam::CActionRobotMovement2D::SmartPtr" ref="a70723c38fee7598751494a3b1135216c" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="structmrpt_1_1slam_1_1_c_action_robot_movement2_d_ptr.html">CActionRobotMovement2DPtr</a> <a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html#a70723c38fee7598751494a3b1135216c">mrpt::slam::CActionRobotMovement2D::SmartPtr</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>A typedef for the associated smart pointer </p>

<p>Definition at line <a class="el" href="_c_action_robot_movement2_d_8h_source.html#l00056">56</a> of file <a class="el" href="_c_action_robot_movement2_d_8h_source.html">CActionRobotMovement2D.h</a>.</p>

</div>
</div>
<hr/><h2>Member Enumeration Documentation</h2>
<a class="anchor" id="ac4dd42d8fd31dc832ab208a363697dbc"></a><!-- doxytag: member="mrpt::slam::CActionRobotMovement2D::TDrawSampleMotionModel" ref="ac4dd42d8fd31dc832ab208a363697dbc" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html#ac4dd42d8fd31dc832ab208a363697dbc">mrpt::slam::CActionRobotMovement2D::TDrawSampleMotionModel</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="ac4dd42d8fd31dc832ab208a363697dbca5d2877076d3cfbe54d3d170f51e8775d"></a><!-- doxytag: member="mmGaussian" ref="ac4dd42d8fd31dc832ab208a363697dbca5d2877076d3cfbe54d3d170f51e8775d" args="" -->mmGaussian</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ac4dd42d8fd31dc832ab208a363697dbcaa9dcf67357c38d2a4ca44c60bf6ff690"></a><!-- doxytag: member="mmThrun" ref="ac4dd42d8fd31dc832ab208a363697dbcaa9dcf67357c38d2a4ca44c60bf6ff690" args="" -->mmThrun</em>&nbsp;</td><td>
</td></tr>
</table>
</dd>
</dl>

<p>Definition at line <a class="el" href="_c_action_robot_movement2_d_8h_source.html#l00112">112</a> of file <a class="el" href="_c_action_robot_movement2_d_8h_source.html">CActionRobotMovement2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="a2ea0c517210c0b4dd54269463af5debd"></a><!-- doxytag: member="mrpt::slam::CActionRobotMovement2D::TEstimationMethod" ref="a2ea0c517210c0b4dd54269463af5debd" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html#a2ea0c517210c0b4dd54269463af5debd">mrpt::slam::CActionRobotMovement2D::TEstimationMethod</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>A list of posible ways for estimating the content of a <a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html" title="Represents a probabilistic 2D movement of the robot mobile base.">CActionRobotMovement2D</a> object. </p>
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="a2ea0c517210c0b4dd54269463af5debda922e4ea1f9b65d3a56400d31247248f3"></a><!-- doxytag: member="emOdometry" ref="a2ea0c517210c0b4dd54269463af5debda922e4ea1f9b65d3a56400d31247248f3" args="" -->emOdometry</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a2ea0c517210c0b4dd54269463af5debda0549c4bcb992f7709a4c6da28f042084"></a><!-- doxytag: member="emScan2DMatching" ref="a2ea0c517210c0b4dd54269463af5debda0549c4bcb992f7709a4c6da28f042084" args="" -->emScan2DMatching</em>&nbsp;</td><td>
</td></tr>
</table>
</dd>
</dl>

<p>Definition at line <a class="el" href="_c_action_robot_movement2_d_8h_source.html#l00061">61</a> of file <a class="el" href="_c_action_robot_movement2_d_8h_source.html">CActionRobotMovement2D.h</a>.</p>

</div>
</div>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a7e31dbd8335f1602f181587746504cd5"></a><!-- doxytag: member="mrpt::slam::CActionRobotMovement2D::CActionRobotMovement2D" ref="a7e31dbd8335f1602f181587746504cd5" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">mrpt::slam::CActionRobotMovement2D::CActionRobotMovement2D </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Constructor. </p>

</div>
</div>
<a class="anchor" id="aba12831e0fe69f7fbdaf8e6e1ebd7ae1"></a><!-- doxytag: member="mrpt::slam::CActionRobotMovement2D::CActionRobotMovement2D" ref="aba12831e0fe69f7fbdaf8e6e1ebd7ae1" args="(const CActionRobotMovement2D &amp;o)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">mrpt::slam::CActionRobotMovement2D::CActionRobotMovement2D </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html">CActionRobotMovement2D</a> &amp;&#160;</td>
          <td class="paramname"><em>o</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Copy constructor. </p>

</div>
</div>
<a class="anchor" id="abec4ddfffa1d6e4f9a8bef933dcdfe23"></a><!-- doxytag: member="mrpt::slam::CActionRobotMovement2D::~CActionRobotMovement2D" ref="abec4ddfffa1d6e4f9a8bef933dcdfe23" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">mrpt::slam::CActionRobotMovement2D::~CActionRobotMovement2D </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Destructor. </p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="acf574be876ef34253f6d392b6c476a03"></a><!-- doxytag: member="mrpt::slam::CActionRobotMovement2D::_GetBaseClass" ref="acf574be876ef34253f6d392b6c476a03" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static const <a class="el" href="structmrpt_1_1utils_1_1_t_runtime_class_id.html">mrpt::utils::TRuntimeClassId</a>* mrpt::slam::CActionRobotMovement2D::_GetBaseClass </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [static, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reimplemented from <a class="el" href="classmrpt_1_1slam_1_1_c_action.html#a3847b4a10b6ab4362f0fcbc84b2d39f2">mrpt::slam::CAction</a>.</p>

</div>
</div>
<a class="anchor" id="a9ef7857a0b36059c078e195a0a65ac00"></a><!-- doxytag: member="mrpt::slam::CActionRobotMovement2D::clone" ref="a9ef7857a0b36059c078e195a0a65ac00" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1utils_1_1_c_object.html">CObject</a>* mrpt::utils::CObject::clone </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Cloning interface for smart pointers. </p>

<p>Reimplemented in <a class="el" href="classmrpt_1_1opengl_1_1_c_renderizable.html#acb2597d6d93b406501d9f3530eb56adf">mrpt::opengl::CRenderizable</a>, and <a class="el" href="classmrpt_1_1opengl_1_1_c_renderizable_display_list.html#ac164cb1d2cf682778ce52967cbd56469">mrpt::opengl::CRenderizableDisplayList</a>.</p>

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

</div>
</div>
<a class="anchor" id="a30d63b72cd9936daa3e51b6628742edf"></a><!-- doxytag: member="mrpt::slam::CActionRobotMovement2D::computeFromEncoders" ref="a30d63b72cd9936daa3e51b6628742edf" args="(double K_left, double K_right, double D)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CActionRobotMovement2D::computeFromEncoders </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>K_left</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>K_right</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>D</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>If "hasEncodersInfo"=true, this method updates the pose estimation according to the ticks from both encoders and the passed parameters, which is passed internally to the method "computeFromOdometry" with the last used PDF options (or the defualt ones if not explicitly called by the user). </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">K_left</td><td>The meters / tick ratio for the left encoder. </td></tr>
    <tr><td class="paramname">K_right</td><td>The meters / tick ratio for the right encoder. </td></tr>
    <tr><td class="paramname">D</td><td>The distance between both wheels, in meters. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ae311480bde721a04b002cc7b08597fbf"></a><!-- doxytag: member="mrpt::slam::CActionRobotMovement2D::computeFromOdometry" ref="ae311480bde721a04b002cc7b08597fbf" args="(const CPose2D &amp;odometryIncrement, const TMotionModelOptions &amp;options)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CActionRobotMovement2D::computeFromOdometry </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">CPose2D</a> &amp;&#160;</td>
          <td class="paramname"><em>odometryIncrement</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1slam_1_1_c_action_robot_movement2_d_1_1_t_motion_model_options.html">TMotionModelOptions</a> &amp;&#160;</td>
          <td class="paramname"><em>options</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Computes the PDF of the pose increment from an odometry reading and according to the given motion model (speed and encoder ticks information is not modified). </p>
<p>According to the parameters in the passed struct, it will be called one the private sampling functions (see "see also" next). </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html#a3206d11ad02740472260eb168286b0f9" title="Computes the PDF of the pose increment from an odometry reading, using a Gaussian approximation as th...">computeFromOdometry_modelGaussian</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html#ad28a41b226b3edfa4742f42b53b6008d" title="Computes the PDF of the pose increment from an odometry reading, using the motion model from Thrun&#39;s ...">computeFromOdometry_modelThrun</a> </dd></dl>

<p>Referenced by <a class="el" href="_p_f__implementations_8h_source.html#l00070">mrpt::slam::PF_implementation::PF_SLAM_implementation_gatherActionsCheckBothActObs()</a>.</p>

</div>
</div>
<a class="anchor" id="a3206d11ad02740472260eb168286b0f9"></a><!-- doxytag: member="mrpt::slam::CActionRobotMovement2D::computeFromOdometry_modelGaussian" ref="a3206d11ad02740472260eb168286b0f9" args="(const CPose2D &amp;odometryIncrement, const TMotionModelOptions &amp;o)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CActionRobotMovement2D::computeFromOdometry_modelGaussian </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">CPose2D</a> &amp;&#160;</td>
          <td class="paramname"><em>odometryIncrement</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1slam_1_1_c_action_robot_movement2_d_1_1_t_motion_model_options.html">TMotionModelOptions</a> &amp;&#160;</td>
          <td class="paramname"><em>o</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Computes the PDF of the pose increment from an odometry reading, using a Gaussian approximation as the motion model. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html#ae311480bde721a04b002cc7b08597fbf" title="Computes the PDF of the pose increment from an odometry reading and according to the given motion mod...">computeFromOdometry</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ad28a41b226b3edfa4742f42b53b6008d"></a><!-- doxytag: member="mrpt::slam::CActionRobotMovement2D::computeFromOdometry_modelThrun" ref="ad28a41b226b3edfa4742f42b53b6008d" args="(const CPose2D &amp;odometryIncrement, const TMotionModelOptions &amp;o)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CActionRobotMovement2D::computeFromOdometry_modelThrun </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">CPose2D</a> &amp;&#160;</td>
          <td class="paramname"><em>odometryIncrement</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1slam_1_1_c_action_robot_movement2_d_1_1_t_motion_model_options.html">TMotionModelOptions</a> &amp;&#160;</td>
          <td class="paramname"><em>o</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Computes the PDF of the pose increment from an odometry reading, using the motion model from Thrun's book. </p>
<p>This model is discussed in "Probabilistic Robotics", Thrun, Burgard, and Fox, 2006, pp.136. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html#ae311480bde721a04b002cc7b08597fbf" title="Computes the PDF of the pose increment from an odometry reading and according to the given motion mod...">computeFromOdometry</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ae1236eceed82b840e699fd3828391175"></a><!-- doxytag: member="mrpt::slam::CActionRobotMovement2D::Create" ref="ae1236eceed82b840e699fd3828391175" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="structmrpt_1_1slam_1_1_c_action_robot_movement2_d_ptr.html">CActionRobotMovement2DPtr</a> mrpt::slam::CActionRobotMovement2D::Create </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ac2efc1b3234fa0527b02d42cd911d27f"></a><!-- doxytag: member="mrpt::slam::CActionRobotMovement2D::CreateObject" ref="ac2efc1b3234fa0527b02d42cd911d27f" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="classmrpt_1_1utils_1_1_c_object.html">mrpt::utils::CObject</a>* mrpt::slam::CActionRobotMovement2D::CreateObject </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="aaebfa84dc557574c20cbf69b6fd4282f"></a><!-- doxytag: member="mrpt::slam::CActionRobotMovement2D::drawSingleSample" ref="aaebfa84dc557574c20cbf69b6fd4282f" args="(CPose2D &amp;outSample) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CActionRobotMovement2D::drawSingleSample </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>outSample</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Using this method instead of "poseChange-&gt;drawSingleSample()" may be more efficient in most situations. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_probability_density_function.html#ae8879d10e9d7a6c94211dd0ffffc4c9d" title="Draws a single sample from the distribution.">CPosePDF::drawSingleSample</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a38128e72c998ddd50cf214d085dd9518"></a><!-- doxytag: member="mrpt::slam::CActionRobotMovement2D::drawSingleSample_modelGaussian" ref="a38128e72c998ddd50cf214d085dd9518" args="(CPose2D &amp;outSample) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CActionRobotMovement2D::drawSingleSample_modelGaussian </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>outSample</em></td><td>)</td>
          <td> const<code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The sample generator for the model "computeFromOdometry_modelGaussian", internally called when the user invokes "drawSingleSample". </p>

</div>
</div>
<a class="anchor" id="a381e991eb3c19f8bcbbfb0a7ecc40782"></a><!-- doxytag: member="mrpt::slam::CActionRobotMovement2D::drawSingleSample_modelThrun" ref="a381e991eb3c19f8bcbbfb0a7ecc40782" args="(CPose2D &amp;outSample) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CActionRobotMovement2D::drawSingleSample_modelThrun </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>outSample</em></td><td>)</td>
          <td> const<code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The sample generator for the model "computeFromOdometry_modelThrun", internally called when the user invokes "drawSingleSample". </p>

</div>
</div>
<a class="anchor" id="a7e8d6d2fb451afbde43e9ac7221ddc9b"></a><!-- doxytag: member="mrpt::slam::CActionRobotMovement2D::duplicate" ref="a7e8d6d2fb451afbde43e9ac7221ddc9b" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classmrpt_1_1utils_1_1_c_object.html">mrpt::utils::CObject</a>* mrpt::slam::CActionRobotMovement2D::duplicate </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns a copy of the object, indepently of its class. </p>

<p>Implements <a class="el" href="classmrpt_1_1utils_1_1_c_object.html#aa1070e173c5f7e307b09c53f1fd256e2">mrpt::utils::CObject</a>.</p>

</div>
</div>
<a class="anchor" id="a534695890364f4b916bba07dad311bcf"></a><!-- doxytag: member="mrpt::slam::CActionRobotMovement2D::duplicateGetSmartPtr" ref="a534695890364f4b916bba07dad311bcf" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1utils_1_1_c_object_ptr.html">mrpt::utils::CObjectPtr</a> mrpt::utils::CObject::duplicateGetSmartPtr </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns a copy of the object, indepently of its class, as a smart pointer (the newly created object will exist as long as any copy of this smart pointer). </p>

<p>Definition at line <a class="el" href="_c_object_8h_source.html#l00151">151</a> of file <a class="el" href="_c_object_8h_source.html">CObject.h</a>.</p>

</div>
</div>
<a class="anchor" id="a9b23f283b6c7399c069e9aeea4b272d6"></a><!-- doxytag: member="mrpt::slam::CActionRobotMovement2D::fastDrawSingleSample" ref="a9b23f283b6c7399c069e9aeea4b272d6" args="(CPose2D &amp;outSample) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CActionRobotMovement2D::fastDrawSingleSample </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>outSample</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Faster version than "drawSingleSample", but requires a previous call to "prepareFastDrawSingleSamples". </p>

</div>
</div>
<a class="anchor" id="aff903693343b8e002d765eb635ce93e8"></a><!-- doxytag: member="mrpt::slam::CActionRobotMovement2D::fastDrawSingleSample_modelGaussian" ref="aff903693343b8e002d765eb635ce93e8" args="(CPose2D &amp;outSample) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CActionRobotMovement2D::fastDrawSingleSample_modelGaussian </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>outSample</em></td><td>)</td>
          <td> const<code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Internal use. </p>

</div>
</div>
<a class="anchor" id="ae9198f9196ddfb73fa8191cdaf232254"></a><!-- doxytag: member="mrpt::slam::CActionRobotMovement2D::fastDrawSingleSample_modelThrun" ref="ae9198f9196ddfb73fa8191cdaf232254" args="(CPose2D &amp;outSample) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CActionRobotMovement2D::fastDrawSingleSample_modelThrun </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>outSample</em></td><td>)</td>
          <td> const<code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Internal use. </p>

</div>
</div>
<a class="anchor" id="a8a316e322313ceaa5df8a1124dc0961d"></a><!-- doxytag: member="mrpt::slam::CActionRobotMovement2D::GetRuntimeClass" ref="a8a316e322313ceaa5df8a1124dc0961d" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual const <a class="el" href="structmrpt_1_1utils_1_1_t_runtime_class_id.html">mrpt::utils::TRuntimeClassId</a>* mrpt::slam::CActionRobotMovement2D::GetRuntimeClass </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns information about the class of an object in runtime. </p>

<p>Reimplemented from <a class="el" href="classmrpt_1_1slam_1_1_c_action.html#a690da3b7923e3df85ccb9c68a5a65639">mrpt::slam::CAction</a>.</p>

</div>
</div>
<a class="anchor" id="acfeb9619d5a620c80e8550b9c91bea52"></a><!-- doxytag: member="mrpt::slam::CActionRobotMovement2D::operator=" ref="acfeb9619d5a620c80e8550b9c91bea52" args="(const CActionRobotMovement2D &amp;o)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html">CActionRobotMovement2D</a>&amp; mrpt::slam::CActionRobotMovement2D::operator= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html">CActionRobotMovement2D</a> &amp;&#160;</td>
          <td class="paramname"><em>o</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Copy operator. </p>

</div>
</div>
<a class="anchor" id="a04f7c9e0f1263e248cd04a8e7d40f87d"></a><!-- doxytag: member="mrpt::slam::CActionRobotMovement2D::prepareFastDrawSingleSample_modelGaussian" ref="a04f7c9e0f1263e248cd04a8e7d40f87d" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CActionRobotMovement2D::prepareFastDrawSingleSample_modelGaussian </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Internal use. </p>

</div>
</div>
<a class="anchor" id="afddd953bc5f97afd51c7743ee7d13e4c"></a><!-- doxytag: member="mrpt::slam::CActionRobotMovement2D::prepareFastDrawSingleSample_modelThrun" ref="afddd953bc5f97afd51c7743ee7d13e4c" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CActionRobotMovement2D::prepareFastDrawSingleSample_modelThrun </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Internal use. </p>

</div>
</div>
<a class="anchor" id="af05a0f29e49a4c146e41a32b07c6f826"></a><!-- doxytag: member="mrpt::slam::CActionRobotMovement2D::prepareFastDrawSingleSamples" ref="af05a0f29e49a4c146e41a32b07c6f826" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CActionRobotMovement2D::prepareFastDrawSingleSamples </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Call this before calling a high number of times "fastDrawSingleSample", which is much faster than "drawSingleSample". </p>

</div>
</div>
<a class="anchor" id="a73ba83035a64939cdc3aa1c0dfed23ec"></a><!-- doxytag: member="mrpt::slam::CActionRobotMovement2D::readFromStream" ref="a73ba83035a64939cdc3aa1c0dfed23ec" args="(mrpt::utils::CStream &amp;in, int version)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void mrpt::utils::CSerializable::readFromStream </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1utils_1_1_c_stream.html">mrpt::utils::CStream</a> &amp;&#160;</td>
          <td class="paramname"><em>in</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>version</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [protected, pure virtual, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Introduces a pure virtual method responsible for loading from a <a class="el" href="classmrpt_1_1utils_1_1_c_stream.html" title="This base class is used to provide a unified interface to files,memory buffers,..Please see the deriv...">CStream</a> This can not be used directly be users, instead use "stream &gt;&gt; object;" for reading it from a stream or "stream &gt;&gt; object_ptr;" if the class is unknown apriori. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">in</td><td>The input binary stream where the object data must read from. </td></tr>
    <tr><td class="paramname">version</td><td>The version of the object stored in the stream: use this version number in your code to know how to read the incoming data. </td></tr>
  </table>
  </dd>
</dl>
<dl><dt><b>Exceptions:</b></dt><dd>
  <table class="exception">
    <tr><td class="paramname"><a class="el" href="classstd_1_1exception.html" title="STL class.">std::exception</a></td><td>On any error, see <a class="el" href="classmrpt_1_1utils_1_1_c_stream.html#a1b8cd3d084b5a95a3f65c6eed6e7cc6d" title="Reads a block of bytes from the stream into Buffer On any error, or if ZERO bytes are read...">CStream::ReadBuffer</a> </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_stream.html" title="This base class is used to provide a unified interface to files,memory buffers,..Please see the deriv...">CStream</a> </dd></dl>

<p>Implemented in <a class="el" href="classmrpt_1_1math_1_1_c_matrix_d.html#a0194e57ec48c1dfc6aa00c23d3409143">mrpt::math::CMatrixD</a>, and <a class="el" href="classmrpt_1_1math_1_1_c_matrix.html#a12db95e8c32d48d2d2483936dec516a7">mrpt::math::CMatrix</a>.</p>

</div>
</div>
<a class="anchor" id="a0b6b801e67bca3d8e0d355e7035f8013"></a><!-- doxytag: member="mrpt::slam::CActionRobotMovement2D::writeToStream" ref="a0b6b801e67bca3d8e0d355e7035f8013" args="(mrpt::utils::CStream &amp;out, int *getVersion) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void mrpt::utils::CSerializable::writeToStream </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1utils_1_1_c_stream.html">mrpt::utils::CStream</a> &amp;&#160;</td>
          <td class="paramname"><em>out</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>getVersion</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [protected, pure virtual, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Introduces a pure virtual method responsible for writing to a <a class="el" href="classmrpt_1_1utils_1_1_c_stream.html" title="This base class is used to provide a unified interface to files,memory buffers,..Please see the deriv...">CStream</a>. </p>
<p>This can not be used directly be users, instead use "stream &lt;&lt; object;" for writing it to a stream. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">out</td><td>The output binary stream where object must be dumped. </td></tr>
    <tr><td class="paramname">getVersion</td><td>If NULL, the object must be dumped. If not, only the version of the object dump must be returned in this pointer. This enables the versioning of objects dumping and backward compatibility with previously stored data. </td></tr>
  </table>
  </dd>
</dl>
<dl><dt><b>Exceptions:</b></dt><dd>
  <table class="exception">
    <tr><td class="paramname"><a class="el" href="classstd_1_1exception.html" title="STL class.">std::exception</a></td><td>On any error, see <a class="el" href="classmrpt_1_1utils_1_1_c_stream.html#a276005e7110c9de74ff3277b3f7bf621" title="Writes a block of bytes to the stream from Buffer.">CStream::WriteBuffer</a> </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_stream.html" title="This base class is used to provide a unified interface to files,memory buffers,..Please see the deriv...">CStream</a> </dd></dl>

<p>Implemented in <a class="el" href="classmrpt_1_1math_1_1_c_matrix_d.html#a767e787b52208ab4dd46ba7f5e2fd224">mrpt::math::CMatrixD</a>, and <a class="el" href="classmrpt_1_1math_1_1_c_matrix.html#a059d7eaf80dab9c7435154146d2b7dbf">mrpt::math::CMatrix</a>.</p>

</div>
</div>
<hr/><h2>Friends And Related Function Documentation</h2>
<a class="anchor" id="a6fec28a53e20dfc1c4d046c26f9f7b48"></a><!-- doxytag: member="mrpt::slam::CActionRobotMovement2D::mrpt::utils::CStream" ref="a6fec28a53e20dfc1c4d046c26f9f7b48" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">friend class <a class="el" href="classmrpt_1_1utils_1_1_c_stream.html">mrpt::utils::CStream</a><code> [friend, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reimplemented from <a class="el" href="classmrpt_1_1utils_1_1_c_serializable.html#a6fec28a53e20dfc1c4d046c26f9f7b48">mrpt::utils::CSerializable</a>.</p>

<p>Definition at line <a class="el" href="_c_action_8h_source.html#l00055">55</a> of file <a class="el" href="_c_action_8h_source.html">CAction.h</a>.</p>

</div>
</div>
<hr/><h2>Member Data Documentation</h2>
<a class="anchor" id="a1dda7115c2534ea7cb870f6c904b4f2f"></a><!-- doxytag: member="mrpt::slam::CActionRobotMovement2D::_init_CActionRobotMovement2D" ref="a1dda7115c2534ea7cb870f6c904b4f2f" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structmrpt_1_1utils_1_1_c_l_a_s_s_i_n_i_t.html">mrpt::utils::CLASSINIT</a> <a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html#a1dda7115c2534ea7cb870f6c904b4f2f">mrpt::slam::CActionRobotMovement2D::_init_CActionRobotMovement2D</a><code> [static, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_action_robot_movement2_d_8h_source.html#l00056">56</a> of file <a class="el" href="_c_action_robot_movement2_d_8h_source.html">CActionRobotMovement2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="a73b9cd63508ed3b128c2691c97882aef"></a><!-- doxytag: member="mrpt::slam::CActionRobotMovement2D::classCAction" ref="a73b9cd63508ed3b128c2691c97882aef" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structmrpt_1_1utils_1_1_t_runtime_class_id.html">mrpt::utils::TRuntimeClassId</a> <a class="el" href="classmrpt_1_1slam_1_1_c_action.html#a73b9cd63508ed3b128c2691c97882aef">mrpt::slam::CAction::classCAction</a><code> [static, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_action_8h_source.html#l00055">55</a> of file <a class="el" href="_c_action_8h_source.html">CAction.h</a>.</p>

</div>
</div>
<a class="anchor" id="a27199bb2d2abb2a3c00efeade8fe3ce4"></a><!-- doxytag: member="mrpt::slam::CActionRobotMovement2D::classCActionRobotMovement2D" ref="a27199bb2d2abb2a3c00efeade8fe3ce4" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structmrpt_1_1utils_1_1_t_runtime_class_id.html">mrpt::utils::TRuntimeClassId</a> <a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html#a27199bb2d2abb2a3c00efeade8fe3ce4">mrpt::slam::CActionRobotMovement2D::classCActionRobotMovement2D</a><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_action_robot_movement2_d_8h_source.html#l00056">56</a> of file <a class="el" href="_c_action_robot_movement2_d_8h_source.html">CActionRobotMovement2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="acb51e4dd811d62c2696aee449d0a4715"></a><!-- doxytag: member="mrpt::slam::CActionRobotMovement2D::classCObject" ref="acb51e4dd811d62c2696aee449d0a4715" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structmrpt_1_1utils_1_1_t_runtime_class_id.html">mrpt::utils::TRuntimeClassId</a> <a class="el" href="classmrpt_1_1utils_1_1_c_object.html#acb51e4dd811d62c2696aee449d0a4715">mrpt::utils::CObject::classCObject</a><code> [static, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_object_8h_source.html#l00139">139</a> of file <a class="el" href="_c_object_8h_source.html">CObject.h</a>.</p>

</div>
</div>
<a class="anchor" id="a28ec2a03d277a8469b8ecfc81892afdf"></a><!-- doxytag: member="mrpt::slam::CActionRobotMovement2D::classCSerializable" ref="a28ec2a03d277a8469b8ecfc81892afdf" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structmrpt_1_1utils_1_1_t_runtime_class_id.html">mrpt::utils::TRuntimeClassId</a> <a class="el" href="classmrpt_1_1utils_1_1_c_serializable.html#a28ec2a03d277a8469b8ecfc81892afdf">mrpt::utils::CSerializable::classCSerializable</a><code> [static, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_serializable_8h_source.html#l00056">56</a> of file <a class="el" href="_c_serializable_8h_source.html">CSerializable.h</a>.</p>

</div>
</div>
<a class="anchor" id="ac81f89f391eb7dbf632508682dded6d6"></a><!-- doxytag: member="mrpt::slam::CActionRobotMovement2D::classinfo" ref="ac81f89f391eb7dbf632508682dded6d6" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structmrpt_1_1utils_1_1_t_runtime_class_id.html">mrpt::utils::TRuntimeClassId</a>* <a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html#ac81f89f391eb7dbf632508682dded6d6">mrpt::slam::CActionRobotMovement2D::classinfo</a><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_action_robot_movement2_d_8h_source.html#l00056">56</a> of file <a class="el" href="_c_action_robot_movement2_d_8h_source.html">CActionRobotMovement2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="aaf34db5580aa5fd8447f6766088fa19a"></a><!-- doxytag: member="mrpt::slam::CActionRobotMovement2D::encoderLeftTicks" ref="aaf34db5580aa5fd8447f6766088fa19a" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t <a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html#aaf34db5580aa5fd8447f6766088fa19a">mrpt::slam::CActionRobotMovement2D::encoderLeftTicks</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>For odometry only: the ticks count for each wheel FROM the last reading (positive means FORWARD, for both wheels);. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html#a36126efa474d8a610162a5a2c9708acc" title="If &quot;true&quot; means that &quot;encoderLeftTicks&quot; and &quot;encoderRightTicks&quot; contain valid values.">hasEncodersInfo</a> </dd></dl>

<p>Definition at line <a class="el" href="_c_action_robot_movement2_d_8h_source.html#l00102">102</a> of file <a class="el" href="_c_action_robot_movement2_d_8h_source.html">CActionRobotMovement2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="a2615b2e729d7f5f4f2e6e66fd4de26db"></a><!-- doxytag: member="mrpt::slam::CActionRobotMovement2D::encoderRightTicks" ref="a2615b2e729d7f5f4f2e6e66fd4de26db" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t <a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html#a2615b2e729d7f5f4f2e6e66fd4de26db">mrpt::slam::CActionRobotMovement2D::encoderRightTicks</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_action_robot_movement2_d_8h_source.html#l00102">102</a> of file <a class="el" href="_c_action_robot_movement2_d_8h_source.html">CActionRobotMovement2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="a866e3568f5318af626be763fa20bf10e"></a><!-- doxytag: member="mrpt::slam::CActionRobotMovement2D::estimationMethod" ref="a866e3568f5318af626be763fa20bf10e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html#a2ea0c517210c0b4dd54269463af5debd">TEstimationMethod</a> <a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html#a866e3568f5318af626be763fa20bf10e">mrpt::slam::CActionRobotMovement2D::estimationMethod</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This fields indicates the way this estimation was obtained. </p>

<p>Definition at line <a class="el" href="_c_action_robot_movement2_d_8h_source.html#l00093">93</a> of file <a class="el" href="_c_action_robot_movement2_d_8h_source.html">CActionRobotMovement2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="a36126efa474d8a610162a5a2c9708acc"></a><!-- doxytag: member="mrpt::slam::CActionRobotMovement2D::hasEncodersInfo" ref="a36126efa474d8a610162a5a2c9708acc" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html#a36126efa474d8a610162a5a2c9708acc">mrpt::slam::CActionRobotMovement2D::hasEncodersInfo</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>If "true" means that "encoderLeftTicks" and "encoderRightTicks" contain valid values. </p>

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

</div>
</div>
<a class="anchor" id="a51b72a53b3a6723026705281505c45ae"></a><!-- doxytag: member="mrpt::slam::CActionRobotMovement2D::hasVelocities" ref="a51b72a53b3a6723026705281505c45ae" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html#a51b72a53b3a6723026705281505c45ae">mrpt::slam::CActionRobotMovement2D::hasVelocities</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>If "true" means that "velocityLin" and "velocityAng" contain valid values. </p>

<p>Definition at line <a class="el" href="_c_action_robot_movement2_d_8h_source.html#l00106">106</a> of file <a class="el" href="_c_action_robot_movement2_d_8h_source.html">CActionRobotMovement2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="aa802538fa49a6e64a10df9e5283cdeb0"></a><!-- doxytag: member="mrpt::slam::CActionRobotMovement2D::m_fastDrawGauss_M" ref="aa802538fa49a6e64a10df9e5283cdeb0" 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">CPose2D</a> <a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html#aa802538fa49a6e64a10df9e5283cdeb0">mrpt::slam::CActionRobotMovement2D::m_fastDrawGauss_M</a><code> [mutable, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_action_robot_movement2_d_8h_source.html#l00233">233</a> of file <a class="el" href="_c_action_robot_movement2_d_8h_source.html">CActionRobotMovement2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="a987805d7f75ae92c570b6b740baa435b"></a><!-- doxytag: member="mrpt::slam::CActionRobotMovement2D::m_fastDrawGauss_Z" ref="a987805d7f75ae92c570b6b740baa435b" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="namespacemrpt_1_1math.html#a58d0ee60eee38e990848ccb8b83e8338">CMatrixDouble33</a> <a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html#a987805d7f75ae92c570b6b740baa435b">mrpt::slam::CActionRobotMovement2D::m_fastDrawGauss_Z</a><code> [mutable, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Auxiliary matrix. </p>

<p>Definition at line <a class="el" href="_c_action_robot_movement2_d_8h_source.html#l00232">232</a> of file <a class="el" href="_c_action_robot_movement2_d_8h_source.html">CActionRobotMovement2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="a772ea4a2f27795ea62dc1a22814cc68f"></a><!-- doxytag: member="mrpt::slam::CActionRobotMovement2D::motionModelConfiguration" ref="a772ea4a2f27795ea62dc1a22814cc68f" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct OBS_IMPEXP <a class="el" href="structmrpt_1_1slam_1_1_c_action_robot_movement2_d_1_1_t_motion_model_options.html">mrpt::slam::CActionRobotMovement2D::TMotionModelOptions</a>  <a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html#a772ea4a2f27795ea62dc1a22814cc68f">mrpt::slam::CActionRobotMovement2D::motionModelConfiguration</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a657f5eb086d62c2cd601e5ea2ab11514"></a><!-- doxytag: member="mrpt::slam::CActionRobotMovement2D::poseChange" ref="a657f5eb086d62c2cd601e5ea2ab11514" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structmrpt_1_1poses_1_1_c_pose_p_d_f_ptr.html">CPosePDFPtr</a> <a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html#a657f5eb086d62c2cd601e5ea2ab11514">mrpt::slam::CActionRobotMovement2D::poseChange</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The 2D pose change probabilistic estimation. </p>

<p>Definition at line <a class="el" href="_c_action_robot_movement2_d_8h_source.html#l00085">85</a> of file <a class="el" href="_c_action_robot_movement2_d_8h_source.html">CActionRobotMovement2D.h</a>.</p>

<p>Referenced by <a class="el" href="_p_f__implementations_8h_source.html#l00070">mrpt::slam::PF_implementation::PF_SLAM_implementation_gatherActionsCheckBothActObs()</a>.</p>

</div>
</div>
<a class="anchor" id="ab4f05a72db0653e3c720de473da1e8e9"></a><!-- doxytag: member="mrpt::slam::CActionRobotMovement2D::rawOdometryIncrementReading" ref="ab4f05a72db0653e3c720de473da1e8e9" 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">CPose2D</a> <a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html#ab4f05a72db0653e3c720de473da1e8e9">mrpt::slam::CActionRobotMovement2D::rawOdometryIncrementReading</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This is the raw odometry reading, and only is used when "estimationMethod" is "TEstimationMethod::emOdometry". </p>

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

</div>
</div>
<a class="anchor" id="a9d186d88fdba0217ef490b1bdd11eb17"></a><!-- doxytag: member="mrpt::slam::CActionRobotMovement2D::timestamp" ref="a9d186d88fdba0217ef490b1bdd11eb17" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__time__date.html#ga42674286d8d56afea013b6329bb7327a">mrpt::system::TTimeStamp</a> <a class="el" href="classmrpt_1_1slam_1_1_c_action.html#a9d186d88fdba0217ef490b1bdd11eb17">mrpt::slam::CAction::timestamp</a><code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The associated time-stamp. </p>
<p>This was added at 2-Dec-2007, new serialization versions have been added to derived classes to manage this time-stamp. Prior versions will be read as having a INVALID_TIMESTAMP value. </p>

<p>Definition at line <a class="el" href="_c_action_8h_source.html#l00069">69</a> of file <a class="el" href="_c_action_8h_source.html">CAction.h</a>.</p>

</div>
</div>
<a class="anchor" id="ab719534719b2c0e6c4e44d7c9850d299"></a><!-- doxytag: member="mrpt::slam::CActionRobotMovement2D::velocityAng" ref="ab719534719b2c0e6c4e44d7c9850d299" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float <a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html#ab719534719b2c0e6c4e44d7c9850d299">mrpt::slam::CActionRobotMovement2D::velocityAng</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_action_robot_movement2_d_8h_source.html#l00110">110</a> of file <a class="el" href="_c_action_robot_movement2_d_8h_source.html">CActionRobotMovement2D.h</a>.</p>

</div>
</div>
<a class="anchor" id="a937d53f74c8e9c43ce7695d0a5c7968e"></a><!-- doxytag: member="mrpt::slam::CActionRobotMovement2D::velocityLin" ref="a937d53f74c8e9c43ce7695d0a5c7968e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float <a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html#a937d53f74c8e9c43ce7695d0a5c7968e">mrpt::slam::CActionRobotMovement2D::velocityLin</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The velocity of the robot, linear in meters/sec and angular in rad/sec. </p>

<p>Definition at line <a class="el" href="_c_action_robot_movement2_d_8h_source.html#l00110">110</a> of file <a class="el" href="_c_action_robot_movement2_d_8h_source.html">CActionRobotMovement2D.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>