Sophie

Sophie

distrib > Fedora > 14 > x86_64 > by-pkgid > e6f1a3debfddb2a6cccaab627266a0ea > files > 4474

mrpt-doc-0.9.0-0.5.fc14.x86_64.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::slam::CMetricMapBuilderICP 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.6.2-20100208 -->
<script type="text/javascript"><!--
var searchBox = new SearchBox("searchBox", "search",false,'Search');
--></script>
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="pages.html"><span>Related&nbsp;Pages</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">
        <img id="MSearchSelect" src="search/search.png"
             onmouseover="return searchBox.OnSearchSelectShow()"
             onmouseout="return searchBox.OnSearchSelectHide()"
             alt=""/>
        <input type="text" id="MSearchField" value="Search" accesskey="S"
             onfocus="searchBox.OnSearchFieldFocus(true)" 
             onblur="searchBox.OnSearchFieldFocus(false)" 
             onkeyup="searchBox.OnSearchFieldChange(event)"/>
        <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
        </div>
      </li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
      <li><a href="classes.html"><span>Class&nbsp;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    </ul>
  </div>
  <div class="navpath"><a class="el" href="namespacemrpt.html">mrpt</a>::<a class="el" href="namespacemrpt_1_1slam.html">slam</a>::<a class="el" href="classmrpt_1_1slam_1_1_c_metric_map_builder_i_c_p.html">CMetricMapBuilderICP</a>
  </div>
</div>
<div class="contents">
<h1>mrpt::slam::CMetricMapBuilderICP Class Reference</h1><!-- doxytag: class="mrpt::slam::CMetricMapBuilderICP" --><!-- doxytag: inherits="mrpt::slam::CMetricMapBuilder" -->
<p>A class for very simple 2D SLAM based on ICP.  
<a href="#_details">More...</a></p>

<p><code>#include &lt;<a class="el" href="_c_metric_map_builder_i_c_p_8h_source.html">mrpt/slam/CMetricMapBuilderICP.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for mrpt::slam::CMetricMapBuilderICP:</div>
<div class="dynsection">
<div class="center"><img src="classmrpt_1_1slam_1_1_c_metric_map_builder_i_c_p__inherit__graph.png" border="0" usemap="#mrpt_1_1slam_1_1_c_metric_map_builder_i_c_p_inherit__map" alt="Inheritance graph"/></div>
<map name="mrpt_1_1slam_1_1_c_metric_map_builder_i_c_p_inherit__map" id="mrpt_1_1slam_1_1_c_metric_map_builder_i_c_p_inherit__map">
<area shape="rect" id="node2" href="classmrpt_1_1slam_1_1_c_metric_map_builder.html" title="This virtual class is the base for SLAM implementations." alt="" coords="17,83,220,112"/><area shape="rect" id="node4" href="classmrpt_1_1utils_1_1_c_debug_output_capable.html" title="This base class provides a common printf&#45;like method to send debug information to..." alt="" coords="8,5,229,35"/></map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for mrpt::slam::CMetricMapBuilderICP:</div>
<div class="dynsection">
<div class="center"><img src="classmrpt_1_1slam_1_1_c_metric_map_builder_i_c_p__coll__graph.png" border="0" usemap="#mrpt_1_1slam_1_1_c_metric_map_builder_i_c_p_coll__map" alt="Collaboration graph"/></div>
<map name="mrpt_1_1slam_1_1_c_metric_map_builder_i_c_p_coll__map" id="mrpt_1_1slam_1_1_c_metric_map_builder_i_c_p_coll__map">
<area shape="rect" id="node2" href="classmrpt_1_1slam_1_1_c_metric_map_builder.html" title="This virtual class is the base for SLAM implementations." alt="" coords="2781,59,2984,88"/><area shape="rect" id="node4" href="classmrpt_1_1utils_1_1_c_debug_output_capable.html" title="This base class provides a common printf&#45;like method to send debug information to..." alt="" coords="2277,5,2499,35"/><area shape="rect" id="node6" href="structmrpt_1_1slam_1_1_c_metric_map_builder_1_1_t_options.html" title="Options for the algorithm." alt="" coords="2256,59,2520,88"/><area shape="rect" id="node8" href="classmrpt_1_1utils_1_1_c_list_of_classes.html" title="A list (actually based on a std::set) of MRPT classes, capable of keeping any class..." alt="" coords="1713,45,1895,75"/><area shape="rect" id="node12" href="structmrpt_1_1utils_1_1_t_runtime_class_id.html" title="A structure that holds runtime class type information." alt="" coords="7,209,196,239"/><area shape="rect" id="node14" href="classmrpt_1_1utils_1_1_c_object.html" title="The virtual base class of all MRPT classes with a unified RTTI system." alt="" coords="496,565,632,595"/><area shape="rect" id="node32" href="classmrpt_1_1slam_1_1_c_simple_map.html" title="This class stores a sequence of &lt;Probabilistic Pose,SensoryFrame&gt; pairs, thus..." alt="" coords="1721,145,1887,175"/><area shape="rect" id="node34" href="classmrpt_1_1utils_1_1_c_serializable.html" title="The virtual base class which provides a unified interface for all persistent objects..." alt="" coords="1191,607,1356,636"/><area shape="rect" id="node18" href="classmrpt_1_1synch_1_1_c_critical_section.html" title="This class provides simple critical sections functionality." alt="" coords="2291,317,2485,347"/><area shape="rect" id="node105" href="classmrpt_1_1poses_1_1_c_robot2_d_pose_estimator.html" title="A simple filter to estimate and extrapolate the robot 2D (x,y,phi) pose from asynchronous..." alt="" coords="2760,797,3005,827"/><area shape="rect" id="node20" href="classmrpt_1_1utils_1_1_c_stream.html" title="This base class is used to provide a unified interface to files,memory buffers,...." alt="" coords="1735,352,1873,381"/><area shape="rect" id="node22" title="STL class." alt="" coords="1764,239,1844,268"/><area shape="rect" id="node24" title="STL class." alt="" coords="1191,252,1356,281"/><area shape="rect" id="node26" href="classmrpt_1_1utils_1_1_c_referenced_mem_block.html" title="Represents a memory block (via &quot;void*&quot;) that can be shared between several..." alt="" coords="1691,299,1917,328"/><area shape="rect" id="node28" href="classstlplus_1_1smart__ptr.html" title="stlplus::smart_ptr\&lt; vector_byte \&gt;" alt="" coords="1167,307,1380,336"/><area shape="rect" id="node30" href="classstlplus_1_1smart__ptr__base.html" title="stlplus::smart_ptr_base\&lt; vector_byte, constructor_copy\&lt; vector_byte \&gt; \&gt;" alt="" coords="339,245,789,275"/><area shape="rect" id="node79" href="classmrpt_1_1poses_1_1_c_pose_or_point.html" title="The base class for 2D points, 3D points, 2D poses and 3D poses." alt="" coords="1713,664,1895,693"/><area shape="rect" id="node84" href="classmrpt_1_1slam_1_1_c_metric_map.html" title="Declares a virtual base class for all metric maps storage classes." alt="" coords="1723,771,1885,800"/><area shape="rect" id="node39" href="structmrpt_1_1utils_1_1_c_l_a_s_s_i_n_i_t.html" title="Auxiliary structure used for CObject&#45;based RTTI." alt="" coords="1195,199,1352,228"/><area shape="rect" id="node42" href="classmrpt_1_1slam_1_1_c_i_c_p_1_1_t_config_params.html" title="The ICP algorithm configuration data." alt="" coords="1984,547,2208,576"/><area shape="rect" id="node44" href="classmrpt_1_1utils_1_1_c_loadable_options.html" title="This is a virtual base class for sets of options than can be loaded from and/or saved..." alt="" coords="1176,540,1371,569"/><area shape="rect" id="node46" href="structmrpt_1_1slam_1_1_c_metric_map_builder_i_c_p_1_1_t_config_params.html" title="Algorithm configuration params." alt="" coords="2720,509,3045,539"/><area shape="rect" id="node49" href="classmrpt_1_1slam_1_1_t_set_of_metric_map_initializers.html" title="A set of TMetricMapInitializer structures, passed to the constructor CMultiMetricMap::CMultiMetricMa..." alt="" coords="2261,509,2515,539"/><area shape="rect" id="node66" href="structmrpt_1_1slam_1_1_c_multi_metric_map_1_1_t_options.html" title="Some options for this class:." alt="" coords="1679,611,1929,640"/><area shape="rect" id="node54" href="structmrpt_1_1slam_1_1_t_metric_map_initializer.html" title="Each structure of this kind will determine the kind (and initial configuration) of..." alt="" coords="1167,405,1380,435"/><area shape="rect" id="node56" href="structmrpt_1_1slam_1_1_t_metric_map_initializer_1_1_c_beacon_map_options.html" title="Especific options for landmarks maps (mrpt::slam::CBeaconMap)." alt="" coords="392,299,736,328"/><area shape="rect" id="node58" href="structmrpt_1_1slam_1_1_t_metric_map_initializer_1_1_t_occ_grid_map2_d_options.html" title="Especific options for grid maps (mrpt::slam::COccupancyGridMap2D)." alt="" coords="383,352,745,381"/><area shape="rect" id="node60" href="structmrpt_1_1slam_1_1_t_metric_map_initializer_1_1_c_gas_concentration_grid_map2_d_options.html" title="Especific options for gas grid maps (mrpt::slam::CGasConcentrationGridMap2D)." alt="" coords="341,405,787,435"/><area shape="rect" id="node62" href="structmrpt_1_1slam_1_1_t_metric_map_initializer_1_1_c_height_grid_map2_d_options.html" title="Especific options for height grid maps (mrpt::slam::CHeightGridMap2D)." alt="" coords="375,459,753,488"/><area shape="rect" id="node64" href="structmrpt_1_1slam_1_1_t_metric_map_initializer_1_1_c_landmarks_map_options.html" title="Especific options for landmarks maps (mrpt::slam::CLandmarksMap)." alt="" coords="381,512,747,541"/><area shape="rect" id="node82" href="classmrpt_1_1slam_1_1_c_multi_metric_map.html" title="This class stores any customizable set of metric maps." alt="" coords="2293,719,2483,748"/><area shape="rect" id="node69" href="classmrpt_1_1math_1_1_c_matrix_fixed_numeric.html" title="mrpt::math::CMatrixFixedNumeric\&lt; double, 3, 3 \&gt;" alt="" coords="2232,772,2544,801"/><area shape="rect" id="node71" href="classmrpt_1_1math_1_1_c_array.html" title="mrpt::math::CArray\&lt; double, NROWS *NCOLS \&gt;" alt="" coords="1649,984,1959,1013"/><area shape="rect" id="node73" href="structmrpt_1_1slam_1_1_c_metric_map_builder_i_c_p_1_1_t_dist.html" title="Traveled distances from last map update / ICP&#45;based localization." alt="" coords="2255,388,2521,417"/><area shape="rect" id="node75" href="classmrpt_1_1poses_1_1_c_pose2_d.html" title="A class used to store a 2D pose." alt="" coords="2805,613,2960,643"/><area shape="rect" id="node77" href="classmrpt_1_1poses_1_1_c_pose.html" title="A virtual base class to represent a pose in 2D or 3D." alt="" coords="2319,640,2457,669"/><area shape="rect" id="node87" href="classmrpt_1_1utils_1_1_c_observable.html" title="Inherit from this class for those objects capable of being observed by a CObserver..." alt="" coords="1192,771,1355,800"/><area shape="rect" id="node108" href="structmrpt_1_1poses_1_1_c_robot2_d_pose_estimator_1_1_t_options.html" title="mrpt::poses::CRobot2DPoseEstimator::TOptions" alt="" coords="2235,825,2541,855"/><area shape="rect" id="node110" href="structmrpt_1_1math_1_1_t_pose2_d.html" title="Lightweight 2D pose." alt="" coords="2315,927,2461,956"/></map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>

<p><a href="classmrpt_1_1slam_1_1_c_metric_map_builder_i_c_p-members.html">List of all members.</a></p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Classes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmrpt_1_1slam_1_1_c_metric_map_builder_i_c_p_1_1_t_config_params.html">TConfigParams</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Algorithm configuration params.  <a href="structmrpt_1_1slam_1_1_c_metric_map_builder_i_c_p_1_1_t_config_params.html#_details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmrpt_1_1slam_1_1_c_metric_map_builder_i_c_p_1_1_t_dist.html">TDist</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Traveled distances from last map update / ICP-based localization.  <a href="structmrpt_1_1slam_1_1_c_metric_map_builder_i_c_p_1_1_t_dist.html#_details">More...</a><br/></td></tr>
<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map_builder_i_c_p.html#a505be777839d4f1ceb38b0d973ce1fee">CMetricMapBuilderICP</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Default constructor - Upon construction, you can set the parameters in ICP_options, then call "initialize".  <a href="#a505be777839d4f1ceb38b0d973ce1fee"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map_builder_i_c_p.html#a75ba583bfd6ea68f9b88873967eaba97">CMetricMapBuilderICP</a> (<a class="el" href="classmrpt_1_1slam_1_1_t_set_of_metric_map_initializers.html">TSetOfMetricMapInitializers</a> *mapInitializers, float insertionLinDistance=1.0f, float insertionAngDistance=DEG2RAD(30), CICP::TConfigParams *icpParams=NULL)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">*DEPRECATED* Constructor with arguments - use the default constructor, then set the parameters in the "ICP_options" member.  <a href="#a75ba583bfd6ea68f9b88873967eaba97"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map_builder_i_c_p.html#a2d1ad8aaa8c13c0c44d098b7b96cab9c">~CMetricMapBuilderICP</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Destructor:.  <a href="#a2d1ad8aaa8c13c0c44d098b7b96cab9c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map_builder_i_c_p.html#a1106c4ff0e3af8b8ce752fe7e67530be">initialize</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_simple_map.html">CSimpleMap</a> &amp;initialMap=<a class="el" href="classmrpt_1_1slam_1_1_c_simple_map.html">CSimpleMap</a>(), <a class="el" href="classmrpt_1_1poses_1_1_c_pose_p_d_f.html">CPosePDF</a> *x0=NULL)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize the method, starting with a known location PDF "x0"(if supplied, set to NULL to left unmodified) and a given fixed, past map.  <a href="#a1106c4ff0e3af8b8ce752fe7e67530be"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">CPose3DPDFPtr&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map_builder_i_c_p.html#a45620c0802954419b152685e22a10981">getCurrentPoseEstimation</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns a copy of the current best pose estimation as a pose PDF.  <a href="#a45620c0802954419b152685e22a10981"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map_builder_i_c_p.html#a3d57d951672dd166a8725f2de263164f">setCurrentMapFile</a> (const char *mapFile)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the "current map file", thus that map will be loaded if it exists or a new one will be created if it does not, and the updated map will be save to that file when destroying the object.  <a href="#a3d57d951672dd166a8725f2de263164f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map_builder_i_c_p.html#ae59c6b2a7b0222a85e2cc2cfeca19c10">processActionObservation</a> (<a class="el" href="classmrpt_1_1slam_1_1_c_action_collection.html">CActionCollection</a> &amp;action, <a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html">CSensoryFrame</a> &amp;in_SF)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Appends a new action and observations to update this map: See the description of the class at the top of this page to see a more complete description.  <a href="#ae59c6b2a7b0222a85e2cc2cfeca19c10"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map_builder_i_c_p.html#a7abc2ee4a0adccbec65444e434abdd1b">processObservation</a> (const CObservationPtr &amp;obs)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The main method of this class: Process one odometry or sensor observation.  <a href="#a7abc2ee4a0adccbec65444e434abdd1b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map_builder_i_c_p.html#ac616ad0198e3b2cd68fd75eb2795fedc">getCurrentlyBuiltMap</a> (<a class="el" href="classmrpt_1_1slam_1_1_c_simple_map.html">CSimpleMap</a> &amp;out_map) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Fills "out_map" with the set of "poses"-"sensorial frames", thus the so far built map.  <a href="#ac616ad0198e3b2cd68fd75eb2795fedc"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map_builder_i_c_p.html#af6cc777e933fe528216670ef5ea2edfa">getCurrentMapPoints</a> (<a class="el" href="structmrpt_1_1mrpt__base__vector.html">vector_float</a> &amp;x, <a class="el" href="structmrpt_1_1mrpt__base__vector.html">vector_float</a> &amp;y)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">(DEPRECATED) Returns the 2D points of current local map: This is for backward compatibility with the non-BABEL GUI, should be removed when a new GUI integrated into BABEL becomes available.  <a href="#af6cc777e933fe528216670ef5ea2edfa"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1slam_1_1_c_multi_metric_map.html">CMultiMetricMap</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map_builder_i_c_p.html#a64cb24ecb715b33e41712f109cb4c4ca">getCurrentlyBuiltMetricMap</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the map built so far.  <a href="#a64cb24ecb715b33e41712f109cb4c4ca"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map_builder_i_c_p.html#a9297996b2194bae02ea112e9a7256027">getCurrentlyBuiltMapSize</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns just how many sensorial frames are stored in the currently build map.  <a href="#a9297996b2194bae02ea112e9a7256027"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map_builder_i_c_p.html#a12b97251df911adff7760d73b09e40f7">saveCurrentEstimationToImage</a> (const std::string &amp;file, bool formatEMF_BMP=true)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A useful method for debugging: the current map (and/or poses) estimation is dumped to an image file.  <a href="#a12b97251df911adff7760d73b09e40f7"></a><br/></td></tr>
<tr><td colspan="2"><h2>Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmrpt_1_1slam_1_1_c_metric_map_builder_i_c_p_1_1_t_config_params.html">TConfigParams</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map_builder_i_c_p.html#a1ec3c3ee5d8409d04017e7fe441b6a54">ICP_options</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Options for the ICP-SLAM application.  <a href="#a1ec3c3ee5d8409d04017e7fe441b6a54"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1slam_1_1_c_i_c_p_1_1_t_config_params.html">CICP::TConfigParams</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map_builder_i_c_p.html#a7ef2b889f11d62dc23bcdebba91b886a">ICP_params</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Options for the ICP algorithm itself.  <a href="#a7ef2b889f11d62dc23bcdebba91b886a"></a><br/></td></tr>
<tr><td colspan="2"><h2>Private Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map_builder_i_c_p.html#ac952c2ac85a91fbd3cf1568fb830b0d1">accumulateRobotDisplacementCounters</a> (const <a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">CPose2D</a> &amp;Apose)</td></tr>
<tr><td colspan="2"><h2>Private Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1slam_1_1_c_simple_map.html">CSimpleMap</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map_builder_i_c_p.html#af8887a2bff23741cc743c4487c6c58ab">SF_Poses_seq</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The set of observations that leads to current map:.  <a href="#af8887a2bff23741cc743c4487c6c58ab"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1slam_1_1_c_multi_metric_map.html">CMultiMetricMap</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map_builder_i_c_p.html#a8dde59db8d85102a55a098834ac03531">metricMap</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The metric map representation as a points map:.  <a href="#a8dde59db8d85102a55a098834ac03531"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map_builder_i_c_p.html#a807ddc044dc88e336a7c1f2c3833bd58">currentMapFile</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Current map file.  <a href="#a807ddc044dc88e336a7c1f2c3833bd58"></a><br/></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>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map_builder_i_c_p.html#a96c1336bafdc64cd0c240a1294ce7677">m_lastPoseEst</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The pose estimation by the alignment algorithm (ICP).  <a href="#a96c1336bafdc64cd0c240a1294ce7677"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1math_1_1_c_matrix_fixed_numeric.html">mrpt::math::CMatrixDouble33</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map_builder_i_c_p.html#a29c7293ae44e3924c35985f8a6772379">m_lastPoseEst_cov</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Last pose estimation (covariance).  <a href="#a29c7293ae44e3924c35985f8a6772379"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">std::deque&lt; <a class="el" href="structmrpt_1_1math_1_1_t_pose2_d.html">mrpt::math::TPose2D</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map_builder_i_c_p.html#a541d8d5d4eb812b4f42950464c029f4c">m_estRobotPath</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The estimated robot path:.  <a href="#a541d8d5d4eb812b4f42950464c029f4c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">mrpt::poses::CPose2D</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map_builder_i_c_p.html#add9b23983fc7ebb6bb25db5254ef276b">m_auxAccumOdometry</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmrpt_1_1slam_1_1_c_metric_map_builder_i_c_p_1_1_t_dist.html">TDist</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map_builder_i_c_p.html#a4fa7dbf950beced774e7fb85c014c145">m_distSinceLastICP</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">std::map&lt; std::string, <a class="el" href="structmrpt_1_1slam_1_1_c_metric_map_builder_i_c_p_1_1_t_dist.html">TDist</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map_builder_i_c_p.html#a2b12af4396642f176df57972cdbf1f70">m_distSinceLastInsertion</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Indexed by sensor label.  <a href="#a2b12af4396642f176df57972cdbf1f70"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map_builder_i_c_p.html#a3348f38548e25010c6bce0b454405790">m_there_has_been_an_odometry</a></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>A class for very simple 2D SLAM based on ICP. </p>
<p>This is a non-probabilistic pose tracking algorithm. Map are stored as in files as binary dumps of "mrpt::slam::CSimpleMap" objects. The methods are thread-safe. </p>

<p>Definition at line <a class="el" href="_c_metric_map_builder_i_c_p_8h_source.html#l00046">46</a> of file <a class="el" href="_c_metric_map_builder_i_c_p_8h_source.html">CMetricMapBuilderICP.h</a>.</p>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a505be777839d4f1ceb38b0d973ce1fee"></a><!-- doxytag: member="mrpt::slam::CMetricMapBuilderICP::CMetricMapBuilderICP" ref="a505be777839d4f1ceb38b0d973ce1fee" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">mrpt::slam::CMetricMapBuilderICP::CMetricMapBuilderICP </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Default constructor - Upon construction, you can set the parameters in ICP_options, then call "initialize". </p>

</div>
</div>
<a class="anchor" id="a75ba583bfd6ea68f9b88873967eaba97"></a><!-- doxytag: member="mrpt::slam::CMetricMapBuilderICP::CMetricMapBuilderICP" ref="a75ba583bfd6ea68f9b88873967eaba97" args="(TSetOfMetricMapInitializers *mapInitializers, float insertionLinDistance=1.0f, float insertionAngDistance=DEG2RAD(30), CICP::TConfigParams *icpParams=NULL)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">mrpt::slam::CMetricMapBuilderICP::CMetricMapBuilderICP </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1slam_1_1_t_set_of_metric_map_initializers.html">TSetOfMetricMapInitializers</a> *&nbsp;</td>
          <td class="paramname"> <em>mapInitializers</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>insertionLinDistance</em> = <code>1.0f</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>insertionAngDistance</em> = <code>DEG2RAD(30)</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1slam_1_1_c_i_c_p_1_1_t_config_params.html">CICP::TConfigParams</a> *&nbsp;</td>
          <td class="paramname"> <em>icpParams</em> = <code>NULL</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>*DEPRECATED* Constructor with arguments - use the default constructor, then set the parameters in the "ICP_options" member. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>mapInitializers</em>&nbsp;</td><td>What maps to create (at least one points map and/or a grid map are needed). </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>insertionLinDistance</em>&nbsp;</td><td>Minimum robot linear displacement for a new observation to be inserted in the map. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>insertionAngDistance</em>&nbsp;</td><td>Minimum robot angular displacement for a new observation to be inserted in the map. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a2d1ad8aaa8c13c0c44d098b7b96cab9c"></a><!-- doxytag: member="mrpt::slam::CMetricMapBuilderICP::~CMetricMapBuilderICP" ref="a2d1ad8aaa8c13c0c44d098b7b96cab9c" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual mrpt::slam::CMetricMapBuilderICP::~CMetricMapBuilderICP </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</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="ac952c2ac85a91fbd3cf1568fb830b0d1"></a><!-- doxytag: member="mrpt::slam::CMetricMapBuilderICP::accumulateRobotDisplacementCounters" ref="ac952c2ac85a91fbd3cf1568fb830b0d1" args="(const CPose2D &amp;Apose)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CMetricMapBuilderICP::accumulateRobotDisplacementCounters </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">CPose2D</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>Apose</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ac616ad0198e3b2cd68fd75eb2795fedc"></a><!-- doxytag: member="mrpt::slam::CMetricMapBuilderICP::getCurrentlyBuiltMap" ref="ac616ad0198e3b2cd68fd75eb2795fedc" args="(CSimpleMap &amp;out_map) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CMetricMapBuilderICP::getCurrentlyBuiltMap </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1slam_1_1_c_simple_map.html">CSimpleMap</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>out_map</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Fills "out_map" with the set of "poses"-"sensorial frames", thus the so far built map. </p>

<p>Implements <a class="el" href="classmrpt_1_1slam_1_1_c_metric_map_builder.html#accb35416b8bf85da803b83e99bad02db">mrpt::slam::CMetricMapBuilder</a>.</p>

</div>
</div>
<a class="anchor" id="a9297996b2194bae02ea112e9a7256027"></a><!-- doxytag: member="mrpt::slam::CMetricMapBuilderICP::getCurrentlyBuiltMapSize" ref="a9297996b2194bae02ea112e9a7256027" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int mrpt::slam::CMetricMapBuilderICP::getCurrentlyBuiltMapSize </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns just how many sensorial frames are stored in the currently build map. </p>

<p>Implements <a class="el" href="classmrpt_1_1slam_1_1_c_metric_map_builder.html#afdea305bbb77c9ead1e909150c4875dc">mrpt::slam::CMetricMapBuilder</a>.</p>

</div>
</div>
<a class="anchor" id="a64cb24ecb715b33e41712f109cb4c4ca"></a><!-- doxytag: member="mrpt::slam::CMetricMapBuilderICP::getCurrentlyBuiltMetricMap" ref="a64cb24ecb715b33e41712f109cb4c4ca" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1slam_1_1_c_multi_metric_map.html">CMultiMetricMap</a>* mrpt::slam::CMetricMapBuilderICP::getCurrentlyBuiltMetricMap </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the map built so far. </p>
<p>NOTE that for efficiency a pointer to the internal object is passed, DO NOT delete nor modify the object in any way, if desired, make a copy of ir with "duplicate()". </p>

<p>Implements <a class="el" href="classmrpt_1_1slam_1_1_c_metric_map_builder.html#a3a6c22213142511cde0f076587f21c7f">mrpt::slam::CMetricMapBuilder</a>.</p>

</div>
</div>
<a class="anchor" id="af6cc777e933fe528216670ef5ea2edfa"></a><!-- doxytag: member="mrpt::slam::CMetricMapBuilderICP::getCurrentMapPoints" ref="af6cc777e933fe528216670ef5ea2edfa" args="(vector_float &amp;x, vector_float &amp;y)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CMetricMapBuilderICP::getCurrentMapPoints </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmrpt_1_1mrpt__base__vector.html">vector_float</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structmrpt_1_1mrpt__base__vector.html">vector_float</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>y</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>(DEPRECATED) Returns the 2D points of current local map: This is for backward compatibility with the non-BABEL GUI, should be removed when a new GUI integrated into BABEL becomes available. </p>

</div>
</div>
<a class="anchor" id="a45620c0802954419b152685e22a10981"></a><!-- doxytag: member="mrpt::slam::CMetricMapBuilderICP::getCurrentPoseEstimation" ref="a45620c0802954419b152685e22a10981" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">CPose3DPDFPtr mrpt::slam::CMetricMapBuilderICP::getCurrentPoseEstimation </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns a copy of the current best pose estimation as a pose PDF. </p>

<p>Implements <a class="el" href="classmrpt_1_1slam_1_1_c_metric_map_builder.html#a8db935488eb11d47ac17dff0cd2ba091">mrpt::slam::CMetricMapBuilder</a>.</p>

</div>
</div>
<a class="anchor" id="a1106c4ff0e3af8b8ce752fe7e67530be"></a><!-- doxytag: member="mrpt::slam::CMetricMapBuilderICP::initialize" ref="a1106c4ff0e3af8b8ce752fe7e67530be" args="(const CSimpleMap &amp;initialMap=CSimpleMap(), CPosePDF *x0=NULL)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CMetricMapBuilderICP::initialize </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_simple_map.html">CSimpleMap</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>initialMap</em> = <code><a class="el" href="classmrpt_1_1slam_1_1_c_simple_map.html">CSimpleMap</a>()</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1poses_1_1_c_pose_p_d_f.html">CPosePDF</a> *&nbsp;</td>
          <td class="paramname"> <em>x0</em> = <code>NULL</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Initialize the method, starting with a known location PDF "x0"(if supplied, set to NULL to left unmodified) and a given fixed, past map. </p>
<p>This method MUST be called if using the default constructor, after loading the configuration into ICP_options. In particular, <a class="el" href="structmrpt_1_1slam_1_1_c_metric_map_builder_i_c_p_1_1_t_config_params.html#a1e858d31f52331e1e85de46938feecf4" title="What maps to create (at least one points map and/or a grid map are needed).">TConfigParams::mapInitializers</a> </p>

<p>Implements <a class="el" href="classmrpt_1_1slam_1_1_c_metric_map_builder.html#a05ab1ad7345695e3b050c79ddfb44111">mrpt::slam::CMetricMapBuilder</a>.</p>

</div>
</div>
<a class="anchor" id="ae59c6b2a7b0222a85e2cc2cfeca19c10"></a><!-- doxytag: member="mrpt::slam::CMetricMapBuilderICP::processActionObservation" ref="ae59c6b2a7b0222a85e2cc2cfeca19c10" args="(CActionCollection &amp;action, CSensoryFrame &amp;in_SF)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CMetricMapBuilderICP::processActionObservation </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1slam_1_1_c_action_collection.html">CActionCollection</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>action</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html">CSensoryFrame</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>in_SF</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Appends a new action and observations to update this map: See the description of the class at the top of this page to see a more complete description. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>action</em>&nbsp;</td><td>The estimation of the incremental pose change in the robot pose. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>in_SF</em>&nbsp;</td><td>The set of observations that robot senses at the new pose. See params in <a class="el" href="classmrpt_1_1slam_1_1_c_metric_map_builder.html#aa3898542e7a401f42726585f3342f26e" title="Options for the algorithm.">CMetricMapBuilder::options</a> and <a class="el" href="classmrpt_1_1slam_1_1_c_metric_map_builder_i_c_p.html#a1ec3c3ee5d8409d04017e7fe441b6a54" title="Options for the ICP-SLAM application.">CMetricMapBuilderICP::ICP_options</a> </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map_builder_i_c_p.html#a7abc2ee4a0adccbec65444e434abdd1b" title="The main method of this class: Process one odometry or sensor observation.">processObservation</a> </dd></dl>

<p>Implements <a class="el" href="classmrpt_1_1slam_1_1_c_metric_map_builder.html#a8f54b3526d92e6229b95fdb794083355">mrpt::slam::CMetricMapBuilder</a>.</p>

</div>
</div>
<a class="anchor" id="a7abc2ee4a0adccbec65444e434abdd1b"></a><!-- doxytag: member="mrpt::slam::CMetricMapBuilderICP::processObservation" ref="a7abc2ee4a0adccbec65444e434abdd1b" args="(const CObservationPtr &amp;obs)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CMetricMapBuilderICP::processObservation </td>
          <td>(</td>
          <td class="paramtype">const CObservationPtr &amp;&nbsp;</td>
          <td class="paramname"> <em>obs</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The main method of this class: Process one odometry or sensor observation. </p>
<p>The new entry point of the algorithm (the old one was processActionObservation, which now is a wrapper to this method). See params in <a class="el" href="classmrpt_1_1slam_1_1_c_metric_map_builder.html#aa3898542e7a401f42726585f3342f26e" title="Options for the algorithm.">CMetricMapBuilder::options</a> and <a class="el" href="classmrpt_1_1slam_1_1_c_metric_map_builder_i_c_p.html#a1ec3c3ee5d8409d04017e7fe441b6a54" title="Options for the ICP-SLAM application.">CMetricMapBuilderICP::ICP_options</a> </p>

</div>
</div>
<a class="anchor" id="a12b97251df911adff7760d73b09e40f7"></a><!-- doxytag: member="mrpt::slam::CMetricMapBuilderICP::saveCurrentEstimationToImage" ref="a12b97251df911adff7760d73b09e40f7" args="(const std::string &amp;file, bool formatEMF_BMP=true)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CMetricMapBuilderICP::saveCurrentEstimationToImage </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&nbsp;</td>
          <td class="paramname"> <em>file</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>formatEMF_BMP</em> = <code>true</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>A useful method for debugging: the current map (and/or poses) estimation is dumped to an image file. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>file</em>&nbsp;</td><td>The output file name </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>formatEMF_BMP</em>&nbsp;</td><td>Output format = true:EMF, false:BMP </td></tr>
  </table>
  </dd>
</dl>

<p>Implements <a class="el" href="classmrpt_1_1slam_1_1_c_metric_map_builder.html#ad6ed4fe0eb73c5dab4b265f2a55da84d">mrpt::slam::CMetricMapBuilder</a>.</p>

</div>
</div>
<a class="anchor" id="a3d57d951672dd166a8725f2de263164f"></a><!-- doxytag: member="mrpt::slam::CMetricMapBuilderICP::setCurrentMapFile" ref="a3d57d951672dd166a8725f2de263164f" args="(const char *mapFile)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CMetricMapBuilderICP::setCurrentMapFile </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>mapFile</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sets the "current map file", thus that map will be loaded if it exists or a new one will be created if it does not, and the updated map will be save to that file when destroying the object. </p>

</div>
</div>
<hr/><h2>Member Data Documentation</h2>
<a class="anchor" id="a807ddc044dc88e336a7c1f2c3833bd58"></a><!-- doxytag: member="mrpt::slam::CMetricMapBuilderICP::currentMapFile" ref="a807ddc044dc88e336a7c1f2c3833bd58" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::string <a class="el" href="classmrpt_1_1slam_1_1_c_metric_map_builder_i_c_p.html#a807ddc044dc88e336a7c1f2c3833bd58">mrpt::slam::CMetricMapBuilderICP::currentMapFile</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Current map file. </p>

<p>Definition at line <a class="el" href="_c_metric_map_builder_i_c_p_8h_source.html#l00169">169</a> of file <a class="el" href="_c_metric_map_builder_i_c_p_8h_source.html">CMetricMapBuilderICP.h</a>.</p>

</div>
</div>
<a class="anchor" id="a1ec3c3ee5d8409d04017e7fe441b6a54"></a><!-- doxytag: member="mrpt::slam::CMetricMapBuilderICP::ICP_options" ref="a1ec3c3ee5d8409d04017e7fe441b6a54" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structmrpt_1_1slam_1_1_c_metric_map_builder_i_c_p_1_1_t_config_params.html">TConfigParams</a> <a class="el" href="classmrpt_1_1slam_1_1_c_metric_map_builder_i_c_p.html#a1ec3c3ee5d8409d04017e7fe441b6a54">mrpt::slam::CMetricMapBuilderICP::ICP_options</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Options for the ICP-SLAM application. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map_builder_i_c_p.html#a7ef2b889f11d62dc23bcdebba91b886a" title="Options for the ICP algorithm itself.">ICP_params</a> </dd></dl>

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

</div>
</div>
<a class="anchor" id="a7ef2b889f11d62dc23bcdebba91b886a"></a><!-- doxytag: member="mrpt::slam::CMetricMapBuilderICP::ICP_params" ref="a7ef2b889f11d62dc23bcdebba91b886a" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1slam_1_1_c_i_c_p_1_1_t_config_params.html">CICP::TConfigParams</a> <a class="el" href="classmrpt_1_1slam_1_1_c_metric_map_builder_i_c_p.html#a7ef2b889f11d62dc23bcdebba91b886a">mrpt::slam::CMetricMapBuilderICP::ICP_params</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Options for the ICP algorithm itself. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map_builder_i_c_p.html#a1ec3c3ee5d8409d04017e7fe441b6a54" title="Options for the ICP-SLAM application.">ICP_options</a> </dd></dl>

<p>Definition at line <a class="el" href="_c_metric_map_builder_i_c_p_8h_source.html#l00098">98</a> of file <a class="el" href="_c_metric_map_builder_i_c_p_8h_source.html">CMetricMapBuilderICP.h</a>.</p>

</div>
</div>
<a class="anchor" id="add9b23983fc7ebb6bb25db5254ef276b"></a><!-- doxytag: member="mrpt::slam::CMetricMapBuilderICP::m_auxAccumOdometry" ref="add9b23983fc7ebb6bb25db5254ef276b" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1poses_1_1_c_pose2_d.html">mrpt::poses::CPose2D</a> <a class="el" href="classmrpt_1_1slam_1_1_c_metric_map_builder_i_c_p.html#add9b23983fc7ebb6bb25db5254ef276b">mrpt::slam::CMetricMapBuilderICP::m_auxAccumOdometry</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_metric_map_builder_i_c_p_8h_source.html#l00179">179</a> of file <a class="el" href="_c_metric_map_builder_i_c_p_8h_source.html">CMetricMapBuilderICP.h</a>.</p>

</div>
</div>
<a class="anchor" id="a4fa7dbf950beced774e7fb85c014c145"></a><!-- doxytag: member="mrpt::slam::CMetricMapBuilderICP::m_distSinceLastICP" ref="a4fa7dbf950beced774e7fb85c014c145" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structmrpt_1_1slam_1_1_c_metric_map_builder_i_c_p_1_1_t_dist.html">TDist</a> <a class="el" href="classmrpt_1_1slam_1_1_c_metric_map_builder_i_c_p.html#a4fa7dbf950beced774e7fb85c014c145">mrpt::slam::CMetricMapBuilderICP::m_distSinceLastICP</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_metric_map_builder_i_c_p_8h_source.html#l00188">188</a> of file <a class="el" href="_c_metric_map_builder_i_c_p_8h_source.html">CMetricMapBuilderICP.h</a>.</p>

</div>
</div>
<a class="anchor" id="a2b12af4396642f176df57972cdbf1f70"></a><!-- doxytag: member="mrpt::slam::CMetricMapBuilderICP::m_distSinceLastInsertion" ref="a2b12af4396642f176df57972cdbf1f70" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::map&lt;std::string,<a class="el" href="structmrpt_1_1slam_1_1_c_metric_map_builder_i_c_p_1_1_t_dist.html">TDist</a>&gt; <a class="el" href="classmrpt_1_1slam_1_1_c_metric_map_builder_i_c_p.html#a2b12af4396642f176df57972cdbf1f70">mrpt::slam::CMetricMapBuilderICP::m_distSinceLastInsertion</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Indexed by sensor label. </p>

<p>Definition at line <a class="el" href="_c_metric_map_builder_i_c_p_8h_source.html#l00189">189</a> of file <a class="el" href="_c_metric_map_builder_i_c_p_8h_source.html">CMetricMapBuilderICP.h</a>.</p>

</div>
</div>
<a class="anchor" id="a541d8d5d4eb812b4f42950464c029f4c"></a><!-- doxytag: member="mrpt::slam::CMetricMapBuilderICP::m_estRobotPath" ref="a541d8d5d4eb812b4f42950464c029f4c" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::deque&lt;<a class="el" href="structmrpt_1_1math_1_1_t_pose2_d.html">mrpt::math::TPose2D</a>&gt; <a class="el" href="classmrpt_1_1slam_1_1_c_metric_map_builder_i_c_p.html#a541d8d5d4eb812b4f42950464c029f4c">mrpt::slam::CMetricMapBuilderICP::m_estRobotPath</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The estimated robot path:. </p>

<p>Definition at line <a class="el" href="_c_metric_map_builder_i_c_p_8h_source.html#l00178">178</a> of file <a class="el" href="_c_metric_map_builder_i_c_p_8h_source.html">CMetricMapBuilderICP.h</a>.</p>

</div>
</div>
<a class="anchor" id="a96c1336bafdc64cd0c240a1294ce7677"></a><!-- doxytag: member="mrpt::slam::CMetricMapBuilderICP::m_lastPoseEst" ref="a96c1336bafdc64cd0c240a1294ce7677" 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_1slam_1_1_c_metric_map_builder_i_c_p.html#a96c1336bafdc64cd0c240a1294ce7677">mrpt::slam::CMetricMapBuilderICP::m_lastPoseEst</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The pose estimation by the alignment algorithm (ICP). </p>
<p>Last pose estimation (Mean) </p>

<p>Definition at line <a class="el" href="_c_metric_map_builder_i_c_p_8h_source.html#l00173">173</a> of file <a class="el" href="_c_metric_map_builder_i_c_p_8h_source.html">CMetricMapBuilderICP.h</a>.</p>

</div>
</div>
<a class="anchor" id="a29c7293ae44e3924c35985f8a6772379"></a><!-- doxytag: member="mrpt::slam::CMetricMapBuilderICP::m_lastPoseEst_cov" ref="a29c7293ae44e3924c35985f8a6772379" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1math_1_1_c_matrix_fixed_numeric.html">mrpt::math::CMatrixDouble33</a> <a class="el" href="classmrpt_1_1slam_1_1_c_metric_map_builder_i_c_p.html#a29c7293ae44e3924c35985f8a6772379">mrpt::slam::CMetricMapBuilderICP::m_lastPoseEst_cov</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Last pose estimation (covariance). </p>

<p>Definition at line <a class="el" href="_c_metric_map_builder_i_c_p_8h_source.html#l00174">174</a> of file <a class="el" href="_c_metric_map_builder_i_c_p_8h_source.html">CMetricMapBuilderICP.h</a>.</p>

</div>
</div>
<a class="anchor" id="a3348f38548e25010c6bce0b454405790"></a><!-- doxytag: member="mrpt::slam::CMetricMapBuilderICP::m_there_has_been_an_odometry" ref="a3348f38548e25010c6bce0b454405790" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classmrpt_1_1slam_1_1_c_metric_map_builder_i_c_p.html#a3348f38548e25010c6bce0b454405790">mrpt::slam::CMetricMapBuilderICP::m_there_has_been_an_odometry</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_metric_map_builder_i_c_p_8h_source.html#l00190">190</a> of file <a class="el" href="_c_metric_map_builder_i_c_p_8h_source.html">CMetricMapBuilderICP.h</a>.</p>

</div>
</div>
<a class="anchor" id="a8dde59db8d85102a55a098834ac03531"></a><!-- doxytag: member="mrpt::slam::CMetricMapBuilderICP::metricMap" ref="a8dde59db8d85102a55a098834ac03531" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1slam_1_1_c_multi_metric_map.html">CMultiMetricMap</a> <a class="el" href="classmrpt_1_1slam_1_1_c_metric_map_builder_i_c_p.html#a8dde59db8d85102a55a098834ac03531">mrpt::slam::CMetricMapBuilderICP::metricMap</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The metric map representation as a points map:. </p>

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

</div>
</div>
<a class="anchor" id="af8887a2bff23741cc743c4487c6c58ab"></a><!-- doxytag: member="mrpt::slam::CMetricMapBuilderICP::SF_Poses_seq" ref="af8887a2bff23741cc743c4487c6c58ab" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1slam_1_1_c_simple_map.html">CSimpleMap</a> <a class="el" href="classmrpt_1_1slam_1_1_c_metric_map_builder_i_c_p.html#af8887a2bff23741cc743c4487c6c58ab">mrpt::slam::CMetricMapBuilderICP::SF_Poses_seq</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The set of observations that leads to current map:. </p>

<p>Definition at line <a class="el" href="_c_metric_map_builder_i_c_p_8h_source.html#l00161">161</a> of file <a class="el" href="_c_metric_map_builder_i_c_p_8h_source.html">CMetricMapBuilderICP.h</a>.</p>

</div>
</div>
</div>
<!--- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&nbsp;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&nbsp;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&nbsp;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&nbsp;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&nbsp;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&nbsp;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&nbsp;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&nbsp;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&nbsp;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&nbsp;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&nbsp;</span>Defines</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<br><hr><br> <table border="0" width="100%"> <tr> <td> Page generated by <a href="http://www.doxygen.org" target="_blank">Doxygen 1.6.2-20100208</a> for MRPT 0.9.0 SVN: at Wed Jul 14 12:48:09 UTC 2010</td><td></td> <td width="100"> </td> <td width="150">  </td></tr> </table> </body></html>