Sophie

Sophie

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

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::CMonteCarloLocalization2D 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_monte_carlo_localization2_d.html">CMonteCarloLocalization2D</a>
  </div>
</div>
<div class="contents">
<h1>mrpt::slam::CMonteCarloLocalization2D Class Reference</h1><!-- doxytag: class="mrpt::slam::CMonteCarloLocalization2D" --><!-- doxytag: inherits="mrpt::poses::CPosePDFParticles,PF_implementation&lt; CPose2D &gt;" -->
<p>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="#_details">More...</a></p>

<p><code>#include &lt;<a class="el" href="_c_monte_carlo_localization2_d_8h_source.html">mrpt/slam/CMonteCarloLocalization2D.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for mrpt::slam::CMonteCarloLocalization2D:</div>
<div class="dynsection">
<div class="center"><img src="classmrpt_1_1slam_1_1_c_monte_carlo_localization2_d__inherit__graph.png" border="0" usemap="#mrpt_1_1slam_1_1_c_monte_carlo_localization2_d_inherit__map" alt="Inheritance graph"/></div>
<map name="mrpt_1_1slam_1_1_c_monte_carlo_localization2_d_inherit__map" id="mrpt_1_1slam_1_1_c_monte_carlo_localization2_d_inherit__map">
<area shape="rect" id="node2" href="classmrpt_1_1poses_1_1_c_pose_p_d_f_particles.html" title="Declares a class that represents a Probability Density Function (PDF) over a 2D pose..." alt="" coords="963,85,1179,115"/><area shape="rect" id="node4" href="classmrpt_1_1poses_1_1_c_pose_p_d_f.html" title="Declares a class that represents a probability density function (pdf) of a 2D pose..." alt="" coords="652,32,817,61"/><area shape="rect" id="node6" 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="283,5,448,35"/><area shape="rect" id="node8" 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="5,5,141,35"/><area shape="rect" id="node10" href="classmrpt_1_1utils_1_1_c_probability_density_function.html" title="mrpt::utils::CProbabilityDensityFunction\&lt; CPose2D, 3 \&gt;" alt="" coords="191,59,540,88"/><area shape="rect" id="node12" href="classmrpt_1_1bayes_1_1_c_particle_filter_data.html" title="mrpt::bayes::CParticleFilterData\&lt; CPose2D \&gt;" alt="" coords="589,85,880,115"/><area shape="rect" id="node14" href="classmrpt_1_1bayes_1_1_c_particle_filter_capable.html" title="This virtual class defines the interface that any particles based PDF class must..." alt="" coords="620,139,849,168"/><area shape="rect" id="node16" href="classmrpt_1_1slam_1_1_p_f__implementation.html" title="mrpt::slam::PF_implementation\&lt; CPose2D \&gt;" alt="" coords="928,139,1213,168"/></map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for mrpt::slam::CMonteCarloLocalization2D:</div>
<div class="dynsection">
<div class="center"><img src="classmrpt_1_1slam_1_1_c_monte_carlo_localization2_d__coll__graph.png" border="0" usemap="#mrpt_1_1slam_1_1_c_monte_carlo_localization2_d_coll__map" alt="Collaboration graph"/></div>
<map name="mrpt_1_1slam_1_1_c_monte_carlo_localization2_d_coll__map" id="mrpt_1_1slam_1_1_c_monte_carlo_localization2_d_coll__map">
<area shape="rect" id="node2" href="classmrpt_1_1poses_1_1_c_pose_p_d_f_particles.html" title="Declares a class that represents a Probability Density Function (PDF) over a 2D pose..." alt="" coords="3213,145,3429,175"/><area shape="rect" id="node4" href="classmrpt_1_1poses_1_1_c_pose_p_d_f.html" title="Declares a class that represents a probability density function (pdf) of a 2D pose..." alt="" coords="1908,331,2073,360"/><area shape="rect" id="node78" href="classmrpt_1_1poses_1_1_c_pose_random_sampler.html" title="An efficient generator of random samples drawn from a given 2D (CPosePDF) or 3D (CPose3DPDF)..." alt="" coords="2500,575,2735,604"/><area shape="rect" id="node6" 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="296,740,461,769"/><area shape="rect" id="node39" href="classmrpt_1_1poses_1_1_c_pose3_d_p_d_f.html" title="Declares a class that represents a Probability Density Function (PDF) of a 3D pose..." alt="" coords="1900,813,2081,843"/><area shape="rect" id="node52" 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="641,559,823,588"/><area shape="rect" id="node63" href="classmrpt_1_1slam_1_1_c_action.html" title="Declares a class for storing a robot action." alt="" coords="912,263,1051,292"/><area shape="rect" id="node96" href="classmrpt_1_1slam_1_1_c_metric_map.html" title="Declares a virtual base class for all metric maps storage classes." alt="" coords="651,936,813,965"/><area shape="rect" id="node8" 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="5,1027,141,1056"/><area shape="rect" id="node10" href="structmrpt_1_1utils_1_1_t_runtime_class_id.html" title="A structure that holds runtime class type information." alt="" coords="284,1075,473,1104"/><area shape="rect" id="node14" href="classmrpt_1_1utils_1_1_c_probability_density_function.html" title="mrpt::utils::CProbabilityDensityFunction\&lt; CPose2D, 3 \&gt;" alt="" coords="1173,305,1523,335"/><area shape="rect" id="node16" href="classmrpt_1_1bayes_1_1_c_particle_filter_data.html" title="mrpt::bayes::CParticleFilterData\&lt; CPose2D \&gt;" alt="" coords="2472,72,2763,101"/><area shape="rect" id="node58" href="classmrpt_1_1bayes_1_1_c_particle_filter_data.html" title="This template class declares the array of particles and its internal data, managing..." alt="" coords="2496,179,2739,208"/><area shape="rect" id="node20" href="classmrpt_1_1bayes_1_1_c_particle_filter_capable.html" title="This virtual class defines the interface that any particles based PDF class must..." alt="" coords="2503,125,2732,155"/><area shape="rect" id="node35" href="classmrpt_1_1slam_1_1_p_f__implementation.html" title="mrpt::slam::PF_implementation\&lt; CPose2D \&gt;" alt="" coords="3179,359,3464,388"/><area shape="rect" id="node22" href="structmrpt_1_1bayes_1_1_c_particle_filter_capable_1_1_t_fast_draw_aux_vars.html" title="Auxiliary vectors, see CParticleFilterCapable::prepareFastDrawSample for more information..." alt="" coords="1815,35,2167,64"/><area shape="rect" id="node24" href="structmrpt_1_1mrpt__base__vector.html" title="mrpt::mrpt_base_vector\&lt; uint32_t \&gt;" alt="" coords="1233,36,1463,65"/><area shape="rect" id="node26" title="STL class." alt="" coords="655,40,809,69"/><area shape="rect" id="node32" title="STL class." alt="" coords="659,93,805,123"/><area shape="rect" id="node30" href="structmrpt_1_1mrpt__base__vector.html" title="mrpt::mrpt_base_vector\&lt; double \&gt;" alt="" coords="1237,100,1459,129"/><area shape="rect" id="node37" href="classmrpt_1_1poses_1_1_c_pose3_d_p_d_f_gaussian.html" title="Declares a class that represents a Probability Density function (PDF) of a 3D pose..." alt="" coords="2499,743,2736,772"/><area shape="rect" id="node42" href="classmrpt_1_1utils_1_1_c_probability_density_function.html" title="mrpt::utils::CProbabilityDensityFunction\&lt; CPose3D, 6 \&gt;" alt="" coords="1173,760,1523,789"/><area shape="rect" id="node44" href="classmrpt_1_1math_1_1_c_matrix_fixed_numeric.html" title="mrpt::math::CMatrixFixedNumeric\&lt; double, 6, 6 \&gt;" alt="" coords="1835,696,2147,725"/><area shape="rect" id="node46" href="classmrpt_1_1math_1_1_c_array.html" title="mrpt::math::CArray\&lt; double, NROWS *NCOLS \&gt;" alt="" coords="577,640,887,669"/><area shape="rect" id="node55" href="classmrpt_1_1math_1_1_c_matrix_fixed_numeric.html" title="mrpt::math::CMatrixFixedNumeric\&lt; double, 4, 4 \&gt;" alt="" coords="1192,640,1504,669"/><area shape="rect" id="node66" href="classmrpt_1_1math_1_1_c_matrix_fixed_numeric.html" title="mrpt::math::CMatrixFixedNumeric\&lt; double, 3, 3 \&gt;" alt="" coords="1835,575,2147,604"/><area shape="rect" id="node48" href="classmrpt_1_1poses_1_1_c_pose3_d.html" title="A class used to store a 3D pose." alt="" coords="1913,631,2068,660"/><area shape="rect" id="node50" href="classmrpt_1_1poses_1_1_c_pose.html" title="A virtual base class to represent a pose in 2D or 3D." alt="" coords="1279,521,1417,551"/><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="1913,511,2068,540"/><area shape="rect" id="node61" href="classmrpt_1_1slam_1_1_c_action_robot_movement2_d.html" title="Represents a probabilistic 2D movement of the robot mobile base." alt="" coords="2492,387,2743,416"/><area shape="rect" id="node69" href="structmrpt_1_1slam_1_1_c_action_robot_movement2_d_1_1_t_motion_model_options.html" title="The parameter to be passed to &quot;computeFromOdometry&quot;." alt="" coords="1797,409,2184,439"/><area shape="rect" id="node71" href="structmrpt_1_1slam_1_1_c_action_robot_movement2_d_1_1_t_motion_model_options_1_1_t_options___thrun_model.html" title="Options for the Thrun&#39;s model, which generates a CPosePDFParticles object in..." alt="" coords="1087,409,1609,439"/><area shape="rect" id="node73" href="structmrpt_1_1slam_1_1_c_action_robot_movement2_d_1_1_t_motion_model_options_1_1_t_options___gaussian_model.html" title="Options for the gaussian model, which generates a CPosePDFGaussian object in poseChange..." alt="" coords="1076,463,1620,492"/><area shape="rect" id="node92" href="structmrpt_1_1math_1_1_t_pose3_d.html" title="Lightweight 3D pose (three spatial coordinates, plus three angular coordinates)." alt="" coords="1917,893,2064,923"/><area shape="rect" id="node94" href="structmrpt_1_1slam_1_1_t_monte_carlo_localization_params.html" title="The struct for passing extra simulation parameters to the prediction stage when running..." alt="" coords="1851,947,2131,976"/><area shape="rect" id="node99" 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="297,980,460,1009"/><area shape="rect" id="node103" href="classmrpt_1_1utils_1_1_c_observer.html" title="Inherit from this class to get notified about events from any CObservable object..." alt="" coords="1273,1036,1423,1065"/><area shape="rect" id="node111" href="classmrpt_1_1slam_1_1_t_k_l_d_params.html" title="Option set for KLD algorithm." alt="" coords="1263,864,1433,893"/><area shape="rect" id="node113" 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="635,864,829,893"/></map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>

<p><a href="classmrpt_1_1slam_1_1_c_monte_carlo_localization2_d-members.html">List of all members.</a></p>
<table border="0" cellpadding="0" cellspacing="0">
<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_monte_carlo_localization2_d.html#acb3d7588ed20e69b8fd23a0b1e011043">CMonteCarloLocalization2D</a> (size_t M=1)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructor.  <a href="#acb3d7588ed20e69b8fd23a0b1e011043"></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_monte_carlo_localization2_d.html#a5354c522d83d89b5a2a308f66e7304d8">~CMonteCarloLocalization2D</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Destructor.  <a href="#a5354c522d83d89b5a2a308f66e7304d8"></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_monte_carlo_localization2_d.html#a7eb506028e19b4f2c7645158528c3baf">resetUniformFreeSpace</a> (<a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html">COccupancyGridMap2D</a> *theMap, const double freeCellsThreshold=0.7, const int particlesCount=-1, const double x_min=-1e10f, const double x_max=1e10f, const double y_min=-1e10f, const double y_max=1e10f, const double phi_min=-M_PI, const double phi_max=M_PI)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reset the PDF to an uniformly distributed one, but only in the free-space of a given 2D occupancy-grid-map.  <a href="#a7eb506028e19b4f2c7645158528c3baf"></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_monte_carlo_localization2_d.html#afb789df37583e3e6fbc28246a38a5ccd">prediction_and_update_pfStandardProposal</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_action_collection.html">mrpt::slam::CActionCollection</a> *action, const <a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html">mrpt::slam::CSensoryFrame</a> *observation, const <a class="el" href="structmrpt_1_1bayes_1_1_c_particle_filter_1_1_t_particle_filter_options.html">bayes::CParticleFilter::TParticleFilterOptions</a> &amp;PF_options)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Update the m_particles, predicting the posterior of robot pose and map after a movement command.  <a href="#afb789df37583e3e6fbc28246a38a5ccd"></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_monte_carlo_localization2_d.html#a3074ce8f8ecf530f127d62924c04a375">prediction_and_update_pfAuxiliaryPFStandard</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_action_collection.html">mrpt::slam::CActionCollection</a> *action, const <a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html">mrpt::slam::CSensoryFrame</a> *observation, const <a class="el" href="structmrpt_1_1bayes_1_1_c_particle_filter_1_1_t_particle_filter_options.html">bayes::CParticleFilter::TParticleFilterOptions</a> &amp;PF_options)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Update the m_particles, predicting the posterior of robot pose and map after a movement command.  <a href="#a3074ce8f8ecf530f127d62924c04a375"></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_monte_carlo_localization2_d.html#a6315a50c4e8384d6aa5416231072d27c">prediction_and_update_pfAuxiliaryPFOptimal</a> (const <a class="el" href="classmrpt_1_1slam_1_1_c_action_collection.html">mrpt::slam::CActionCollection</a> *action, const <a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html">mrpt::slam::CSensoryFrame</a> *observation, const <a class="el" href="structmrpt_1_1bayes_1_1_c_particle_filter_1_1_t_particle_filter_options.html">bayes::CParticleFilter::TParticleFilterOptions</a> &amp;PF_options)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Update the m_particles, predicting the posterior of robot pose and map after a movement command.  <a href="#a6315a50c4e8384d6aa5416231072d27c"></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_t_monte_carlo_localization_params.html">TMonteCarloLocalizationParams</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_monte_carlo_localization2_d.html#a6f214b5bae4484692a3a21d5ca1981b9">options</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">MCL parameters.  <a href="#a6f214b5bae4484692a3a21d5ca1981b9"></a><br/></td></tr>
<tr><td colspan="2"><h2>Protected Member Functions</h2></td></tr>
<tr><td colspan="2"><div class="groupHeader">Virtual methods that the PF_implementations assume exist.</div></td></tr>
<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp37ba3e62c1fac52db2f7cd78ab44d6be"></a> </p>
</div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structmrpt_1_1math_1_1_t_pose3_d.html">TPose3D</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_monte_carlo_localization2_d.html#ace61034827a83c8794af53600f2fcdf3">getLastPose</a> (const size_t i) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return a pointer to the last robot pose in the i'th particle (or NULL if it's a path and it's empty).  <a href="#ace61034827a83c8794af53600f2fcdf3"></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_monte_carlo_localization2_d.html#adade7d520c55a2b47ecf8b1179dab378">PF_SLAM_implementation_custom_update_particle_with_new_pose</a> (<a class="el" href="classmrpt_1_1bayes_1_1_c_particle_filter_data.html#ab9fd9df44738bcdc3a36fa34af89bbf2">CParticleDataContent</a> *particleData, const <a class="el" href="structmrpt_1_1math_1_1_t_pose3_d.html">TPose3D</a> &amp;newPose) const </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_monte_carlo_localization2_d.html#ab786216b1949681dadc7f6b01f67dd4a">PF_SLAM_implementation_replaceByNewParticleSet</a> (<a class="el" href="classmrpt_1_1bayes_1_1_c_particle_filter_data.html#a85b7ff978a09a6819813a9aa019ec448">CParticleList</a> &amp;old_particles, const vector&lt; <a class="el" href="structmrpt_1_1math_1_1_t_pose3_d.html">TPose3D</a> &gt; &amp;newParticles, const <a class="el" href="structmrpt_1_1mrpt__base__vector.html">vector_double</a> &amp;newParticlesWeight, const vector&lt; size_t &gt; &amp;newParticlesDerivedFromIdx) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This is the default algorithm to efficiently replace one old set of samples by another new set.  <a href="#ab786216b1949681dadc7f6b01f67dd4a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1slam_1_1_c_monte_carlo_localization2_d.html#a929290d1619d84209ac48761d13d6a92">PF_SLAM_computeObservationLikelihoodForParticle</a> (const <a class="el" href="structmrpt_1_1bayes_1_1_c_particle_filter_1_1_t_particle_filter_options.html">CParticleFilter::TParticleFilterOptions</a> &amp;PF_options, const size_t particleIndexForMap, const <a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html">CSensoryFrame</a> &amp;observation, const <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">CPose3D</a> &amp;x) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Evaluate the observation likelihood for one particle at a given location.  <a href="#a929290d1619d84209ac48761d13d6a92"></a><br/></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>Declares a class that represents a Probability Density Function (PDF) over a 2D pose (x,y,phi), using a set of weighted samples. </p>
<p>This class also implements particle filtering for robot localization. See the MRPT application "app/pf-localization" for an example of usage.</p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1slam_1_1_c_monte_carlo_localization3_d.html" title="Declares a class that represents a Probability Density Function (PDF) over a 3D pose...">CMonteCarloLocalization3D</a>, CPose2D, CPosePDF, CPoseGaussianPDF, <a class="el" href="classmrpt_1_1bayes_1_1_c_particle_filter_capable.html#a962214fbf62e0ced82450f032c3b65d9">CParticleFilterCapable</a> </dd></dl>

<p>Definition at line <a class="el" href="_c_monte_carlo_localization2_d_8h_source.html#l00055">55</a> of file <a class="el" href="_c_monte_carlo_localization2_d_8h_source.html">CMonteCarloLocalization2D.h</a>.</p>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="acb3d7588ed20e69b8fd23a0b1e011043"></a><!-- doxytag: member="mrpt::slam::CMonteCarloLocalization2D::CMonteCarloLocalization2D" ref="acb3d7588ed20e69b8fd23a0b1e011043" args="(size_t M=1)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">mrpt::slam::CMonteCarloLocalization2D::CMonteCarloLocalization2D </td>
          <td>(</td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>M</em> = <code>1</code></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Constructor. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>M</em>&nbsp;</td><td>The number of m_particles. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a5354c522d83d89b5a2a308f66e7304d8"></a><!-- doxytag: member="mrpt::slam::CMonteCarloLocalization2D::~CMonteCarloLocalization2D" ref="a5354c522d83d89b5a2a308f66e7304d8" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual mrpt::slam::CMonteCarloLocalization2D::~CMonteCarloLocalization2D </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="ace61034827a83c8794af53600f2fcdf3"></a><!-- doxytag: member="mrpt::slam::CMonteCarloLocalization2D::getLastPose" ref="ace61034827a83c8794af53600f2fcdf3" args="(const size_t i) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structmrpt_1_1math_1_1_t_pose3_d.html">TPose3D</a>* mrpt::slam::CMonteCarloLocalization2D::getLastPose </td>
          <td>(</td>
          <td class="paramtype">const size_t&nbsp;</td>
          <td class="paramname"> <em>i</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return a pointer to the last robot pose in the i'th particle (or NULL if it's a path and it's empty). </p>

<p>Implements <a class="el" href="classmrpt_1_1slam_1_1_p_f__implementation.html#ad5a3eac78f6262853a2e825cd6d7b421">mrpt::slam::PF_implementation&lt; CPose2D &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="a929290d1619d84209ac48761d13d6a92"></a><!-- doxytag: member="mrpt::slam::CMonteCarloLocalization2D::PF_SLAM_computeObservationLikelihoodForParticle" ref="a929290d1619d84209ac48761d13d6a92" args="(const CParticleFilter::TParticleFilterOptions &amp;PF_options, const size_t particleIndexForMap, const CSensoryFrame &amp;observation, const CPose3D &amp;x) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double mrpt::slam::CMonteCarloLocalization2D::PF_SLAM_computeObservationLikelihoodForParticle </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1bayes_1_1_c_particle_filter_1_1_t_particle_filter_options.html">CParticleFilter::TParticleFilterOptions</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>PF_options</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const size_t&nbsp;</td>
          <td class="paramname"> <em>particleIndexForMap</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> &amp;&nbsp;</td>
          <td class="paramname"> <em>observation</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">CPose3D</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>x</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const<code> [protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Evaluate the observation likelihood for one particle at a given location. </p>

<p>Implements <a class="el" href="classmrpt_1_1slam_1_1_p_f__implementation.html#a21301f5b6fb95049be087949feffdbe5">mrpt::slam::PF_implementation&lt; CPose2D &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="adade7d520c55a2b47ecf8b1179dab378"></a><!-- doxytag: member="mrpt::slam::CMonteCarloLocalization2D::PF_SLAM_implementation_custom_update_particle_with_new_pose" ref="adade7d520c55a2b47ecf8b1179dab378" args="(CParticleDataContent *particleData, const TPose3D &amp;newPose) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CMonteCarloLocalization2D::PF_SLAM_implementation_custom_update_particle_with_new_pose </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1bayes_1_1_c_particle_filter_data.html#ab9fd9df44738bcdc3a36fa34af89bbf2">CParticleDataContent</a> *&nbsp;</td>
          <td class="paramname"> <em>particleData</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1math_1_1_t_pose3_d.html">TPose3D</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>newPose</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const<code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ab786216b1949681dadc7f6b01f67dd4a"></a><!-- doxytag: member="mrpt::slam::CMonteCarloLocalization2D::PF_SLAM_implementation_replaceByNewParticleSet" ref="ab786216b1949681dadc7f6b01f67dd4a" args="(CParticleList &amp;old_particles, const vector&lt; TPose3D &gt; &amp;newParticles, const vector_double &amp;newParticlesWeight, const vector&lt; size_t &gt; &amp;newParticlesDerivedFromIdx) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CMonteCarloLocalization2D::PF_SLAM_implementation_replaceByNewParticleSet </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1bayes_1_1_c_particle_filter_data.html#a85b7ff978a09a6819813a9aa019ec448">CParticleList</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>old_particles</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const vector&lt; <a class="el" href="structmrpt_1_1math_1_1_t_pose3_d.html">TPose3D</a> &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>newParticles</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1mrpt__base__vector.html">vector_double</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>newParticlesWeight</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const vector&lt; size_t &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>newParticlesDerivedFromIdx</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const<code> [protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This is the default algorithm to efficiently replace one old set of samples by another new set. </p>
<p>The method uses pointers to make fast copies the first time each particle is duplicated, then makes real copies for the next ones.</p>
<p>Note that more efficient specializations might exist for specific particle data structs. </p>

<p>Reimplemented from <a class="el" href="classmrpt_1_1slam_1_1_p_f__implementation.html#a4cc6e01d6db23d2df670144cc15e8cf8">mrpt::slam::PF_implementation&lt; CPose2D &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="a6315a50c4e8384d6aa5416231072d27c"></a><!-- doxytag: member="mrpt::slam::CMonteCarloLocalization2D::prediction_and_update_pfAuxiliaryPFOptimal" ref="a6315a50c4e8384d6aa5416231072d27c" args="(const mrpt::slam::CActionCollection *action, const mrpt::slam::CSensoryFrame *observation, const bayes::CParticleFilter::TParticleFilterOptions &amp;PF_options)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CMonteCarloLocalization2D::prediction_and_update_pfAuxiliaryPFOptimal </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_action_collection.html">mrpt::slam::CActionCollection</a> *&nbsp;</td>
          <td class="paramname"> <em>action</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html">mrpt::slam::CSensoryFrame</a> *&nbsp;</td>
          <td class="paramname"> <em>observation</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1bayes_1_1_c_particle_filter_1_1_t_particle_filter_options.html">bayes::CParticleFilter::TParticleFilterOptions</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>PF_options</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>Update the m_particles, predicting the posterior of robot pose and map after a movement command. </p>
<p>This method has additional configuration parameters in "options". Performs the update stage of the RBPF, using the sensed Sensorial Frame:</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>This is a pointer to <a class="el" href="classmrpt_1_1slam_1_1_c_action_collection.html" title="Declares a class for storing a collection of robot actions.">CActionCollection</a>, containing the pose change the robot has been commanded. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>observation</em>&nbsp;</td><td>This must be a pointer to a <a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html" title="Declares a class for storing a &quot;sensory frame&quot;, a set of &quot;observations&quot;...">CSensoryFrame</a> object, with robot sensed observations.</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_monte_carlo_localization2_d.html#a6f214b5bae4484692a3a21d5ca1981b9" title="MCL parameters.">options</a> </dd></dl>

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

</div>
</div>
<a class="anchor" id="a3074ce8f8ecf530f127d62924c04a375"></a><!-- doxytag: member="mrpt::slam::CMonteCarloLocalization2D::prediction_and_update_pfAuxiliaryPFStandard" ref="a3074ce8f8ecf530f127d62924c04a375" args="(const mrpt::slam::CActionCollection *action, const mrpt::slam::CSensoryFrame *observation, const bayes::CParticleFilter::TParticleFilterOptions &amp;PF_options)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CMonteCarloLocalization2D::prediction_and_update_pfAuxiliaryPFStandard </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_action_collection.html">mrpt::slam::CActionCollection</a> *&nbsp;</td>
          <td class="paramname"> <em>action</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html">mrpt::slam::CSensoryFrame</a> *&nbsp;</td>
          <td class="paramname"> <em>observation</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1bayes_1_1_c_particle_filter_1_1_t_particle_filter_options.html">bayes::CParticleFilter::TParticleFilterOptions</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>PF_options</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>Update the m_particles, predicting the posterior of robot pose and map after a movement command. </p>
<p>This method has additional configuration parameters in "options". Performs the update stage of the RBPF, using the sensed Sensorial Frame:</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>This is a pointer to <a class="el" href="classmrpt_1_1slam_1_1_c_action_collection.html" title="Declares a class for storing a collection of robot actions.">CActionCollection</a>, containing the pose change the robot has been commanded. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>observation</em>&nbsp;</td><td>This must be a pointer to a <a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html" title="Declares a class for storing a &quot;sensory frame&quot;, a set of &quot;observations&quot;...">CSensoryFrame</a> object, with robot sensed observations.</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_monte_carlo_localization2_d.html#a6f214b5bae4484692a3a21d5ca1981b9" title="MCL parameters.">options</a> </dd></dl>

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

</div>
</div>
<a class="anchor" id="afb789df37583e3e6fbc28246a38a5ccd"></a><!-- doxytag: member="mrpt::slam::CMonteCarloLocalization2D::prediction_and_update_pfStandardProposal" ref="afb789df37583e3e6fbc28246a38a5ccd" args="(const mrpt::slam::CActionCollection *action, const mrpt::slam::CSensoryFrame *observation, const bayes::CParticleFilter::TParticleFilterOptions &amp;PF_options)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CMonteCarloLocalization2D::prediction_and_update_pfStandardProposal </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_action_collection.html">mrpt::slam::CActionCollection</a> *&nbsp;</td>
          <td class="paramname"> <em>action</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html">mrpt::slam::CSensoryFrame</a> *&nbsp;</td>
          <td class="paramname"> <em>observation</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1bayes_1_1_c_particle_filter_1_1_t_particle_filter_options.html">bayes::CParticleFilter::TParticleFilterOptions</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>PF_options</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>Update the m_particles, predicting the posterior of robot pose and map after a movement command. </p>
<p>This method has additional configuration parameters in "options". Performs the update stage of the RBPF, using the sensed Sensorial Frame:</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>This is a pointer to <a class="el" href="classmrpt_1_1slam_1_1_c_action_collection.html" title="Declares a class for storing a collection of robot actions.">CActionCollection</a>, containing the pose change the robot has been commanded. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>observation</em>&nbsp;</td><td>This must be a pointer to a <a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html" title="Declares a class for storing a &quot;sensory frame&quot;, a set of &quot;observations&quot;...">CSensoryFrame</a> object, with robot sensed observations.</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_monte_carlo_localization2_d.html#a6f214b5bae4484692a3a21d5ca1981b9" title="MCL parameters.">options</a> </dd></dl>

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

</div>
</div>
<a class="anchor" id="a7eb506028e19b4f2c7645158528c3baf"></a><!-- doxytag: member="mrpt::slam::CMonteCarloLocalization2D::resetUniformFreeSpace" ref="a7eb506028e19b4f2c7645158528c3baf" args="(COccupancyGridMap2D *theMap, const double freeCellsThreshold=0.7, const int particlesCount=&#45;1, const double x_min=&#45;1e10f, const double x_max=1e10f, const double y_min=&#45;1e10f, const double y_max=1e10f, const double phi_min=&#45;M_PI, const double phi_max=M_PI)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::slam::CMonteCarloLocalization2D::resetUniformFreeSpace </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map2_d.html">COccupancyGridMap2D</a> *&nbsp;</td>
          <td class="paramname"> <em>theMap</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&nbsp;</td>
          <td class="paramname"> <em>freeCellsThreshold</em> = <code>0.7</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int&nbsp;</td>
          <td class="paramname"> <em>particlesCount</em> = <code>-1</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&nbsp;</td>
          <td class="paramname"> <em>x_min</em> = <code>-1e10f</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&nbsp;</td>
          <td class="paramname"> <em>x_max</em> = <code>1e10f</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&nbsp;</td>
          <td class="paramname"> <em>y_min</em> = <code>-1e10f</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&nbsp;</td>
          <td class="paramname"> <em>y_max</em> = <code>1e10f</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&nbsp;</td>
          <td class="paramname"> <em>phi_min</em> = <code>-M_PI</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&nbsp;</td>
          <td class="paramname"> <em>phi_max</em> = <code>M_PI</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reset the PDF to an uniformly distributed one, but only in the free-space of a given 2D occupancy-grid-map. </p>
<p>Orientation is randomly generated in the whole 2*PI range. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>theMap</em>&nbsp;</td><td>The occupancy grid map </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>freeCellsThreshold</em>&nbsp;</td><td>The minimum free-probability to consider a cell as empty (default is 0.7) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>particlesCount</em>&nbsp;</td><td>If set to -1 the number of m_particles remains unchanged. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>x_min</em>&nbsp;</td><td>The limits of the area to look for free cells. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>x_max</em>&nbsp;</td><td>The limits of the area to look for free cells. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>y_min</em>&nbsp;</td><td>The limits of the area to look for free cells. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>y_max</em>&nbsp;</td><td>The limits of the area to look for free cells. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>phi_min</em>&nbsp;</td><td>The limits of the area to look for free cells. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>phi_max</em>&nbsp;</td><td>The limits of the area to look for free cells. </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd>resetDeterm32inistic </dd></dl>
<dl><dt><b>Exceptions:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>std::exception</em>&nbsp;</td><td>On any error (no free cell found in map, map=NULL, etc...) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<hr/><h2>Member Data Documentation</h2>
<a class="anchor" id="a6f214b5bae4484692a3a21d5ca1981b9"></a><!-- doxytag: member="mrpt::slam::CMonteCarloLocalization2D::options" ref="a6f214b5bae4484692a3a21d5ca1981b9" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structmrpt_1_1slam_1_1_t_monte_carlo_localization_params.html">TMonteCarloLocalizationParams</a> <a class="el" href="classmrpt_1_1slam_1_1_c_monte_carlo_localization2_d.html#a6f214b5bae4484692a3a21d5ca1981b9">mrpt::slam::CMonteCarloLocalization2D::options</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>MCL parameters. </p>

<p>Definition at line <a class="el" href="_c_monte_carlo_localization2_d_8h_source.html#l00060">60</a> of file <a class="el" href="_c_monte_carlo_localization2_d_8h_source.html">CMonteCarloLocalization2D.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>