Sophie

Sophie

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

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::reactivenav::CPRRTNavigator 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_1reactivenav.html">reactivenav</a>      </li>
      <li class="navelem"><a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator.html">CPRRTNavigator</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</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="#pri-methods">Private Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a>  </div>
  <div class="headertitle">
<div class="title">mrpt::reactivenav::CPRRTNavigator Class Reference<div class="ingroups"><a class="el" href="group__mrpt__reactivenav__grp.html">[mrpt-reactivenav]</a></div></div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="mrpt::reactivenav::CPRRTNavigator" --><hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>This class is a multi-threaded mobile robot navigator, implementing an (anytime) PTG-based Rapidly-exploring Random Tree (PRRT) search algorithm. </p>
<p><b>Usage:</b><br/>
</p>
<ul>
<li>Create an instance of the <a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator.html" title="This class is a multi-threaded mobile robot navigator, implementing an (anytime) PTG-based Rapidly-ex...">CPRRTNavigator</a> class (an object on the heap, i.e. no 'new', is preferred, but just for the convenience of the user).</li>
<li>Set all the parameters in <a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator.html#aae065073b31838516e694308f926acfc" title="Change here all the parameters of the navigator.">CPRRTNavigator::params</a></li>
<li>Call <a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator.html#a985d355f265e58cb390e522201c3601a" title="Initialize the navigator using the parameters in &quot;params&quot;; read the usage instructions in CPRRTNaviga...">CPRRTNavigator::initialize</a>. If all the params are OK, true is returned and you can go on.</li>
<li>Start a navigation by calling <a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator.html#ad60aab288648289224f948e828adeec3" title="Starts a navigation to a 2D pose (including a desired heading at the target).">CPRRTNavigator::navigate</a>.</li>
<li>From your application, you must update all the sensory data (from the real robot or a simulator) on a timely-fashion. The navigator will stop the robot if the last sensory data is too old.</li>
</ul>
<p>Note that all the public methods are thread-safe.</p>
<p><b>About the algorithm:</b><br/>
</p>
<p><b>Changes history</b></p>
<ul>
<li>05/JUL/2009: Creation (JLBC). This is an evolution from leassons learnt from the pure reactive navigator based on PTGs. </li>
</ul>
</div>
<p><code>#include &lt;<a class="el" href="_c_p_r_r_t_navigator_8h_source.html">mrpt/reactivenav/CPRRTNavigator.h</a>&gt;</code></p>

<p><a href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator-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">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator_1_1_t_options.html">TOptions</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator_1_1_t_path_data.html">TPathData</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Each data point in m_planned_path.  <a href="structmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator_1_1_t_path_data.html#details">More...</a><br/></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_1reactivenav_1_1_c_p_r_r_t_navigator.html#aade1c1b4122cac9fbc9366df5e6f3864">CPRRTNavigator</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor.  <a href="#aade1c1b4122cac9fbc9366df5e6f3864"></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_1reactivenav_1_1_c_p_r_r_t_navigator.html#af70f3e9d159bc5c495127cead8664d6e">~CPRRTNavigator</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor.  <a href="#af70f3e9d159bc5c495127cead8664d6e"></a><br/></td></tr>
<tr><td colspan="2"><div class="groupHeader">Navigation control methods</div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator.html#a985d355f265e58cb390e522201c3601a">initialize</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize the navigator using the parameters in "params"; read the usage instructions in <a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator.html" title="This class is a multi-threaded mobile robot navigator, implementing an (anytime) PTG-based Rapidly-ex...">CPRRTNavigator</a>.  <a href="#a985d355f265e58cb390e522201c3601a"></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_1reactivenav_1_1_c_p_r_r_t_navigator.html#ad60aab288648289224f948e828adeec3">navigate</a> (const <a class="el" href="structmrpt_1_1math_1_1_t_pose2_d.html">mrpt::math::TPose2D</a> &amp;target_pose)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Starts a navigation to a 2D pose (including a desired heading at the target).  <a href="#ad60aab288648289224f948e828adeec3"></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_1reactivenav_1_1_c_p_r_r_t_navigator.html#aec34cfc98c0b751d23f59a467f9ff687">navigate</a> (const <a class="el" href="structmrpt_1_1math_1_1_t_point2_d.html">mrpt::math::TPoint2D</a> &amp;target_point)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Starts a navigation to a given 2D point (any heading at the target).  <a href="#aec34cfc98c0b751d23f59a467f9ff687"></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_1reactivenav_1_1_c_p_r_r_t_navigator.html#a5898c40dc023b5fe0791ba23ffb7c5da">cancel</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Cancel current navegacion.  <a href="#a5898c40dc023b5fe0791ba23ffb7c5da"></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_1reactivenav_1_1_c_p_r_r_t_navigator.html#a94634bd17741d8339c52cb51d8773777">resume</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Continues with suspended navigation.  <a href="#a94634bd17741d8339c52cb51d8773777"></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_1reactivenav_1_1_c_p_r_r_t_navigator.html#a00b2663fb35dea813e765a28fc58582d">suspend</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Suspend current navegation.  <a href="#a00b2663fb35dea813e765a28fc58582d"></a><br/></td></tr>
<tr><td colspan="2"><div class="groupHeader">Debug and logging</div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator.html#adbb72d2bcfa618f0352e0d1a2d01cd8b">setPathToFollow</a> (const <a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator.html#ac4759f9afdeaf6613fb5fec336938374">TPlannedPath</a> &amp;path)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Manually sets the short-time path to be followed by the robot (use 'navigate' instead, this method is for debugging mainly)  <a href="#adbb72d2bcfa618f0352e0d1a2d01cd8b"></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_1reactivenav_1_1_c_p_r_r_t_navigator.html#a0e546cc695c8245400f4cbf6f7c108fa">getCurrentPlannedPath</a> (<a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator.html#ac4759f9afdeaf6613fb5fec336938374">TPlannedPath</a> &amp;path) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the current planned path the robot is following.  <a href="#a0e546cc695c8245400f4cbf6f7c108fa"></a><br/></td></tr>
<tr><td colspan="2"><div class="groupHeader">Sensory data methods: call them to update the navigator knowledge on the outside world.</div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator.html#a9c0f6ae558ef1478de6a42ac8c74ed08">processNewLocalization</a> (const <a class="el" href="structmrpt_1_1math_1_1_t_pose2_d.html">TPose2D</a> &amp;new_robot_pose, const <a class="el" href="namespacemrpt_1_1math.html#a58d0ee60eee38e990848ccb8b83e8338">CMatrixDouble33</a> &amp;new_robot_cov, <a class="el" href="group__time__date.html#ga42674286d8d56afea013b6329bb7327a">TTimeStamp</a> timestamp)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Updates the navigator with a low or high-rate estimate from a localization (or SLAM) algorithm running somewhere else.  <a href="#a9c0f6ae558ef1478de6a42ac8c74ed08"></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_1reactivenav_1_1_c_p_r_r_t_navigator.html#a329ba8824f9368937469a5f41849c20f">processNewOdometryInfo</a> (const <a class="el" href="structmrpt_1_1math_1_1_t_pose2_d.html">TPose2D</a> &amp;newOdoPose, <a class="el" href="group__time__date.html#ga42674286d8d56afea013b6329bb7327a">TTimeStamp</a> timestamp, bool hasVelocities=false, float v=0, float w=0)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Updates the navigator with high-rate odometry from the mobile base.  <a href="#a329ba8824f9368937469a5f41849c20f"></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_1reactivenav_1_1_c_p_r_r_t_navigator.html#a02d3f44989950c03b396f03ca1afc095">processNewObstaclesData</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html">mrpt::slam::CPointsMap</a> *obstacles, <a class="el" href="group__time__date.html#ga42674286d8d56afea013b6329bb7327a">TTimeStamp</a> timestamp)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Must be called in a timely fashion to let the navigator know about the obstacles in the environment.  <a href="#a02d3f44989950c03b396f03ca1afc095"></a><br/></td></tr>
<tr><td colspan="2"><div class="groupHeader">Virtual methods to be implemented by the user.</div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator.html#acb204e1909939d81c4e0b2125fab3a04">onMotionCommand</a> (float v, float w)=0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the most important method the user must provide: to send an instantaneous velocity command to the robot.  <a href="#acb204e1909939d81c4e0b2125fab3a04"></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_1reactivenav_1_1_c_p_r_r_t_navigator.html#aa582e40ef55ad4a83687f380b1ebb28e">onNavigationStart</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Re-implement this method if you want to know when a new navigation has started.  <a href="#aa582e40ef55ad4a83687f380b1ebb28e"></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_1reactivenav_1_1_c_p_r_r_t_navigator.html#a918557efcb18f959d2f5f2fe81587f63">onNavigationEnd</a> (bool targetReachedOK)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Re-implement this method if you want to know when and why a navigation has ended.  <a href="#a918557efcb18f959d2f5f2fe81587f63"></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_1reactivenav_1_1_c_p_r_r_t_navigator.html#ab4a3c677d4f39f7579b21be27fc503b7">onApproachingTarget</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Re-implement this method if you want to know when the robot is approaching the target: this event is raised before onNavigationEnd, when the robot is closer than a certain distance to the target.  <a href="#ab4a3c677d4f39f7579b21be27fc503b7"></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="classmrpt_1_1poses_1_1_c_robot2_d_pose_estimator.html">mrpt::poses::CRobot2DPoseEstimator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator.html#af247a47a88dab4cc96b1cab2ed171f0b">m_robotStateFilter</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Object maintained by the robot-tracking thread (All methods are thread-safe).  <a href="#af247a47a88dab4cc96b1cab2ed171f0b"></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 double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator.html#ad4ea80185f3a227c729cf83da3f6489b">INVALID_HEADING</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Used to refer to undefined or "never mind" headings values.  <a href="#ad4ea80185f3a227c729cf83da3f6489b"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pri-methods"></a>
Private 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_1reactivenav_1_1_c_p_r_r_t_navigator.html#aef88bd0e6a52b03f0e55dd384fa2d5c6">thread_planner</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Thread function.  <a href="#aef88bd0e6a52b03f0e55dd384fa2d5c6"></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_1reactivenav_1_1_c_p_r_r_t_navigator.html#a9ad0ca5a36f0d2e0b006ea2781f1a4b1">thread_test_collision</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Thread function.  <a href="#a9ad0ca5a36f0d2e0b006ea2781f1a4b1"></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_1reactivenav_1_1_c_p_r_r_t_navigator.html#a6a092b8cbd83ba4eb835db2f16cd9a0d">thread_path_tracking</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Thread function.  <a href="#a6a092b8cbd83ba4eb835db2f16cd9a0d"></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="structmrpt_1_1system_1_1_t_thread_handle.html">TThreadHandle</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator.html#a9f6dc216a23ce62bb3447218a7ad10f9">m_thr_planner</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Thread handle.  <a href="#a9f6dc216a23ce62bb3447218a7ad10f9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmrpt_1_1system_1_1_t_thread_handle.html">TThreadHandle</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator.html#a65e8aab888ceadf7326e5c146e3bdc36">m_thr_testcol</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Thread handle.  <a href="#a65e8aab888ceadf7326e5c146e3bdc36"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmrpt_1_1system_1_1_t_thread_handle.html">TThreadHandle</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator.html#af8274ad039e262eecefbb20810af7e79">m_thr_pathtrack</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Thread handle.  <a href="#af8274ad039e262eecefbb20810af7e79"></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_1reactivenav_1_1_c_p_r_r_t_navigator.html#ac0ce69545de3e651b050385a3da0f354">m_initialized</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The object is ready to navigate. Users must call "initialize" first.  <a href="#ac0ce69545de3e651b050385a3da0f354"></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_1reactivenav_1_1_c_p_r_r_t_navigator.html#a10dbf8b8724bef6837022469bb67c59d">m_closingThreads</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">set to true at destructor.  <a href="#a10dbf8b8724bef6837022469bb67c59d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmrpt_1_1math_1_1_t_pose2_d.html">TPose2D</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator.html#a31a8b2b3f951a79251283b7b78a7801c">m_target_pose</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Heading may be INVALID_HEADING to indicate "don't mind".  <a href="#a31a8b2b3f951a79251283b7b78a7801c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__time__date.html#ga42674286d8d56afea013b6329bb7327a">TTimeStamp</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator.html#a54e46b1065d6effc0c63b2a33b3e644c">m_target_pose_time</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1synch_1_1_c_critical_section.html">CCriticalSection</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator.html#a5819dc1781d4cf3ce6db0db78277a0a5">m_target_pose_cs</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator.html#a2d6ba3bda62366e68c21e5f5071956a3">m_last_obstacles_x</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator.html#a375e0b1fa177426b6175ff4ead2f9c0f">m_last_obstacles_y</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__time__date.html#ga42674286d8d56afea013b6329bb7327a">TTimeStamp</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator.html#a8c73e87eca9abdc37f2755de2abcc02d">m_last_obstacles_time</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1synch_1_1_c_critical_section.html">CCriticalSection</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator.html#acac78122cbb624fd0d815dc289061636">m_last_obstacles_cs</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1synch_1_1_c_critical_section.html">CCriticalSection</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator.html#aa91bf8d6a540c2eca3d7d61e7b9c3845">m_planned_path_cs</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__time__date.html#ga42674286d8d56afea013b6329bb7327a">TTimeStamp</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator.html#a8c5ba43a18d2ab0d31ec68d26b593984">m_planned_path_time</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The last modification time. INVALID_TIMESTAMP means there is no path.  <a href="#a8c5ba43a18d2ab0d31ec68d26b593984"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator.html#ac4759f9afdeaf6613fb5fec336938374">TPlannedPath</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator.html#a2cb1e3a1f06fcc3b06b7f2bffca6112d">m_planned_path</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacemrpt_1_1reactivenav.html#ac7430721e888f0c857d2e681566adf15">TListPTGs</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator.html#a2784ee37f3ad7f549197b5a282e3ef3b">m_PTGs</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The list of PTGs used by the anytime planner to explore the free-space.  <a href="#a2784ee37f3ad7f549197b5a282e3ef3b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1synch_1_1_c_critical_section.html">CCriticalSection</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator.html#ac7cc5be2c9826aa0d262b571e346ae0c">m_PTGs_cs</a></td></tr>
<tr><td colspan="2"><h2><a name="member-group"></a>
Navigator data structures</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classstd_1_1list.html">std::list</a>&lt; <a class="el" href="structmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator_1_1_t_path_data.html">TPathData</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator.html#ac4759f9afdeaf6613fb5fec336938374">TPlannedPath</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">An ordered list of path poses.  <a href="#ac4759f9afdeaf6613fb5fec336938374"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator_1_1_t_options.html">TOptions</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator.html#aae065073b31838516e694308f926acfc">params</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Change here all the parameters of the navigator.  <a href="#aae065073b31838516e694308f926acfc"></a><br/></td></tr>
</table>
<hr/><h2>Member Typedef Documentation</h2>
<a class="anchor" id="ac4759f9afdeaf6613fb5fec336938374"></a><!-- doxytag: member="mrpt::reactivenav::CPRRTNavigator::TPlannedPath" ref="ac4759f9afdeaf6613fb5fec336938374" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="classstd_1_1list.html">std::list</a>&lt;<a class="el" href="structmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator_1_1_t_path_data.html">TPathData</a>&gt; <a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator.html#ac4759f9afdeaf6613fb5fec336938374">mrpt::reactivenav::CPRRTNavigator::TPlannedPath</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>An ordered list of path poses. </p>

<p>Definition at line <a class="el" href="_c_p_r_r_t_navigator_8h_source.html#l00132">132</a> of file <a class="el" href="_c_p_r_r_t_navigator_8h_source.html">CPRRTNavigator.h</a>.</p>

</div>
</div>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="aade1c1b4122cac9fbc9366df5e6f3864"></a><!-- doxytag: member="mrpt::reactivenav::CPRRTNavigator::CPRRTNavigator" ref="aade1c1b4122cac9fbc9366df5e6f3864" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">mrpt::reactivenav::CPRRTNavigator::CPRRTNavigator </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="af70f3e9d159bc5c495127cead8664d6e"></a><!-- doxytag: member="mrpt::reactivenav::CPRRTNavigator::~CPRRTNavigator" ref="af70f3e9d159bc5c495127cead8664d6e" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual mrpt::reactivenav::CPRRTNavigator::~CPRRTNavigator </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="a5898c40dc023b5fe0791ba23ffb7c5da"></a><!-- doxytag: member="mrpt::reactivenav::CPRRTNavigator::cancel" ref="a5898c40dc023b5fe0791ba23ffb7c5da" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::reactivenav::CPRRTNavigator::cancel </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Cancel current navegacion. </p>
<dl class="note"><dt><b>Note:</b></dt><dd><a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator.html#a985d355f265e58cb390e522201c3601a" title="Initialize the navigator using the parameters in &quot;params&quot;; read the usage instructions in CPRRTNaviga...">CPRRTNavigator::initialize</a> must be called first. </dd></dl>

</div>
</div>
<a class="anchor" id="a0e546cc695c8245400f4cbf6f7c108fa"></a><!-- doxytag: member="mrpt::reactivenav::CPRRTNavigator::getCurrentPlannedPath" ref="a0e546cc695c8245400f4cbf6f7c108fa" args="(TPlannedPath &amp;path) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::reactivenav::CPRRTNavigator::getCurrentPlannedPath </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator.html#ac4759f9afdeaf6613fb5fec336938374">TPlannedPath</a> &amp;&#160;</td>
          <td class="paramname"><em>path</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the current planned path the robot is following. </p>

</div>
</div>
<a class="anchor" id="a985d355f265e58cb390e522201c3601a"></a><!-- doxytag: member="mrpt::reactivenav::CPRRTNavigator::initialize" ref="a985d355f265e58cb390e522201c3601a" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::reactivenav::CPRRTNavigator::initialize </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Initialize the navigator using the parameters in "params"; read the usage instructions in <a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator.html" title="This class is a multi-threaded mobile robot navigator, implementing an (anytime) PTG-based Rapidly-ex...">CPRRTNavigator</a>. </p>
<p>This method should be called only once at the beginning of the robot operation. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on sucess, false on any error preparing the navigator (and no navigation command will be processed until that's fixed). </dd></dl>

</div>
</div>
<a class="anchor" id="ad60aab288648289224f948e828adeec3"></a><!-- doxytag: member="mrpt::reactivenav::CPRRTNavigator::navigate" ref="ad60aab288648289224f948e828adeec3" args="(const mrpt::math::TPose2D &amp;target_pose)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::reactivenav::CPRRTNavigator::navigate </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1math_1_1_t_pose2_d.html">mrpt::math::TPose2D</a> &amp;&#160;</td>
          <td class="paramname"><em>target_pose</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Starts a navigation to a 2D pose (including a desired heading at the target). </p>
<dl class="note"><dt><b>Note:</b></dt><dd><a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator.html#a985d355f265e58cb390e522201c3601a" title="Initialize the navigator using the parameters in &quot;params&quot;; read the usage instructions in CPRRTNaviga...">CPRRTNavigator::initialize</a> must be called first. </dd></dl>

</div>
</div>
<a class="anchor" id="aec34cfc98c0b751d23f59a467f9ff687"></a><!-- doxytag: member="mrpt::reactivenav::CPRRTNavigator::navigate" ref="aec34cfc98c0b751d23f59a467f9ff687" args="(const mrpt::math::TPoint2D &amp;target_point)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::reactivenav::CPRRTNavigator::navigate </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1math_1_1_t_point2_d.html">mrpt::math::TPoint2D</a> &amp;&#160;</td>
          <td class="paramname"><em>target_point</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Starts a navigation to a given 2D point (any heading at the target). </p>
<dl class="note"><dt><b>Note:</b></dt><dd><a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator.html#a985d355f265e58cb390e522201c3601a" title="Initialize the navigator using the parameters in &quot;params&quot;; read the usage instructions in CPRRTNaviga...">CPRRTNavigator::initialize</a> must be called first. </dd></dl>

</div>
</div>
<a class="anchor" id="ab4a3c677d4f39f7579b21be27fc503b7"></a><!-- doxytag: member="mrpt::reactivenav::CPRRTNavigator::onApproachingTarget" ref="ab4a3c677d4f39f7579b21be27fc503b7" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void mrpt::reactivenav::CPRRTNavigator::onApproachingTarget </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Re-implement this method if you want to know when the robot is approaching the target: this event is raised before onNavigationEnd, when the robot is closer than a certain distance to the target. </p>

<p>Definition at line <a class="el" href="_c_p_r_r_t_navigator_8h_source.html#l00244">244</a> of file <a class="el" href="_c_p_r_r_t_navigator_8h_source.html">CPRRTNavigator.h</a>.</p>

</div>
</div>
<a class="anchor" id="acb204e1909939d81c4e0b2125fab3a04"></a><!-- doxytag: member="mrpt::reactivenav::CPRRTNavigator::onMotionCommand" ref="acb204e1909939d81c4e0b2125fab3a04" args="(float v, float w)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool mrpt::reactivenav::CPRRTNavigator::onMotionCommand </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>v</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>w</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This is the most important method the user must provide: to send an instantaneous velocity command to the robot. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">v</td><td>Desired linear speed, in meters/second. </td></tr>
    <tr><td class="paramname">w</td><td>Desired angular speed, in rads/second. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>false on any error. In that case, the navigator will immediately stop the navigation and announce the error. </dd></dl>

</div>
</div>
<a class="anchor" id="a918557efcb18f959d2f5f2fe81587f63"></a><!-- doxytag: member="mrpt::reactivenav::CPRRTNavigator::onNavigationEnd" ref="a918557efcb18f959d2f5f2fe81587f63" args="(bool targetReachedOK)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void mrpt::reactivenav::CPRRTNavigator::onNavigationEnd </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>targetReachedOK</em></td><td>)</td>
          <td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Re-implement this method if you want to know when and why a navigation has ended. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">targetReachedOK</td><td>Will be false if the navigation failed. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="_c_p_r_r_t_navigator_8h_source.html#l00239">239</a> of file <a class="el" href="_c_p_r_r_t_navigator_8h_source.html">CPRRTNavigator.h</a>.</p>

</div>
</div>
<a class="anchor" id="aa582e40ef55ad4a83687f380b1ebb28e"></a><!-- doxytag: member="mrpt::reactivenav::CPRRTNavigator::onNavigationStart" ref="aa582e40ef55ad4a83687f380b1ebb28e" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void mrpt::reactivenav::CPRRTNavigator::onNavigationStart </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Re-implement this method if you want to know when a new navigation has started. </p>

<p>Definition at line <a class="el" href="_c_p_r_r_t_navigator_8h_source.html#l00234">234</a> of file <a class="el" href="_c_p_r_r_t_navigator_8h_source.html">CPRRTNavigator.h</a>.</p>

</div>
</div>
<a class="anchor" id="a9c0f6ae558ef1478de6a42ac8c74ed08"></a><!-- doxytag: member="mrpt::reactivenav::CPRRTNavigator::processNewLocalization" ref="a9c0f6ae558ef1478de6a42ac8c74ed08" args="(const TPose2D &amp;new_robot_pose, const CMatrixDouble33 &amp;new_robot_cov, TTimeStamp timestamp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::reactivenav::CPRRTNavigator::processNewLocalization </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1math_1_1_t_pose2_d.html">TPose2D</a> &amp;&#160;</td>
          <td class="paramname"><em>new_robot_pose</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="namespacemrpt_1_1math.html#a58d0ee60eee38e990848ccb8b83e8338">CMatrixDouble33</a> &amp;&#160;</td>
          <td class="paramname"><em>new_robot_cov</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__time__date.html#ga42674286d8d56afea013b6329bb7327a">TTimeStamp</a>&#160;</td>
          <td class="paramname"><em>timestamp</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Updates the navigator with a low or high-rate estimate from a localization (or SLAM) algorithm running somewhere else. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">new_robot_pose</td><td>The (global) coordinates of the mean robot pose as estimated by some external module. </td></tr>
    <tr><td class="paramname">new_robot_cov</td><td>The 3x3 covariance matrix of that estimate. </td></tr>
    <tr><td class="paramname">timestamp</td><td>The associated timestamp of the data. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a02d3f44989950c03b396f03ca1afc095"></a><!-- doxytag: member="mrpt::reactivenav::CPRRTNavigator::processNewObstaclesData" ref="a02d3f44989950c03b396f03ca1afc095" args="(const mrpt::slam::CPointsMap *obstacles, TTimeStamp timestamp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::reactivenav::CPRRTNavigator::processNewObstaclesData </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html">mrpt::slam::CPointsMap</a> *&#160;</td>
          <td class="paramname"><em>obstacles</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__time__date.html#ga42674286d8d56afea013b6329bb7327a">TTimeStamp</a>&#160;</td>
          <td class="paramname"><em>timestamp</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Must be called in a timely fashion to let the navigator know about the obstacles in the environment. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">obstacles</td><td></td></tr>
    <tr><td class="paramname">timestamp</td><td>The associated timestamp of the sensed points. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a329ba8824f9368937469a5f41849c20f"></a><!-- doxytag: member="mrpt::reactivenav::CPRRTNavigator::processNewOdometryInfo" ref="a329ba8824f9368937469a5f41849c20f" args="(const TPose2D &amp;newOdoPose, TTimeStamp timestamp, bool hasVelocities=false, float v=0, float w=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::reactivenav::CPRRTNavigator::processNewOdometryInfo </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1math_1_1_t_pose2_d.html">TPose2D</a> &amp;&#160;</td>
          <td class="paramname"><em>newOdoPose</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__time__date.html#ga42674286d8d56afea013b6329bb7327a">TTimeStamp</a>&#160;</td>
          <td class="paramname"><em>timestamp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>hasVelocities</em> = <code>false</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>v</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>w</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Updates the navigator with high-rate odometry from the mobile base. </p>
<p>The odometry poses are dealed internally as increments only, so there is no problem is arbitrary mismatches between localization (from a particle filter or SLAM) and the odometry. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">newOdoPose</td><td>The global, cummulative odometry as computed by the robot. </td></tr>
    <tr><td class="paramname">timestamp</td><td>The associated timestamp of the measurement. </td></tr>
    <tr><td class="paramname">hasVelocities</td><td>If false, the next arguments are ignored. </td></tr>
    <tr><td class="paramname">v</td><td>Measured linear speed, in m/s. </td></tr>
    <tr><td class="paramname">w</td><td>Measured angular speed, in rad/s. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a94634bd17741d8339c52cb51d8773777"></a><!-- doxytag: member="mrpt::reactivenav::CPRRTNavigator::resume" ref="a94634bd17741d8339c52cb51d8773777" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::reactivenav::CPRRTNavigator::resume </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Continues with suspended navigation. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator.html#a00b2663fb35dea813e765a28fc58582d" title="Suspend current navegation.">suspend</a> </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd><a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator.html#a985d355f265e58cb390e522201c3601a" title="Initialize the navigator using the parameters in &quot;params&quot;; read the usage instructions in CPRRTNaviga...">CPRRTNavigator::initialize</a> must be called first. </dd></dl>

</div>
</div>
<a class="anchor" id="adbb72d2bcfa618f0352e0d1a2d01cd8b"></a><!-- doxytag: member="mrpt::reactivenav::CPRRTNavigator::setPathToFollow" ref="adbb72d2bcfa618f0352e0d1a2d01cd8b" args="(const TPlannedPath &amp;path)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::reactivenav::CPRRTNavigator::setPathToFollow </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator.html#ac4759f9afdeaf6613fb5fec336938374">TPlannedPath</a> &amp;&#160;</td>
          <td class="paramname"><em>path</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Manually sets the short-time path to be followed by the robot (use 'navigate' instead, this method is for debugging mainly) </p>

</div>
</div>
<a class="anchor" id="a00b2663fb35dea813e765a28fc58582d"></a><!-- doxytag: member="mrpt::reactivenav::CPRRTNavigator::suspend" ref="a00b2663fb35dea813e765a28fc58582d" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::reactivenav::CPRRTNavigator::suspend </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Suspend current navegation. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator.html#a94634bd17741d8339c52cb51d8773777" title="Continues with suspended navigation.">resume</a> </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd><a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator.html#a985d355f265e58cb390e522201c3601a" title="Initialize the navigator using the parameters in &quot;params&quot;; read the usage instructions in CPRRTNaviga...">CPRRTNavigator::initialize</a> must be called first. </dd></dl>

</div>
</div>
<a class="anchor" id="a6a092b8cbd83ba4eb835db2f16cd9a0d"></a><!-- doxytag: member="mrpt::reactivenav::CPRRTNavigator::thread_path_tracking" ref="a6a092b8cbd83ba4eb835db2f16cd9a0d" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::reactivenav::CPRRTNavigator::thread_path_tracking </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Thread function. </p>

</div>
</div>
<a class="anchor" id="aef88bd0e6a52b03f0e55dd384fa2d5c6"></a><!-- doxytag: member="mrpt::reactivenav::CPRRTNavigator::thread_planner" ref="aef88bd0e6a52b03f0e55dd384fa2d5c6" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::reactivenav::CPRRTNavigator::thread_planner </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Thread function. </p>

</div>
</div>
<a class="anchor" id="a9ad0ca5a36f0d2e0b006ea2781f1a4b1"></a><!-- doxytag: member="mrpt::reactivenav::CPRRTNavigator::thread_test_collision" ref="a9ad0ca5a36f0d2e0b006ea2781f1a4b1" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::reactivenav::CPRRTNavigator::thread_test_collision </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Thread function. </p>

</div>
</div>
<hr/><h2>Member Data Documentation</h2>
<a class="anchor" id="ad4ea80185f3a227c729cf83da3f6489b"></a><!-- doxytag: member="mrpt::reactivenav::CPRRTNavigator::INVALID_HEADING" ref="ad4ea80185f3a227c729cf83da3f6489b" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const double <a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator.html#ad4ea80185f3a227c729cf83da3f6489b">mrpt::reactivenav::CPRRTNavigator::INVALID_HEADING</a><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Used to refer to undefined or "never mind" headings values. </p>

<p>Definition at line <a class="el" href="_c_p_r_r_t_navigator_8h_source.html#l00248">248</a> of file <a class="el" href="_c_p_r_r_t_navigator_8h_source.html">CPRRTNavigator.h</a>.</p>

</div>
</div>
<a class="anchor" id="a10dbf8b8724bef6837022469bb67c59d"></a><!-- doxytag: member="mrpt::reactivenav::CPRRTNavigator::m_closingThreads" ref="a10dbf8b8724bef6837022469bb67c59d" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator.html#a10dbf8b8724bef6837022469bb67c59d">mrpt::reactivenav::CPRRTNavigator::m_closingThreads</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>set to true at destructor. </p>

<p>Definition at line <a class="el" href="_c_p_r_r_t_navigator_8h_source.html#l00265">265</a> of file <a class="el" href="_c_p_r_r_t_navigator_8h_source.html">CPRRTNavigator.h</a>.</p>

</div>
</div>
<a class="anchor" id="ac0ce69545de3e651b050385a3da0f354"></a><!-- doxytag: member="mrpt::reactivenav::CPRRTNavigator::m_initialized" ref="ac0ce69545de3e651b050385a3da0f354" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator.html#ac0ce69545de3e651b050385a3da0f354">mrpt::reactivenav::CPRRTNavigator::m_initialized</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The object is ready to navigate. Users must call "initialize" first. </p>

<p>Definition at line <a class="el" href="_c_p_r_r_t_navigator_8h_source.html#l00264">264</a> of file <a class="el" href="_c_p_r_r_t_navigator_8h_source.html">CPRRTNavigator.h</a>.</p>

</div>
</div>
<a class="anchor" id="acac78122cbb624fd0d815dc289061636"></a><!-- doxytag: member="mrpt::reactivenav::CPRRTNavigator::m_last_obstacles_cs" ref="acac78122cbb624fd0d815dc289061636" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1synch_1_1_c_critical_section.html">CCriticalSection</a> <a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator.html#acac78122cbb624fd0d815dc289061636">mrpt::reactivenav::CPRRTNavigator::m_last_obstacles_cs</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_p_r_r_t_navigator_8h_source.html#l00277">277</a> of file <a class="el" href="_c_p_r_r_t_navigator_8h_source.html">CPRRTNavigator.h</a>.</p>

</div>
</div>
<a class="anchor" id="a8c73e87eca9abdc37f2755de2abcc02d"></a><!-- doxytag: member="mrpt::reactivenav::CPRRTNavigator::m_last_obstacles_time" ref="a8c73e87eca9abdc37f2755de2abcc02d" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__time__date.html#ga42674286d8d56afea013b6329bb7327a">TTimeStamp</a> <a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator.html#a8c73e87eca9abdc37f2755de2abcc02d">mrpt::reactivenav::CPRRTNavigator::m_last_obstacles_time</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_p_r_r_t_navigator_8h_source.html#l00276">276</a> of file <a class="el" href="_c_p_r_r_t_navigator_8h_source.html">CPRRTNavigator.h</a>.</p>

</div>
</div>
<a class="anchor" id="a2d6ba3bda62366e68c21e5f5071956a3"></a><!-- doxytag: member="mrpt::reactivenav::CPRRTNavigator::m_last_obstacles_x" ref="a2d6ba3bda62366e68c21e5f5071956a3" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classstd_1_1vector.html">std::vector</a>&lt;float&gt; <a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator.html#a2d6ba3bda62366e68c21e5f5071956a3">mrpt::reactivenav::CPRRTNavigator::m_last_obstacles_x</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_p_r_r_t_navigator_8h_source.html#l00275">275</a> of file <a class="el" href="_c_p_r_r_t_navigator_8h_source.html">CPRRTNavigator.h</a>.</p>

</div>
</div>
<a class="anchor" id="a375e0b1fa177426b6175ff4ead2f9c0f"></a><!-- doxytag: member="mrpt::reactivenav::CPRRTNavigator::m_last_obstacles_y" ref="a375e0b1fa177426b6175ff4ead2f9c0f" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classstd_1_1vector.html">std::vector</a>&lt;float&gt; <a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator.html#a375e0b1fa177426b6175ff4ead2f9c0f">mrpt::reactivenav::CPRRTNavigator::m_last_obstacles_y</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_p_r_r_t_navigator_8h_source.html#l00275">275</a> of file <a class="el" href="_c_p_r_r_t_navigator_8h_source.html">CPRRTNavigator.h</a>.</p>

</div>
</div>
<a class="anchor" id="a2cb1e3a1f06fcc3b06b7f2bffca6112d"></a><!-- doxytag: member="mrpt::reactivenav::CPRRTNavigator::m_planned_path" ref="a2cb1e3a1f06fcc3b06b7f2bffca6112d" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator.html#ac4759f9afdeaf6613fb5fec336938374">TPlannedPath</a> <a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator.html#a2cb1e3a1f06fcc3b06b7f2bffca6112d">mrpt::reactivenav::CPRRTNavigator::m_planned_path</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_p_r_r_t_navigator_8h_source.html#l00282">282</a> of file <a class="el" href="_c_p_r_r_t_navigator_8h_source.html">CPRRTNavigator.h</a>.</p>

</div>
</div>
<a class="anchor" id="aa91bf8d6a540c2eca3d7d61e7b9c3845"></a><!-- doxytag: member="mrpt::reactivenav::CPRRTNavigator::m_planned_path_cs" ref="aa91bf8d6a540c2eca3d7d61e7b9c3845" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1synch_1_1_c_critical_section.html">CCriticalSection</a> <a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator.html#aa91bf8d6a540c2eca3d7d61e7b9c3845">mrpt::reactivenav::CPRRTNavigator::m_planned_path_cs</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_p_r_r_t_navigator_8h_source.html#l00280">280</a> of file <a class="el" href="_c_p_r_r_t_navigator_8h_source.html">CPRRTNavigator.h</a>.</p>

</div>
</div>
<a class="anchor" id="a8c5ba43a18d2ab0d31ec68d26b593984"></a><!-- doxytag: member="mrpt::reactivenav::CPRRTNavigator::m_planned_path_time" ref="a8c5ba43a18d2ab0d31ec68d26b593984" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__time__date.html#ga42674286d8d56afea013b6329bb7327a">TTimeStamp</a> <a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator.html#a8c5ba43a18d2ab0d31ec68d26b593984">mrpt::reactivenav::CPRRTNavigator::m_planned_path_time</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The last modification time. INVALID_TIMESTAMP means there is no path. </p>

<p>Definition at line <a class="el" href="_c_p_r_r_t_navigator_8h_source.html#l00281">281</a> of file <a class="el" href="_c_p_r_r_t_navigator_8h_source.html">CPRRTNavigator.h</a>.</p>

</div>
</div>
<a class="anchor" id="a2784ee37f3ad7f549197b5a282e3ef3b"></a><!-- doxytag: member="mrpt::reactivenav::CPRRTNavigator::m_PTGs" ref="a2784ee37f3ad7f549197b5a282e3ef3b" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="namespacemrpt_1_1reactivenav.html#ac7430721e888f0c857d2e681566adf15">TListPTGs</a> <a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator.html#a2784ee37f3ad7f549197b5a282e3ef3b">mrpt::reactivenav::CPRRTNavigator::m_PTGs</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The list of PTGs used by the anytime planner to explore the free-space. </p>

<p>Definition at line <a class="el" href="_c_p_r_r_t_navigator_8h_source.html#l00285">285</a> of file <a class="el" href="_c_p_r_r_t_navigator_8h_source.html">CPRRTNavigator.h</a>.</p>

</div>
</div>
<a class="anchor" id="ac7cc5be2c9826aa0d262b571e346ae0c"></a><!-- doxytag: member="mrpt::reactivenav::CPRRTNavigator::m_PTGs_cs" ref="ac7cc5be2c9826aa0d262b571e346ae0c" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1synch_1_1_c_critical_section.html">CCriticalSection</a> <a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator.html#ac7cc5be2c9826aa0d262b571e346ae0c">mrpt::reactivenav::CPRRTNavigator::m_PTGs_cs</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_p_r_r_t_navigator_8h_source.html#l00286">286</a> of file <a class="el" href="_c_p_r_r_t_navigator_8h_source.html">CPRRTNavigator.h</a>.</p>

</div>
</div>
<a class="anchor" id="af247a47a88dab4cc96b1cab2ed171f0b"></a><!-- doxytag: member="mrpt::reactivenav::CPRRTNavigator::m_robotStateFilter" ref="af247a47a88dab4cc96b1cab2ed171f0b" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1poses_1_1_c_robot2_d_pose_estimator.html">mrpt::poses::CRobot2DPoseEstimator</a> <a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator.html#af247a47a88dab4cc96b1cab2ed171f0b">mrpt::reactivenav::CPRRTNavigator::m_robotStateFilter</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Object maintained by the robot-tracking thread (All methods are thread-safe). </p>

<p>Definition at line <a class="el" href="_c_p_r_r_t_navigator_8h_source.html#l00290">290</a> of file <a class="el" href="_c_p_r_r_t_navigator_8h_source.html">CPRRTNavigator.h</a>.</p>

</div>
</div>
<a class="anchor" id="a31a8b2b3f951a79251283b7b78a7801c"></a><!-- doxytag: member="mrpt::reactivenav::CPRRTNavigator::m_target_pose" ref="a31a8b2b3f951a79251283b7b78a7801c" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structmrpt_1_1math_1_1_t_pose2_d.html">TPose2D</a> <a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator.html#a31a8b2b3f951a79251283b7b78a7801c">mrpt::reactivenav::CPRRTNavigator::m_target_pose</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Heading may be INVALID_HEADING to indicate "don't mind". </p>

<p>Definition at line <a class="el" href="_c_p_r_r_t_navigator_8h_source.html#l00267">267</a> of file <a class="el" href="_c_p_r_r_t_navigator_8h_source.html">CPRRTNavigator.h</a>.</p>

</div>
</div>
<a class="anchor" id="a5819dc1781d4cf3ce6db0db78277a0a5"></a><!-- doxytag: member="mrpt::reactivenav::CPRRTNavigator::m_target_pose_cs" ref="a5819dc1781d4cf3ce6db0db78277a0a5" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1synch_1_1_c_critical_section.html">CCriticalSection</a> <a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator.html#a5819dc1781d4cf3ce6db0db78277a0a5">mrpt::reactivenav::CPRRTNavigator::m_target_pose_cs</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_p_r_r_t_navigator_8h_source.html#l00269">269</a> of file <a class="el" href="_c_p_r_r_t_navigator_8h_source.html">CPRRTNavigator.h</a>.</p>

</div>
</div>
<a class="anchor" id="a54e46b1065d6effc0c63b2a33b3e644c"></a><!-- doxytag: member="mrpt::reactivenav::CPRRTNavigator::m_target_pose_time" ref="a54e46b1065d6effc0c63b2a33b3e644c" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__time__date.html#ga42674286d8d56afea013b6329bb7327a">TTimeStamp</a> <a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator.html#a54e46b1065d6effc0c63b2a33b3e644c">mrpt::reactivenav::CPRRTNavigator::m_target_pose_time</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_p_r_r_t_navigator_8h_source.html#l00268">268</a> of file <a class="el" href="_c_p_r_r_t_navigator_8h_source.html">CPRRTNavigator.h</a>.</p>

</div>
</div>
<a class="anchor" id="af8274ad039e262eecefbb20810af7e79"></a><!-- doxytag: member="mrpt::reactivenav::CPRRTNavigator::m_thr_pathtrack" ref="af8274ad039e262eecefbb20810af7e79" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structmrpt_1_1system_1_1_t_thread_handle.html">TThreadHandle</a> <a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator.html#af8274ad039e262eecefbb20810af7e79">mrpt::reactivenav::CPRRTNavigator::m_thr_pathtrack</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Thread handle. </p>

<p>Definition at line <a class="el" href="_c_p_r_r_t_navigator_8h_source.html#l00255">255</a> of file <a class="el" href="_c_p_r_r_t_navigator_8h_source.html">CPRRTNavigator.h</a>.</p>

</div>
</div>
<a class="anchor" id="a9f6dc216a23ce62bb3447218a7ad10f9"></a><!-- doxytag: member="mrpt::reactivenav::CPRRTNavigator::m_thr_planner" ref="a9f6dc216a23ce62bb3447218a7ad10f9" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structmrpt_1_1system_1_1_t_thread_handle.html">TThreadHandle</a> <a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator.html#a9f6dc216a23ce62bb3447218a7ad10f9">mrpt::reactivenav::CPRRTNavigator::m_thr_planner</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Thread handle. </p>

<p>Definition at line <a class="el" href="_c_p_r_r_t_navigator_8h_source.html#l00253">253</a> of file <a class="el" href="_c_p_r_r_t_navigator_8h_source.html">CPRRTNavigator.h</a>.</p>

</div>
</div>
<a class="anchor" id="a65e8aab888ceadf7326e5c146e3bdc36"></a><!-- doxytag: member="mrpt::reactivenav::CPRRTNavigator::m_thr_testcol" ref="a65e8aab888ceadf7326e5c146e3bdc36" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structmrpt_1_1system_1_1_t_thread_handle.html">TThreadHandle</a> <a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator.html#a65e8aab888ceadf7326e5c146e3bdc36">mrpt::reactivenav::CPRRTNavigator::m_thr_testcol</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Thread handle. </p>

<p>Definition at line <a class="el" href="_c_p_r_r_t_navigator_8h_source.html#l00254">254</a> of file <a class="el" href="_c_p_r_r_t_navigator_8h_source.html">CPRRTNavigator.h</a>.</p>

</div>
</div>
<a class="anchor" id="aae065073b31838516e694308f926acfc"></a><!-- doxytag: member="mrpt::reactivenav::CPRRTNavigator::params" ref="aae065073b31838516e694308f926acfc" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator_1_1_t_options.html">TOptions</a> <a class="el" href="classmrpt_1_1reactivenav_1_1_c_p_r_r_t_navigator.html#aae065073b31838516e694308f926acfc">mrpt::reactivenav::CPRRTNavigator::params</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Change here all the parameters of the navigator. </p>

<p>Definition at line <a class="el" href="_c_p_r_r_t_navigator_8h_source.html#l00178">178</a> of file <a class="el" href="_c_p_r_r_t_navigator_8h_source.html">CPRRTNavigator.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>