Sophie

Sophie

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

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

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>[mrpt-slam]</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<div align="left"><a href="http://www.mrpt.org/">Main MRPT website</a> &gt; <b>C++ reference</b> </div>
<div align="right">
<a href="index.html"><img border="0" src="mrpt_logo.png" alt="MRPT logo"></a>
</div>
<!-- Generated by Doxygen 1.7.5 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
          <div class="left">
            <form id="FSearchBox" action="search.php" method="get">
              <img id="MSearchSelect" src="search/mag.png" alt=""/>
              <input type="text" id="MSearchField" name="query" value="Search" size="20" accesskey="S" 
                     onfocus="searchBox.OnSearchFieldFocus(true)" 
                     onblur="searchBox.OnSearchFieldFocus(false)"/>
            </form>
          </div><div class="right"></div>
        </div>
      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#namespaces">Namespaces</a> &#124;
<a href="#groups">Modules</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">[mrpt-slam]</div>  </div>
</div>
<div class="contents">
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<p><small> <a href="index.html#libs">Back to list of all libraries</a> | <a href="modules.html">See all modules</a> </small> <br/>
 </p>
<h2>Library <code>mrpt-slam</code></h2>
<hr/>
<p>Interesting stuff in this library:</p>
<ul>
<li><a class="el" href="classmrpt_1_1slam_1_1_c_metric_map_builder.html" title="This virtual class is the base for SLAM implementations.">mrpt::slam::CMetricMapBuilder</a>: A virtual base for both ICP and RBPF-based SLAM.</li>
</ul>
<ul>
<li><a class="el" href="classmrpt_1_1slam_1_1_c_monte_carlo_localization2_d.html" title="Declares a class that represents a Probability Density Function (PDF) over a 2D pose (x...">mrpt::slam::CMonteCarloLocalization2D</a>: Particle filter-based (Monte Carlo) localization for a robot in a planar scenario.</li>
</ul>
<ul>
<li><a class="el" href="classmrpt_1_1slam_1_1_c_multi_metric_map.html" title="This class stores any customizable set of metric maps.">mrpt::slam::CMultiMetricMap</a>: The most versatile kind of metric map, which contains an arbitrary number of any other maps.</li>
</ul>
<ul>
<li>Kalman Filters-based Range-Bearing SLAM, in 2D and 3D: See <a class="el" href="classmrpt_1_1slam_1_1_c_range_bearing_k_f_s_l_a_m.html" title="An implementation of EKF-based SLAM with range-bearing sensors, odometry, a full 6D robot pose...">mrpt::slam::CRangeBearingKFSLAM</a> and <a class="el" href="classmrpt_1_1slam_1_1_c_range_bearing_k_f_s_l_a_m2_d.html" title="An implementation of EKF-based SLAM with range-bearing sensors, odometry, and a 2D (+heading) robot p...">mrpt::slam::CRangeBearingKFSLAM2D</a>.</li>
</ul>
<ul>
<li>Data association: The NN and the JCBB algorithms, as very generic templates. See <a class="el" href="data__association_8h.html">data_association.h</a></li>
</ul>
<p>See the full list of classes in <a class="el" href="namespacemrpt_1_1slam.html" title="This namespace contains algorithms for SLAM, localization, map building, representation of robot&#39;s ac...">mrpt::slam</a>. Note that there are many classes in that namespace not in the library mrpt-slam, but in libraries mrpt-slam depends on. However, in you set mrpt-slam as a dependence of your project, you can be safe all <a class="el" href="namespacemrpt_1_1slam.html" title="This namespace contains algorithms for SLAM, localization, map building, representation of robot&#39;s ac...">mrpt::slam</a> classes will be available to you.</p>
<p>See also: For Graph-SLAM, see the namespace <a class="el" href="namespacemrpt_1_1graphslam.html" title="SLAM methods related to graphs of pose constraints.">mrpt::graphslam</a> in the library mrpt-graphslam. </p>
<div class="dynheader">
Collaboration diagram for [mrpt-slam]:</div>
<div class="dyncontent">
<center><table><tr><td><img src="group__mrpt__slam__grp.png" border="0" alt="" usemap="#group____mrpt____slam____grp"/>
<map name="group____mrpt____slam____grp" id="group____mrpt____slam____grp">
<area shape="rect" id="node1" href="group__mrpt__maps__grp.html" title=" Back to list of all libraries | See all modules &#160;&#160;" alt="" coords="241,5,333,32"/><area shape="rect" id="node2" href="group__mrpt__obs__grp.html" title=" Back to list of all libraries | See all modules &#160;&#160;" alt="" coords="246,56,327,83"/><area shape="rect" id="node4" href="group__mrpt__vision__grp.html" title=" Back to list of all libraries | See all modules &#160;&#160;" alt="" coords="239,107,334,133"/><area shape="rect" id="node5" href="group__metric__slam__grp.html" title="Metric SLAM algorithms" alt="" coords="205,157,368,184"/><area shape="rect" id="node6" href="group__data__assoc__grp.html" title="Data association" alt="" coords="227,208,347,235"/></map>
</td></tr></table></center>
</div>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_consistent_observation_alignment.html">mrpt::slam::CConsistentObservationAlignment</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">An algorithm for globally, consistent alignment of a sequence of observations.  <a href="classmrpt_1_1slam_1_1_c_consistent_observation_alignment.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_detector_door_crossing.html">mrpt::slam::CDetectorDoorCrossing</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_grid_map_aligner.html">mrpt::slam::CGridMapAligner</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A class for aligning two multi-metric maps (with an occupancy grid maps and a points map, at least) based on features extraction and matching.  <a href="classmrpt_1_1slam_1_1_c_grid_map_aligner.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_i_c_p.html">mrpt::slam::CICP</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Several implementations of ICP (Iterative closest point) algorithms for aligning two point maps or a point map wrt a grid map.  <a href="classmrpt_1_1slam_1_1_c_i_c_p.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_incremental_map_partitioner.html">mrpt::slam::CIncrementalMapPartitioner</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This class can be used to make partitions on a map/graph build from observations taken at some poses/nodes.  <a href="classmrpt_1_1slam_1_1_c_incremental_map_partitioner.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_metric_maps_alignment_algorithm.html">mrpt::slam::CMetricMapsAlignmentAlgorithm</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A base class for any algorithm able of maps alignment.  <a href="classmrpt_1_1slam_1_1_c_metric_maps_alignment_algorithm.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_monte_carlo_localization2_d.html">mrpt::slam::CMonteCarloLocalization2D</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Declares a class that represents a Probability Density Function (PDF) over a 2D pose (x,y,phi), using a set of weighted samples.  <a href="classmrpt_1_1slam_1_1_c_monte_carlo_localization2_d.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_monte_carlo_localization3_d.html">mrpt::slam::CMonteCarloLocalization3D</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Declares a class that represents a Probability Density Function (PDF) over a 3D pose (x,y,phi,yaw,pitch,roll), using a set of weighted samples.  <a href="classmrpt_1_1slam_1_1_c_monte_carlo_localization3_d.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_multi_metric_map.html">mrpt::slam::CMultiMetricMap</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This class stores any customizable set of metric maps.  <a href="classmrpt_1_1slam_1_1_c_multi_metric_map.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_r_b_p_f_particle_data.html">mrpt::slam::CRBPFParticleData</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Auxiliary class used in <a class="el" href="classmrpt_1_1slam_1_1_c_multi_metric_map_p_d_f.html" title="Declares a class that represents a Rao-Blackwellized set of particles for solving the SLAM problem (T...">mrpt::slam::CMultiMetricMapPDF</a>.  <a href="classmrpt_1_1slam_1_1_c_r_b_p_f_particle_data.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map_feature_extractor.html">mrpt::slam::COccupancyGridMapFeatureExtractor</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A class for detecting features from occupancy grid maps.  <a href="classmrpt_1_1slam_1_1_c_occupancy_grid_map_feature_extractor.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_path_planning_circular_robot.html">mrpt::slam::CPathPlanningCircularRobot</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">An implementation of <a class="el" href="classmrpt_1_1slam_1_1_c_path_planning_method.html" title="A virtual base class for computing the optimal path for a robot from a origin location to a target po...">CPathPlanningMethod</a>.  <a href="classmrpt_1_1slam_1_1_c_path_planning_circular_robot.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_path_planning_method.html">mrpt::slam::CPathPlanningMethod</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A virtual base class for computing the optimal path for a robot from a origin location to a target point.  <a href="classmrpt_1_1slam_1_1_c_path_planning_method.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_rejection_sampling_range_only_localization.html">mrpt::slam::CRejectionSamplingRangeOnlyLocalization</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">An implementation of rejection sampling for generating 2D robot pose from range-only measurements within a landmarks (beacons) map.  <a href="classmrpt_1_1slam_1_1_c_rejection_sampling_range_only_localization.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_p_f__implementation.html">mrpt::slam::PF_implementation</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A set of common data shared by PF implementations for both SLAM and localization.  <a href="classmrpt_1_1slam_1_1_p_f__implementation.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_t_k_l_d_params.html">mrpt::slam::TKLDParams</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Option set for KLD algorithm.  <a href="classmrpt_1_1slam_1_1_t_k_l_d_params.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmrpt_1_1slam_1_1_t_monte_carlo_localization_params.html">mrpt::slam::TMonteCarloLocalizationParams</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The struct for passing extra simulation parameters to the prediction stage when running a particle filter.  <a href="structmrpt_1_1slam_1_1_t_monte_carlo_localization_params.html#details">More...</a><br/></td></tr>
<tr><td colspan="2"><h2><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemrpt_1_1slam.html">mrpt::slam</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><p>This namespace contains algorithms for SLAM, localization, map building, representation of robot's actions and observations, and representation of many kinds of metric maps. </p>
<br/></td></tr>
<tr><td colspan="2"><h2><a name="groups"></a>
Modules</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__metric__slam__grp.html">Metric SLAM algorithms</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__data__assoc__grp.html">Data association</a></td></tr>
<tr><td colspan="2"><h2><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__slam__grp.html#gaa571f1b2df97883ce80558fc43dc4844">mrpt::slam::TICPAlgorithm</a> { <a class="el" href="group__mrpt__slam__grp.html#ggaa571f1b2df97883ce80558fc43dc4844ade94fc09573025addb1a0b3648f7e70f">mrpt::slam::icpClassic</a> =  0, 
<a class="el" href="group__mrpt__slam__grp.html#ggaa571f1b2df97883ce80558fc43dc4844ab8b007ff9821e42341b90763116c7f8d">mrpt::slam::icpLevenbergMarquardt</a>, 
<a class="el" href="group__mrpt__slam__grp.html#ggaa571f1b2df97883ce80558fc43dc4844a7f98a570e19735f2bf55ed12504b5ca4">mrpt::slam::icpIKF</a>
 }</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The ICP algorithm selection, used in <a class="el" href="classmrpt_1_1slam_1_1_c_i_c_p.html#ac5276790c90522d2c506a0265305bcef" title="The options employed by the ICP align.">mrpt::slam::CICP::options</a>.  <a href="group__mrpt__slam__grp.html#gaa571f1b2df97883ce80558fc43dc4844">More...</a><br/></td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class BINTYPE &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__mrpt__slam__grp.html#gaf10ab5d4285a563ed99d28aed9a31c39">mrpt::slam::PF_implementation::PF_SLAM_implementation_gatherActionsCheckBothActObs</a> (const CActionCollection *actions, const CSensoryFrame *sf)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Auxiliary method called by PF implementations: return true if we have both action &amp; observation, otherwise, return false AND accumulate the odometry so when we have an observation we didn't lose a thing.  <a href="#gaf10ab5d4285a563ed99d28aed9a31c39"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="member-group"></a>
Observations overlap functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double SLAM_IMPEXP&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__slam__grp.html#ga2d32509abfdfd42e7597186bf2ab0ab0">mrpt::slam::observationsOverlap</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_observation.html">mrpt::slam::CObservation</a> *o1, const <a class="el" href="classmrpt_1_1slam_1_1_c_observation.html">mrpt::slam::CObservation</a> *o2, const <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">mrpt::poses::CPose3D</a> *pose_o2_wrt_o1=NULL)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Estimates the "overlap" or "matching ratio" of two observations (range [0,1]), possibly taking into account their relative positions.  <a href="#ga2d32509abfdfd42e7597186bf2ab0ab0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__slam__grp.html#ga3f4bb0b8cc83dec2e79704fab7cdfd52">mrpt::slam::observationsOverlap</a> (const <a class="el" href="structmrpt_1_1slam_1_1_c_observation_ptr.html">mrpt::slam::CObservationPtr</a> &amp;o1, const <a class="el" href="structmrpt_1_1slam_1_1_c_observation_ptr.html">mrpt::slam::CObservationPtr</a> &amp;o2, const <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">mrpt::poses::CPose3D</a> *pose_o2_wrt_o1=NULL)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Estimates the "overlap" or "matching ratio" of two observations (range [0,1]), possibly taking into account their relative positions.  <a href="#ga3f4bb0b8cc83dec2e79704fab7cdfd52"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double SLAM_IMPEXP&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__slam__grp.html#ga93d1273b13626d7d4fee77e8e42238be">mrpt::slam::observationsOverlap</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html">mrpt::slam::CSensoryFrame</a> &amp;sf1, const <a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html">mrpt::slam::CSensoryFrame</a> &amp;sf2, const <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">mrpt::poses::CPose3D</a> *pose_sf2_wrt_sf1=NULL)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Estimates the "overlap" or "matching ratio" of two set of observations (range [0,1]), possibly taking into account their relative positions.  <a href="#ga93d1273b13626d7d4fee77e8e42238be"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mrpt__slam__grp.html#gad78544711408a739f049def4b50957ac">mrpt::slam::observationsOverlap</a> (const <a class="el" href="structmrpt_1_1slam_1_1_c_sensory_frame_ptr.html">mrpt::slam::CSensoryFramePtr</a> &amp;sf1, const <a class="el" href="structmrpt_1_1slam_1_1_c_sensory_frame_ptr.html">mrpt::slam::CSensoryFramePtr</a> &amp;sf2, const <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">mrpt::poses::CPose3D</a> *pose_sf2_wrt_sf1=NULL)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Estimates the "overlap" or "matching ratio" of two set of observations (range [0,1]), possibly taking into account their relative positions.  <a href="#gad78544711408a739f049def4b50957ac"></a><br/></td></tr>
</table>
<hr/><h2>Enumeration Type Documentation</h2>
<a class="anchor" id="gaa571f1b2df97883ce80558fc43dc4844"></a><!-- doxytag: member="mrpt::slam::TICPAlgorithm" ref="gaa571f1b2df97883ce80558fc43dc4844" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__mrpt__slam__grp.html#gaa571f1b2df97883ce80558fc43dc4844">mrpt::slam::TICPAlgorithm</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The ICP algorithm selection, used in <a class="el" href="classmrpt_1_1slam_1_1_c_i_c_p.html#ac5276790c90522d2c506a0265305bcef" title="The options employed by the ICP align.">mrpt::slam::CICP::options</a>. </p>
<p>For details on the algorithms refer to <a href="http://www.mrpt.org/Scan_Matching_Algorithms">http://www.mrpt.org/Scan_Matching_Algorithms</a> </p>
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="ggaa571f1b2df97883ce80558fc43dc4844ade94fc09573025addb1a0b3648f7e70f"></a><!-- doxytag: member="icpClassic" ref="ggaa571f1b2df97883ce80558fc43dc4844ade94fc09573025addb1a0b3648f7e70f" args="" -->icpClassic</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ggaa571f1b2df97883ce80558fc43dc4844ab8b007ff9821e42341b90763116c7f8d"></a><!-- doxytag: member="icpLevenbergMarquardt" ref="ggaa571f1b2df97883ce80558fc43dc4844ab8b007ff9821e42341b90763116c7f8d" args="" -->icpLevenbergMarquardt</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ggaa571f1b2df97883ce80558fc43dc4844a7f98a570e19735f2bf55ed12504b5ca4"></a><!-- doxytag: member="icpIKF" ref="ggaa571f1b2df97883ce80558fc43dc4844a7f98a570e19735f2bf55ed12504b5ca4" args="" -->icpIKF</em>&nbsp;</td><td>
</td></tr>
</table>
</dd>
</dl>

<p>Definition at line <a class="el" href="_c_i_c_p_8h_source.html#l00044">44</a> of file <a class="el" href="_c_i_c_p_8h_source.html">CICP.h</a>.</p>

</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="ga2d32509abfdfd42e7597186bf2ab0ab0"></a><!-- doxytag: member="mrpt::slam::observationsOverlap" ref="ga2d32509abfdfd42e7597186bf2ab0ab0" args="(const mrpt::slam::CObservation *o1, const mrpt::slam::CObservation *o2, const mrpt::poses::CPose3D *pose_o2_wrt_o1=NULL)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double SLAM_IMPEXP mrpt::slam::observationsOverlap </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_observation.html">mrpt::slam::CObservation</a> *&#160;</td>
          <td class="paramname"><em>o1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_observation.html">mrpt::slam::CObservation</a> *&#160;</td>
          <td class="paramname"><em>o2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">mrpt::poses::CPose3D</a> *&#160;</td>
          <td class="paramname"><em>pose_o2_wrt_o1</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Estimates the "overlap" or "matching ratio" of two observations (range [0,1]), possibly taking into account their relative positions. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>This is used in <a class="el" href="classmrpt_1_1slam_1_1_c_incremental_map_partitioner.html" title="This class can be used to make partitions on a map/graph build from observations taken at some poses/...">mrpt::slam::CIncrementalMapPartitioner</a> </dd></dl>

<p>Referenced by <a class="el" href="observations__overlap_8h_source.html#l00056">mrpt::slam::observationsOverlap()</a>.</p>

</div>
</div>
<a class="anchor" id="ga3f4bb0b8cc83dec2e79704fab7cdfd52"></a><!-- doxytag: member="mrpt::slam::observationsOverlap" ref="ga3f4bb0b8cc83dec2e79704fab7cdfd52" args="(const mrpt::slam::CObservationPtr &amp;o1, const mrpt::slam::CObservationPtr &amp;o2, const mrpt::poses::CPose3D *pose_o2_wrt_o1=NULL)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double mrpt::slam::observationsOverlap </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1slam_1_1_c_observation_ptr.html">mrpt::slam::CObservationPtr</a> &amp;&#160;</td>
          <td class="paramname"><em>o1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1slam_1_1_c_observation_ptr.html">mrpt::slam::CObservationPtr</a> &amp;&#160;</td>
          <td class="paramname"><em>o2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">mrpt::poses::CPose3D</a> *&#160;</td>
          <td class="paramname"><em>pose_o2_wrt_o1</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Estimates the "overlap" or "matching ratio" of two observations (range [0,1]), possibly taking into account their relative positions. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>This is used in <a class="el" href="classmrpt_1_1slam_1_1_c_incremental_map_partitioner.html" title="This class can be used to make partitions on a map/graph build from observations taken at some poses/...">mrpt::slam::CIncrementalMapPartitioner</a> </dd></dl>

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

<p>References <a class="el" href="group__mrpt__slam__grp.html#ga2d32509abfdfd42e7597186bf2ab0ab0">mrpt::slam::observationsOverlap()</a>, and <a class="el" href="_c_observation_8h_source.html#l00067">mrpt::slam::CObservationPtr::pointer()</a>.</p>

</div>
</div>
<a class="anchor" id="ga93d1273b13626d7d4fee77e8e42238be"></a><!-- doxytag: member="mrpt::slam::observationsOverlap" ref="ga93d1273b13626d7d4fee77e8e42238be" args="(const mrpt::slam::CSensoryFrame &amp;sf1, const mrpt::slam::CSensoryFrame &amp;sf2, const mrpt::poses::CPose3D *pose_sf2_wrt_sf1=NULL)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double SLAM_IMPEXP mrpt::slam::observationsOverlap </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html">mrpt::slam::CSensoryFrame</a> &amp;&#160;</td>
          <td class="paramname"><em>sf1</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> &amp;&#160;</td>
          <td class="paramname"><em>sf2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">mrpt::poses::CPose3D</a> *&#160;</td>
          <td class="paramname"><em>pose_sf2_wrt_sf1</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Estimates the "overlap" or "matching ratio" of two set of observations (range [0,1]), possibly taking into account their relative positions. </p>
<p>This method computes the average between each of the observations in each SF. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>This is used in <a class="el" href="classmrpt_1_1slam_1_1_c_incremental_map_partitioner.html" title="This class can be used to make partitions on a map/graph build from observations taken at some poses/...">mrpt::slam::CIncrementalMapPartitioner</a> </dd></dl>

</div>
</div>
<a class="anchor" id="gad78544711408a739f049def4b50957ac"></a><!-- doxytag: member="mrpt::slam::observationsOverlap" ref="gad78544711408a739f049def4b50957ac" args="(const mrpt::slam::CSensoryFramePtr &amp;sf1, const mrpt::slam::CSensoryFramePtr &amp;sf2, const mrpt::poses::CPose3D *pose_sf2_wrt_sf1=NULL)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double mrpt::slam::observationsOverlap </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1slam_1_1_c_sensory_frame_ptr.html">mrpt::slam::CSensoryFramePtr</a> &amp;&#160;</td>
          <td class="paramname"><em>sf1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1slam_1_1_c_sensory_frame_ptr.html">mrpt::slam::CSensoryFramePtr</a> &amp;&#160;</td>
          <td class="paramname"><em>sf2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">mrpt::poses::CPose3D</a> *&#160;</td>
          <td class="paramname"><em>pose_sf2_wrt_sf1</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Estimates the "overlap" or "matching ratio" of two set of observations (range [0,1]), possibly taking into account their relative positions. </p>
<p>This method computes the average between each of the observations in each SF. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>This is used in <a class="el" href="classmrpt_1_1slam_1_1_c_incremental_map_partitioner.html" title="This class can be used to make partitions on a map/graph build from observations taken at some poses/...">mrpt::slam::CIncrementalMapPartitioner</a> </dd></dl>

<p>Definition at line <a class="el" href="observations__overlap_8h_source.html#l00077">77</a> of file <a class="el" href="observations__overlap_8h_source.html">observations_overlap.h</a>.</p>

<p>References <a class="el" href="group__mrpt__slam__grp.html#ga2d32509abfdfd42e7597186bf2ab0ab0">mrpt::slam::observationsOverlap()</a>, and <a class="el" href="_c_sensory_frame_8h_source.html#l00043">mrpt::slam::CSensoryFramePtr::pointer()</a>.</p>

</div>
</div>
<a class="anchor" id="gaf10ab5d4285a563ed99d28aed9a31c39"></a><!-- doxytag: member="mrpt::slam::PF_implementation::PF_SLAM_implementation_gatherActionsCheckBothActObs" ref="gaf10ab5d4285a563ed99d28aed9a31c39" args="(const CActionCollection *actions, const CSensoryFrame *sf)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class BINTYPE &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::slam::PF_implementation::PF_SLAM_implementation_gatherActionsCheckBothActObs </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_action_collection.html">CActionCollection</a> *&#160;</td>
          <td class="paramname"><em>actions</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">CSensoryFrame</a> *&#160;</td>
          <td class="paramname"><em>sf</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Auxiliary method called by PF implementations: return true if we have both action &amp; observation, otherwise, return false AND accumulate the odometry so when we have an observation we didn't lose a thing. </p>
<p>On return=true, the "m_movementDrawer" member is loaded and ready to draw samples of the increment of pose since last step. This method is smart enough to accumulate <a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html" title="Represents a probabilistic 2D movement of the robot mobile base.">CActionRobotMovement2D</a> or <a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement3_d.html" title="Represents a probabilistic 3D (6D) movement.">CActionRobotMovement3D</a>, whatever comes in. </p>

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

<p>References <a class="el" href="classmrpt_1_1slam_1_1_c_action_collection.html#a03485a37d5f8b0057ad5722b800ced25">mrpt::slam::CActionCollection::getBestMovementEstimation()</a>, <a class="el" href="mrpt__macros_8h_source.html#l00131">THROW_EXCEPTION</a>, <a class="el" href="_c_action_collection_8h_source.html#l00163">mrpt::slam::CActionCollection::getActionByClass()</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html#ae311480bde721a04b002cc7b08597fbf">mrpt::slam::CActionRobotMovement2D::computeFromOdometry()</a>, and <a class="el" href="_c_action_robot_movement2_d_8h_source.html#l00085">mrpt::slam::CActionRobotMovement2D::poseChange</a>.</p>

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