Sophie

Sophie

distrib > Fedora > 15 > i386 > by-pkgid > 2f6559b7006594cad03af173263c219e > files > 3377

mrpt-doc-0.9.4-0.1.20110110svn2383.fc15.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>The MRPT project: mrpt::hmtslam::CLocalMetricHypothesis 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.2 -->
<script type="text/javascript"><!--
var searchBox = new SearchBox("searchBox", "search",false,'Search');
--></script>
<div class="navigation" id="top">
  <div 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 id="searchli">
        <div id="MSearchBox" class="MSearchBoxInactive">
          <span 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>
          </span><span class="right"></span>
        </div>
      </li>
    </ul>
  </div>
  <div 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="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
  <div class="navpath">
    <ul>
      <li><a class="el" href="namespacemrpt.html">mrpt</a>      </li>
      <li><a class="el" href="namespacemrpt_1_1hmtslam.html">hmtslam</a>      </li>
      <li><a class="el" href="classmrpt_1_1hmtslam_1_1_c_local_metric_hypothesis.html">CLocalMetricHypothesis</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="#pro-attribs">Protected Attributes</a> &#124;
<a href="#friends">Friends</a>  </div>
  <div class="headertitle">
<h1>mrpt::hmtslam::CLocalMetricHypothesis Class Reference</h1>  </div>
</div>
<div class="contents">
<!-- doxytag: class="mrpt::hmtslam::CLocalMetricHypothesis" --><!-- doxytag: inherits="mrpt::bayes::CParticleFilterCapable,CParticleFilterData&lt; CLSLAMParticleData &gt;,mrpt::utils::CSerializable" --><hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>This class is used in HMT-SLAM to represent each of the Local Metric Hypotheses (LMHs). </p>
<p>It has a set of particles representing the robot path in nearby poses. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1hmtslam_1_1_c_h_m_t_s_l_a_m.html" title="An implementation of Hybrid Metric Topological SLAM (HMT-SLAM).">CHMTSLAM</a>, <a class="el" href="classmrpt_1_1hmtslam_1_1_c_l_s_l_a_m___r_b_p_f__2_d_l_a_s_e_r.html" title="Implements a 2D local SLAM method based on a RBPF over an occupancy grid map.">CLSLAM_RBPF_2DLASER</a> </dd></dl>

<p>Definition at line <a class="el" href="_c_local_metric_hypothesis_8h_source.html#l00092">92</a> of file <a class="el" href="_c_local_metric_hypothesis_8h_source.html">CLocalMetricHypothesis.h</a>.</p>

<p><code>#include &lt;<a class="el" href="_c_local_metric_hypothesis_8h_source.html">mrpt/hmtslam/CLocalMetricHypothesis.h</a>&gt;</code></p>
<!-- startSectionHeader --><div class="dynheader">
Inheritance diagram for mrpt::hmtslam::CLocalMetricHypothesis:<!-- endSectionHeader --></div>
<!-- startSectionSummary --><!-- endSectionSummary --><!-- startSectionContent --><div class="dyncontent">
<div class="center"><img src="classmrpt_1_1hmtslam_1_1_c_local_metric_hypothesis__inherit__graph.png" border="0" usemap="#mrpt_1_1hmtslam_1_1_c_local_metric_hypothesis_inherit__map" alt="Inheritance graph"/></div>
<map name="mrpt_1_1hmtslam_1_1_c_local_metric_hypothesis_inherit__map" id="mrpt_1_1hmtslam_1_1_c_local_metric_hypothesis_inherit__map">
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center><!-- endSectionContent --></div>

<p><a href="classmrpt_1_1hmtslam_1_1_c_local_metric_hypothesis-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_1hmtslam_1_1_c_local_metric_hypothesis_1_1_t_robot_poses_partitioning.html">TRobotPosesPartitioning</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Used by AA thread.  <a href="structmrpt_1_1hmtslam_1_1_c_local_metric_hypothesis_1_1_t_robot_poses_partitioning.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_1hmtslam_1_1_c_local_metric_hypothesis.html#a2bbdca2d89a2fb8af1653bd7329a47b9">CLocalMetricHypothesis</a> (<a class="el" href="classmrpt_1_1hmtslam_1_1_c_h_m_t_s_l_a_m.html">CHMTSLAM</a> *parent=NULL)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor (Default param only used from STL classes)  <a href="#a2bbdca2d89a2fb8af1653bd7329a47b9"></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_1hmtslam_1_1_c_local_metric_hypothesis.html#a86511a658f5bee0d6f691d587f88f28d">~CLocalMetricHypothesis</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor.  <a href="#a86511a658f5bee0d6f691d587f88f28d"></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_1hmtslam_1_1_c_local_metric_hypothesis.html#acc0d025987f9c66caad5d68000f1eae9">getAs3DScene</a> (<a class="el" href="structmrpt_1_1opengl_1_1_c_set_of_objects_ptr.html">mrpt::opengl::CSetOfObjectsPtr</a> &amp;objs) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a 3D representation of the the current robot pose, all the poses in the auxiliary graph, and each of the areas they belong to.  <a href="#acc0d025987f9c66caad5d68000f1eae9"></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_1hmtslam_1_1_c_local_metric_hypothesis.html#a900ef425bec6c5c83e76b966e91791e4">getMeans</a> (std::map&lt; <a class="el" href="namespacemrpt_1_1hmtslam.html#afc45e3c745da87655acd25af131343bf">TPoseID</a>, <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">CPose3D</a> &gt; &amp;outList) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the mean of each robot pose in this LMH, as computed from the set of particles.  <a href="#a900ef425bec6c5c83e76b966e91791e4"></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_1hmtslam_1_1_c_local_metric_hypothesis.html#a4ba3c721e2267263ffdc71fc135eb51c">getPathParticles</a> (std::map&lt; <a class="el" href="namespacemrpt_1_1hmtslam.html#afc45e3c745da87655acd25af131343bf">TPoseID</a>, <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_p_d_f_particles.html">CPose3DPDFParticles</a> &gt; &amp;outList) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the mean and covariance of each robot pose in this LMH, as computed from the set of particles.  <a href="#a4ba3c721e2267263ffdc71fc135eb51c"></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_1hmtslam_1_1_c_local_metric_hypothesis.html#afa8b95e48dd493f10d7be8bfe15b8237">getPoseParticles</a> (const <a class="el" href="namespacemrpt_1_1hmtslam.html#afc45e3c745da87655acd25af131343bf">TPoseID</a> &amp;poseID, <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_p_d_f_particles.html">CPose3DPDFParticles</a> &amp;outPDF) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the mean and covariance of each robot pose in this LMH, as computed from the set of particles.  <a href="#afa8b95e48dd493f10d7be8bfe15b8237"></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_1hmtslam_1_1_c_local_metric_hypothesis.html#ab7bb93d7896dae88dfb3bce6583a8cda">getRelativePose</a> (const <a class="el" href="namespacemrpt_1_1hmtslam.html#afc45e3c745da87655acd25af131343bf">TPoseID</a> &amp;reference, const <a class="el" href="namespacemrpt_1_1hmtslam.html#afc45e3c745da87655acd25af131343bf">TPoseID</a> &amp;pose, <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_p_d_f_particles.html">CPose3DPDFParticles</a> &amp;outPDF) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the pose PDF of some pose relative to some other pose ID (both must be part of the the LMH).  <a href="#ab7bb93d7896dae88dfb3bce6583a8cda"></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_1hmtslam_1_1_c_local_metric_hypothesis.html#a140ca3c2a9ed35ae2c309a8048967320">dumpAsText</a> (<a class="el" href="classmrpt_1_1utils_1_1_c_string_list.html">utils::CStringList</a> &amp;st) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Describes the LMH in text.  <a href="#a140ca3c2a9ed35ae2c309a8048967320"></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_1hmtslam_1_1_c_local_metric_hypothesis.html#acba2fa4b741ec7992a9b6a99e821ff2c">changeCoordinateOrigin</a> (const <a class="el" href="namespacemrpt_1_1hmtslam.html#afc45e3c745da87655acd25af131343bf">TPoseID</a> &amp;newOrigin)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Change all coordinates to set a given robot pose as the new coordinate origin, and rebuild metric maps and change coords in the partitioning subsystem as well.  <a href="#acba2fa4b741ec7992a9b6a99e821ff2c"></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_1hmtslam_1_1_c_local_metric_hypothesis.html#a22552cd4b0cb997f5c49db70747270d4">rebuildMetricMaps</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Rebuild the metric maps of all particles from the observations and their estimated poses.  <a href="#a22552cd4b0cb997f5c49db70747270d4"></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_1hmtslam_1_1_c_local_metric_hypothesis.html#a606853a7af9972034844b09ac34823ec">clearRobotPoses</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Rebuild the auxiliary metric maps in "m_robotPosesGraph" from the observations "m_SFs" and their estimated poses.  <a href="#a606853a7af9972034844b09ac34823ec"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">CPose3D</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hmtslam_1_1_c_local_metric_hypothesis.html#a46e638e17923e4edd02c82032d928a1f">getCurrentPose</a> (const size_t &amp;particleIdx) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the i'th particle hypothesis for the current robot pose.  <a href="#a46e638e17923e4edd02c82032d928a1f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">CPose3D</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hmtslam_1_1_c_local_metric_hypothesis.html#a1e6d76874e063f203e15e37c1c1181d4">getCurrentPose</a> (const size_t &amp;particleIdx)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the i'th particle hypothesis for the current robot pose.  <a href="#a1e6d76874e063f203e15e37c1c1181d4"></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_1hmtslam_1_1_c_local_metric_hypothesis.html#a89cceed13077158b256d7e466dace4b4">removeAreaFromLMH</a> (const <a class="el" href="classmrpt_1_1hmtslam_1_1_c_h_m_h_map_node.html#a4320fd5748b07f6fdb6dd1bdc5b3920e">CHMHMapNode::TNodeID</a> areaID)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes a given area from the LMH:</p>
<ul>
<li>The corresponding node in the HMT map is updated with the robot poses &amp; SFs in the LMH. </li>
</ul>
 <a href="#a89cceed13077158b256d7e466dace4b4"></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_1hmtslam_1_1_c_local_metric_hypothesis.html#ac267ba60aa7a869d06c632a2a0550677">updateAreaFromLMH</a> (const <a class="el" href="classmrpt_1_1hmtslam_1_1_c_h_m_h_map_node.html#a4320fd5748b07f6fdb6dd1bdc5b3920e">CHMHMapNode::TNodeID</a> areaID, bool eraseSFsFromLMH=false)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The corresponding node in the HMT map is updated with the robot poses &amp; SFs in the LMH: the poses are referenced to the area's reference poseID, such as that reference is at the origin.  <a href="#ac267ba60aa7a869d06c632a2a0550677"></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_1synch_1_1_c_critical_section.html">synch::CCriticalSection</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hmtslam_1_1_c_local_metric_hypothesis.html#a3fca93101fbbd36f8542deb960231f53">m_lock</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Critical section for threads signaling they are working with the LMH.  <a href="#a3fca93101fbbd36f8542deb960231f53"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacemrpt_1_1hmtslam.html#a6a8c7a5cb874400f4df9d1fd6b6ff9ee">THypothesisID</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hmtslam_1_1_c_local_metric_hypothesis.html#a559c9d5b9fcc9325ecd95f722fbe682f">m_ID</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The unique ID of the hypothesis (Used for accessing mrpt::slam::CHierarchicalMHMap).  <a href="#a559c9d5b9fcc9325ecd95f722fbe682f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmrpt_1_1utils_1_1safe__ptr.html">safe_ptr</a>&lt; <a class="el" href="classmrpt_1_1hmtslam_1_1_c_h_m_t_s_l_a_m.html">CHMTSLAM</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hmtslam_1_1_c_local_metric_hypothesis.html#acb6413f6bc48d29770cc179eab5ee0a3">m_parent</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">For quick access to our parent object.  <a href="#acb6413f6bc48d29770cc179eab5ee0a3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacemrpt_1_1hmtslam.html#afc45e3c745da87655acd25af131343bf">TPoseID</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hmtslam_1_1_c_local_metric_hypothesis.html#ae2172d3ffdfeeefe6183f6dca598f960">m_currentRobotPose</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The current robot pose (its global unique ID) for this hypothesis.  <a href="#ae2172d3ffdfeeefe6183f6dca598f960"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacemrpt_1_1hmtslam.html#a5bcc3f9cba9de3b8239a394d63c3ce66">TNodeIDSet</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hmtslam_1_1_c_local_metric_hypothesis.html#a7bda1e6774884134f9b34d220eccd5df">m_neighbors</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The list of all areas sourronding the current one (this includes the current area itself).  <a href="#a7bda1e6774884134f9b34d220eccd5df"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">std::map&lt; <a class="el" href="namespacemrpt_1_1hmtslam.html#afc45e3c745da87655acd25af131343bf">TPoseID</a>, <br class="typebreak"/>
<a class="el" href="classmrpt_1_1hmtslam_1_1_c_h_m_h_map_node.html#a4320fd5748b07f6fdb6dd1bdc5b3920e">CHMHMapNode::TNodeID</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hmtslam_1_1_c_local_metric_hypothesis.html#ad7adc8d8a5e7a04334a50558b051aa15">m_nodeIDmemberships</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The hybrid map node membership for each robot pose.  <a href="#ad7adc8d8a5e7a04334a50558b051aa15"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">std::map&lt; <a class="el" href="namespacemrpt_1_1hmtslam.html#afc45e3c745da87655acd25af131343bf">TPoseID</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html">CSensoryFrame</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hmtslam_1_1_c_local_metric_hypothesis.html#a9a921aef54b49bab62dc18e20913f44e">m_SFs</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The SF gathered at each robot pose.  <a href="#a9a921aef54b49bab62dc18e20913f44e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacemrpt_1_1hmtslam.html#aab03d6a98830912eb1b9397f12a1adbc">TPoseIDList</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hmtslam_1_1_c_local_metric_hypothesis.html#af701aeb4da0c4c13ae8e288e92389ccf">m_posesPendingAddPartitioner</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The list of poseIDs waiting to be added to the graph partitioner, what happens in the LSLAM thread main loop.  <a href="#af701aeb4da0c4c13ae8e288e92389ccf"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1utils_1_1list__searchable.html">TNodeIDList</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hmtslam_1_1_c_local_metric_hypothesis.html#a1baff49d6df7e31ad47308f9d4dcf411">m_areasPendingTBI</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The list of area IDs waiting to be processed by the TBI (topological bayesian inference) engines to search for potential loop-closures. Set in <a class="el" href="classmrpt_1_1hmtslam_1_1_c_h_m_t_s_l_a_m.html#a162ff392270839bc8c37a771308ac820" title="No critical section locks are assumed at the entrance of this method.">CHMTSLAM::LSLAM_process_message_from_AA</a>, read in.  <a href="#a1baff49d6df7e31ad47308f9d4dcf411"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hmtslam_1_1_c_local_metric_hypothesis.html#a3b7c38915660b84a3b3de6a80b5b4d97">m_log_w</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Log-weight of this hypothesis.  <a href="#a3b7c38915660b84a3b3de6a80b5b4d97"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">std::vector&lt; std::map&lt; <a class="el" href="namespacemrpt_1_1hmtslam.html#afc45e3c745da87655acd25af131343bf">TPoseID</a>, <br class="typebreak"/>
double &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hmtslam_1_1_c_local_metric_hypothesis.html#adcde7731917b103e6e4b460c1627b215">m_log_w_metric_history</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The historic log-weights of the metric observations inserted in this LMH, for each particle.  <a href="#adcde7731917b103e6e4b460c1627b215"></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>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hmtslam_1_1_c_local_metric_hypothesis.html#a1683692cc38d5b813b5dcf35aabecf3d">m_accumRobotMovement</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Used in <a class="el" href="classmrpt_1_1hmtslam_1_1_c_l_s_l_a_m___r_b_p_f__2_d_l_a_s_e_r.html" title="Implements a 2D local SLAM method based on a RBPF over an occupancy grid map.">CLSLAM_RBPF_2DLASER</a>.  <a href="#a1683692cc38d5b813b5dcf35aabecf3d"></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_1hmtslam_1_1_c_local_metric_hypothesis.html#a8ed7c3c48ce94c1310a19a59adde5b38">m_accumRobotMovementIsValid</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Used in <a class="el" href="classmrpt_1_1hmtslam_1_1_c_l_s_l_a_m___r_b_p_f__2_d_l_a_s_e_r.html" title="Implements a 2D local SLAM method based on a RBPF over an occupancy grid map.">CLSLAM_RBPF_2DLASER</a>.  <a href="#a8ed7c3c48ce94c1310a19a59adde5b38"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct <br class="typebreak"/>
<a class="el" href="structmrpt_1_1hmtslam_1_1_c_local_metric_hypothesis_1_1_t_robot_poses_partitioning.html">mrpt::hmtslam::CLocalMetricHypothesis::TRobotPosesPartitioning</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hmtslam_1_1_c_local_metric_hypothesis.html#a3f3981f549cb1cef110fc034bd3bea8f">m_robotPosesGraph</a></td></tr>
<tr><td colspan="2"><h2><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr><td colspan="2"><div class="groupHeader">Virtual methods for Particle Filter implementation (just a wrapper interface, actually implemented in CHMTSLAM::m_LSLAM_method)</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_1hmtslam_1_1_c_local_metric_hypothesis.html#a78b180315cc2053366ffc323d70c47d3">prediction_and_update_pfAuxiliaryPFOptimal</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_action_collection.html">mrpt::slam::CActionCollection</a> *action, const <a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html">mrpt::slam::CSensoryFrame</a> *observation, const <a class="el" href="structmrpt_1_1bayes_1_1_c_particle_filter_1_1_t_particle_filter_options.html">bayes::CParticleFilter::TParticleFilterOptions</a> &amp;PF_options)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The PF algorithm implementation.  <a href="#a78b180315cc2053366ffc323d70c47d3"></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_1hmtslam_1_1_c_local_metric_hypothesis.html#a0ff4807b7f76022508be551a47fdfb4a">prediction_and_update_pfOptimalProposal</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_action_collection.html">mrpt::slam::CActionCollection</a> *action, const <a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html">mrpt::slam::CSensoryFrame</a> *observation, const <a class="el" href="structmrpt_1_1bayes_1_1_c_particle_filter_1_1_t_particle_filter_options.html">bayes::CParticleFilter::TParticleFilterOptions</a> &amp;PF_options)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The PF algorithm implementation.  <a href="#a0ff4807b7f76022508be551a47fdfb4a"></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="structmrpt_1_1dynamicsize__vector.html">vector_double</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hmtslam_1_1_c_local_metric_hypothesis.html#abc11654124437b1de2c11f11b6d4de42">m_pfAuxiliaryPFOptimal_estimatedProb</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Auxiliary variable used in the "pfAuxiliaryPFOptimal" algorithm.  <a href="#abc11654124437b1de2c11f11b6d4de42"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">std::vector&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hmtslam_1_1_c_local_metric_hypothesis.html#a8fabfc4450cff62dfe7a46394238dac2">m_maxLikelihood</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Auxiliary variable used in the "pfAuxiliaryPFOptimal" algorithm.  <a href="#a8fabfc4450cff62dfe7a46394238dac2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">std::vector&lt; CPose2D, <br class="typebreak"/>
Eigen::aligned_allocator<br class="typebreak"/>
&lt; CPose2D &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hmtslam_1_1_c_local_metric_hypothesis.html#adb3d4f2b5e1ab97d40b9bad40e9a657f">m_movementDraws</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Auxiliary variable used in the "pfAuxiliaryPFOptimal" algorithm.  <a href="#adb3d4f2b5e1ab97d40b9bad40e9a657f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hmtslam_1_1_c_local_metric_hypothesis.html#adf3b8099493296b90d5d8e7ffec620da">m_movementDrawsIdx</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Auxiliary variable used in the "pfAuxiliaryPFOptimal" algorithm.  <a href="#adf3b8099493296b90d5d8e7ffec620da"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacemrpt_1_1poses.html#ab321f17adba329f3e24d41d533408739">StdVector_CPose2D</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hmtslam_1_1_c_local_metric_hypothesis.html#aed755bb8891d2a1dcd96e0b2a17e7db0">m_movementDrawMaximumLikelihood</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Auxiliary variable used in the "pfAuxiliaryPFOptimal" algorithm.  <a href="#aed755bb8891d2a1dcd96e0b2a17e7db0"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="friends"></a>
Friends</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class HMTSLAM_IMPEXP&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hmtslam_1_1_c_local_metric_hypothesis.html#ac34a721ee598515baa4048b339f41013">CLSLAM_RBPF_2DLASER</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_1hmtslam_1_1_c_local_metric_hypothesis_ptr.html">CLocalMetricHypothesisPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hmtslam_1_1_c_local_metric_hypothesis.html#a190437d4041db42984c49394686e827d">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_1hmtslam_1_1_c_local_metric_hypothesis.html#aec8abd058803e0bf4f3298a4412981f2">_init_CLocalMetricHypothesis</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_1hmtslam_1_1_c_local_metric_hypothesis.html#a11ea61f54e94e408b5279ea8a785b3f4">classCLocalMetricHypothesis</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_1hmtslam_1_1_c_local_metric_hypothesis.html#a400f9847442c0e95615c9c0382d7d606">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_1hmtslam_1_1_c_local_metric_hypothesis.html#aef3febbb24f0a99281901f025fad1682">_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_1hmtslam_1_1_c_local_metric_hypothesis.html#ab0a19d848da91ea2ce401e6436f21862">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="#ab0a19d848da91ea2ce401e6436f21862"></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_1hmtslam_1_1_c_local_metric_hypothesis.html#ac78d9a44f581338715379d0cd17e2fd1">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="#ac78d9a44f581338715379d0cd17e2fd1"></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_1hmtslam_1_1_c_local_metric_hypothesis.html#a7b4ffa0a882471e006c54011c8a67862">CreateObject</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structmrpt_1_1hmtslam_1_1_c_local_metric_hypothesis_ptr.html">CLocalMetricHypothesisPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1hmtslam_1_1_c_local_metric_hypothesis.html#a1d60ff6c2b9132127607d4ff0290f167">Create</a> ()</td></tr>
</table>
<hr/><h2>Member Typedef Documentation</h2>
<a class="anchor" id="a190437d4041db42984c49394686e827d"></a><!-- doxytag: member="mrpt::hmtslam::CLocalMetricHypothesis::SmartPtr" ref="a190437d4041db42984c49394686e827d" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="structmrpt_1_1hmtslam_1_1_c_local_metric_hypothesis_ptr.html">CLocalMetricHypothesisPtr</a> <a class="el" href="structmrpt_1_1hmtslam_1_1_c_local_metric_hypothesis_ptr.html">mrpt::hmtslam::CLocalMetricHypothesis::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_local_metric_hypothesis_8h_source.html#l00099">99</a> of file <a class="el" href="_c_local_metric_hypothesis_8h_source.html">CLocalMetricHypothesis.h</a>.</p>

</div>
</div>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a2bbdca2d89a2fb8af1653bd7329a47b9"></a><!-- doxytag: member="mrpt::hmtslam::CLocalMetricHypothesis::CLocalMetricHypothesis" ref="a2bbdca2d89a2fb8af1653bd7329a47b9" args="(CHMTSLAM *parent=NULL)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">mrpt::hmtslam::CLocalMetricHypothesis::CLocalMetricHypothesis </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1hmtslam_1_1_c_h_m_t_s_l_a_m.html">CHMTSLAM</a> *&#160;</td>
          <td class="paramname"> <em>parent</em> = <code>NULL</code>&#160;)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Constructor (Default param only used from STL classes) </p>

</div>
</div>
<a class="anchor" id="a86511a658f5bee0d6f691d587f88f28d"></a><!-- doxytag: member="mrpt::hmtslam::CLocalMetricHypothesis::~CLocalMetricHypothesis" ref="a86511a658f5bee0d6f691d587f88f28d" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">mrpt::hmtslam::CLocalMetricHypothesis::~CLocalMetricHypothesis </td>
          <td>(</td>
          <td class="paramname">&#160;)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Destructor. </p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="aef3febbb24f0a99281901f025fad1682"></a><!-- doxytag: member="mrpt::hmtslam::CLocalMetricHypothesis::_GetBaseClass" ref="aef3febbb24f0a99281901f025fad1682" 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::hmtslam::CLocalMetricHypothesis::_GetBaseClass </td>
          <td>(</td>
          <td class="paramname">&#160;)</td>
          <td><code> [static, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

</div>
</div>
<a class="anchor" id="acba2fa4b741ec7992a9b6a99e821ff2c"></a><!-- doxytag: member="mrpt::hmtslam::CLocalMetricHypothesis::changeCoordinateOrigin" ref="acba2fa4b741ec7992a9b6a99e821ff2c" args="(const TPoseID &amp;newOrigin)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hmtslam::CLocalMetricHypothesis::changeCoordinateOrigin </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="namespacemrpt_1_1hmtslam.html#afc45e3c745da87655acd25af131343bf">TPoseID</a> &amp;&#160;</td>
          <td class="paramname"> <em>newOrigin</em>&#160;)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Change all coordinates to set a given robot pose as the new coordinate origin, and rebuild metric maps and change coords in the partitioning subsystem as well. </p>

</div>
</div>
<a class="anchor" id="a606853a7af9972034844b09ac34823ec"></a><!-- doxytag: member="mrpt::hmtslam::CLocalMetricHypothesis::clearRobotPoses" ref="a606853a7af9972034844b09ac34823ec" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hmtslam::CLocalMetricHypothesis::clearRobotPoses </td>
          <td>(</td>
          <td class="paramname">&#160;)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Rebuild the auxiliary metric maps in "m_robotPosesGraph" from the observations "m_SFs" and their estimated poses. </p>
<p>Sets the number of particles to the initial number according to the PF options, and initialize them with no robot poses &amp; empty metric maps. </p>

</div>
</div>
<a class="anchor" id="a1d60ff6c2b9132127607d4ff0290f167"></a><!-- doxytag: member="mrpt::hmtslam::CLocalMetricHypothesis::Create" ref="a1d60ff6c2b9132127607d4ff0290f167" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="structmrpt_1_1hmtslam_1_1_c_local_metric_hypothesis_ptr.html">CLocalMetricHypothesisPtr</a> mrpt::hmtslam::CLocalMetricHypothesis::Create </td>
          <td>(</td>
          <td class="paramname">&#160;)</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a7b4ffa0a882471e006c54011c8a67862"></a><!-- doxytag: member="mrpt::hmtslam::CLocalMetricHypothesis::CreateObject" ref="a7b4ffa0a882471e006c54011c8a67862" 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::hmtslam::CLocalMetricHypothesis::CreateObject </td>
          <td>(</td>
          <td class="paramname">&#160;)</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a140ca3c2a9ed35ae2c309a8048967320"></a><!-- doxytag: member="mrpt::hmtslam::CLocalMetricHypothesis::dumpAsText" ref="a140ca3c2a9ed35ae2c309a8048967320" args="(utils::CStringList &amp;st) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hmtslam::CLocalMetricHypothesis::dumpAsText </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1utils_1_1_c_string_list.html">utils::CStringList</a> &amp;&#160;</td>
          <td class="paramname"> <em>st</em>&#160;)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Describes the LMH in text. </p>

</div>
</div>
<a class="anchor" id="ac78d9a44f581338715379d0cd17e2fd1"></a><!-- doxytag: member="mrpt::hmtslam::CLocalMetricHypothesis::duplicate" ref="ac78d9a44f581338715379d0cd17e2fd1" 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::hmtslam::CLocalMetricHypothesis::duplicate </td>
          <td>(</td>
          <td class="paramname">&#160;)</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="acc0d025987f9c66caad5d68000f1eae9"></a><!-- doxytag: member="mrpt::hmtslam::CLocalMetricHypothesis::getAs3DScene" ref="acc0d025987f9c66caad5d68000f1eae9" args="(mrpt::opengl::CSetOfObjectsPtr &amp;objs) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hmtslam::CLocalMetricHypothesis::getAs3DScene </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmrpt_1_1opengl_1_1_c_set_of_objects_ptr.html">mrpt::opengl::CSetOfObjectsPtr</a> &amp;&#160;</td>
          <td class="paramname"> <em>objs</em>&#160;)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns a 3D representation of the the current robot pose, all the poses in the auxiliary graph, and each of the areas they belong to. </p>
<p>The metric maps are *not* included here for convenience, call m_metricMaps.getAs3DScene(). The previous contents of "objs" will be discarded </p>

</div>
</div>
<a class="anchor" id="a1e6d76874e063f203e15e37c1c1181d4"></a><!-- doxytag: member="mrpt::hmtslam::CLocalMetricHypothesis::getCurrentPose" ref="a1e6d76874e063f203e15e37c1c1181d4" args="(const size_t &amp;particleIdx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">CPose3D</a>* mrpt::hmtslam::CLocalMetricHypothesis::getCurrentPose </td>
          <td>(</td>
          <td class="paramtype">const size_t &amp;&#160;</td>
          <td class="paramname"> <em>particleIdx</em>&#160;)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the i'th particle hypothesis for the current robot pose. </p>

</div>
</div>
<a class="anchor" id="a46e638e17923e4edd02c82032d928a1f"></a><!-- doxytag: member="mrpt::hmtslam::CLocalMetricHypothesis::getCurrentPose" ref="a46e638e17923e4edd02c82032d928a1f" args="(const size_t &amp;particleIdx) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">CPose3D</a>* mrpt::hmtslam::CLocalMetricHypothesis::getCurrentPose </td>
          <td>(</td>
          <td class="paramtype">const size_t &amp;&#160;</td>
          <td class="paramname"> <em>particleIdx</em>&#160;)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the i'th particle hypothesis for the current robot pose. </p>

</div>
</div>
<a class="anchor" id="a900ef425bec6c5c83e76b966e91791e4"></a><!-- doxytag: member="mrpt::hmtslam::CLocalMetricHypothesis::getMeans" ref="a900ef425bec6c5c83e76b966e91791e4" args="(std::map&lt; TPoseID, CPose3D &gt; &amp;outList) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hmtslam::CLocalMetricHypothesis::getMeans </td>
          <td>(</td>
          <td class="paramtype">std::map&lt; <a class="el" href="namespacemrpt_1_1hmtslam.html#afc45e3c745da87655acd25af131343bf">TPoseID</a>, <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">CPose3D</a> &gt; &amp;&#160;</td>
          <td class="paramname"> <em>outList</em>&#160;)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the mean of each robot pose in this LMH, as computed from the set of particles. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1hmtslam_1_1_c_local_metric_hypothesis.html#a4ba3c721e2267263ffdc71fc135eb51c" title="Returns the mean and covariance of each robot pose in this LMH, as computed from the set of particles...">getPathParticles</a>, <a class="el" href="classmrpt_1_1hmtslam_1_1_c_local_metric_hypothesis.html#ab7bb93d7896dae88dfb3bce6583a8cda" title="Returns the pose PDF of some pose relative to some other pose ID (both must be part of the the LMH)...">getRelativePose</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a4ba3c721e2267263ffdc71fc135eb51c"></a><!-- doxytag: member="mrpt::hmtslam::CLocalMetricHypothesis::getPathParticles" ref="a4ba3c721e2267263ffdc71fc135eb51c" args="(std::map&lt; TPoseID, CPose3DPDFParticles &gt; &amp;outList) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hmtslam::CLocalMetricHypothesis::getPathParticles </td>
          <td>(</td>
          <td class="paramtype">std::map&lt; <a class="el" href="namespacemrpt_1_1hmtslam.html#afc45e3c745da87655acd25af131343bf">TPoseID</a>, <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_p_d_f_particles.html">CPose3DPDFParticles</a> &gt; &amp;&#160;</td>
          <td class="paramname"> <em>outList</em>&#160;)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the mean and covariance of each robot pose in this LMH, as computed from the set of particles. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1hmtslam_1_1_c_local_metric_hypothesis.html#a900ef425bec6c5c83e76b966e91791e4" title="Returns the mean of each robot pose in this LMH, as computed from the set of particles.">getMeans</a>, <a class="el" href="classmrpt_1_1hmtslam_1_1_c_local_metric_hypothesis.html#afa8b95e48dd493f10d7be8bfe15b8237" title="Returns the mean and covariance of each robot pose in this LMH, as computed from the set of particles...">getPoseParticles</a> </dd></dl>

</div>
</div>
<a class="anchor" id="afa8b95e48dd493f10d7be8bfe15b8237"></a><!-- doxytag: member="mrpt::hmtslam::CLocalMetricHypothesis::getPoseParticles" ref="afa8b95e48dd493f10d7be8bfe15b8237" args="(const TPoseID &amp;poseID, CPose3DPDFParticles &amp;outPDF) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hmtslam::CLocalMetricHypothesis::getPoseParticles </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="namespacemrpt_1_1hmtslam.html#afc45e3c745da87655acd25af131343bf">TPoseID</a> &amp;&#160;</td>
          <td class="paramname"> <em>poseID</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_p_d_f_particles.html">CPose3DPDFParticles</a> &amp;&#160;</td>
          <td class="paramname"> <em>outPDF</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the mean and covariance of each robot pose in this LMH, as computed from the set of particles. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1hmtslam_1_1_c_local_metric_hypothesis.html#a900ef425bec6c5c83e76b966e91791e4" title="Returns the mean of each robot pose in this LMH, as computed from the set of particles.">getMeans</a>, <a class="el" href="classmrpt_1_1hmtslam_1_1_c_local_metric_hypothesis.html#a4ba3c721e2267263ffdc71fc135eb51c" title="Returns the mean and covariance of each robot pose in this LMH, as computed from the set of particles...">getPathParticles</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ab7bb93d7896dae88dfb3bce6583a8cda"></a><!-- doxytag: member="mrpt::hmtslam::CLocalMetricHypothesis::getRelativePose" ref="ab7bb93d7896dae88dfb3bce6583a8cda" args="(const TPoseID &amp;reference, const TPoseID &amp;pose, CPose3DPDFParticles &amp;outPDF) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hmtslam::CLocalMetricHypothesis::getRelativePose </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="namespacemrpt_1_1hmtslam.html#afc45e3c745da87655acd25af131343bf">TPoseID</a> &amp;&#160;</td>
          <td class="paramname"> <em>reference</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="namespacemrpt_1_1hmtslam.html#afc45e3c745da87655acd25af131343bf">TPoseID</a> &amp;&#160;</td>
          <td class="paramname"> <em>pose</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_p_d_f_particles.html">CPose3DPDFParticles</a> &amp;&#160;</td>
          <td class="paramname"> <em>outPDF</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the pose PDF of some pose relative to some other pose ID (both must be part of the the LMH). </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1hmtslam_1_1_c_local_metric_hypothesis.html#a900ef425bec6c5c83e76b966e91791e4" title="Returns the mean of each robot pose in this LMH, as computed from the set of particles.">getMeans</a>, <a class="el" href="classmrpt_1_1hmtslam_1_1_c_local_metric_hypothesis.html#afa8b95e48dd493f10d7be8bfe15b8237" title="Returns the mean and covariance of each robot pose in this LMH, as computed from the set of particles...">getPoseParticles</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ab0a19d848da91ea2ce401e6436f21862"></a><!-- doxytag: member="mrpt::hmtslam::CLocalMetricHypothesis::GetRuntimeClass" ref="ab0a19d848da91ea2ce401e6436f21862" 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::hmtslam::CLocalMetricHypothesis::GetRuntimeClass </td>
          <td>(</td>
          <td class="paramname">&#160;)</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_1utils_1_1_c_serializable.html#a6861b16159daafd1651d6e0d27f39c58">mrpt::utils::CSerializable</a>.</p>

</div>
</div>
<a class="anchor" id="a78b180315cc2053366ffc323d70c47d3"></a><!-- doxytag: member="mrpt::hmtslam::CLocalMetricHypothesis::prediction_and_update_pfAuxiliaryPFOptimal" ref="a78b180315cc2053366ffc323d70c47d3" args="(const mrpt::slam::CActionCollection *action, const mrpt::slam::CSensoryFrame *observation, const bayes::CParticleFilter::TParticleFilterOptions &amp;PF_options)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hmtslam::CLocalMetricHypothesis::prediction_and_update_pfAuxiliaryPFOptimal </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_action_collection.html">mrpt::slam::CActionCollection</a> *&#160;</td>
          <td class="paramname"> <em>action</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html">mrpt::slam::CSensoryFrame</a> *&#160;</td>
          <td class="paramname"> <em>observation</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1bayes_1_1_c_particle_filter_1_1_t_particle_filter_options.html">bayes::CParticleFilter::TParticleFilterOptions</a> &amp;&#160;</td>
          <td class="paramname"> <em>PF_options</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The PF algorithm implementation. </p>

<p>Reimplemented from <a class="el" href="classmrpt_1_1bayes_1_1_c_particle_filter_capable.html#aeeccd563c344607e4cc96272c9817bd8">mrpt::bayes::CParticleFilterCapable</a>.</p>

</div>
</div>
<a class="anchor" id="a0ff4807b7f76022508be551a47fdfb4a"></a><!-- doxytag: member="mrpt::hmtslam::CLocalMetricHypothesis::prediction_and_update_pfOptimalProposal" ref="a0ff4807b7f76022508be551a47fdfb4a" args="(const mrpt::slam::CActionCollection *action, const mrpt::slam::CSensoryFrame *observation, const bayes::CParticleFilter::TParticleFilterOptions &amp;PF_options)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hmtslam::CLocalMetricHypothesis::prediction_and_update_pfOptimalProposal </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_action_collection.html">mrpt::slam::CActionCollection</a> *&#160;</td>
          <td class="paramname"> <em>action</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html">mrpt::slam::CSensoryFrame</a> *&#160;</td>
          <td class="paramname"> <em>observation</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1bayes_1_1_c_particle_filter_1_1_t_particle_filter_options.html">bayes::CParticleFilter::TParticleFilterOptions</a> &amp;&#160;</td>
          <td class="paramname"> <em>PF_options</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The PF algorithm implementation. </p>

<p>Reimplemented from <a class="el" href="classmrpt_1_1bayes_1_1_c_particle_filter_capable.html#a0094d5dd370db9a037c67dde87649911">mrpt::bayes::CParticleFilterCapable</a>.</p>

</div>
</div>
<a class="anchor" id="a22552cd4b0cb997f5c49db70747270d4"></a><!-- doxytag: member="mrpt::hmtslam::CLocalMetricHypothesis::rebuildMetricMaps" ref="a22552cd4b0cb997f5c49db70747270d4" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hmtslam::CLocalMetricHypothesis::rebuildMetricMaps </td>
          <td>(</td>
          <td class="paramname">&#160;)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Rebuild the metric maps of all particles from the observations and their estimated poses. </p>

</div>
</div>
<a class="anchor" id="a89cceed13077158b256d7e466dace4b4"></a><!-- doxytag: member="mrpt::hmtslam::CLocalMetricHypothesis::removeAreaFromLMH" ref="a89cceed13077158b256d7e466dace4b4" args="(const CHMHMapNode::TNodeID areaID)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hmtslam::CLocalMetricHypothesis::removeAreaFromLMH </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1hmtslam_1_1_c_h_m_h_map_node.html#a4320fd5748b07f6fdb6dd1bdc5b3920e">CHMHMapNode::TNodeID</a>&#160;</td>
          <td class="paramname"> <em>areaID</em>&#160;)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Removes a given area from the LMH:</p>
<ul>
<li>The corresponding node in the HMT map is updated with the robot poses &amp; SFs in the LMH. </li>
</ul>
</p>
<ul>
<li>Robot poses belonging to that area are removed from:<ul>
<li>the particles.</li>
<li>the graph partitioner.</li>
<li>the list of SFs.</li>
<li>the list m_nodeIDmemberships.</li>
</ul>
</li>
<li>m_neighbors is updated.</li>
</ul>
<p>The weights of all particles are changed to remove the effects of the removed metric observations.</p>
<ul>
<li>After calling this the metric maps should be updated.</li>
</ul>
<p>This method internally calls updateAreaFromLMH </p>

</div>
</div>
<a class="anchor" id="ac267ba60aa7a869d06c632a2a0550677"></a><!-- doxytag: member="mrpt::hmtslam::CLocalMetricHypothesis::updateAreaFromLMH" ref="ac267ba60aa7a869d06c632a2a0550677" args="(const CHMHMapNode::TNodeID areaID, bool eraseSFsFromLMH=false)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::hmtslam::CLocalMetricHypothesis::updateAreaFromLMH </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1hmtslam_1_1_c_h_m_h_map_node.html#a4320fd5748b07f6fdb6dd1bdc5b3920e">CHMHMapNode::TNodeID</a>&#160;</td>
          <td class="paramname"> <em>areaID</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"> <em>eraseSFsFromLMH</em> = <code>false</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The corresponding node in the HMT map is updated with the robot poses &amp; SFs in the LMH: the poses are referenced to the area's reference poseID, such as that reference is at the origin. </p>
<p>If eraseSFsFromLMH=true, the sensoryframes are moved rather than copied to the area, and removed from the LMH. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>The critical section m_map_cs is locked internally, unlock it before calling this. </dd></dl>

</div>
</div>
<hr/><h2>Friends And Related Function Documentation</h2>
<a class="anchor" id="ac34a721ee598515baa4048b339f41013"></a><!-- doxytag: member="mrpt::hmtslam::CLocalMetricHypothesis::CLSLAM_RBPF_2DLASER" ref="ac34a721ee598515baa4048b339f41013" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">friend class HMTSLAM_IMPEXP <a class="el" href="classmrpt_1_1hmtslam_1_1_c_l_s_l_a_m___r_b_p_f__2_d_l_a_s_e_r.html">CLSLAM_RBPF_2DLASER</a><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_local_metric_hypothesis_8h_source.html#l00096">96</a> of file <a class="el" href="_c_local_metric_hypothesis_8h_source.html">CLocalMetricHypothesis.h</a>.</p>

</div>
</div>
<hr/><h2>Member Data Documentation</h2>
<a class="anchor" id="aec8abd058803e0bf4f3298a4412981f2"></a><!-- doxytag: member="mrpt::hmtslam::CLocalMetricHypothesis::_init_CLocalMetricHypothesis" ref="aec8abd058803e0bf4f3298a4412981f2" 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_1hmtslam_1_1_c_local_metric_hypothesis.html#aec8abd058803e0bf4f3298a4412981f2">mrpt::hmtslam::CLocalMetricHypothesis::_init_CLocalMetricHypothesis</a><code> [static, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

</div>
</div>
<a class="anchor" id="a11ea61f54e94e408b5279ea8a785b3f4"></a><!-- doxytag: member="mrpt::hmtslam::CLocalMetricHypothesis::classCLocalMetricHypothesis" ref="a11ea61f54e94e408b5279ea8a785b3f4" 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_1hmtslam_1_1_c_local_metric_hypothesis.html#a11ea61f54e94e408b5279ea8a785b3f4">mrpt::hmtslam::CLocalMetricHypothesis::classCLocalMetricHypothesis</a><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

</div>
</div>
<a class="anchor" id="a400f9847442c0e95615c9c0382d7d606"></a><!-- doxytag: member="mrpt::hmtslam::CLocalMetricHypothesis::classinfo" ref="a400f9847442c0e95615c9c0382d7d606" 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_1hmtslam_1_1_c_local_metric_hypothesis.html#a400f9847442c0e95615c9c0382d7d606">mrpt::hmtslam::CLocalMetricHypothesis::classinfo</a><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

</div>
</div>
<a class="anchor" id="a1683692cc38d5b813b5dcf35aabecf3d"></a><!-- doxytag: member="mrpt::hmtslam::CLocalMetricHypothesis::m_accumRobotMovement" ref="a1683692cc38d5b813b5dcf35aabecf3d" 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">CActionRobotMovement2D</a> <a class="el" href="classmrpt_1_1hmtslam_1_1_c_local_metric_hypothesis.html#a1683692cc38d5b813b5dcf35aabecf3d">mrpt::hmtslam::CLocalMetricHypothesis::m_accumRobotMovement</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Used in <a class="el" href="classmrpt_1_1hmtslam_1_1_c_l_s_l_a_m___r_b_p_f__2_d_l_a_s_e_r.html" title="Implements a 2D local SLAM method based on a RBPF over an occupancy grid map.">CLSLAM_RBPF_2DLASER</a>. </p>

<p>Definition at line <a class="el" href="_c_local_metric_hypothesis_8h_source.html#l00125">125</a> of file <a class="el" href="_c_local_metric_hypothesis_8h_source.html">CLocalMetricHypothesis.h</a>.</p>

</div>
</div>
<a class="anchor" id="a8ed7c3c48ce94c1310a19a59adde5b38"></a><!-- doxytag: member="mrpt::hmtslam::CLocalMetricHypothesis::m_accumRobotMovementIsValid" ref="a8ed7c3c48ce94c1310a19a59adde5b38" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classmrpt_1_1hmtslam_1_1_c_local_metric_hypothesis.html#a8ed7c3c48ce94c1310a19a59adde5b38">mrpt::hmtslam::CLocalMetricHypothesis::m_accumRobotMovementIsValid</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Used in <a class="el" href="classmrpt_1_1hmtslam_1_1_c_l_s_l_a_m___r_b_p_f__2_d_l_a_s_e_r.html" title="Implements a 2D local SLAM method based on a RBPF over an occupancy grid map.">CLSLAM_RBPF_2DLASER</a>. </p>

<p>Definition at line <a class="el" href="_c_local_metric_hypothesis_8h_source.html#l00126">126</a> of file <a class="el" href="_c_local_metric_hypothesis_8h_source.html">CLocalMetricHypothesis.h</a>.</p>

</div>
</div>
<a class="anchor" id="a1baff49d6df7e31ad47308f9d4dcf411"></a><!-- doxytag: member="mrpt::hmtslam::CLocalMetricHypothesis::m_areasPendingTBI" ref="a1baff49d6df7e31ad47308f9d4dcf411" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1utils_1_1list__searchable.html">TNodeIDList</a> <a class="el" href="classmrpt_1_1hmtslam_1_1_c_local_metric_hypothesis.html#a1baff49d6df7e31ad47308f9d4dcf411">mrpt::hmtslam::CLocalMetricHypothesis::m_areasPendingTBI</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The list of area IDs waiting to be processed by the TBI (topological bayesian inference) engines to search for potential loop-closures. Set in <a class="el" href="classmrpt_1_1hmtslam_1_1_c_h_m_t_s_l_a_m.html#a162ff392270839bc8c37a771308ac820" title="No critical section locks are assumed at the entrance of this method.">CHMTSLAM::LSLAM_process_message_from_AA</a>, read in. </p>

<p>Definition at line <a class="el" href="_c_local_metric_hypothesis_8h_source.html#l00119">119</a> of file <a class="el" href="_c_local_metric_hypothesis_8h_source.html">CLocalMetricHypothesis.h</a>.</p>

</div>
</div>
<a class="anchor" id="ae2172d3ffdfeeefe6183f6dca598f960"></a><!-- doxytag: member="mrpt::hmtslam::CLocalMetricHypothesis::m_currentRobotPose" ref="ae2172d3ffdfeeefe6183f6dca598f960" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="namespacemrpt_1_1hmtslam.html#afc45e3c745da87655acd25af131343bf">TPoseID</a> <a class="el" href="classmrpt_1_1hmtslam_1_1_c_local_metric_hypothesis.html#ae2172d3ffdfeeefe6183f6dca598f960">mrpt::hmtslam::CLocalMetricHypothesis::m_currentRobotPose</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The current robot pose (its global unique ID) for this hypothesis. </p>

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

</div>
</div>
<a class="anchor" id="a559c9d5b9fcc9325ecd95f722fbe682f"></a><!-- doxytag: member="mrpt::hmtslam::CLocalMetricHypothesis::m_ID" ref="a559c9d5b9fcc9325ecd95f722fbe682f" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="namespacemrpt_1_1hmtslam.html#a6a8c7a5cb874400f4df9d1fd6b6ff9ee">THypothesisID</a> <a class="el" href="classmrpt_1_1hmtslam_1_1_c_local_metric_hypothesis.html#a559c9d5b9fcc9325ecd95f722fbe682f">mrpt::hmtslam::CLocalMetricHypothesis::m_ID</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The unique ID of the hypothesis (Used for accessing mrpt::slam::CHierarchicalMHMap). </p>

<p>Definition at line <a class="el" href="_c_local_metric_hypothesis_8h_source.html#l00111">111</a> of file <a class="el" href="_c_local_metric_hypothesis_8h_source.html">CLocalMetricHypothesis.h</a>.</p>

</div>
</div>
<a class="anchor" id="a3fca93101fbbd36f8542deb960231f53"></a><!-- doxytag: member="mrpt::hmtslam::CLocalMetricHypothesis::m_lock" ref="a3fca93101fbbd36f8542deb960231f53" 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">synch::CCriticalSection</a> <a class="el" href="classmrpt_1_1hmtslam_1_1_c_local_metric_hypothesis.html#a3fca93101fbbd36f8542deb960231f53">mrpt::hmtslam::CLocalMetricHypothesis::m_lock</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Critical section for threads signaling they are working with the LMH. </p>

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

</div>
</div>
<a class="anchor" id="a3b7c38915660b84a3b3de6a80b5b4d97"></a><!-- doxytag: member="mrpt::hmtslam::CLocalMetricHypothesis::m_log_w" ref="a3b7c38915660b84a3b3de6a80b5b4d97" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double <a class="el" href="classmrpt_1_1hmtslam_1_1_c_local_metric_hypothesis.html#a3b7c38915660b84a3b3de6a80b5b4d97">mrpt::hmtslam::CLocalMetricHypothesis::m_log_w</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Log-weight of this hypothesis. </p>

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

</div>
</div>
<a class="anchor" id="adcde7731917b103e6e4b460c1627b215"></a><!-- doxytag: member="mrpt::hmtslam::CLocalMetricHypothesis::m_log_w_metric_history" ref="adcde7731917b103e6e4b460c1627b215" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt;std::map&lt;<a class="el" href="namespacemrpt_1_1hmtslam.html#afc45e3c745da87655acd25af131343bf">TPoseID</a>,double&gt; &gt; <a class="el" href="classmrpt_1_1hmtslam_1_1_c_local_metric_hypothesis.html#adcde7731917b103e6e4b460c1627b215">mrpt::hmtslam::CLocalMetricHypothesis::m_log_w_metric_history</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The historic log-weights of the metric observations inserted in this LMH, for each particle. </p>

<p>Definition at line <a class="el" href="_c_local_metric_hypothesis_8h_source.html#l00122">122</a> of file <a class="el" href="_c_local_metric_hypothesis_8h_source.html">CLocalMetricHypothesis.h</a>.</p>

</div>
</div>
<a class="anchor" id="a8fabfc4450cff62dfe7a46394238dac2"></a><!-- doxytag: member="mrpt::hmtslam::CLocalMetricHypothesis::m_maxLikelihood" ref="a8fabfc4450cff62dfe7a46394238dac2" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt;double&gt; <a class="el" href="classmrpt_1_1hmtslam_1_1_c_local_metric_hypothesis.html#a8fabfc4450cff62dfe7a46394238dac2">mrpt::hmtslam::CLocalMetricHypothesis::m_maxLikelihood</a><code> [mutable, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Auxiliary variable used in the "pfAuxiliaryPFOptimal" algorithm. </p>

<p>Definition at line <a class="el" href="_c_local_metric_hypothesis_8h_source.html#l00243">243</a> of file <a class="el" href="_c_local_metric_hypothesis_8h_source.html">CLocalMetricHypothesis.h</a>.</p>

</div>
</div>
<a class="anchor" id="aed755bb8891d2a1dcd96e0b2a17e7db0"></a><!-- doxytag: member="mrpt::hmtslam::CLocalMetricHypothesis::m_movementDrawMaximumLikelihood" ref="aed755bb8891d2a1dcd96e0b2a17e7db0" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="namespacemrpt_1_1poses.html#ab321f17adba329f3e24d41d533408739">StdVector_CPose2D</a> <a class="el" href="classmrpt_1_1hmtslam_1_1_c_local_metric_hypothesis.html#aed755bb8891d2a1dcd96e0b2a17e7db0">mrpt::hmtslam::CLocalMetricHypothesis::m_movementDrawMaximumLikelihood</a><code> [mutable, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Auxiliary variable used in the "pfAuxiliaryPFOptimal" algorithm. </p>

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

</div>
</div>
<a class="anchor" id="adb3d4f2b5e1ab97d40b9bad40e9a657f"></a><!-- doxytag: member="mrpt::hmtslam::CLocalMetricHypothesis::m_movementDraws" ref="adb3d4f2b5e1ab97d40b9bad40e9a657f" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt;CPose2D,Eigen::aligned_allocator&lt;CPose2D&gt; &gt; <a class="el" href="classmrpt_1_1hmtslam_1_1_c_local_metric_hypothesis.html#adb3d4f2b5e1ab97d40b9bad40e9a657f">mrpt::hmtslam::CLocalMetricHypothesis::m_movementDraws</a><code> [mutable, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Auxiliary variable used in the "pfAuxiliaryPFOptimal" algorithm. </p>

<p>Definition at line <a class="el" href="_c_local_metric_hypothesis_8h_source.html#l00247">247</a> of file <a class="el" href="_c_local_metric_hypothesis_8h_source.html">CLocalMetricHypothesis.h</a>.</p>

</div>
</div>
<a class="anchor" id="adf3b8099493296b90d5d8e7ffec620da"></a><!-- doxytag: member="mrpt::hmtslam::CLocalMetricHypothesis::m_movementDrawsIdx" ref="adf3b8099493296b90d5d8e7ffec620da" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int <a class="el" href="classmrpt_1_1hmtslam_1_1_c_local_metric_hypothesis.html#adf3b8099493296b90d5d8e7ffec620da">mrpt::hmtslam::CLocalMetricHypothesis::m_movementDrawsIdx</a><code> [mutable, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Auxiliary variable used in the "pfAuxiliaryPFOptimal" algorithm. </p>

<p>Definition at line <a class="el" href="_c_local_metric_hypothesis_8h_source.html#l00251">251</a> of file <a class="el" href="_c_local_metric_hypothesis_8h_source.html">CLocalMetricHypothesis.h</a>.</p>

</div>
</div>
<a class="anchor" id="a7bda1e6774884134f9b34d220eccd5df"></a><!-- doxytag: member="mrpt::hmtslam::CLocalMetricHypothesis::m_neighbors" ref="a7bda1e6774884134f9b34d220eccd5df" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="namespacemrpt_1_1hmtslam.html#a5bcc3f9cba9de3b8239a394d63c3ce66">TNodeIDSet</a> <a class="el" href="classmrpt_1_1hmtslam_1_1_c_local_metric_hypothesis.html#a7bda1e6774884134f9b34d220eccd5df">mrpt::hmtslam::CLocalMetricHypothesis::m_neighbors</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The list of all areas sourronding the current one (this includes the current area itself). </p>

<p>Definition at line <a class="el" href="_c_local_metric_hypothesis_8h_source.html#l00115">115</a> of file <a class="el" href="_c_local_metric_hypothesis_8h_source.html">CLocalMetricHypothesis.h</a>.</p>

</div>
</div>
<a class="anchor" id="ad7adc8d8a5e7a04334a50558b051aa15"></a><!-- doxytag: member="mrpt::hmtslam::CLocalMetricHypothesis::m_nodeIDmemberships" ref="ad7adc8d8a5e7a04334a50558b051aa15" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::map&lt;<a class="el" href="namespacemrpt_1_1hmtslam.html#afc45e3c745da87655acd25af131343bf">TPoseID</a>,<a class="el" href="classmrpt_1_1hmtslam_1_1_c_h_m_h_map_node.html#a4320fd5748b07f6fdb6dd1bdc5b3920e">CHMHMapNode::TNodeID</a>&gt; <a class="el" href="classmrpt_1_1hmtslam_1_1_c_local_metric_hypothesis.html#ad7adc8d8a5e7a04334a50558b051aa15">mrpt::hmtslam::CLocalMetricHypothesis::m_nodeIDmemberships</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The hybrid map node membership for each robot pose. </p>

<p>Definition at line <a class="el" href="_c_local_metric_hypothesis_8h_source.html#l00116">116</a> of file <a class="el" href="_c_local_metric_hypothesis_8h_source.html">CLocalMetricHypothesis.h</a>.</p>

</div>
</div>
<a class="anchor" id="acb6413f6bc48d29770cc179eab5ee0a3"></a><!-- doxytag: member="mrpt::hmtslam::CLocalMetricHypothesis::m_parent" ref="acb6413f6bc48d29770cc179eab5ee0a3" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structmrpt_1_1utils_1_1safe__ptr.html">safe_ptr</a>&lt;<a class="el" href="classmrpt_1_1hmtslam_1_1_c_h_m_t_s_l_a_m.html">CHMTSLAM</a>&gt; <a class="el" href="classmrpt_1_1hmtslam_1_1_c_local_metric_hypothesis.html#acb6413f6bc48d29770cc179eab5ee0a3">mrpt::hmtslam::CLocalMetricHypothesis::m_parent</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>For quick access to our parent object. </p>

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

</div>
</div>
<a class="anchor" id="abc11654124437b1de2c11f11b6d4de42"></a><!-- doxytag: member="mrpt::hmtslam::CLocalMetricHypothesis::m_pfAuxiliaryPFOptimal_estimatedProb" ref="abc11654124437b1de2c11f11b6d4de42" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structmrpt_1_1dynamicsize__vector.html">vector_double</a> <a class="el" href="classmrpt_1_1hmtslam_1_1_c_local_metric_hypothesis.html#abc11654124437b1de2c11f11b6d4de42">mrpt::hmtslam::CLocalMetricHypothesis::m_pfAuxiliaryPFOptimal_estimatedProb</a><code> [mutable, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Auxiliary variable used in the "pfAuxiliaryPFOptimal" algorithm. </p>

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

</div>
</div>
<a class="anchor" id="af701aeb4da0c4c13ae8e288e92389ccf"></a><!-- doxytag: member="mrpt::hmtslam::CLocalMetricHypothesis::m_posesPendingAddPartitioner" ref="af701aeb4da0c4c13ae8e288e92389ccf" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="namespacemrpt_1_1hmtslam.html#aab03d6a98830912eb1b9397f12a1adbc">TPoseIDList</a> <a class="el" href="classmrpt_1_1hmtslam_1_1_c_local_metric_hypothesis.html#af701aeb4da0c4c13ae8e288e92389ccf">mrpt::hmtslam::CLocalMetricHypothesis::m_posesPendingAddPartitioner</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The list of poseIDs waiting to be added to the graph partitioner, what happens in the LSLAM thread main loop. </p>

<p>Definition at line <a class="el" href="_c_local_metric_hypothesis_8h_source.html#l00118">118</a> of file <a class="el" href="_c_local_metric_hypothesis_8h_source.html">CLocalMetricHypothesis.h</a>.</p>

</div>
</div>
<a class="anchor" id="a3f3981f549cb1cef110fc034bd3bea8f"></a><!-- doxytag: member="mrpt::hmtslam::CLocalMetricHypothesis::m_robotPosesGraph" ref="a3f3981f549cb1cef110fc034bd3bea8f" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct <a class="el" href="structmrpt_1_1hmtslam_1_1_c_local_metric_hypothesis_1_1_t_robot_poses_partitioning.html">mrpt::hmtslam::CLocalMetricHypothesis::TRobotPosesPartitioning</a>  <a class="el" href="classmrpt_1_1hmtslam_1_1_c_local_metric_hypothesis.html#a3f3981f549cb1cef110fc034bd3bea8f">mrpt::hmtslam::CLocalMetricHypothesis::m_robotPosesGraph</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a9a921aef54b49bab62dc18e20913f44e"></a><!-- doxytag: member="mrpt::hmtslam::CLocalMetricHypothesis::m_SFs" ref="a9a921aef54b49bab62dc18e20913f44e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::map&lt;<a class="el" href="namespacemrpt_1_1hmtslam.html#afc45e3c745da87655acd25af131343bf">TPoseID</a>,<a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html">CSensoryFrame</a>&gt; <a class="el" href="classmrpt_1_1hmtslam_1_1_c_local_metric_hypothesis.html#a9a921aef54b49bab62dc18e20913f44e">mrpt::hmtslam::CLocalMetricHypothesis::m_SFs</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The SF gathered at each robot pose. </p>

<p>Definition at line <a class="el" href="_c_local_metric_hypothesis_8h_source.html#l00117">117</a> of file <a class="el" href="_c_local_metric_hypothesis_8h_source.html">CLocalMetricHypothesis.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.2</a> for MRPT 0.9.4 SVN: at Mon Jan 10 22:30:30 UTC 2011</td><td></td> <td width="100"> </td> <td width="150">  </td></tr> </table> </body></html>