<!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> > <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 Page</span></a></li> <li><a href="pages.html"><span>Related 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> | <a href="#namespaces">Namespaces</a> | <a href="#groups">Modules</a> | <a href="#enum-members">Enumerations</a> | <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'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'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   " 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   " 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   " 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  </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"> </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  </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  </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"> </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  </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"> </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  </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"> </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  </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"> </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  </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"> </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  </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"> </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  </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"> </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  </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"> </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  </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"> </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  </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"> </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  </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"> </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  </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"> </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  </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"> </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  </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"> </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  </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"> </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  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemrpt_1_1slam.html">mrpt::slam</a></td></tr> <tr><td class="mdescLeft"> </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"> </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"> </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  </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"> </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<class BINTYPE > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top">bool </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"> </td><td class="mdescRight">Auxiliary method called by PF implementations: return true if we have both action & 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 </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"> </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 </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> &o1, const <a class="el" href="structmrpt_1_1slam_1_1_c_observation_ptr.html">mrpt::slam::CObservationPtr</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"> </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 </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> &sf1, const <a class="el" href="classmrpt_1_1slam_1_1_c_sensory_frame.html">mrpt::slam::CSensoryFrame</a> &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"> </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 </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> &sf1, const <a class="el" href="structmrpt_1_1slam_1_1_c_sensory_frame_ptr.html">mrpt::slam::CSensoryFramePtr</a> &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"> </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> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" id="ggaa571f1b2df97883ce80558fc43dc4844ab8b007ff9821e42341b90763116c7f8d"></a><!-- doxytag: member="icpLevenbergMarquardt" ref="ggaa571f1b2df97883ce80558fc43dc4844ab8b007ff9821e42341b90763116c7f8d" args="" -->icpLevenbergMarquardt</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" id="ggaa571f1b2df97883ce80558fc43dc4844a7f98a570e19735f2bf55ed12504b5ca4"></a><!-- doxytag: member="icpIKF" ref="ggaa571f1b2df97883ce80558fc43dc4844a7f98a570e19735f2bf55ed12504b5ca4" args="" -->icpIKF</em> </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> * </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> * </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> * </td> <td class="paramname"><em>pose_o2_wrt_o1</em> = <code>NULL</code> </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 &o1, const mrpt::slam::CObservationPtr &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> & </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> & </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> * </td> <td class="paramname"><em>pose_o2_wrt_o1</em> = <code>NULL</code> </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 &sf1, const mrpt::slam::CSensoryFrame &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> & </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> & </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> * </td> <td class="paramname"><em>pose_sf2_wrt_sf1</em> = <code>NULL</code> </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 &sf1, const mrpt::slam::CSensoryFramePtr &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> & </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> & </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> * </td> <td class="paramname"><em>pose_sf2_wrt_sf1</em> = <code>NULL</code> </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<class BINTYPE > </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> * </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> * </td> <td class="paramname"><em>sf</em> </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 & 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>