mirror of
https://github.com/introlab/rtabmap.git
synced 2026-10-04 00:57:46 +08:00
2781 lines
178 KiB
HTML
2781 lines
178 KiB
HTML
<!-- HTML header for doxygen 1.9.8-->
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
|
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
|
<meta name="generator" content="Doxygen 1.9.8"/>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
|
<title>RTAB-Map: rtabmap::Rtabmap Class Reference</title>
|
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="jquery.js"></script>
|
|
<script type="text/javascript" src="dynsections.js"></script>
|
|
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="resize.js"></script>
|
|
<script type="text/javascript" src="navtreedata.js"></script>
|
|
<script type="text/javascript" src="navtree.js"></script>
|
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
|
<script type="text/javascript" src="search/search.js"></script>
|
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
|
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
|
|
<link href="custom.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript">window.RTABMAP_DOC_ROOT="";</script>
|
|
<script type="text/javascript" src="../versions.js"></script>
|
|
<script type="text/javascript" src="version-switcher.js"></script>
|
|
<script type="text/javascript" src="doxygen-awesome-darkmode-toggle.js"></script>
|
|
<script type="text/javascript">DoxygenAwesomeDarkModeToggle.init();</script>
|
|
</head>
|
|
<body>
|
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
|
<div id="titlearea">
|
|
<table cellspacing="0" cellpadding="0">
|
|
<tbody>
|
|
<tr id="projectrow">
|
|
<td id="projectalign">
|
|
<div id="projectname">RTAB-Map<span id="projectnumber"> 0.23.11</span>
|
|
</div>
|
|
<div id="projectbrief">Real-Time Appearance-Based Mapping</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<!-- end header part -->
|
|
<!-- Generated by Doxygen 1.9.8 -->
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
|
/* @license-end */
|
|
</script>
|
|
<script type="text/javascript" src="menudata.js"></script>
|
|
<script type="text/javascript" src="menu.js"></script>
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
$(function() {
|
|
initMenu('',true,false,'search.php','Search');
|
|
$(document).ready(function() { init_search(); });
|
|
});
|
|
/* @license-end */
|
|
</script>
|
|
<div id="main-nav"></div>
|
|
</div><!-- top -->
|
|
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
|
<div id="nav-tree">
|
|
<div id="nav-tree-contents">
|
|
<div id="nav-sync" class="sync"></div>
|
|
</div>
|
|
</div>
|
|
<div id="splitbar" style="-moz-user-select:none;"
|
|
class="ui-resizable-handle">
|
|
</div>
|
|
</div>
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
$(document).ready(function(){initNavTree('classrtabmap_1_1Rtabmap.html',''); initResizable(); });
|
|
/* @license-end */
|
|
</script>
|
|
<div id="doc-content">
|
|
<!-- window showing the filter options -->
|
|
<div id="MSearchSelectWindow"
|
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
|
</div>
|
|
|
|
<!-- iframe showing the search results (closed by default) -->
|
|
<div id="MSearchResultsWindow">
|
|
<div id="MSearchResults">
|
|
<div class="SRPage">
|
|
<div id="SRIndex">
|
|
<div id="SRResults"></div>
|
|
<div class="SRStatus" id="Loading">Loading...</div>
|
|
<div class="SRStatus" id="Searching">Searching...</div>
|
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="header">
|
|
<div class="summary">
|
|
<a href="#pub-types">Public Types</a> |
|
|
<a href="#pub-methods">Public Member Functions</a> |
|
|
<a href="classrtabmap_1_1Rtabmap-members.html">List of all members</a> </div>
|
|
<div class="headertitle"><div class="title">rtabmap::Rtabmap Class Reference</div></div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
|
|
<p>Top-level RTAB-Map SLAM pipeline (mapping, localization and loop closure).
|
|
<a href="classrtabmap_1_1Rtabmap.html#details">More...</a></p>
|
|
|
|
<p><code>#include <<a class="el" href="Rtabmap_8h_source.html">Rtabmap.h</a>></code></p>
|
|
<table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-types" name="pub-types"></a>
|
|
Public Types</h2></td></tr>
|
|
<tr class="memitem:afa134603fb0835b84f269e48e7ab568c" id="r_afa134603fb0835b84f269e48e7ab568c"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#afa134603fb0835b84f269e48e7ab568c">VhStrategy</a> { <a class="el" href="classrtabmap_1_1Rtabmap.html#afa134603fb0835b84f269e48e7ab568caea5e55cc106979d91f695c064a78926b">kVhNone</a>
|
|
, <a class="el" href="classrtabmap_1_1Rtabmap.html#afa134603fb0835b84f269e48e7ab568ca1b458648c7dc4ea000ca53e0e384e3c6">kVhEpipolar</a>
|
|
, <a class="el" href="classrtabmap_1_1Rtabmap.html#afa134603fb0835b84f269e48e7ab568cab2676e6cebdd6090d3c87a3237c3e83b">kVhUndef</a>
|
|
}</td></tr>
|
|
<tr class="memdesc:afa134603fb0835b84f269e48e7ab568c"><td class="mdescLeft"> </td><td class="mdescRight">Loop-closure verification strategy. <a href="classrtabmap_1_1Rtabmap.html#afa134603fb0835b84f269e48e7ab568c">More...</a><br /></td></tr>
|
|
<tr class="separator:afa134603fb0835b84f269e48e7ab568c"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
|
|
Public Member Functions</h2></td></tr>
|
|
<tr class="memitem:ad7f085b6ae0fd3c7077c500c028fd5c3" id="r_ad7f085b6ae0fd3c7077c500c028fd5c3"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#ad7f085b6ae0fd3c7077c500c028fd5c3">process</a> (const <a class="el" href="classrtabmap_1_1SensorData.html">SensorData</a> &data, <a class="el" href="classrtabmap_1_1Transform.html">Transform</a> odomPose, const cv::Mat &odomCovariance=cv::Mat::eye(6, 6, CV_64FC1), const std::vector< float > &odomVelocity=std::vector< float >(), const std::map< std::string, float > &externalStats=std::map< std::string, float >())</td></tr>
|
|
<tr class="memdesc:ad7f085b6ae0fd3c7077c500c028fd5c3"><td class="mdescLeft"> </td><td class="mdescRight">Main RTAB-Map iteration: ingests one sensor frame and updates the map. <br /></td></tr>
|
|
<tr class="separator:ad7f085b6ae0fd3c7077c500c028fd5c3"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a91cedf4574a557cadf6daded489e4dbe" id="r_a91cedf4574a557cadf6daded489e4dbe"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#a91cedf4574a557cadf6daded489e4dbe">process</a> (const <a class="el" href="classrtabmap_1_1SensorData.html">SensorData</a> &data, <a class="el" href="classrtabmap_1_1Transform.html">Transform</a> odomPose, float odomLinearVariance, float odomAngularVariance, const std::vector< float > &odomVelocity=std::vector< float >(), const std::map< std::string, float > &externalStats=std::map< std::string, float >())</td></tr>
|
|
<tr class="memdesc:a91cedf4574a557cadf6daded489e4dbe"><td class="mdescLeft"> </td><td class="mdescRight">Convenience overload: builds a diagonal covariance from scalar variances. <br /></td></tr>
|
|
<tr class="separator:a91cedf4574a557cadf6daded489e4dbe"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a35cf8fd93f77d1c148ae6d3107725750" id="r_a35cf8fd93f77d1c148ae6d3107725750"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#a35cf8fd93f77d1c148ae6d3107725750">process</a> (const cv::Mat &image, int id=0, const std::map< std::string, float > &externalStats=std::map< std::string, float >())</td></tr>
|
|
<tr class="memdesc:a35cf8fd93f77d1c148ae6d3107725750"><td class="mdescLeft"> </td><td class="mdescRight">Appearance-only convenience overload (loop-closure detection without odometry). <br /></td></tr>
|
|
<tr class="separator:a35cf8fd93f77d1c148ae6d3107725750"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a711c479925db2c9f8201aacffe70281b" id="r_a711c479925db2c9f8201aacffe70281b"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#a711c479925db2c9f8201aacffe70281b">init</a> (const <a class="el" href="namespacertabmap.html#ad08b6f1796a27dd7316c99c385e2cc55">ParametersMap</a> &parameters, const std::string &databasePath="", bool loadDatabaseParameters=false)</td></tr>
|
|
<tr class="memdesc:a711c479925db2c9f8201aacffe70281b"><td class="mdescLeft"> </td><td class="mdescRight">Initializes <a class="el" href="classrtabmap_1_1Rtabmap.html" title="Top-level RTAB-Map SLAM pipeline (mapping, localization and loop closure).">Rtabmap</a> with parameters and a database. <br /></td></tr>
|
|
<tr class="separator:a711c479925db2c9f8201aacffe70281b"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a25bfb157aa3be3bd3c8a1d4200329041" id="r_a25bfb157aa3be3bd3c8a1d4200329041"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#a25bfb157aa3be3bd3c8a1d4200329041">init</a> (const std::string &configFile="", const std::string &databasePath="", bool loadDatabaseParameters=false)</td></tr>
|
|
<tr class="memdesc:a25bfb157aa3be3bd3c8a1d4200329041"><td class="mdescLeft"> </td><td class="mdescRight">Initializes <a class="el" href="classrtabmap_1_1Rtabmap.html" title="Top-level RTAB-Map SLAM pipeline (mapping, localization and loop closure).">Rtabmap</a> from a configuration file and a database. <br /></td></tr>
|
|
<tr class="separator:a25bfb157aa3be3bd3c8a1d4200329041"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a5e0b2eada8ae885e45df23165bb91d2f" id="r_a5e0b2eada8ae885e45df23165bb91d2f"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#a5e0b2eada8ae885e45df23165bb91d2f">close</a> (bool databaseSaved=true, const std::string &ouputDatabasePath="")</td></tr>
|
|
<tr class="memdesc:a5e0b2eada8ae885e45df23165bb91d2f"><td class="mdescLeft"> </td><td class="mdescRight">Closes <a class="el" href="classrtabmap_1_1Rtabmap.html" title="Top-level RTAB-Map SLAM pipeline (mapping, localization and loop closure).">Rtabmap</a> and releases the underlying <a class="el" href="classrtabmap_1_1Memory.html">Memory</a>. <br /></td></tr>
|
|
<tr class="separator:a5e0b2eada8ae885e45df23165bb91d2f"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a61bc4dce59a1da8b904a7dbe39e5038a" id="r_a61bc4dce59a1da8b904a7dbe39e5038a"><td class="memItemLeft" align="right" valign="top">const std::string & </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#a61bc4dce59a1da8b904a7dbe39e5038a">getWorkingDir</a> () const</td></tr>
|
|
<tr class="separator:a61bc4dce59a1da8b904a7dbe39e5038a"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a691de75b6964ab48d7f1ea53ea40f4c1" id="r_a691de75b6964ab48d7f1ea53ea40f4c1"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#a691de75b6964ab48d7f1ea53ea40f4c1">isRGBDMode</a> () const</td></tr>
|
|
<tr class="separator:a691de75b6964ab48d7f1ea53ea40f4c1"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a2bc8eecb690ec1e36955119cd2c1a197" id="r_a2bc8eecb690ec1e36955119cd2c1a197"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#a2bc8eecb690ec1e36955119cd2c1a197">getLoopClosureId</a> () const</td></tr>
|
|
<tr class="separator:a2bc8eecb690ec1e36955119cd2c1a197"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:adc87cbb6adde3027b8c20bbba25fec7b" id="r_adc87cbb6adde3027b8c20bbba25fec7b"><td class="memItemLeft" align="right" valign="top">float </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#adc87cbb6adde3027b8c20bbba25fec7b">getLoopClosureValue</a> () const</td></tr>
|
|
<tr class="separator:adc87cbb6adde3027b8c20bbba25fec7b"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ab11a50751ab17717f567934e7cb2c450" id="r_ab11a50751ab17717f567934e7cb2c450"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#ab11a50751ab17717f567934e7cb2c450">getHighestHypothesisId</a> () const</td></tr>
|
|
<tr class="separator:ab11a50751ab17717f567934e7cb2c450"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a530c87cda2cd010e384178bced6611a1" id="r_a530c87cda2cd010e384178bced6611a1"><td class="memItemLeft" align="right" valign="top">float </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#a530c87cda2cd010e384178bced6611a1">getHighestHypothesisValue</a> () const</td></tr>
|
|
<tr class="separator:a530c87cda2cd010e384178bced6611a1"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a9406c710b7af988dda1868a3efa8f1dd" id="r_a9406c710b7af988dda1868a3efa8f1dd"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#a9406c710b7af988dda1868a3efa8f1dd">getLastLocationId</a> () const</td></tr>
|
|
<tr class="separator:a9406c710b7af988dda1868a3efa8f1dd"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ae3d40ed4ee48954e70d45e0779c24a49" id="r_ae3d40ed4ee48954e70d45e0779c24a49"><td class="memItemLeft" align="right" valign="top">std::list< int > </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#ae3d40ed4ee48954e70d45e0779c24a49">getWM</a> () const</td></tr>
|
|
<tr class="separator:ae3d40ed4ee48954e70d45e0779c24a49"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a809673c3d0e6d8fb05ebb4a52218d438" id="r_a809673c3d0e6d8fb05ebb4a52218d438"><td class="memItemLeft" align="right" valign="top">std::set< int > </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#a809673c3d0e6d8fb05ebb4a52218d438">getSTM</a> () const</td></tr>
|
|
<tr class="separator:a809673c3d0e6d8fb05ebb4a52218d438"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a203a18eb60f6c057518fd5129bbc32ff" id="r_a203a18eb60f6c057518fd5129bbc32ff"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#a203a18eb60f6c057518fd5129bbc32ff">getWMSize</a> () const</td></tr>
|
|
<tr class="separator:a203a18eb60f6c057518fd5129bbc32ff"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a49adc83991d6b95c7911f41330cbd467" id="r_a49adc83991d6b95c7911f41330cbd467"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#a49adc83991d6b95c7911f41330cbd467">getSTMSize</a> () const</td></tr>
|
|
<tr class="separator:a49adc83991d6b95c7911f41330cbd467"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a353361aeeece3ce8c799d168a5798a01" id="r_a353361aeeece3ce8c799d168a5798a01"><td class="memItemLeft" align="right" valign="top">std::map< int, int > </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#a353361aeeece3ce8c799d168a5798a01">getWeights</a> () const</td></tr>
|
|
<tr class="separator:a353361aeeece3ce8c799d168a5798a01"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ab44f1bca06eec4beb8dfebeed9ed5ce8" id="r_ab44f1bca06eec4beb8dfebeed9ed5ce8"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#ab44f1bca06eec4beb8dfebeed9ed5ce8">getTotalMemSize</a> () const</td></tr>
|
|
<tr class="separator:ab44f1bca06eec4beb8dfebeed9ed5ce8"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a88ffdd1ba70707e5969deab4f6ee66a0" id="r_a88ffdd1ba70707e5969deab4f6ee66a0"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#a88ffdd1ba70707e5969deab4f6ee66a0">getLastProcessTime</a> () const</td></tr>
|
|
<tr class="separator:a88ffdd1ba70707e5969deab4f6ee66a0"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a596ea3fbeb22c90db9530f6752900ecc" id="r_a596ea3fbeb22c90db9530f6752900ecc"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#a596ea3fbeb22c90db9530f6752900ecc">isInSTM</a> (int locationId) const</td></tr>
|
|
<tr class="separator:a596ea3fbeb22c90db9530f6752900ecc"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a5e85283c6421dcf9afb6961662e501b8" id="r_a5e85283c6421dcf9afb6961662e501b8"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#a5e85283c6421dcf9afb6961662e501b8">isIDsGenerated</a> () const</td></tr>
|
|
<tr class="separator:a5e85283c6421dcf9afb6961662e501b8"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a5d18002c7eb7cee234471686413d201c" id="r_a5d18002c7eb7cee234471686413d201c"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classrtabmap_1_1Statistics.html">Statistics</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#a5d18002c7eb7cee234471686413d201c">getStatistics</a> () const</td></tr>
|
|
<tr class="separator:a5d18002c7eb7cee234471686413d201c"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:aebe0bf9364ff8952d041f57c6a1c1d57" id="r_aebe0bf9364ff8952d041f57c6a1c1d57"><td class="memItemLeft" align="right" valign="top">const std::map< int, <a class="el" href="classrtabmap_1_1Transform.html">Transform</a> > & </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#aebe0bf9364ff8952d041f57c6a1c1d57">getLocalOptimizedPoses</a> () const</td></tr>
|
|
<tr class="separator:aebe0bf9364ff8952d041f57c6a1c1d57"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a4d1e329f0c0fcc341d14f6853ec86750" id="r_a4d1e329f0c0fcc341d14f6853ec86750"><td class="memItemLeft" align="right" valign="top">const std::multimap< int, <a class="el" href="classrtabmap_1_1Link.html">Link</a> > & </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#a4d1e329f0c0fcc341d14f6853ec86750">getLocalConstraints</a> () const</td></tr>
|
|
<tr class="separator:a4d1e329f0c0fcc341d14f6853ec86750"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ac430e0adb75dc4aec3b7ba77053aabd0" id="r_ac430e0adb75dc4aec3b7ba77053aabd0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classrtabmap_1_1Transform.html">Transform</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#ac430e0adb75dc4aec3b7ba77053aabd0">getPose</a> (int locationId) const</td></tr>
|
|
<tr class="separator:ac430e0adb75dc4aec3b7ba77053aabd0"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a7b71f70a20f1ef42a65fa9571e254711" id="r_a7b71f70a20f1ef42a65fa9571e254711"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classrtabmap_1_1Transform.html">Transform</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#a7b71f70a20f1ef42a65fa9571e254711">getMapCorrection</a> () const</td></tr>
|
|
<tr class="separator:a7b71f70a20f1ef42a65fa9571e254711"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a08adb5e0b8019c1dbd4f571099d2d46b" id="r_a08adb5e0b8019c1dbd4f571099d2d46b"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classrtabmap_1_1Memory.html">Memory</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#a08adb5e0b8019c1dbd4f571099d2d46b">getMemory</a> () const</td></tr>
|
|
<tr class="separator:a08adb5e0b8019c1dbd4f571099d2d46b"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a6098155788f6e9ccaa636e26f8881c07" id="r_a6098155788f6e9ccaa636e26f8881c07"><td class="memItemLeft" align="right" valign="top">float </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#a6098155788f6e9ccaa636e26f8881c07">getGoalReachedRadius</a> () const</td></tr>
|
|
<tr class="separator:a6098155788f6e9ccaa636e26f8881c07"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a6a4c533659621ccb1f6a5ddbc8149306" id="r_a6a4c533659621ccb1f6a5ddbc8149306"><td class="memItemLeft" align="right" valign="top">float </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#a6a4c533659621ccb1f6a5ddbc8149306">getLocalRadius</a> () const</td></tr>
|
|
<tr class="separator:a6a4c533659621ccb1f6a5ddbc8149306"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a2d2efac02d4a6d1d7bbc505d94fd634b" id="r_a2d2efac02d4a6d1d7bbc505d94fd634b"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classrtabmap_1_1Transform.html">Transform</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#a2d2efac02d4a6d1d7bbc505d94fd634b">getLastLocalizationPose</a> () const</td></tr>
|
|
<tr class="separator:a2d2efac02d4a6d1d7bbc505d94fd634b"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:af7fa0cbd1ef027f8bb2af11364487df8" id="r_af7fa0cbd1ef027f8bb2af11364487df8"><td class="memItemLeft" align="right" valign="top">float </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#af7fa0cbd1ef027f8bb2af11364487df8">getTimeThreshold</a> () const</td></tr>
|
|
<tr class="separator:af7fa0cbd1ef027f8bb2af11364487df8"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a80add8fadd488d0c7781c249abea0d5d" id="r_a80add8fadd488d0c7781c249abea0d5d"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#a80add8fadd488d0c7781c249abea0d5d">setTimeThreshold</a> (float maxTimeAllowed)</td></tr>
|
|
<tr class="memdesc:a80add8fadd488d0c7781c249abea0d5d"><td class="mdescLeft"> </td><td class="mdescRight">Sets the per-iteration time budget (ms). <br /></td></tr>
|
|
<tr class="separator:a80add8fadd488d0c7781c249abea0d5d"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a876d3599c76de815bee4b278a087cfa5" id="r_a876d3599c76de815bee4b278a087cfa5"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#a876d3599c76de815bee4b278a087cfa5">getMemoryThreshold</a> () const</td></tr>
|
|
<tr class="separator:a876d3599c76de815bee4b278a087cfa5"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a6915ee0137b949837addcb5d3ac1646c" id="r_a6915ee0137b949837addcb5d3ac1646c"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#a6915ee0137b949837addcb5d3ac1646c">setMemoryThreshold</a> (int maxMemoryAllowed)</td></tr>
|
|
<tr class="memdesc:a6915ee0137b949837addcb5d3ac1646c"><td class="mdescLeft"> </td><td class="mdescRight">Sets the maximum number of signatures kept in WM (0 = unbounded). <br /></td></tr>
|
|
<tr class="separator:a6915ee0137b949837addcb5d3ac1646c"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a9a9321531773f37cd5d7740495ede47f" id="r_a9a9321531773f37cd5d7740495ede47f"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#a9a9321531773f37cd5d7740495ede47f">setInitialPose</a> (const <a class="el" href="classrtabmap_1_1Transform.html">Transform</a> &initialPose)</td></tr>
|
|
<tr class="memdesc:a9a9321531773f37cd5d7740495ede47f"><td class="mdescLeft"> </td><td class="mdescRight">Sets the localization prior pose used to seed the next <a class="el" href="classrtabmap_1_1Rtabmap.html#ad7f085b6ae0fd3c7077c500c028fd5c3">process()</a> call (localization mode only). <br /></td></tr>
|
|
<tr class="separator:a9a9321531773f37cd5d7740495ede47f"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a4ab6de2be120bbda75577911d52346d4" id="r_a4ab6de2be120bbda75577911d52346d4"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#a4ab6de2be120bbda75577911d52346d4">triggerNewMap</a> ()</td></tr>
|
|
<tr class="memdesc:a4ab6de2be120bbda75577911d52346d4"><td class="mdescLeft"> </td><td class="mdescRight">Starts a new map session (next <a class="el" href="classrtabmap_1_1Rtabmap.html#ad7f085b6ae0fd3c7077c500c028fd5c3">process()</a> will create a fresh map id). <br /></td></tr>
|
|
<tr class="separator:a4ab6de2be120bbda75577911d52346d4"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:af1fe8ed393237bc9ffa1ea93adf0ec9b" id="r_af1fe8ed393237bc9ffa1ea93adf0ec9b"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#af1fe8ed393237bc9ffa1ea93adf0ec9b">labelLocation</a> (int id, const std::string &label)</td></tr>
|
|
<tr class="memdesc:af1fe8ed393237bc9ffa1ea93adf0ec9b"><td class="mdescLeft"> </td><td class="mdescRight">Assigns or clears a label on signature <code>id</code>. <br /></td></tr>
|
|
<tr class="separator:af1fe8ed393237bc9ffa1ea93adf0ec9b"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a037ddb5d737e0466d7610b88d8429bd6" id="r_a037ddb5d737e0466d7610b88d8429bd6"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#a037ddb5d737e0466d7610b88d8429bd6">setUserData</a> (int id, const cv::Mat &data)</td></tr>
|
|
<tr class="memdesc:a037ddb5d737e0466d7610b88d8429bd6"><td class="mdescLeft"> </td><td class="mdescRight">Attaches user data to signature <code>id</code>, compressing it on the fly if needed. <br /></td></tr>
|
|
<tr class="separator:a037ddb5d737e0466d7610b88d8429bd6"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a3c32f64acd943c676a9b11c7dbd3a5ae" id="r_a3c32f64acd943c676a9b11c7dbd3a5ae"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#a3c32f64acd943c676a9b11c7dbd3a5ae">generateDOTGraph</a> (const std::string &path, int id=0, int margin=5)</td></tr>
|
|
<tr class="memdesc:a3c32f64acd943c676a9b11c7dbd3a5ae"><td class="mdescLeft"> </td><td class="mdescRight">Writes a Graphviz DOT file of the pose graph. <br /></td></tr>
|
|
<tr class="separator:a3c32f64acd943c676a9b11c7dbd3a5ae"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:aeffdfc811a178ba2e55205b746a6ea71" id="r_aeffdfc811a178ba2e55205b746a6ea71"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#aeffdfc811a178ba2e55205b746a6ea71">exportPoses</a> (const std::string &path, bool optimized, bool global, int format)</td></tr>
|
|
<tr class="memdesc:aeffdfc811a178ba2e55205b746a6ea71"><td class="mdescLeft"> </td><td class="mdescRight">Exports the current pose graph to a text file. <br /></td></tr>
|
|
<tr class="separator:aeffdfc811a178ba2e55205b746a6ea71"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:af12ae46226f33adf8c4cafbe1bcf544c" id="r_af12ae46226f33adf8c4cafbe1bcf544c"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#af12ae46226f33adf8c4cafbe1bcf544c">resetMemory</a> ()</td></tr>
|
|
<tr class="memdesc:af12ae46226f33adf8c4cafbe1bcf544c"><td class="mdescLeft"> </td><td class="mdescRight">Clears all in-memory state and resets the database. <br /></td></tr>
|
|
<tr class="separator:af12ae46226f33adf8c4cafbe1bcf544c"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ad0c040e54bbca27dffc46346d96c57cb" id="r_ad0c040e54bbca27dffc46346d96c57cb"><td class="memItemLeft" align="right" valign="top"><a id="ad0c040e54bbca27dffc46346d96c57cb" name="ad0c040e54bbca27dffc46346d96c57cb"></a>
|
|
void </td><td class="memItemRight" valign="bottom"><b>dumpPrediction</b> () const</td></tr>
|
|
<tr class="memdesc:ad0c040e54bbca27dffc46346d96c57cb"><td class="mdescLeft"> </td><td class="mdescRight">Dumps the Bayes-filter prediction matrix to a file in the working directory. <br /></td></tr>
|
|
<tr class="separator:ad0c040e54bbca27dffc46346d96c57cb"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a38db1c80ae583e255dd6174ba6d41ffc" id="r_a38db1c80ae583e255dd6174ba6d41ffc"><td class="memItemLeft" align="right" valign="top"><a id="a38db1c80ae583e255dd6174ba6d41ffc" name="a38db1c80ae583e255dd6174ba6d41ffc"></a>
|
|
void </td><td class="memItemRight" valign="bottom"><b>dumpData</b> () const</td></tr>
|
|
<tr class="memdesc:a38db1c80ae583e255dd6174ba6d41ffc"><td class="mdescLeft"> </td><td class="mdescRight">Dumps the <a class="el" href="classrtabmap_1_1Memory.html">Memory</a> state (signatures, words, dictionary) to the working directory. <br /></td></tr>
|
|
<tr class="separator:a38db1c80ae583e255dd6174ba6d41ffc"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a5a461ed88e83d2dbebee819ab6690e7a" id="r_a5a461ed88e83d2dbebee819ab6690e7a"><td class="memItemLeft" align="right" valign="top"><a id="a5a461ed88e83d2dbebee819ab6690e7a" name="a5a461ed88e83d2dbebee819ab6690e7a"></a>
|
|
void </td><td class="memItemRight" valign="bottom"><b>parseParameters</b> (const <a class="el" href="namespacertabmap.html#ad08b6f1796a27dd7316c99c385e2cc55">ParametersMap</a> &parameters)</td></tr>
|
|
<tr class="memdesc:a5a461ed88e83d2dbebee819ab6690e7a"><td class="mdescLeft"> </td><td class="mdescRight">Re-parses parameters and propagates them to owned sub-objects (<a class="el" href="classrtabmap_1_1Memory.html">Memory</a>, <a class="el" href="classrtabmap_1_1BayesFilter.html">BayesFilter</a>, <a class="el" href="classrtabmap_1_1Optimizer.html">Optimizer</a>, ...). <br /></td></tr>
|
|
<tr class="separator:a5a461ed88e83d2dbebee819ab6690e7a"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a9ac5900cbc165df1c501606f79c65ec1" id="r_a9ac5900cbc165df1c501606f79c65ec1"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespacertabmap.html#ad08b6f1796a27dd7316c99c385e2cc55">ParametersMap</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#a9ac5900cbc165df1c501606f79c65ec1">getParameters</a> () const</td></tr>
|
|
<tr class="separator:a9ac5900cbc165df1c501606f79c65ec1"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a25028c3e8d8018c03f47f06150d76eab" id="r_a25028c3e8d8018c03f47f06150d76eab"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#a25028c3e8d8018c03f47f06150d76eab">setWorkingDirectory</a> (std::string path)</td></tr>
|
|
<tr class="memdesc:a25028c3e8d8018c03f47f06150d76eab"><td class="mdescLeft"> </td><td class="mdescRight">Sets the working directory used for dumps, logs and temporary files. <br /></td></tr>
|
|
<tr class="separator:a25028c3e8d8018c03f47f06150d76eab"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ab04bd616db9107a705faf5b3395a73d3" id="r_ab04bd616db9107a705faf5b3395a73d3"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#ab04bd616db9107a705faf5b3395a73d3">rejectLastLoopClosure</a> ()</td></tr>
|
|
<tr class="memdesc:ab04bd616db9107a705faf5b3395a73d3"><td class="mdescLeft"> </td><td class="mdescRight">Removes the loop-closure link added at the last <a class="el" href="classrtabmap_1_1Rtabmap.html#ad7f085b6ae0fd3c7077c500c028fd5c3">process()</a> iteration. <br /></td></tr>
|
|
<tr class="separator:ab04bd616db9107a705faf5b3395a73d3"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:aee23115b4bd02bce5d1721418a0f7599" id="r_aee23115b4bd02bce5d1721418a0f7599"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#aee23115b4bd02bce5d1721418a0f7599">deleteLastLocation</a> ()</td></tr>
|
|
<tr class="memdesc:aee23115b4bd02bce5d1721418a0f7599"><td class="mdescLeft"> </td><td class="mdescRight">Deletes the most recent (non-intermediate) location from the map. <br /></td></tr>
|
|
<tr class="separator:aee23115b4bd02bce5d1721418a0f7599"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a7a841702b925777620714fce7b41fd69" id="r_a7a841702b925777620714fce7b41fd69"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#a7a841702b925777620714fce7b41fd69">setOptimizedPoses</a> (const std::map< int, <a class="el" href="classrtabmap_1_1Transform.html">Transform</a> > &poses, const std::multimap< int, <a class="el" href="classrtabmap_1_1Link.html">Link</a> > &constraints)</td></tr>
|
|
<tr class="memdesc:a7a841702b925777620714fce7b41fd69"><td class="mdescLeft"> </td><td class="mdescRight">Replaces the current optimized poses and constraints with externally provided ones. <br /></td></tr>
|
|
<tr class="separator:a7a841702b925777620714fce7b41fd69"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a7133d8efa98410eaec68e0199ff98a0c" id="r_a7133d8efa98410eaec68e0199ff98a0c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classrtabmap_1_1Signature.html">Signature</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#a7133d8efa98410eaec68e0199ff98a0c">getSignatureCopy</a> (int id, bool images, bool scan, bool userData, bool occupancyGrid, bool withWords, bool withGlobalDescriptors) const</td></tr>
|
|
<tr class="memdesc:a7133d8efa98410eaec68e0199ff98a0c"><td class="mdescLeft"> </td><td class="mdescRight">Returns a copy of signature <code>id</code> with optional payloads attached. <br /></td></tr>
|
|
<tr class="separator:a7133d8efa98410eaec68e0199ff98a0c"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ae617c65a0ba6f95a321b8c0c3a18b0e3" id="r_ae617c65a0ba6f95a321b8c0c3a18b0e3"><td class="memItemLeft" align="right" valign="top"><a id="ae617c65a0ba6f95a321b8c0c3a18b0e3" name="ae617c65a0ba6f95a321b8c0c3a18b0e3"></a>
|
|
RTABMAP_DEPRECATED void </td><td class="memItemRight" valign="bottom"><b>get3DMap</b> (std::map< int, <a class="el" href="classrtabmap_1_1Signature.html">Signature</a> > &signatures, std::map< int, <a class="el" href="classrtabmap_1_1Transform.html">Transform</a> > &poses, std::multimap< int, <a class="el" href="classrtabmap_1_1Link.html">Link</a> > &constraints, bool optimized, bool global) const</td></tr>
|
|
<tr class="memdesc:ae617c65a0ba6f95a321b8c0c3a18b0e3"><td class="mdescLeft"> </td><td class="mdescRight">Deprecated: use <a class="el" href="classrtabmap_1_1Rtabmap.html#a456fa0c95770f052d78f6d9f745fa1e3">getGraph()</a> instead with <code>withImages=true</code>, <code>withScan=true</code>, <code>withUserData=true</code> and <code>withGrid=true</code>. <br /></td></tr>
|
|
<tr class="separator:ae617c65a0ba6f95a321b8c0c3a18b0e3"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a456fa0c95770f052d78f6d9f745fa1e3" id="r_a456fa0c95770f052d78f6d9f745fa1e3"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#a456fa0c95770f052d78f6d9f745fa1e3">getGraph</a> (std::map< int, <a class="el" href="classrtabmap_1_1Transform.html">Transform</a> > &poses, std::multimap< int, <a class="el" href="classrtabmap_1_1Link.html">Link</a> > &constraints, bool optimized, bool global, std::map< int, <a class="el" href="classrtabmap_1_1Signature.html">Signature</a> > *signatures=0, bool withImages=false, bool withScan=false, bool withUserData=false, bool withGrid=false, bool withWords=true, bool withGlobalDescriptors=true) const</td></tr>
|
|
<tr class="memdesc:a456fa0c95770f052d78f6d9f745fa1e3"><td class="mdescLeft"> </td><td class="mdescRight">Extracts a full snapshot of the current pose graph. <br /></td></tr>
|
|
<tr class="separator:a456fa0c95770f052d78f6d9f745fa1e3"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a1a6498f60f52f65ffbed2d89d7c20648" id="r_a1a6498f60f52f65ffbed2d89d7c20648"><td class="memItemLeft" align="right" valign="top">std::map< int, <a class="el" href="classrtabmap_1_1Transform.html">Transform</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#a1a6498f60f52f65ffbed2d89d7c20648">getNodesInRadius</a> (const <a class="el" href="classrtabmap_1_1Transform.html">Transform</a> &pose, float radius, int k=0, std::map< int, float > *distsSqr=0)</td></tr>
|
|
<tr class="memdesc:a1a6498f60f52f65ffbed2d89d7c20648"><td class="mdescLeft"> </td><td class="mdescRight">Returns optimized poses within a metric radius of <code>pose</code>. <br /></td></tr>
|
|
<tr class="separator:a1a6498f60f52f65ffbed2d89d7c20648"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a9bd263bbcdbc6f41119f8532131db974" id="r_a9bd263bbcdbc6f41119f8532131db974"><td class="memItemLeft" align="right" valign="top">std::map< int, <a class="el" href="classrtabmap_1_1Transform.html">Transform</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#a9bd263bbcdbc6f41119f8532131db974">getNodesInRadius</a> (int nodeId, float radius, int k=0, std::map< int, float > *distsSqr=0)</td></tr>
|
|
<tr class="memdesc:a9bd263bbcdbc6f41119f8532131db974"><td class="mdescLeft"> </td><td class="mdescRight">Returns optimized poses within a metric radius of node <code>nodeId</code>. <br /></td></tr>
|
|
<tr class="separator:a9bd263bbcdbc6f41119f8532131db974"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a600d86ab2a67fa08d6a1e726380948ea" id="r_a600d86ab2a67fa08d6a1e726380948ea"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#a600d86ab2a67fa08d6a1e726380948ea">detectMoreLoopClosures</a> (float clusterRadiusMax=0.5f, float clusterAngle=M_PI/6.0f, int iterations=1, bool intraSession=true, bool interSession=true, const <a class="el" href="classrtabmap_1_1ProgressState.html">ProgressState</a> *state=0, float clusterRadiusMin=0.0f, int toFromMapId=-1)</td></tr>
|
|
<tr class="memdesc:a600d86ab2a67fa08d6a1e726380948ea"><td class="mdescLeft"> </td><td class="mdescRight">Post-processing: searches for additional loop closures over the existing graph. <br /></td></tr>
|
|
<tr class="separator:a600d86ab2a67fa08d6a1e726380948ea"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ab1044f290653749990018ca5722f00c7" id="r_ab1044f290653749990018ca5722f00c7"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#ab1044f290653749990018ca5722f00c7">globalBundleAdjustment</a> (int optimizerType=1, bool rematchFeatures=true, int iterations=0, float pixelVariance=0.0f)</td></tr>
|
|
<tr class="memdesc:ab1044f290653749990018ca5722f00c7"><td class="mdescLeft"> </td><td class="mdescRight">Runs a global bundle adjustment over the optimized graph. <br /></td></tr>
|
|
<tr class="separator:ab1044f290653749990018ca5722f00c7"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ac7de2278aa53a315a63bec05c1f0a15f" id="r_ac7de2278aa53a315a63bec05c1f0a15f"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#ac7de2278aa53a315a63bec05c1f0a15f">cleanupLocalGrids</a> (const std::map< int, <a class="el" href="classrtabmap_1_1Transform.html">Transform</a> > &mapPoses, const cv::Mat &map, float xMin, float yMin, float cellSize, int cropRadius=1, bool filterScans=false)</td></tr>
|
|
<tr class="memdesc:ac7de2278aa53a315a63bec05c1f0a15f"><td class="mdescLeft"> </td><td class="mdescRight">Filters spurious obstacles from every node's local grid using a reference 2D map. <br /></td></tr>
|
|
<tr class="separator:ac7de2278aa53a315a63bec05c1f0a15f"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a6650c241bd6a89f66718ce7a227dfe10" id="r_a6650c241bd6a89f66718ce7a227dfe10"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#a6650c241bd6a89f66718ce7a227dfe10">refineLinks</a> ()</td></tr>
|
|
<tr class="memdesc:a6650c241bd6a89f66718ce7a227dfe10"><td class="mdescLeft"> </td><td class="mdescRight">Re-runs registration on every link of the current graph and updates the ones that converge. <br /></td></tr>
|
|
<tr class="separator:a6650c241bd6a89f66718ce7a227dfe10"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:aef03c0d6ee1ef5646ba11be5dbe9faa5" id="r_aef03c0d6ee1ef5646ba11be5dbe9faa5"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#aef03c0d6ee1ef5646ba11be5dbe9faa5">addLink</a> (const <a class="el" href="classrtabmap_1_1Link.html">Link</a> &link)</td></tr>
|
|
<tr class="memdesc:aef03c0d6ee1ef5646ba11be5dbe9faa5"><td class="mdescLeft"> </td><td class="mdescRight">Adds an external link to the map. <br /></td></tr>
|
|
<tr class="separator:aef03c0d6ee1ef5646ba11be5dbe9faa5"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:aeea47830776fe57c456ae6a673069ddc" id="r_aeea47830776fe57c456ae6a673069ddc"><td class="memItemLeft" align="right" valign="top"><a id="aeea47830776fe57c456ae6a673069ddc" name="aeea47830776fe57c456ae6a673069ddc"></a>
|
|
cv::Mat </td><td class="memItemRight" valign="bottom"><b>getInformation</b> (const cv::Mat &covariance) const</td></tr>
|
|
<tr class="memdesc:aeea47830776fe57c456ae6a673069ddc"><td class="mdescLeft"> </td><td class="mdescRight">Converts an odometry covariance into an information matrix, clipping by <a class="el" href="classrtabmap_1_1Memory.html#ae37d02a779acb85797de25da36066829">Memory::getOdomMaxInf()</a> when <a class="el" href="classrtabmap_1_1Parameters.html#a2f0e34d58229d94e6368223be2dd4fc6">Parameters::kRGBDLoopCovLimited()</a> is enabled. <br /></td></tr>
|
|
<tr class="separator:aeea47830776fe57c456ae6a673069ddc"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a0d2caf505525f635bda914e73aa59232" id="r_a0d2caf505525f635bda914e73aa59232"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#a0d2caf505525f635bda914e73aa59232">addNodesToRepublish</a> (const std::vector< int > &ids)</td></tr>
|
|
<tr class="memdesc:a0d2caf505525f635bda914e73aa59232"><td class="mdescLeft"> </td><td class="mdescRight">Marks node ids whose data should be re-emitted on the next <a class="el" href="classrtabmap_1_1Rtabmap.html#ad7f085b6ae0fd3c7077c500c028fd5c3">process()</a>. <br /></td></tr>
|
|
<tr class="separator:a0d2caf505525f635bda914e73aa59232"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a4d351e3f5ef809460afbb5a7702a500d" id="r_a4d351e3f5ef809460afbb5a7702a500d"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#a4d351e3f5ef809460afbb5a7702a500d">setDummyDictionary</a> (bool enabled=true)</td></tr>
|
|
<tr class="memdesc:a4d351e3f5ef809460afbb5a7702a500d"><td class="mdescLeft"> </td><td class="mdescRight">Loads the visual word dictionary as ids only, without descriptors. <br /></td></tr>
|
|
<tr class="separator:a4d351e3f5ef809460afbb5a7702a500d"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:afe4aa4f9a67ba85b60c7dfda86d0131b" id="r_afe4aa4f9a67ba85b60c7dfda86d0131b"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#afe4aa4f9a67ba85b60c7dfda86d0131b">getPathStatus</a> () const</td></tr>
|
|
<tr class="separator:afe4aa4f9a67ba85b60c7dfda86d0131b"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a589cd696bffe53a5e00898631e7d9103" id="r_a589cd696bffe53a5e00898631e7d9103"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#a589cd696bffe53a5e00898631e7d9103">clearPath</a> (int status)</td></tr>
|
|
<tr class="memdesc:a589cd696bffe53a5e00898631e7d9103"><td class="mdescLeft"> </td><td class="mdescRight">Clears the current path and sets its terminal status. <br /></td></tr>
|
|
<tr class="separator:a589cd696bffe53a5e00898631e7d9103"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ab797f7f5bb73a507ba4d4672cd5476df" id="r_ab797f7f5bb73a507ba4d4672cd5476df"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#ab797f7f5bb73a507ba4d4672cd5476df">computePath</a> (int targetNode, bool global)</td></tr>
|
|
<tr class="memdesc:ab797f7f5bb73a507ba4d4672cd5476df"><td class="mdescLeft"> </td><td class="mdescRight">Plans a path from the current location to node <code>targetNode</code>. <br /></td></tr>
|
|
<tr class="separator:ab797f7f5bb73a507ba4d4672cd5476df"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a14d5c84b61386e95071e90aba406ff49" id="r_a14d5c84b61386e95071e90aba406ff49"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#a14d5c84b61386e95071e90aba406ff49">computePath</a> (const <a class="el" href="classrtabmap_1_1Transform.html">Transform</a> &targetPose, float tolerance=-1.0f)</td></tr>
|
|
<tr class="memdesc:a14d5c84b61386e95071e90aba406ff49"><td class="mdescLeft"> </td><td class="mdescRight">Plans a path in the current optimized map toward a metric goal pose. <br /></td></tr>
|
|
<tr class="separator:a14d5c84b61386e95071e90aba406ff49"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a5fe89ac87283a92258d27f42eb7b13f1" id="r_a5fe89ac87283a92258d27f42eb7b13f1"><td class="memItemLeft" align="right" valign="top">const std::vector< std::pair< int, <a class="el" href="classrtabmap_1_1Transform.html">Transform</a> > > & </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#a5fe89ac87283a92258d27f42eb7b13f1">getPath</a> () const</td></tr>
|
|
<tr class="separator:a5fe89ac87283a92258d27f42eb7b13f1"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:af81fe33ef45e1ad1838bc97d6a73a8be" id="r_af81fe33ef45e1ad1838bc97d6a73a8be"><td class="memItemLeft" align="right" valign="top">std::vector< std::pair< int, <a class="el" href="classrtabmap_1_1Transform.html">Transform</a> > > </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#af81fe33ef45e1ad1838bc97d6a73a8be">getPathNextPoses</a> () const</td></tr>
|
|
<tr class="separator:af81fe33ef45e1ad1838bc97d6a73a8be"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a45addb0848702b39c67c2394dd62f739" id="r_a45addb0848702b39c67c2394dd62f739"><td class="memItemLeft" align="right" valign="top">std::vector< int > </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#a45addb0848702b39c67c2394dd62f739">getPathNextNodes</a> () const</td></tr>
|
|
<tr class="separator:a45addb0848702b39c67c2394dd62f739"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a5f886101463229fcd79bf3dd6418aa5c" id="r_a5f886101463229fcd79bf3dd6418aa5c"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#a5f886101463229fcd79bf3dd6418aa5c">getPathCurrentGoalId</a> () const</td></tr>
|
|
<tr class="separator:a5f886101463229fcd79bf3dd6418aa5c"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a94eecd89994fc02a913b1eb087d85c84" id="r_a94eecd89994fc02a913b1eb087d85c84"><td class="memItemLeft" align="right" valign="top">unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#a94eecd89994fc02a913b1eb087d85c84">getPathCurrentIndex</a> () const</td></tr>
|
|
<tr class="separator:a94eecd89994fc02a913b1eb087d85c84"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a781713c190497d5f25d7e12112ae4345" id="r_a781713c190497d5f25d7e12112ae4345"><td class="memItemLeft" align="right" valign="top">unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#a781713c190497d5f25d7e12112ae4345">getPathCurrentGoalIndex</a> () const</td></tr>
|
|
<tr class="separator:a781713c190497d5f25d7e12112ae4345"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:aedf5dce175ee325822ab7b7772c8d4f5" id="r_aedf5dce175ee325822ab7b7772c8d4f5"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classrtabmap_1_1Transform.html">Transform</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#aedf5dce175ee325822ab7b7772c8d4f5">getPathTransformToGoal</a> () const</td></tr>
|
|
<tr class="separator:aedf5dce175ee325822ab7b7772c8d4f5"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a8400ccecd090cb438d16178930fe0872" id="r_a8400ccecd090cb438d16178930fe0872"><td class="memItemLeft" align="right" valign="top">std::map< int, <a class="el" href="classrtabmap_1_1Transform.html">Transform</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#a8400ccecd090cb438d16178930fe0872">getForwardWMPoses</a> (int fromId, int maxNearestNeighbors, float radius, int maxDiffID) const</td></tr>
|
|
<tr class="memdesc:a8400ccecd090cb438d16178930fe0872"><td class="mdescLeft"> </td><td class="mdescRight">Returns optimized poses of WM nodes located in front of <code>fromId</code>. <br /></td></tr>
|
|
<tr class="separator:a8400ccecd090cb438d16178930fe0872"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ad314edf995555480a2db1aceb7fd2ee7" id="r_ad314edf995555480a2db1aceb7fd2ee7"><td class="memItemLeft" align="right" valign="top">std::map< int, std::map< int, <a class="el" href="classrtabmap_1_1Transform.html">Transform</a> > > </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#ad314edf995555480a2db1aceb7fd2ee7">getPaths</a> (const std::map< int, <a class="el" href="classrtabmap_1_1Transform.html">Transform</a> > &poses, const <a class="el" href="classrtabmap_1_1Transform.html">Transform</a> &target, int maxGraphDepth=0) const</td></tr>
|
|
<tr class="memdesc:ad314edf995555480a2db1aceb7fd2ee7"><td class="mdescLeft"> </td><td class="mdescRight">Segments a set of optimized poses into paths connected by neighbor links. <br /></td></tr>
|
|
<tr class="separator:ad314edf995555480a2db1aceb7fd2ee7"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:aad648f09bb04b193907528987ccda413" id="r_aad648f09bb04b193907528987ccda413"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Rtabmap.html#aad648f09bb04b193907528987ccda413">adjustLikelihood</a> (std::map< int, float > &likelihood) const</td></tr>
|
|
<tr class="memdesc:aad648f09bb04b193907528987ccda413"><td class="mdescLeft"> </td><td class="mdescRight">Applies the standard RTAB-Map likelihood adjustment. <br /></td></tr>
|
|
<tr class="separator:aad648f09bb04b193907528987ccda413"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table>
|
|
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
|
<div class="textblock"><p>Top-level RTAB-Map SLAM pipeline (mapping, localization and loop closure). </p>
|
|
<p><a class="el" href="classrtabmap_1_1Rtabmap.html" title="Top-level RTAB-Map SLAM pipeline (mapping, localization and loop closure).">Rtabmap</a> orchestrates the full SLAM iteration. Each new sensor observation passed to <a class="el" href="classrtabmap_1_1Rtabmap.html#ad7f085b6ae0fd3c7077c500c028fd5c3">process()</a> goes through the steps described below.</p>
|
|
<dl class="section user"><dt>1. Memory update</dt><dd></dd></dl>
|
|
<p>Done via <a class="el" href="classrtabmap_1_1Memory.html#a3c029b2788f3b599480d5150120a6bee">Memory::update()</a>: a new <a class="el" href="classrtabmap_1_1Signature.html">Signature</a> is added to STM, the oldest STM entry is promoted to WM if STM is full, and rehearsal compares the new signature to the previous STM signature.</p>
|
|
<p>When the robot barely moved since the previous frame (odometry displacement below <a class="el" href="classrtabmap_1_1Parameters.html#a2337801b29bb94ce58ae386c6fbfb1ea">Parameters::kRGBDLinearUpdate()</a> and <a class="el" href="classrtabmap_1_1Parameters.html#a9a7fc32cc99f77446f1918113aa8b5bb">Parameters::kRGBDAngularUpdate()</a>), the iteration is flagged as a "small displacement":</p><ul>
|
|
<li>If a loop closure or localization was already accepted on a recent iteration, appearance-based global loop-closure detection and proximity detection by space are both skipped to avoid wasting work while the robot is stationary at an already-known location (only retrieval runs).</li>
|
|
<li>Otherwise (no recent loop closure / localization), both still run normally so a first-time loop closure can still be detected from a standstill.</li>
|
|
</ul>
|
|
<p>In either case, at the end of the iteration, if no loop closure, proximity detection or landmark observation latched onto the new node, it is deleted from <a class="el" href="classrtabmap_1_1Memory.html">Memory</a> so the map does not grow while the robot is idle.</p>
|
|
<p>Rehearsal still runs first, so visually similar consecutive idle frames may also be merged into the previous STM signature (its weight is incremented and the new signature is discarded) when the similarity exceeds <a class="el" href="classrtabmap_1_1Parameters.html#a634f4790c9c84772935bf406265bc692">Parameters::kMemRehearsalSimilarity()</a>.</p>
|
|
<dl class="section user"><dt>2. Loop-closure hypothesis</dt><dd></dd></dl>
|
|
<p>Scored via <a class="el" href="classrtabmap_1_1Memory.html#a984ca01a87434b11a66dc1d96e2fff17">Memory::computeLikelihood()</a> and the recursive <a class="el" href="classrtabmap_1_1BayesFilter.html">BayesFilter</a> (prior + observation update).</p>
|
|
<dl class="section user"><dt>3. Hypothesis selection</dt><dd></dd></dl>
|
|
<p>The highest posterior is compared against the loop-closure threshold (<a class="el" href="classrtabmap_1_1Parameters.html#a423d0878fce30f6ad8a0da41b27f6505">Parameters::kRtabmapLoopThr()</a>); if accepted, the loop-closure link is added and the pose graph is re-optimized by <a class="el" href="classrtabmap_1_1Optimizer.html">Optimizer</a>.</p>
|
|
<p>In <b>RGB-D mode</b>, two extra checks must pass before the link is committed:</p><ul>
|
|
<li>a valid geometric transform must be computed between the two candidate nodes by the registration pipeline (visual + optional ICP, see <a class="el" href="classrtabmap_1_1Memory.html#a4ae0287262c04905baab2d6f94448486">Memory::computeTransform()</a>);</li>
|
|
<li>the resulting transform must not be rejected by the graph-optimization consistency check (see <a class="el" href="classrtabmap_1_1Parameters.html#a48e9bda458af10a4649c88b92ba7a6fd">Parameters::kRGBDOptimizeMaxError()</a>).</li>
|
|
</ul>
|
|
<p>The optimization used by the consistency check depends on the operating mode:</p><ul>
|
|
<li>In <b>mapping mode</b>, the local map is re-optimized around the current signature including the new link, then <a class="el" href="namespacertabmap_1_1graph.html#a4691b760dfafe6d93de514c96fa55e0e">graph::computeMaxGraphErrors()</a> measures the worst per-link residual / its standard deviation. If the ratio exceeds <a class="el" href="classrtabmap_1_1Parameters.html#a48e9bda458af10a4649c88b92ba7a6fd">Parameters::kRGBDOptimizeMaxError()</a>, the loop closure(s) added this iteration are removed from <a class="el" href="classrtabmap_1_1Memory.html">Memory</a>.</li>
|
|
<li>In <b>localization mode</b>, optimization is run on a sub-graph composed of the odometry cache (<a class="el" href="classrtabmap_1_1Parameters.html#ab27d52631ccdf0055b55fee66f811cd7">Parameters::kRGBDMaxOdomCacheSize()</a>), the newly added localization link and pose priors fixing the map nodes (with the variance set from <a class="el" href="classrtabmap_1_1Parameters.html#aa8bd1ce286f5afde20a406b573286adb">Parameters::kRGBDLocalizationPriorError()</a>). The same error-ratio check is applied; on failure the localization is rejected for this iteration but the persisted map and its links are left untouched.</li>
|
|
</ul>
|
|
<p>In both modes, if the same link is rejected twice in a row, a graph repair may also be attempted (within <a class="el" href="classrtabmap_1_1Parameters.html#aa2135c05c99fdb3b5f257f1162779e31">Parameters::kRGBDOptimizeMaxErrorRepairRadius()</a>) to drop the offending link instead of the new candidate.</p>
|
|
<p>If either RGB-D check fails, the candidate is discarded and no link is added.</p>
|
|
<dl class="section user"><dt>4. Retrieval</dt><dd></dd></dl>
|
|
<p>Once a loop-closure hypothesis is selected, neighbors of the matched node are brought back from LTM into WM via <a class="el" href="classrtabmap_1_1Memory.html#aa244b8581684b85e35d2056cf972e377">Memory::reactivateSignatures()</a>, so the next iteration can compare against them too. Up to <a class="el" href="classrtabmap_1_1Parameters.html#ae42b8a843c6830eff62087a9e0df72b1">Parameters::kRtabmapMaxRetrieved()</a> nodes are pulled per iteration; nodes around the current path or local pose may also be retrieved (capped by <a class="el" href="classrtabmap_1_1Parameters.html#a0ba27238802e7bbd1a7c0327bbc11d99">Parameters::kRGBDMaxLocalRetrieved()</a>).</p>
|
|
<p>Retrieval (and the related node immunization) is only active when memory management is enabled, i.e. when <a class="el" href="classrtabmap_1_1Parameters.html#a8ee7e153cfb26574c7d1c7b427593f8a">Parameters::kRtabmapTimeThr()</a> or <a class="el" href="classrtabmap_1_1Parameters.html#a66882ccd6f0a49f2c23db8718d12a59c">Parameters::kRtabmapMemoryThr()</a> is non-zero.</p>
|
|
<dl class="section user"><dt>5. Proximity detection (RGB-D mode)</dt><dd></dd></dl>
|
|
<p>Visual and scan-based local matches to nearby nodes, used in addition to the appearance-based loop closure.</p>
|
|
<p>Candidate proximity links go through the same two RGB-D gates as loop closures above: a valid geometric transform must be computed by the registration pipeline, and the transform must not be rejected by the graph-optimization consistency check.</p>
|
|
<dl class="section user"><dt>6. Transfer (WM to LTM)</dt><dd></dd></dl>
|
|
<p>At the end of the iteration, if the iteration exceeded the configured time budget (<a class="el" href="classrtabmap_1_1Parameters.html#a8ee7e153cfb26574c7d1c7b427593f8a">Parameters::kRtabmapTimeThr()</a>) or WM exceeded its size budget (<a class="el" href="classrtabmap_1_1Parameters.html#a66882ccd6f0a49f2c23db8718d12a59c">Parameters::kRtabmapMemoryThr()</a>), <a class="el" href="classrtabmap_1_1Memory.html#a51e89ccab2261912b09a5b7178fdd46c">Memory::forget()</a> moves the oldest low-frequency signatures from WM to LTM (immunized nodes – retrieved neighbors, the last localization node, etc. – are kept in WM).</p>
|
|
<p>Transfer is skipped when both thresholds are 0 (memory management disabled).</p>
|
|
<dl class="section user"><dt>7. Map / localization output</dt><dd></dd></dl>
|
|
<p>Optimized poses, current map correction and statistics are made available to callers via the getters below.</p>
|
|
<dl class="section user"><dt>Operating modes</dt><dd></dd></dl>
|
|
<p>Selected by <a class="el" href="classrtabmap_1_1Parameters.html#acdc74cd2b096ba28d9c1e00040b69d42">Parameters::kMemIncrementalMemory()</a> (see <a class="el" href="classrtabmap_1_1Memory.html#a420ddb38a3ffefafc84d22b0dd3b3814">Memory::isIncremental()</a>):</p><ul>
|
|
<li><b>Mapping</b>: STM and WM grow; loop closures update the optimized graph.</li>
|
|
<li><b>Localization</b>: STM/WM are frozen; the current node is matched against the persisted map and only <a class="el" href="classrtabmap_1_1Rtabmap.html#a2d2efac02d4a6d1d7bbc505d94fd634b">getLastLocalizationPose()</a> is updated.</li>
|
|
</ul>
|
|
<dl class="section user"><dt>Path planning</dt><dd></dd></dl>
|
|
<p><a class="el" href="classrtabmap_1_1Rtabmap.html" title="Top-level RTAB-Map SLAM pipeline (mapping, localization and loop closure).">Rtabmap</a> also exposes basic graph-based path planning in RGB-D mode (<a class="el" href="classrtabmap_1_1Rtabmap.html#ab797f7f5bb73a507ba4d4672cd5476df">computePath()</a>, <a class="el" href="classrtabmap_1_1Rtabmap.html#a5fe89ac87283a92258d27f42eb7b13f1">getPath()</a>, <a class="el" href="classrtabmap_1_1Rtabmap.html#afe4aa4f9a67ba85b60c7dfda86d0131b">getPathStatus()</a>), used by the GUI to navigate between mapped locations.</p>
|
|
<p>When memory management is enabled (see step 4 Retrieval and step 6 Transfer), the retrieval step also pulls nodes along the currently planned path back from LTM into WM (capped by <a class="el" href="classrtabmap_1_1Parameters.html#a0ba27238802e7bbd1a7c0327bbc11d99">Parameters::kRGBDMaxLocalRetrieved()</a>) so the robot is able to re-localize against upcoming waypoints as it follows the path, even when those nodes had been transferred out of WM earlier.</p>
|
|
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classrtabmap_1_1Memory.html" title="Three-tiered memory management (STM, WM, LTM) for RTAB-Map.">Memory</a> </dd>
|
|
<dd>
|
|
<a class="el" href="classrtabmap_1_1BayesFilter.html" title="Recursive Bayesian filter for loop-closure hypothesis estimation in RTAB-Map.">BayesFilter</a> </dd>
|
|
<dd>
|
|
<a class="el" href="classrtabmap_1_1Optimizer.html" title="Abstract base for pose-graph and bundle-adjustment optimizers.">Optimizer</a> </dd>
|
|
<dd>
|
|
<a class="el" href="classrtabmap_1_1Parameters.html">Parameters</a> </dd></dl>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="Rtabmap_8h_source.html#l00193">193</a> of file <a class="el" href="Rtabmap_8h_source.html">Rtabmap.h</a>.</p>
|
|
</div><h2 class="groupheader">Member Enumeration Documentation</h2>
|
|
<a id="afa134603fb0835b84f269e48e7ab568c" name="afa134603fb0835b84f269e48e7ab568c"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#afa134603fb0835b84f269e48e7ab568c">◆ </a></span>VhStrategy</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">enum <a class="el" href="classrtabmap_1_1Rtabmap.html#afa134603fb0835b84f269e48e7ab568c">rtabmap::Rtabmap::VhStrategy</a></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Loop-closure verification strategy. </p>
|
|
<table class="fieldtable">
|
|
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="afa134603fb0835b84f269e48e7ab568caea5e55cc106979d91f695c064a78926b" name="afa134603fb0835b84f269e48e7ab568caea5e55cc106979d91f695c064a78926b"></a>kVhNone </td><td class="fielddoc"><p>No verification: the highest hypothesis above threshold is accepted. </p>
|
|
</td></tr>
|
|
<tr><td class="fieldname"><a id="afa134603fb0835b84f269e48e7ab568ca1b458648c7dc4ea000ca53e0e384e3c6" name="afa134603fb0835b84f269e48e7ab568ca1b458648c7dc4ea000ca53e0e384e3c6"></a>kVhEpipolar </td><td class="fielddoc"><p>Epipolar geometry verification (mostly historical, RGB-only mode). </p>
|
|
</td></tr>
|
|
<tr><td class="fieldname"><a id="afa134603fb0835b84f269e48e7ab568cab2676e6cebdd6090d3c87a3237c3e83b" name="afa134603fb0835b84f269e48e7ab568cab2676e6cebdd6090d3c87a3237c3e83b"></a>kVhUndef </td><td class="fielddoc"><p>Sentinel – undefined. </p>
|
|
</td></tr>
|
|
</table>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="Rtabmap_8h_source.html#l00197">197</a> of file <a class="el" href="Rtabmap_8h_source.html">Rtabmap.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<h2 class="groupheader">Member Function Documentation</h2>
|
|
<a id="ad7f085b6ae0fd3c7077c500c028fd5c3" name="ad7f085b6ae0fd3c7077c500c028fd5c3"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ad7f085b6ae0fd3c7077c500c028fd5c3">◆ </a></span>process() <span class="overload">[1/3]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">bool rtabmap::Rtabmap::process </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="classrtabmap_1_1SensorData.html">SensorData</a> & </td>
|
|
<td class="paramname"><em>data</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="classrtabmap_1_1Transform.html">Transform</a> </td>
|
|
<td class="paramname"><em>odomPose</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const cv::Mat & </td>
|
|
<td class="paramname"><em>odomCovariance</em> = <code>cv::Mat::eye(6, 6, CV_64FC1)</code>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const std::vector< float > & </td>
|
|
<td class="paramname"><em>odomVelocity</em> = <code>std::vector< float >()</code>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const std::map< std::string, float > & </td>
|
|
<td class="paramname"><em>externalStats</em> = <code>std::map< std::string, float >()</code> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Main RTAB-Map iteration: ingests one sensor frame and updates the map. </p>
|
|
<p>Adds <code>data</code> to <a class="el" href="classrtabmap_1_1Memory.html">Memory</a>, runs the Bayes filter on the current likelihood, selects a loop-closure hypothesis if any, performs proximity detection, re-optimizes the graph as needed, and refreshes <a class="el" href="classrtabmap_1_1Rtabmap.html#a5d18002c7eb7cee234471686413d201c">getStatistics()</a> and <a class="el" href="classrtabmap_1_1Rtabmap.html#a2d2efac02d4a6d1d7bbc505d94fd634b">getLastLocalizationPose()</a>.</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">data</td><td>Sensor data for this frame (images, scan, user data, ...). </td></tr>
|
|
<tr><td class="paramname">odomPose</td><td><a class="el" href="classrtabmap_1_1Odometry.html" title="Abstract base class for visual, lidar and visual-inertial odometry backends.">Odometry</a> pose; must be non-null in RGB-D SLAM mode. Pass a null <a class="el" href="classrtabmap_1_1Transform.html">Transform</a> to fall back to appearance-only mode. </td></tr>
|
|
<tr><td class="paramname">odomCovariance</td><td>6x6 odometry covariance (default: identity). </td></tr>
|
|
<tr><td class="paramname">odomVelocity</td><td>Optional 6-vector (vx, vy, vz, vroll, vpitch, vyaw). </td></tr>
|
|
<tr><td class="paramname">externalStats</td><td>Extra named statistics to record in the database for this iteration. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>True if <code>data</code> was added to the map (i.e. the memory update succeeded). </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a91cedf4574a557cadf6daded489e4dbe" name="a91cedf4574a557cadf6daded489e4dbe"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a91cedf4574a557cadf6daded489e4dbe">◆ </a></span>process() <span class="overload">[2/3]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">bool rtabmap::Rtabmap::process </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="classrtabmap_1_1SensorData.html">SensorData</a> & </td>
|
|
<td class="paramname"><em>data</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="classrtabmap_1_1Transform.html">Transform</a> </td>
|
|
<td class="paramname"><em>odomPose</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">float </td>
|
|
<td class="paramname"><em>odomLinearVariance</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">float </td>
|
|
<td class="paramname"><em>odomAngularVariance</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const std::vector< float > & </td>
|
|
<td class="paramname"><em>odomVelocity</em> = <code>std::vector< float >()</code>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const std::map< std::string, float > & </td>
|
|
<td class="paramname"><em>externalStats</em> = <code>std::map< std::string, float >()</code> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Convenience overload: builds a diagonal covariance from scalar variances. </p>
|
|
<p>The 6x6 odometry covariance is constructed as <code>diag(odomLinearVariance, odomLinearVariance, odomLinearVariance,
|
|
odomAngularVariance, odomAngularVariance, odomAngularVariance)</code>. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a35cf8fd93f77d1c148ae6d3107725750" name="a35cf8fd93f77d1c148ae6d3107725750"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a35cf8fd93f77d1c148ae6d3107725750">◆ </a></span>process() <span class="overload">[3/3]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">bool rtabmap::Rtabmap::process </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const cv::Mat & </td>
|
|
<td class="paramname"><em>image</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"><em>id</em> = <code>0</code>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const std::map< std::string, float > & </td>
|
|
<td class="paramname"><em>externalStats</em> = <code>std::map< std::string, float >()</code> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Appearance-only convenience overload (loop-closure detection without odometry). </p>
|
|
<p>Equivalent to processing <code>image</code> alone, with no odometry pose. Useful for offline loop-closure benchmarking on image sequences.</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">image</td><td>RGB or grayscale frame. </td></tr>
|
|
<tr><td class="paramname">id</td><td>Optional frame id (0 = auto-generated). </td></tr>
|
|
<tr><td class="paramname">externalStats</td><td>Extra named statistics to record in the database for this iteration. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a711c479925db2c9f8201aacffe70281b" name="a711c479925db2c9f8201aacffe70281b"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a711c479925db2c9f8201aacffe70281b">◆ </a></span>init() <span class="overload">[1/2]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void rtabmap::Rtabmap::init </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="namespacertabmap.html#ad08b6f1796a27dd7316c99c385e2cc55">ParametersMap</a> & </td>
|
|
<td class="paramname"><em>parameters</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const std::string & </td>
|
|
<td class="paramname"><em>databasePath</em> = <code>""</code>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">bool </td>
|
|
<td class="paramname"><em>loadDatabaseParameters</em> = <code>false</code> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Initializes <a class="el" href="classrtabmap_1_1Rtabmap.html" title="Top-level RTAB-Map SLAM pipeline (mapping, localization and loop closure).">Rtabmap</a> with parameters and a database. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">parameters</td><td><a class="el" href="classrtabmap_1_1Parameters.html">Parameters</a> overriding default parameters and database parameters (see <code>loadDatabaseParameters</code>). </td></tr>
|
|
<tr><td class="paramname">databasePath</td><td>Database input/output path. If empty, an in-memory database is used. If set and the file does not exist, it is created empty; if it exists, nodes and the visual word vocabulary are loaded into working memory. </td></tr>
|
|
<tr><td class="paramname">loadDatabaseParameters</td><td>If true and an existing database is opened, the parameters stored inside the database are loaded and applied to this <a class="el" href="classrtabmap_1_1Rtabmap.html" title="Top-level RTAB-Map SLAM pipeline (mapping, localization and loop closure).">Rtabmap</a> instance (then overridden by <code>parameters</code>). </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a25bfb157aa3be3bd3c8a1d4200329041" name="a25bfb157aa3be3bd3c8a1d4200329041"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a25bfb157aa3be3bd3c8a1d4200329041">◆ </a></span>init() <span class="overload">[2/2]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void rtabmap::Rtabmap::init </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const std::string & </td>
|
|
<td class="paramname"><em>configFile</em> = <code>""</code>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const std::string & </td>
|
|
<td class="paramname"><em>databasePath</em> = <code>""</code>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">bool </td>
|
|
<td class="paramname"><em>loadDatabaseParameters</em> = <code>false</code> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Initializes <a class="el" href="classrtabmap_1_1Rtabmap.html" title="Top-level RTAB-Map SLAM pipeline (mapping, localization and loop closure).">Rtabmap</a> from a configuration file and a database. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">configFile</td><td>Configuration file (*.ini) overriding default parameters and database parameters (see <code>loadDatabaseParameters</code>). </td></tr>
|
|
<tr><td class="paramname">databasePath</td><td>Database input/output path; same semantics as the other <a class="el" href="classrtabmap_1_1Rtabmap.html#a711c479925db2c9f8201aacffe70281b">init()</a>. </td></tr>
|
|
<tr><td class="paramname">loadDatabaseParameters</td><td>If true and an existing database is opened, the parameters stored inside the database are loaded and applied first, then overridden by values from <code>configFile</code>. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a5e0b2eada8ae885e45df23165bb91d2f" name="a5e0b2eada8ae885e45df23165bb91d2f"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a5e0b2eada8ae885e45df23165bb91d2f">◆ </a></span>close()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void rtabmap::Rtabmap::close </td>
|
|
<td>(</td>
|
|
<td class="paramtype">bool </td>
|
|
<td class="paramname"><em>databaseSaved</em> = <code>true</code>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const std::string & </td>
|
|
<td class="paramname"><em>ouputDatabasePath</em> = <code>""</code> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Closes <a class="el" href="classrtabmap_1_1Rtabmap.html" title="Top-level RTAB-Map SLAM pipeline (mapping, localization and loop closure).">Rtabmap</a> and releases the underlying <a class="el" href="classrtabmap_1_1Memory.html">Memory</a>. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">databaseSaved</td><td>If true, the in-memory state is flushed to the database; if false, in-memory changes are discarded. </td></tr>
|
|
<tr><td class="paramname">ouputDatabasePath</td><td>If non-empty, the database is copied to this path on close. If a database on disk was initially created/loaded on a different path, it will be updated with the latest changes and renamed to the output path. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a61bc4dce59a1da8b904a7dbe39e5038a" name="a61bc4dce59a1da8b904a7dbe39e5038a"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a61bc4dce59a1da8b904a7dbe39e5038a">◆ </a></span>getWorkingDir()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">const std::string & rtabmap::Rtabmap::getWorkingDir </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<dl class="section return"><dt>Returns</dt><dd>Working directory used for dumps, log files and temporary outputs. </dd></dl>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="Rtabmap_8h_source.html#l00297">297</a> of file <a class="el" href="Rtabmap_8h_source.html">Rtabmap.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a691de75b6964ab48d7f1ea53ea40f4c1" name="a691de75b6964ab48d7f1ea53ea40f4c1"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a691de75b6964ab48d7f1ea53ea40f4c1">◆ </a></span>isRGBDMode()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">bool rtabmap::Rtabmap::isRGBDMode </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<dl class="section return"><dt>Returns</dt><dd>True if RGB-D SLAM mode is enabled (<a class="el" href="classrtabmap_1_1Parameters.html#a660983e23247cd39034f2ea07cfcd54b">Parameters::kRGBDEnabled()</a>). </dd></dl>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="Rtabmap_8h_source.html#l00299">299</a> of file <a class="el" href="Rtabmap_8h_source.html">Rtabmap.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a2bc8eecb690ec1e36955119cd2c1a197" name="a2bc8eecb690ec1e36955119cd2c1a197"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a2bc8eecb690ec1e36955119cd2c1a197">◆ </a></span>getLoopClosureId()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int rtabmap::Rtabmap::getLoopClosureId </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<dl class="section return"><dt>Returns</dt><dd>Id of the loop-closure hypothesis accepted at the last <a class="el" href="classrtabmap_1_1Rtabmap.html#ad7f085b6ae0fd3c7077c500c028fd5c3">process()</a> iteration, or 0 if none. </dd></dl>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="Rtabmap_8h_source.html#l00301">301</a> of file <a class="el" href="Rtabmap_8h_source.html">Rtabmap.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="adc87cbb6adde3027b8c20bbba25fec7b" name="adc87cbb6adde3027b8c20bbba25fec7b"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#adc87cbb6adde3027b8c20bbba25fec7b">◆ </a></span>getLoopClosureValue()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">float rtabmap::Rtabmap::getLoopClosureValue </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<dl class="section return"><dt>Returns</dt><dd>Posterior probability of the accepted loop-closure hypothesis, or 0 if none. </dd></dl>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="Rtabmap_8h_source.html#l00303">303</a> of file <a class="el" href="Rtabmap_8h_source.html">Rtabmap.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ab11a50751ab17717f567934e7cb2c450" name="ab11a50751ab17717f567934e7cb2c450"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ab11a50751ab17717f567934e7cb2c450">◆ </a></span>getHighestHypothesisId()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int rtabmap::Rtabmap::getHighestHypothesisId </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<dl class="section return"><dt>Returns</dt><dd>Id of the highest-posterior hypothesis at the last iteration (whether or not it was accepted). </dd></dl>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="Rtabmap_8h_source.html#l00305">305</a> of file <a class="el" href="Rtabmap_8h_source.html">Rtabmap.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a530c87cda2cd010e384178bced6611a1" name="a530c87cda2cd010e384178bced6611a1"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a530c87cda2cd010e384178bced6611a1">◆ </a></span>getHighestHypothesisValue()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">float rtabmap::Rtabmap::getHighestHypothesisValue </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<dl class="section return"><dt>Returns</dt><dd>Posterior of the highest-posterior hypothesis at the last iteration. </dd></dl>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="Rtabmap_8h_source.html#l00307">307</a> of file <a class="el" href="Rtabmap_8h_source.html">Rtabmap.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a9406c710b7af988dda1868a3efa8f1dd" name="a9406c710b7af988dda1868a3efa8f1dd"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a9406c710b7af988dda1868a3efa8f1dd">◆ </a></span>getLastLocationId()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int rtabmap::Rtabmap::getLastLocationId </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<dl class="section return"><dt>Returns</dt><dd>Id of the last non-intermediate signature added to the map (0 if none). </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ae3d40ed4ee48954e70d45e0779c24a49" name="ae3d40ed4ee48954e70d45e0779c24a49"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ae3d40ed4ee48954e70d45e0779c24a49">◆ </a></span>getWM()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">std::list< int > rtabmap::Rtabmap::getWM </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<dl class="section return"><dt>Returns</dt><dd>Working memory ids ordered as in <a class="el" href="classrtabmap_1_1Memory.html#ab6c0794ad1aac6e9084c0240e709cdc6">Memory::getWorkingMem()</a>. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a809673c3d0e6d8fb05ebb4a52218d438" name="a809673c3d0e6d8fb05ebb4a52218d438"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a809673c3d0e6d8fb05ebb4a52218d438">◆ </a></span>getSTM()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">std::set< int > rtabmap::Rtabmap::getSTM </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<dl class="section return"><dt>Returns</dt><dd>Short-term memory ids. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a203a18eb60f6c057518fd5129bbc32ff" name="a203a18eb60f6c057518fd5129bbc32ff"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a203a18eb60f6c057518fd5129bbc32ff">◆ </a></span>getWMSize()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int rtabmap::Rtabmap::getWMSize </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<dl class="section return"><dt>Returns</dt><dd>Working memory size (number of WM signatures). </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a49adc83991d6b95c7911f41330cbd467" name="a49adc83991d6b95c7911f41330cbd467"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a49adc83991d6b95c7911f41330cbd467">◆ </a></span>getSTMSize()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int rtabmap::Rtabmap::getSTMSize </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<dl class="section return"><dt>Returns</dt><dd>Short-term memory size (number of STM signatures). </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a353361aeeece3ce8c799d168a5798a01" name="a353361aeeece3ce8c799d168a5798a01"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a353361aeeece3ce8c799d168a5798a01">◆ </a></span>getWeights()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">std::map< int, int > rtabmap::Rtabmap::getWeights </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<dl class="section return"><dt>Returns</dt><dd>Per-signature weights (rehearsal counts) for WM and STM. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ab44f1bca06eec4beb8dfebeed9ed5ce8" name="ab44f1bca06eec4beb8dfebeed9ed5ce8"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ab44f1bca06eec4beb8dfebeed9ed5ce8">◆ </a></span>getTotalMemSize()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int rtabmap::Rtabmap::getTotalMemSize </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<dl class="section return"><dt>Returns</dt><dd>Total number of signatures across WM, STM and LTM. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a88ffdd1ba70707e5969deab4f6ee66a0" name="a88ffdd1ba70707e5969deab4f6ee66a0"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a88ffdd1ba70707e5969deab4f6ee66a0">◆ </a></span>getLastProcessTime()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">double rtabmap::Rtabmap::getLastProcessTime </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<dl class="section return"><dt>Returns</dt><dd>Wall-clock duration of the last <a class="el" href="classrtabmap_1_1Rtabmap.html#ad7f085b6ae0fd3c7077c500c028fd5c3">process()</a> call, in seconds. </dd></dl>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="Rtabmap_8h_source.html#l00323">323</a> of file <a class="el" href="Rtabmap_8h_source.html">Rtabmap.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a596ea3fbeb22c90db9530f6752900ecc" name="a596ea3fbeb22c90db9530f6752900ecc"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a596ea3fbeb22c90db9530f6752900ecc">◆ </a></span>isInSTM()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">bool rtabmap::Rtabmap::isInSTM </td>
|
|
<td>(</td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"><em>locationId</em></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<dl class="section return"><dt>Returns</dt><dd>True if <code>locationId</code> is currently in short-term memory. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a5e85283c6421dcf9afb6961662e501b8" name="a5e85283c6421dcf9afb6961662e501b8"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a5e85283c6421dcf9afb6961662e501b8">◆ </a></span>isIDsGenerated()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">bool rtabmap::Rtabmap::isIDsGenerated </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<dl class="section return"><dt>Returns</dt><dd>True if signature ids are auto-generated (vs. taken from <a class="el" href="classrtabmap_1_1SensorData.html#a84fbcb16e51018d96065d3ce240650c6">SensorData::id()</a>). </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a5d18002c7eb7cee234471686413d201c" name="a5d18002c7eb7cee234471686413d201c"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a5d18002c7eb7cee234471686413d201c">◆ </a></span>getStatistics()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">const <a class="el" href="classrtabmap_1_1Statistics.html">Statistics</a> & rtabmap::Rtabmap::getStatistics </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classrtabmap_1_1Statistics.html" title="Collects and manages runtime statistics for RTAB-Map.">Statistics</a> produced by the last <a class="el" href="classrtabmap_1_1Rtabmap.html#ad7f085b6ae0fd3c7077c500c028fd5c3">process()</a> iteration. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="aebe0bf9364ff8952d041f57c6a1c1d57" name="aebe0bf9364ff8952d041f57c6a1c1d57"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#aebe0bf9364ff8952d041f57c6a1c1d57">◆ </a></span>getLocalOptimizedPoses()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">const std::map< int, <a class="el" href="classrtabmap_1_1Transform.html">Transform</a> > & rtabmap::Rtabmap::getLocalOptimizedPoses </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<dl class="section return"><dt>Returns</dt><dd>Optimized poses of the current local map (last graph optimization result). </dd></dl>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="Rtabmap_8h_source.html#l00331">331</a> of file <a class="el" href="Rtabmap_8h_source.html">Rtabmap.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a4d1e329f0c0fcc341d14f6853ec86750" name="a4d1e329f0c0fcc341d14f6853ec86750"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a4d1e329f0c0fcc341d14f6853ec86750">◆ </a></span>getLocalConstraints()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">const std::multimap< int, <a class="el" href="classrtabmap_1_1Link.html">Link</a> > & rtabmap::Rtabmap::getLocalConstraints </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<dl class="section return"><dt>Returns</dt><dd>Constraints (links) of the current local map. </dd></dl>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="Rtabmap_8h_source.html#l00333">333</a> of file <a class="el" href="Rtabmap_8h_source.html">Rtabmap.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ac430e0adb75dc4aec3b7ba77053aabd0" name="ac430e0adb75dc4aec3b7ba77053aabd0"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ac430e0adb75dc4aec3b7ba77053aabd0">◆ </a></span>getPose()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="classrtabmap_1_1Transform.html">Transform</a> rtabmap::Rtabmap::getPose </td>
|
|
<td>(</td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"><em>locationId</em></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<dl class="section return"><dt>Returns</dt><dd>Optimized pose of <code>locationId</code> in the current local map (identity if not present). </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a7b71f70a20f1ef42a65fa9571e254711" name="a7b71f70a20f1ef42a65fa9571e254711"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a7b71f70a20f1ef42a65fa9571e254711">◆ </a></span>getMapCorrection()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="classrtabmap_1_1Transform.html">Transform</a> rtabmap::Rtabmap::getMapCorrection </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classrtabmap_1_1Transform.html" title="Represents a 3D rigid body transformation (rotation + translation).">Transform</a> mapping odometry frame to the optimized map frame.</dd></dl>
|
|
<p>This is the correction applied to incoming odometry poses so they align with the latest graph optimization output. Updated whenever a loop closure or proximity detection re-optimizes the graph.</p>
|
|
<p>In ROS terms, this corresponds to the standard <code>/map</code> -> <code>/odom</code> TF transform published by SLAM systems: composing it with the live odometry pose (<code>/odom</code> -> <code>/base_link</code>) yields the robot pose in the map frame. </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="Rtabmap_8h_source.html#l00349">349</a> of file <a class="el" href="Rtabmap_8h_source.html">Rtabmap.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a08adb5e0b8019c1dbd4f571099d2d46b" name="a08adb5e0b8019c1dbd4f571099d2d46b"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a08adb5e0b8019c1dbd4f571099d2d46b">◆ </a></span>getMemory()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">const <a class="el" href="classrtabmap_1_1Memory.html">Memory</a> * rtabmap::Rtabmap::getMemory </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<dl class="section return"><dt>Returns</dt><dd>Owned <a class="el" href="classrtabmap_1_1Memory.html">Memory</a> (may be null before <a class="el" href="classrtabmap_1_1Rtabmap.html#a711c479925db2c9f8201aacffe70281b">init()</a>). </dd></dl>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="Rtabmap_8h_source.html#l00351">351</a> of file <a class="el" href="Rtabmap_8h_source.html">Rtabmap.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a6098155788f6e9ccaa636e26f8881c07" name="a6098155788f6e9ccaa636e26f8881c07"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a6098155788f6e9ccaa636e26f8881c07">◆ </a></span>getGoalReachedRadius()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">float rtabmap::Rtabmap::getGoalReachedRadius </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<dl class="section return"><dt>Returns</dt><dd>Radius (meters) under which the current path goal is considered reached. </dd></dl>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="Rtabmap_8h_source.html#l00353">353</a> of file <a class="el" href="Rtabmap_8h_source.html">Rtabmap.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a6a4c533659621ccb1f6a5ddbc8149306" name="a6a4c533659621ccb1f6a5ddbc8149306"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a6a4c533659621ccb1f6a5ddbc8149306">◆ </a></span>getLocalRadius()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">float rtabmap::Rtabmap::getLocalRadius </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<dl class="section return"><dt>Returns</dt><dd>Local radius (meters) used by proximity detection and path planning queries. </dd></dl>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="Rtabmap_8h_source.html#l00355">355</a> of file <a class="el" href="Rtabmap_8h_source.html">Rtabmap.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a2d2efac02d4a6d1d7bbc505d94fd634b" name="a2d2efac02d4a6d1d7bbc505d94fd634b"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a2d2efac02d4a6d1d7bbc505d94fd634b">◆ </a></span>getLastLocalizationPose()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">const <a class="el" href="classrtabmap_1_1Transform.html">Transform</a> & rtabmap::Rtabmap::getLastLocalizationPose </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<dl class="section return"><dt>Returns</dt><dd>Last localized pose in the map frame.</dd></dl>
|
|
<p>In <b>localization mode</b>, this is the corrected odometry pose of the last processed frame. In <b>mapping mode</b>, this is the last pose returned by <a class="el" href="classrtabmap_1_1Rtabmap.html#aebe0bf9364ff8952d041f57c6a1c1d57">getLocalOptimizedPoses()</a>. </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="Rtabmap_8h_source.html#l00363">363</a> of file <a class="el" href="Rtabmap_8h_source.html">Rtabmap.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="af7fa0cbd1ef027f8bb2af11364487df8" name="af7fa0cbd1ef027f8bb2af11364487df8"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#af7fa0cbd1ef027f8bb2af11364487df8">◆ </a></span>getTimeThreshold()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">float rtabmap::Rtabmap::getTimeThreshold </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<dl class="section return"><dt>Returns</dt><dd>Maximum allowed processing time per <a class="el" href="classrtabmap_1_1Rtabmap.html#ad7f085b6ae0fd3c7077c500c028fd5c3">process()</a> call, in milliseconds. </dd></dl>
|
|
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classrtabmap_1_1Parameters.html#a8ee7e153cfb26574c7d1c7b427593f8a" title="Key of parameter Rtabmap/TimeThr : "Maximum time allowed for map update (ms) (0 means infinity)....">Parameters::kRtabmapTimeThr()</a> </dd></dl>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="Rtabmap_8h_source.html#l00369">369</a> of file <a class="el" href="Rtabmap_8h_source.html">Rtabmap.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a80add8fadd488d0c7781c249abea0d5d" name="a80add8fadd488d0c7781c249abea0d5d"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a80add8fadd488d0c7781c249abea0d5d">◆ </a></span>setTimeThreshold()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void rtabmap::Rtabmap::setTimeThreshold </td>
|
|
<td>(</td>
|
|
<td class="paramtype">float </td>
|
|
<td class="paramname"><em>maxTimeAllowed</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Sets the per-iteration time budget (ms). </p>
|
|
<p>Drives how aggressively WM is transferred to LTM to keep iterations under the threshold. 0 disables the time bound.</p>
|
|
<dl class="section note"><dt>Note</dt><dd>This setting and <a class="el" href="classrtabmap_1_1Rtabmap.html#a6915ee0137b949837addcb5d3ac1646c">setMemoryThreshold()</a> are the only two switches that enable RTAB-Map's memory management (WM-to-LTM transfer, retrieval and node immunization). When both are 0, memory management is disabled and all signatures stay in working memory.</dd></dl>
|
|
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classrtabmap_1_1Parameters.html#a8ee7e153cfb26574c7d1c7b427593f8a" title="Key of parameter Rtabmap/TimeThr : "Maximum time allowed for map update (ms) (0 means infinity)....">Parameters::kRtabmapTimeThr()</a> </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a876d3599c76de815bee4b278a087cfa5" name="a876d3599c76de815bee4b278a087cfa5"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a876d3599c76de815bee4b278a087cfa5">◆ </a></span>getMemoryThreshold()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int rtabmap::Rtabmap::getMemoryThreshold </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<dl class="section return"><dt>Returns</dt><dd>Maximum allowed WM size (number of signatures). </dd></dl>
|
|
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classrtabmap_1_1Parameters.html#a66882ccd6f0a49f2c23db8718d12a59c" title="Key of parameter Rtabmap/MemoryThr : uFormat("Maximum nodes in the Working Memory (0 means infinity)....">Parameters::kRtabmapMemoryThr()</a> </dd></dl>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="Rtabmap_8h_source.html#l00388">388</a> of file <a class="el" href="Rtabmap_8h_source.html">Rtabmap.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a6915ee0137b949837addcb5d3ac1646c" name="a6915ee0137b949837addcb5d3ac1646c"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a6915ee0137b949837addcb5d3ac1646c">◆ </a></span>setMemoryThreshold()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void rtabmap::Rtabmap::setMemoryThreshold </td>
|
|
<td>(</td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"><em>maxMemoryAllowed</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Sets the maximum number of signatures kept in WM (0 = unbounded). </p>
|
|
<dl class="section note"><dt>Note</dt><dd>This setting and <a class="el" href="classrtabmap_1_1Rtabmap.html#a80add8fadd488d0c7781c249abea0d5d">setTimeThreshold()</a> are the only two switches that enable RTAB-Map's memory management (WM-to-LTM transfer, retrieval and node immunization). When both are 0, memory management is disabled and all signatures stay in working memory.</dd></dl>
|
|
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classrtabmap_1_1Parameters.html#a66882ccd6f0a49f2c23db8718d12a59c" title="Key of parameter Rtabmap/MemoryThr : uFormat("Maximum nodes in the Working Memory (0 means infinity)....">Parameters::kRtabmapMemoryThr()</a> </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a9a9321531773f37cd5d7740495ede47f" name="a9a9321531773f37cd5d7740495ede47f"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a9a9321531773f37cd5d7740495ede47f">◆ </a></span>setInitialPose()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void rtabmap::Rtabmap::setInitialPose </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="classrtabmap_1_1Transform.html">Transform</a> & </td>
|
|
<td class="paramname"><em>initialPose</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Sets the localization prior pose used to seed the next <a class="el" href="classrtabmap_1_1Rtabmap.html#ad7f085b6ae0fd3c7077c500c028fd5c3">process()</a> call (localization mode only). </p>
|
|
<p>Tells RTAB-Map where the robot is currently located in the map frame, so that the very next call to <a class="el" href="classrtabmap_1_1Rtabmap.html#ad7f085b6ae0fd3c7077c500c028fd5c3">process()</a> can align incoming odometry with the persisted map without waiting for a loop closure. Typical use cases: restoring localization after a session restart, applying an external pose estimate (e.g. from a <a class="el" href="classrtabmap_1_1GPS.html" title="WGS84 GPS fix attached to a sensor sample or graph node.">GPS</a> or a known starting point), or recovering from "kidnapped robot" situations.</p>
|
|
<p>This call only stages state; it does <b>not</b> itself produce a non-identity <a class="el" href="classrtabmap_1_1Rtabmap.html#a7b71f70a20f1ef42a65fa9571e254711">getMapCorrection()</a>. The alignment between the odometry frame and the map frame is performed on the next <a class="el" href="classrtabmap_1_1Rtabmap.html#ad7f085b6ae0fd3c7077c500c028fd5c3">process()</a> call, which consumes <code>initialPose</code> together with the incoming odometry pose. Two branches are taken depending on <a class="el" href="classrtabmap_1_1Parameters.html#ae0e66e60cda07b9b87b9f5aed3097f18">Parameters::kRGBDOptimizeFromGraphEnd()</a>:</p><ul>
|
|
<li><b>false (default)</b>: <a class="el" href="classrtabmap_1_1Rtabmap.html#a7b71f70a20f1ef42a65fa9571e254711">getMapCorrection()</a> is set so that the live odometry pose is shifted to land on <code>initialPose</code> in the map frame (the optimized map is left untouched).</li>
|
|
<li><b>true</b>: every optimized node pose is rigidly transformed so that the map itself moves to align with <code>initialPose</code> (the map correction stays close to identity).</li>
|
|
</ul>
|
|
<p>The transform applied is restricted by SLAM dimensionality: 3-DoF (x, y, yaw) for 2D SLAM, 4-DoF (x, y, z, yaw) when gravity is available (<a class="el" href="classrtabmap_1_1IMU.html" title="Inertial measurement sample (ROS sensor_msgs/Imu-like fields).">IMU</a> orientation or <a class="el" href="classrtabmap_1_1Memory.html#ab29b6d90e79694d7fdfb56574476141f">Memory::isOdomGravityUsed()</a>) and <a class="el" href="classrtabmap_1_1Parameters.html#ae30f9e3d2e17c3543801cdd9fa51ffcc">Parameters::kOptimizerGravitySigma()</a> is non-zero, full 6-DoF otherwise.</p>
|
|
<p>Side effects on the staged state:</p><ul>
|
|
<li><a class="el" href="classrtabmap_1_1Rtabmap.html#a2d2efac02d4a6d1d7bbc505d94fd634b">getLastLocalizationPose()</a> is replaced by <code>initialPose</code>; the localization covariance, the last localization node id and the odometry cache used for loop-closure rejection are all cleared.</li>
|
|
<li><a class="el" href="classrtabmap_1_1Rtabmap.html#a7b71f70a20f1ef42a65fa9571e254711">getMapCorrection()</a> is reset to identity and any backup is cleared.</li>
|
|
<li>If the current map has not been optimized yet (no entries in <a class="el" href="classrtabmap_1_1Rtabmap.html#aebe0bf9364ff8952d041f57c6a1c1d57">getLocalOptimizedPoses()</a>) and a last working signature exists, the map is optimized around that signature so the next <a class="el" href="classrtabmap_1_1Rtabmap.html#ad7f085b6ae0fd3c7077c500c028fd5c3">process()</a> has something to localize against.</li>
|
|
</ul>
|
|
<p>After the next <a class="el" href="classrtabmap_1_1Rtabmap.html#ad7f085b6ae0fd3c7077c500c028fd5c3">process()</a> consumes the prior, the nearest optimized node to <code>initialPose</code> is recorded as the last localization node.</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">initialPose</td><td>Robot pose in the map frame.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section note"><dt>Note</dt><dd>No-op (with warning) in mapping mode.</dd></dl>
|
|
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classrtabmap_1_1Parameters.html#acdc74cd2b096ba28d9c1e00040b69d42" title="Key of parameter Mem/IncrementalMemory : "SLAM mode, otherwise it is Localization mode....">Parameters::kMemIncrementalMemory()</a> </dd>
|
|
<dd>
|
|
<a class="el" href="classrtabmap_1_1Parameters.html#ae0e66e60cda07b9b87b9f5aed3097f18" title="Key of parameter RGBD/OptimizeFromGraphEnd : "Optimize graph from the newest node....">Parameters::kRGBDOptimizeFromGraphEnd()</a> </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a4ab6de2be120bbda75577911d52346d4" name="a4ab6de2be120bbda75577911d52346d4"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a4ab6de2be120bbda75577911d52346d4">◆ </a></span>triggerNewMap()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int rtabmap::Rtabmap::triggerNewMap </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Starts a new map session (next <a class="el" href="classrtabmap_1_1Rtabmap.html#ad7f085b6ae0fd3c7077c500c028fd5c3">process()</a> will create a fresh map id). </p>
|
|
<p>In <b>mapping mode</b>, this increments the map id, clears the local optimized graph and resets the Bayes filter. In <b>localization mode</b>, it resets the map correction, the localization node and the odometry cache; if <a class="el" href="classrtabmap_1_1Parameters.html#afd7b349d5f354c290ef2e37e917182ee">Parameters::kRGBDStartAtOrigin()</a> is enabled, the last localization pose is reset to identity.</p>
|
|
<dl class="section return"><dt>Returns</dt><dd>The new map id (mapping mode), or -1 (localization mode). </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="af1fe8ed393237bc9ffa1ea93adf0ec9b" name="af1fe8ed393237bc9ffa1ea93adf0ec9b"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#af1fe8ed393237bc9ffa1ea93adf0ec9b">◆ </a></span>labelLocation()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">bool rtabmap::Rtabmap::labelLocation </td>
|
|
<td>(</td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"><em>id</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const std::string & </td>
|
|
<td class="paramname"><em>label</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Assigns or clears a label on signature <code>id</code>. </p>
|
|
<dl class="section return"><dt>Returns</dt><dd>True if the label was applied. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a037ddb5d737e0466d7610b88d8429bd6" name="a037ddb5d737e0466d7610b88d8429bd6"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a037ddb5d737e0466d7610b88d8429bd6">◆ </a></span>setUserData()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">bool rtabmap::Rtabmap::setUserData </td>
|
|
<td>(</td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"><em>id</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const cv::Mat & </td>
|
|
<td class="paramname"><em>data</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Attaches user data to signature <code>id</code>, compressing it on the fly if needed. </p>
|
|
<p>The format is detected automatically: a single-row <code>CV_8UC1</code> matrix is treated as already-compressed data and stored as-is; anything else is considered raw and compressed before being stored.</p>
|
|
<dl class="section note"><dt>Note</dt><dd>If you pass one-dimensional unsigned 8-bit raw data, transpose it so it has multiple rows (not multiple columns), otherwise it will be misdetected as already compressed.</dd></dl>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">id</td><td>Target signature id (must be in WM/STM or LTM). </td></tr>
|
|
<tr><td class="paramname">data</td><td>Raw or pre-compressed user data. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>True if the data was attached. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a3c32f64acd943c676a9b11c7dbd3a5ae" name="a3c32f64acd943c676a9b11c7dbd3a5ae"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a3c32f64acd943c676a9b11c7dbd3a5ae">◆ </a></span>generateDOTGraph()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void rtabmap::Rtabmap::generateDOTGraph </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const std::string & </td>
|
|
<td class="paramname"><em>path</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"><em>id</em> = <code>0</code>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"><em>margin</em> = <code>5</code> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Writes a Graphviz DOT file of the pose graph. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">path</td><td>Output file path. </td></tr>
|
|
<tr><td class="paramname">id</td><td>If non-zero, root the graph at <code>id</code>; otherwise use the last signature. </td></tr>
|
|
<tr><td class="paramname">margin</td><td>Maximum graph depth around <code>id</code> to include. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="aeffdfc811a178ba2e55205b746a6ea71" name="aeffdfc811a178ba2e55205b746a6ea71"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#aeffdfc811a178ba2e55205b746a6ea71">◆ </a></span>exportPoses()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void rtabmap::Rtabmap::exportPoses </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const std::string & </td>
|
|
<td class="paramname"><em>path</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">bool </td>
|
|
<td class="paramname"><em>optimized</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">bool </td>
|
|
<td class="paramname"><em>global</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"><em>format</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Exports the current pose graph to a text file. </p>
|
|
<p>Forwards to <a class="el" href="namespacertabmap_1_1graph.html#af5622dec3112ea0b5154056bde132d46">graph::exportPoses()</a> after collecting either the optimized or the raw odometry poses (and the matching constraints when needed).</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">path</td><td>Output file path. </td></tr>
|
|
<tr><td class="paramname">optimized</td><td>If true, export optimized poses; otherwise raw odometry poses. </td></tr>
|
|
<tr><td class="paramname">global</td><td>If true, include nodes from LTM as well; otherwise only WM/STM. </td></tr>
|
|
<tr><td class="paramname">format</td><td>Output format code; see <a class="el" href="namespacertabmap_1_1graph.html#af5622dec3112ea0b5154056bde132d46">graph::exportPoses()</a> for the full list of supported values (raw, RGBD-SLAM/TUM, KITTI, TORO, g2o, ...).</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section see"><dt>See also</dt><dd><a class="el" href="namespacertabmap_1_1graph.html#af5622dec3112ea0b5154056bde132d46" title="Writes poses (and optional constraints) to disk.">graph::exportPoses()</a> </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="af12ae46226f33adf8c4cafbe1bcf544c" name="af12ae46226f33adf8c4cafbe1bcf544c"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#af12ae46226f33adf8c4cafbe1bcf544c">◆ </a></span>resetMemory()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void rtabmap::Rtabmap::resetMemory </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Clears all in-memory state and resets the database. </p>
|
|
<p>In incremental mode, also clears the persisted map. In read-only memory mode, resets the in-memory state but leaves the database untouched. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a9ac5900cbc165df1c501606f79c65ec1" name="a9ac5900cbc165df1c501606f79c65ec1"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a9ac5900cbc165df1c501606f79c65ec1">◆ </a></span>getParameters()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">const <a class="el" href="namespacertabmap.html#ad08b6f1796a27dd7316c99c385e2cc55">ParametersMap</a> & rtabmap::Rtabmap::getParameters </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<dl class="section return"><dt>Returns</dt><dd>Current effective parameter map. </dd></dl>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="Rtabmap_8h_source.html#l00526">526</a> of file <a class="el" href="Rtabmap_8h_source.html">Rtabmap.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a25028c3e8d8018c03f47f06150d76eab" name="a25028c3e8d8018c03f47f06150d76eab"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a25028c3e8d8018c03f47f06150d76eab">◆ </a></span>setWorkingDirectory()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void rtabmap::Rtabmap::setWorkingDirectory </td>
|
|
<td>(</td>
|
|
<td class="paramtype">std::string </td>
|
|
<td class="paramname"><em>path</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Sets the working directory used for dumps, logs and temporary files. </p>
|
|
<p>Can also be configured through <a class="el" href="classrtabmap_1_1Parameters.html#a42233cb8e32e704f7dd79d0208fa9d07">Parameters::kRtabmapWorkingDirectory()</a> in the parameter map passed to <a class="el" href="classrtabmap_1_1Rtabmap.html#a711c479925db2c9f8201aacffe70281b">init()</a> or <a class="el" href="classrtabmap_1_1Rtabmap.html#a5a461ed88e83d2dbebee819ab6690e7a">parseParameters()</a>.</p>
|
|
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classrtabmap_1_1Parameters.html#a42233cb8e32e704f7dd79d0208fa9d07" title="Key of parameter Rtabmap/WorkingDirectory : "Working directory." Default value: "" (string).">Parameters::kRtabmapWorkingDirectory()</a> </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ab04bd616db9107a705faf5b3395a73d3" name="ab04bd616db9107a705faf5b3395a73d3"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ab04bd616db9107a705faf5b3395a73d3">◆ </a></span>rejectLastLoopClosure()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void rtabmap::Rtabmap::rejectLastLoopClosure </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Removes the loop-closure link added at the last <a class="el" href="classrtabmap_1_1Rtabmap.html#ad7f085b6ae0fd3c7077c500c028fd5c3">process()</a> iteration. </p>
|
|
<p>Looks at the last non-intermediate signature in STM and erases any <a class="el" href="classrtabmap_1_1Link.html#a925bb7ca93eb95a3a873b0a9e8d5e91eae963042a31afec63e8c0683696ac6791">Link::kGlobalClosure</a>, <a class="el" href="classrtabmap_1_1Link.html#a925bb7ca93eb95a3a873b0a9e8d5e91ea9195217dc75001841fce507de43fb0db">Link::kLocalSpaceClosure</a>, <a class="el" href="classrtabmap_1_1Link.html#a925bb7ca93eb95a3a873b0a9e8d5e91eae0b352e9cbb32d357ce59f09159c09fb">Link::kLocalTimeClosure</a> or <a class="el" href="classrtabmap_1_1Link.html#a925bb7ca93eb95a3a873b0a9e8d5e91ea878009c73fbfa2736f438b748afbc1f6">Link::kUserClosure</a> attached to it. The current optimized map is updated accordingly. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="aee23115b4bd02bce5d1721418a0f7599" name="aee23115b4bd02bce5d1721418a0f7599"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#aee23115b4bd02bce5d1721418a0f7599">◆ </a></span>deleteLastLocation()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void rtabmap::Rtabmap::deleteLastLocation </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Deletes the most recent (non-intermediate) location from the map. </p>
|
|
<p>Used by tools to undo the very last <a class="el" href="classrtabmap_1_1Rtabmap.html#ad7f085b6ae0fd3c7077c500c028fd5c3">process()</a> iteration. In mapping mode, the optimized graph is recomputed without the deleted node.</p>
|
|
<dl class="section note"><dt>Note</dt><dd>Locations whose neighbors include intermediate nodes are not supported. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a7a841702b925777620714fce7b41fd69" name="a7a841702b925777620714fce7b41fd69"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a7a841702b925777620714fce7b41fd69">◆ </a></span>setOptimizedPoses()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void rtabmap::Rtabmap::setOptimizedPoses </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const std::map< int, <a class="el" href="classrtabmap_1_1Transform.html">Transform</a> > & </td>
|
|
<td class="paramname"><em>poses</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const std::multimap< int, <a class="el" href="classrtabmap_1_1Link.html">Link</a> > & </td>
|
|
<td class="paramname"><em>constraints</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Replaces the current optimized poses and constraints with externally provided ones. </p>
|
|
<p>Useful when graph optimization is performed outside of <a class="el" href="classrtabmap_1_1Rtabmap.html" title="Top-level RTAB-Map SLAM pipeline (mapping, localization and loop closure).">Rtabmap</a>.</p>
|
|
<dl class="section warning"><dt>Warning</dt><dd>No consistency check is performed against the current <a class="el" href="classrtabmap_1_1Memory.html">Memory</a> state: <code>poses</code> and <code>constraints</code> overwrite the internal containers verbatim. The caller is responsible for ensuring that every id in <code>poses</code> (and every endpoint of every link in <code>constraints</code>) belongs to a signature currently in STM or WM (see <a class="el" href="classrtabmap_1_1Memory.html#a19fe91598153249250ac4870db535e8e">Memory::isInSTM()</a> / <a class="el" href="classrtabmap_1_1Memory.html#a5058d8b44e4f76f1fedb76645087a1ac">Memory::isInWM()</a>). Passing poses for ids that are no longer loaded will leave dangling entries that may confuse subsequent <a class="el" href="classrtabmap_1_1Rtabmap.html#ad7f085b6ae0fd3c7077c500c028fd5c3">process()</a> calls. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a7133d8efa98410eaec68e0199ff98a0c" name="a7133d8efa98410eaec68e0199ff98a0c"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a7133d8efa98410eaec68e0199ff98a0c">◆ </a></span>getSignatureCopy()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="classrtabmap_1_1Signature.html">Signature</a> rtabmap::Rtabmap::getSignatureCopy </td>
|
|
<td>(</td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"><em>id</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">bool </td>
|
|
<td class="paramname"><em>images</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">bool </td>
|
|
<td class="paramname"><em>scan</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">bool </td>
|
|
<td class="paramname"><em>userData</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">bool </td>
|
|
<td class="paramname"><em>occupancyGrid</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">bool </td>
|
|
<td class="paramname"><em>withWords</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">bool </td>
|
|
<td class="paramname"><em>withGlobalDescriptors</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Returns a copy of signature <code>id</code> with optional payloads attached. </p>
|
|
<p>Loads from WM/STM if present, otherwise from LTM. Selectively populates the returned <a class="el" href="classrtabmap_1_1Signature.html">Signature</a> with images, scan, user data, occupancy grid, visual words and global descriptors. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a456fa0c95770f052d78f6d9f745fa1e3" name="a456fa0c95770f052d78f6d9f745fa1e3"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a456fa0c95770f052d78f6d9f745fa1e3">◆ </a></span>getGraph()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void rtabmap::Rtabmap::getGraph </td>
|
|
<td>(</td>
|
|
<td class="paramtype">std::map< int, <a class="el" href="classrtabmap_1_1Transform.html">Transform</a> > & </td>
|
|
<td class="paramname"><em>poses</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">std::multimap< int, <a class="el" href="classrtabmap_1_1Link.html">Link</a> > & </td>
|
|
<td class="paramname"><em>constraints</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">bool </td>
|
|
<td class="paramname"><em>optimized</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">bool </td>
|
|
<td class="paramname"><em>global</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">std::map< int, <a class="el" href="classrtabmap_1_1Signature.html">Signature</a> > * </td>
|
|
<td class="paramname"><em>signatures</em> = <code>0</code>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">bool </td>
|
|
<td class="paramname"><em>withImages</em> = <code>false</code>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">bool </td>
|
|
<td class="paramname"><em>withScan</em> = <code>false</code>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">bool </td>
|
|
<td class="paramname"><em>withUserData</em> = <code>false</code>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">bool </td>
|
|
<td class="paramname"><em>withGrid</em> = <code>false</code>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">bool </td>
|
|
<td class="paramname"><em>withWords</em> = <code>true</code>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">bool </td>
|
|
<td class="paramname"><em>withGlobalDescriptors</em> = <code>true</code> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Extracts a full snapshot of the current pose graph. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">poses</td><td>Output: pose for every selected node. </td></tr>
|
|
<tr><td class="paramname">constraints</td><td>Output: links between selected nodes. </td></tr>
|
|
<tr><td class="paramname">optimized</td><td>If true, return optimized poses; otherwise raw odometry poses. </td></tr>
|
|
<tr><td class="paramname">global</td><td>If true, include nodes from LTM as well; otherwise only WM/STM. </td></tr>
|
|
<tr><td class="paramname">signatures</td><td>Optional output: a copy of each node's <a class="el" href="classrtabmap_1_1Signature.html">Signature</a> (with the payloads requested by the <code>with*</code> flags). </td></tr>
|
|
<tr><td class="paramname">withImages</td><td>Attach compressed RGB/depth images to <code>signatures</code>. </td></tr>
|
|
<tr><td class="paramname">withScan</td><td>Attach laser scan blob. </td></tr>
|
|
<tr><td class="paramname">withUserData</td><td>Attach user data blob. </td></tr>
|
|
<tr><td class="paramname">withGrid</td><td>Attach occupancy grid cells. </td></tr>
|
|
<tr><td class="paramname">withWords</td><td>Attach visual words (id, keypoints, 3D points, descriptors). </td></tr>
|
|
<tr><td class="paramname">withGlobalDescriptors</td><td>Attach global descriptors. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a1a6498f60f52f65ffbed2d89d7c20648" name="a1a6498f60f52f65ffbed2d89d7c20648"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a1a6498f60f52f65ffbed2d89d7c20648">◆ </a></span>getNodesInRadius() <span class="overload">[1/2]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">std::map< int, <a class="el" href="classrtabmap_1_1Transform.html">Transform</a> > rtabmap::Rtabmap::getNodesInRadius </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="classrtabmap_1_1Transform.html">Transform</a> & </td>
|
|
<td class="paramname"><em>pose</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">float </td>
|
|
<td class="paramname"><em>radius</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"><em>k</em> = <code>0</code>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">std::map< int, float > * </td>
|
|
<td class="paramname"><em>distsSqr</em> = <code>0</code> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Returns optimized poses within a metric radius of <code>pose</code>. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">pose</td><td>Query pose in the map frame. </td></tr>
|
|
<tr><td class="paramname">radius</td><td>Search radius in meters (0 falls back to <a class="el" href="classrtabmap_1_1Parameters.html#adaa87cec765f9674a12382392a60a4fe">Parameters::kRGBDLocalRadius()</a>). </td></tr>
|
|
<tr><td class="paramname">k</td><td>If non-zero, also cap the result to the <code>k</code> nearest neighbors. </td></tr>
|
|
<tr><td class="paramname">distsSqr</td><td>Optional output: per-id squared distance to <code>pose</code>. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>Nodes (and possibly landmarks) within the radius, mapped to their pose. Landmarks have a negative id. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a9bd263bbcdbc6f41119f8532131db974" name="a9bd263bbcdbc6f41119f8532131db974"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a9bd263bbcdbc6f41119f8532131db974">◆ </a></span>getNodesInRadius() <span class="overload">[2/2]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">std::map< int, <a class="el" href="classrtabmap_1_1Transform.html">Transform</a> > rtabmap::Rtabmap::getNodesInRadius </td>
|
|
<td>(</td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"><em>nodeId</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">float </td>
|
|
<td class="paramname"><em>radius</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"><em>k</em> = <code>0</code>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">std::map< int, float > * </td>
|
|
<td class="paramname"><em>distsSqr</em> = <code>0</code> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Returns optimized poses within a metric radius of node <code>nodeId</code>. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">nodeId</td><td>Query node id. Pass 0 to query around the latest node. A negative id requests neighbors of the corresponding landmark. </td></tr>
|
|
<tr><td class="paramname">radius</td><td>Search radius in meters (0 falls back to <a class="el" href="classrtabmap_1_1Parameters.html#adaa87cec765f9674a12382392a60a4fe">Parameters::kRGBDLocalRadius()</a>). </td></tr>
|
|
<tr><td class="paramname">k</td><td>If non-zero, cap the result to the <code>k</code> nearest neighbors. </td></tr>
|
|
<tr><td class="paramname">distsSqr</td><td>Optional output: per-id squared distance to <code>nodeId</code>. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>Nodes (and possibly landmarks) within the radius. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a600d86ab2a67fa08d6a1e726380948ea" name="a600d86ab2a67fa08d6a1e726380948ea"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a600d86ab2a67fa08d6a1e726380948ea">◆ </a></span>detectMoreLoopClosures()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int rtabmap::Rtabmap::detectMoreLoopClosures </td>
|
|
<td>(</td>
|
|
<td class="paramtype">float </td>
|
|
<td class="paramname"><em>clusterRadiusMax</em> = <code>0.5f</code>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">float </td>
|
|
<td class="paramname"><em>clusterAngle</em> = <code>M_PI/6.0f</code>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"><em>iterations</em> = <code>1</code>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">bool </td>
|
|
<td class="paramname"><em>intraSession</em> = <code>true</code>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">bool </td>
|
|
<td class="paramname"><em>interSession</em> = <code>true</code>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="classrtabmap_1_1ProgressState.html">ProgressState</a> * </td>
|
|
<td class="paramname"><em>state</em> = <code>0</code>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">float </td>
|
|
<td class="paramname"><em>clusterRadiusMin</em> = <code>0.0f</code>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"><em>toFromMapId</em> = <code>-1</code> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Post-processing: searches for additional loop closures over the existing graph. </p>
|
|
<p>Clusters nearby optimized poses and runs registration between candidates that are not yet linked. New links are added to <a class="el" href="classrtabmap_1_1Memory.html">Memory</a> and the graph is re-optimized.</p>
|
|
<dl class="section note"><dt>Note</dt><dd>The registration approach used here is the one configured in <a class="el" href="classrtabmap_1_1Memory.html">Memory</a> via <a class="el" href="classrtabmap_1_1Parameters.html#abb01f566041dff1ca1ff47b4a6716b48">Parameters::kRegStrategy()</a> (0=Vis, 1=Icp, 2=VisIcp), so the quality and sensor requirements of this pass mirror the live loop-closure pipeline.</dd>
|
|
<dd>
|
|
Candidate cluster pairs whose ids differ by less than <a class="el" href="classrtabmap_1_1Parameters.html#a46dc1a24b02bb00014262f7f4d818a49">Parameters::kMemSTMSize()</a>, or that are already reachable from each other within that many graph hops, are filtered out. This prevents trivial "loop closures" between temporally or topologically adjacent nodes.</dd></dl>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">clusterRadiusMax</td><td>Maximum metric distance (m) between two candidate nodes. </td></tr>
|
|
<tr><td class="paramname">clusterAngle</td><td>Maximum angular distance (rad) between two candidate nodes. </td></tr>
|
|
<tr><td class="paramname">iterations</td><td>Number of refinement passes. </td></tr>
|
|
<tr><td class="paramname">intraSession</td><td>Include loop closures within the same map session. </td></tr>
|
|
<tr><td class="paramname">interSession</td><td>Include loop closures between different map sessions. </td></tr>
|
|
<tr><td class="paramname">state</td><td>Optional progress sink; cancellation requests are honored. </td></tr>
|
|
<tr><td class="paramname">clusterRadiusMin</td><td>Minimum metric distance (m); pairs closer than this are considered already linked through neighbor links. </td></tr>
|
|
<tr><td class="paramname">toFromMapId</td><td>If >=0, restrict candidate pairs to nodes belonging to this map id. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>Number of loop closures added, or -1 on error (e.g. not in RGB-D mode, no optimizer iterations). </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ab1044f290653749990018ca5722f00c7" name="ab1044f290653749990018ca5722f00c7"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ab1044f290653749990018ca5722f00c7">◆ </a></span>globalBundleAdjustment()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">bool rtabmap::Rtabmap::globalBundleAdjustment </td>
|
|
<td>(</td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"><em>optimizerType</em> = <code>1</code>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">bool </td>
|
|
<td class="paramname"><em>rematchFeatures</em> = <code>true</code>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"><em>iterations</em> = <code>0</code>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">float </td>
|
|
<td class="paramname"><em>pixelVariance</em> = <code>0.0f</code> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Runs a global bundle adjustment over the optimized graph. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">optimizerType</td><td>Backend optimizer (e.g. 1=g2o); availability depends on what RTAB-Map was built with. </td></tr>
|
|
<tr><td class="paramname">rematchFeatures</td><td>If true, re-match visual features between connected nodes before BA (otherwise reuse existing word-id correspondences). </td></tr>
|
|
<tr><td class="paramname">iterations</td><td>Solver iterations (0 falls back to <a class="el" href="classrtabmap_1_1Parameters.html#a8be61aae74f02931c8c224d98629dfc1">Parameters::kOptimizerIterations()</a>). </td></tr>
|
|
<tr><td class="paramname">pixelVariance</td><td>Pixel reprojection variance used by the cost (0 falls back to <a class="el" href="classrtabmap_1_1Parameters.html#af8ad0ad86c152e736820805aad2203c7">Parameters::kOptimizerPixelVariance()</a>). </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>True if BA was run and improved poses were stored. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ac7de2278aa53a315a63bec05c1f0a15f" name="ac7de2278aa53a315a63bec05c1f0a15f"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ac7de2278aa53a315a63bec05c1f0a15f">◆ </a></span>cleanupLocalGrids()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int rtabmap::Rtabmap::cleanupLocalGrids </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const std::map< int, <a class="el" href="classrtabmap_1_1Transform.html">Transform</a> > & </td>
|
|
<td class="paramname"><em>mapPoses</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const cv::Mat & </td>
|
|
<td class="paramname"><em>map</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">float </td>
|
|
<td class="paramname"><em>xMin</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">float </td>
|
|
<td class="paramname"><em>yMin</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">float </td>
|
|
<td class="paramname"><em>cellSize</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"><em>cropRadius</em> = <code>1</code>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">bool </td>
|
|
<td class="paramname"><em>filterScans</em> = <code>false</code> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Filters spurious obstacles from every node's local grid using a reference 2D map. </p>
|
|
<p>Thin wrapper around <a class="el" href="classrtabmap_1_1Memory.html#a6e63312ada575016b583a4252dc0a70c">Memory::cleanupLocalGrids()</a>; see that method for the exact filtering rule and the meaning of <code>cropRadius</code> and <code>filterScans</code>.</p>
|
|
<dl class="section return"><dt>Returns</dt><dd>Number of (node, grid or scan) modifications, or -1 on error. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a6650c241bd6a89f66718ce7a227dfe10" name="a6650c241bd6a89f66718ce7a227dfe10"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a6650c241bd6a89f66718ce7a227dfe10">◆ </a></span>refineLinks()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int rtabmap::Rtabmap::refineLinks </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Re-runs registration on every link of the current graph and updates the ones that converge. </p>
|
|
<p>Useful after parameter changes to refresh stored transforms.</p>
|
|
<dl class="section note"><dt>Note</dt><dd>The registration approach is the one configured in <a class="el" href="classrtabmap_1_1Memory.html">Memory</a> via <a class="el" href="classrtabmap_1_1Parameters.html#abb01f566041dff1ca1ff47b4a6716b48">Parameters::kRegStrategy()</a> (0=Vis, 1=Icp, 2=VisIcp). For each link, the link's existing relative transform (the constraint produced by the current optimized local graph) is passed as the initial guess to <a class="el" href="classrtabmap_1_1Memory.html#a4ae0287262c04905baab2d6f94448486">Memory::computeTransform()</a>, so links already close to convergence are refined locally rather than re-estimated from scratch.</dd></dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>Number of links refined, or -1 if not in RGB-D mode. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="aef03c0d6ee1ef5646ba11be5dbe9faa5" name="aef03c0d6ee1ef5646ba11be5dbe9faa5"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#aef03c0d6ee1ef5646ba11be5dbe9faa5">◆ </a></span>addLink()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">bool rtabmap::Rtabmap::addLink </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="classrtabmap_1_1Link.html">Link</a> & </td>
|
|
<td class="paramname"><em>link</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Adds an external link to the map. </p>
|
|
<p>The link's "from" and "to" endpoints must exist in memory (incremental mode) or in the optimized poses (localization mode). RGB-D mode only.</p>
|
|
<dl class="section return"><dt>Returns</dt><dd>True if the link was added. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a0d2caf505525f635bda914e73aa59232" name="a0d2caf505525f635bda914e73aa59232"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a0d2caf505525f635bda914e73aa59232">◆ </a></span>addNodesToRepublish()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void rtabmap::Rtabmap::addNodesToRepublish </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const std::vector< int > & </td>
|
|
<td class="paramname"><em>ids</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Marks node ids whose data should be re-emitted on the next <a class="el" href="classrtabmap_1_1Rtabmap.html#ad7f085b6ae0fd3c7077c500c028fd5c3">process()</a>. </p>
|
|
<p>The requested signatures are attached to the <a class="el" href="classrtabmap_1_1Statistics.html">Statistics</a> object produced by the next <a class="el" href="classrtabmap_1_1Rtabmap.html#ad7f085b6ae0fd3c7077c500c028fd5c3">process()</a> call (via the same mechanism as the regular "last signature
|
|
data"), so consumers reading <a class="el" href="classrtabmap_1_1Rtabmap.html#a5d18002c7eb7cee234471686413d201c">getStatistics()</a> pick them up alongside the normal output. Up to <a class="el" href="classrtabmap_1_1Parameters.html#aebca6ea8c99890a56702c65a972483dc">Parameters::kRtabmapMaxRepublished()</a> ids are emitted per iteration; any leftover ids stay queued for subsequent iterations until they are republished or fall out of the current graph.</p>
|
|
<p>Pass an empty vector to clear the request set. Requires <a class="el" href="classrtabmap_1_1Parameters.html#aebca6ea8c99890a56702c65a972483dc">Parameters::kRtabmapMaxRepublished()</a> > 0 and <a class="el" href="classrtabmap_1_1Parameters.html#a1476c605d078b36f19b41617159fcc05">Parameters::kRtabmapPublishLastSignature()</a> = true. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a4d351e3f5ef809460afbb5a7702a500d" name="a4d351e3f5ef809460afbb5a7702a500d"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a4d351e3f5ef809460afbb5a7702a500d">◆ </a></span>setDummyDictionary()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void rtabmap::Rtabmap::setDummyDictionary </td>
|
|
<td>(</td>
|
|
<td class="paramtype">bool </td>
|
|
<td class="paramname"><em>enabled</em> = <code>true</code></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Loads the visual word dictionary as ids only, without descriptors. </p>
|
|
<p>With a dummy dictionary, <a class="el" href="classrtabmap_1_1Rtabmap.html#a711c479925db2c9f8201aacffe70281b">init()</a> populates <a class="el" href="classrtabmap_1_1VWDictionary.html">VWDictionary</a> with placeholder <a class="el" href="classrtabmap_1_1VisualWord.html">VisualWord</a> objects carrying an empty descriptor, and the dictionary update (FLANN index construction) is skipped. This makes opening a large database much faster and lighter in RAM when the word descriptors are not needed, e.g. to inspect or post-process an existing map rather than to localize in it.</p>
|
|
<p>The dummy dictionary is silently disabled if the database has no words, or if the dictionary has to be rebuilt from the nodes because it was not saved properly.</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">enabled</td><td>True to load ids only, false to load the full dictionary (default).</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section note"><dt>Note</dt><dd>Must be called before <a class="el" href="classrtabmap_1_1Rtabmap.html#a711c479925db2c9f8201aacffe70281b">init()</a>; an error is logged and the call ignored once the memory exists. </dd></dl>
|
|
<dl class="section warning"><dt>Warning</dt><dd>Incompatible with mapping: adding new nodes asserts in <code>Memory::createSignature()</code>. Loop closure detection also cannot match new observations against a descriptor-less dictionary.</dd></dl>
|
|
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classrtabmap_1_1Memory.html#a655f123daec9e4e50e322db9f3bbd6db" title="Enables a dummy visual word dictionary (no descriptors kept, word ids only).">Memory::setDummyDictionary()</a> </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="afe4aa4f9a67ba85b60c7dfda86d0131b" name="afe4aa4f9a67ba85b60c7dfda86d0131b"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#afe4aa4f9a67ba85b60c7dfda86d0131b">◆ </a></span>getPathStatus()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int rtabmap::Rtabmap::getPathStatus </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<dl class="section return"><dt>Returns</dt><dd>Current path status: -1 = failed, 0 = idle / executing, 1 = success. </dd></dl>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="Rtabmap_8h_source.html#l00776">776</a> of file <a class="el" href="Rtabmap_8h_source.html">Rtabmap.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a589cd696bffe53a5e00898631e7d9103" name="a589cd696bffe53a5e00898631e7d9103"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a589cd696bffe53a5e00898631e7d9103">◆ </a></span>clearPath()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void rtabmap::Rtabmap::clearPath </td>
|
|
<td>(</td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"><em>status</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Clears the current path and sets its terminal status. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">status</td><td>-1 = failed, 0 = idle / executing, 1 = success. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ab797f7f5bb73a507ba4d4672cd5476df" name="ab797f7f5bb73a507ba4d4672cd5476df"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ab797f7f5bb73a507ba4d4672cd5476df">◆ </a></span>computePath() <span class="overload">[1/2]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">bool rtabmap::Rtabmap::computePath </td>
|
|
<td>(</td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"><em>targetNode</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">bool </td>
|
|
<td class="paramname"><em>global</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Plans a path from the current location to node <code>targetNode</code>. </p>
|
|
<p>RGB-D mode only (requires <a class="el" href="classrtabmap_1_1Parameters.html#a660983e23247cd39034f2ea07cfcd54b">Parameters::kRGBDEnabled()</a> = true).</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">targetNode</td><td>Destination node id (positive) or landmark id (negative). </td></tr>
|
|
<tr><td class="paramname">global</td><td>If true, also search nodes in LTM; otherwise only the current optimized map. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>True if a path was computed; the result is available via <a class="el" href="classrtabmap_1_1Rtabmap.html#a5fe89ac87283a92258d27f42eb7b13f1">getPath()</a>.</dd></dl>
|
|
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classrtabmap_1_1Parameters.html#a660983e23247cd39034f2ea07cfcd54b" title="Key of parameter RGBD/Enabled : "Activate metric SLAM. If set to false, classic RTAB-Map loop closure...">Parameters::kRGBDEnabled()</a> </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a14d5c84b61386e95071e90aba406ff49" name="a14d5c84b61386e95071e90aba406ff49"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a14d5c84b61386e95071e90aba406ff49">◆ </a></span>computePath() <span class="overload">[2/2]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">bool rtabmap::Rtabmap::computePath </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="classrtabmap_1_1Transform.html">Transform</a> & </td>
|
|
<td class="paramname"><em>targetPose</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">float </td>
|
|
<td class="paramname"><em>tolerance</em> = <code>-1.0f</code> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Plans a path in the current optimized map toward a metric goal pose. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">targetPose</td><td>Goal pose in the map frame. </td></tr>
|
|
<tr><td class="paramname">tolerance</td><td>Goal-acceptance tolerance (meters). A negative value falls back to <a class="el" href="classrtabmap_1_1Parameters.html#adaa87cec765f9674a12382392a60a4fe">Parameters::kRGBDLocalRadius()</a>; 0 means infinite tolerance. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>True if a path was computed. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a5fe89ac87283a92258d27f42eb7b13f1" name="a5fe89ac87283a92258d27f42eb7b13f1"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a5fe89ac87283a92258d27f42eb7b13f1">◆ </a></span>getPath()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">const std::vector< std::pair< int, <a class="el" href="classrtabmap_1_1Transform.html">Transform</a> > > & rtabmap::Rtabmap::getPath </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<dl class="section return"><dt>Returns</dt><dd>The currently planned path as a sequence of (node id, pose) waypoints. </dd></dl>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="Rtabmap_8h_source.html#l00805">805</a> of file <a class="el" href="Rtabmap_8h_source.html">Rtabmap.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="af81fe33ef45e1ad1838bc97d6a73a8be" name="af81fe33ef45e1ad1838bc97d6a73a8be"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#af81fe33ef45e1ad1838bc97d6a73a8be">◆ </a></span>getPathNextPoses()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">std::vector< std::pair< int, <a class="el" href="classrtabmap_1_1Transform.html">Transform</a> > > rtabmap::Rtabmap::getPathNextPoses </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<dl class="section return"><dt>Returns</dt><dd>Upcoming waypoints (from the current path index onward). </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a45addb0848702b39c67c2394dd62f739" name="a45addb0848702b39c67c2394dd62f739"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a45addb0848702b39c67c2394dd62f739">◆ </a></span>getPathNextNodes()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">std::vector< int > rtabmap::Rtabmap::getPathNextNodes </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<dl class="section return"><dt>Returns</dt><dd>Upcoming node ids (from the current path index onward). </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a5f886101463229fcd79bf3dd6418aa5c" name="a5f886101463229fcd79bf3dd6418aa5c"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a5f886101463229fcd79bf3dd6418aa5c">◆ </a></span>getPathCurrentGoalId()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int rtabmap::Rtabmap::getPathCurrentGoalId </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<dl class="section return"><dt>Returns</dt><dd>Id of the current intermediate path goal (the node currently being chased). </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a94eecd89994fc02a913b1eb087d85c84" name="a94eecd89994fc02a913b1eb087d85c84"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a94eecd89994fc02a913b1eb087d85c84">◆ </a></span>getPathCurrentIndex()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">unsigned int rtabmap::Rtabmap::getPathCurrentIndex </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<dl class="section return"><dt>Returns</dt><dd>Index of the current waypoint in <a class="el" href="classrtabmap_1_1Rtabmap.html#a5fe89ac87283a92258d27f42eb7b13f1">getPath()</a>. </dd></dl>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="Rtabmap_8h_source.html#l00813">813</a> of file <a class="el" href="Rtabmap_8h_source.html">Rtabmap.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a781713c190497d5f25d7e12112ae4345" name="a781713c190497d5f25d7e12112ae4345"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a781713c190497d5f25d7e12112ae4345">◆ </a></span>getPathCurrentGoalIndex()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">unsigned int rtabmap::Rtabmap::getPathCurrentGoalIndex </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<dl class="section return"><dt>Returns</dt><dd>Index of the current intermediate goal in <a class="el" href="classrtabmap_1_1Rtabmap.html#a5fe89ac87283a92258d27f42eb7b13f1">getPath()</a>. </dd></dl>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="Rtabmap_8h_source.html#l00815">815</a> of file <a class="el" href="Rtabmap_8h_source.html">Rtabmap.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="aedf5dce175ee325822ab7b7772c8d4f5" name="aedf5dce175ee325822ab7b7772c8d4f5"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#aedf5dce175ee325822ab7b7772c8d4f5">◆ </a></span>getPathTransformToGoal()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">const <a class="el" href="classrtabmap_1_1Transform.html">Transform</a> & rtabmap::Rtabmap::getPathTransformToGoal </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classrtabmap_1_1Transform.html" title="Represents a 3D rigid body transformation (rotation + translation).">Transform</a> from the final waypoint pose to the requested goal pose. </dd></dl>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="Rtabmap_8h_source.html#l00817">817</a> of file <a class="el" href="Rtabmap_8h_source.html">Rtabmap.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a8400ccecd090cb438d16178930fe0872" name="a8400ccecd090cb438d16178930fe0872"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a8400ccecd090cb438d16178930fe0872">◆ </a></span>getForwardWMPoses()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">std::map< int, <a class="el" href="classrtabmap_1_1Transform.html">Transform</a> > rtabmap::Rtabmap::getForwardWMPoses </td>
|
|
<td>(</td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"><em>fromId</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"><em>maxNearestNeighbors</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">float </td>
|
|
<td class="paramname"><em>radius</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"><em>maxDiffID</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Returns optimized poses of WM nodes located in front of <code>fromId</code>. </p>
|
|
<p>Candidates are first gathered around <code>fromId</code>, then STM nodes are excluded, the survivors are cropped to a forward-facing box of width <code>radius</code> (1 m behind, <code>radius</code> ahead, +/-<code>radius</code> laterally), and a KdTree radius search keeps the <code>maxNearestNeighbors</code> closest poses in that box.</p>
|
|
<dl class="section note"><dt>Note</dt><dd>Mapping vs. localization mode differs only in how the initial candidate set is built:<ul>
|
|
<li>In <b>mapping mode</b> (incremental), candidates are produced by a graph-radius walk from <code>fromId:</code> nodes reachable within <code>maxDiffID</code> graph hops AND within <code>radius</code> meters in the optimized poses.</li>
|
|
<li>In <b>localization mode</b>, the graph-hop restriction is ignored: every optimized pose within <code>radius</code> meters of <code>fromId</code> is considered. The forward-box crop and KdTree radius search that follow are identical in both modes.</li>
|
|
</ul>
|
|
</dd></dl>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">fromId</td><td>Reference node (must be in <a class="el" href="classrtabmap_1_1Memory.html">Memory</a> and <a class="el" href="classrtabmap_1_1Rtabmap.html#aebe0bf9364ff8952d041f57c6a1c1d57">getLocalOptimizedPoses()</a>). </td></tr>
|
|
<tr><td class="paramname">maxNearestNeighbors</td><td>Cap on the number of nodes returned. </td></tr>
|
|
<tr><td class="paramname">radius</td><td>Maximum metric distance from <code>fromId</code> (meters). </td></tr>
|
|
<tr><td class="paramname">maxDiffID</td><td>Maximum graph depth from <code>fromId</code> in mapping mode (0 = unlimited). Ignored in localization mode. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ad314edf995555480a2db1aceb7fd2ee7" name="ad314edf995555480a2db1aceb7fd2ee7"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ad314edf995555480a2db1aceb7fd2ee7">◆ </a></span>getPaths()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">std::map< int, std::map< int, <a class="el" href="classrtabmap_1_1Transform.html">Transform</a> > > rtabmap::Rtabmap::getPaths </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const std::map< int, <a class="el" href="classrtabmap_1_1Transform.html">Transform</a> > & </td>
|
|
<td class="paramname"><em>poses</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="classrtabmap_1_1Transform.html">Transform</a> & </td>
|
|
<td class="paramname"><em>target</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"><em>maxGraphDepth</em> = <code>0</code> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Segments a set of optimized poses into paths connected by neighbor links. </p>
|
|
<p>Designed to be called on the result of a radius search around <code>target</code> (a set of <code>poses</code> already constrained to be metrically close to the goal). Within that radius, the method partitions the <code>poses</code> into one or more "paths" where each path is a connected component reachable from its starting node using <b>only neighbor (sequential) links</b> – loop-closure links, landmark links and intermediate nodes are not used to traverse between members. Paths are produced one at a time, each starting from the still-unclaimed pose nearest to <code>target</code>; a candidate is added to the current path only if it has at least one neighbor link to a node already in the path.</p>
|
|
<p>Used internally by proximity detection by space (see <a class="el" href="classrtabmap_1_1Parameters.html#a0bf742f8f518f6c63d1bb78a0f009515">Parameters::kRGBDProximityBySpace()</a>) in two independent stages, each iterating over the segmented paths:</p><ul>
|
|
<li><b>One-to-one</b> (visual registration): runs registration between the current node and at most one node per neighbor-connected path, avoiding redundant attempts against nearby members of the same local trajectory.</li>
|
|
<li><b>One-to-many</b> (scan matching, enabled when <a class="el" href="classrtabmap_1_1Parameters.html#a1a6c82e3762a844dab0cc9db220adb8c">Parameters::kRGBDProximityPathMaxNeighbors()</a> > 0): on each path, neighboring nodes are assembled around the nearest pose on the path (up to the configured count, walked forward and backward) and their laser scans are merged for an ICP registration against the current scan. The neighbor-link-only structure of each path is what makes this assembly geometrically consistent.</li>
|
|
</ul>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">poses</td><td>Candidate nodes with their optimized poses (typically pre-filtered to a radius around <code>target</code>). </td></tr>
|
|
<tr><td class="paramname">target</td><td>Reference pose used to order paths: each path's starting node is the still-unclaimed pose closest to <code>target</code>. </td></tr>
|
|
<tr><td class="paramname">maxGraphDepth</td><td>Maximum graph depth traversed from the starting node when gathering candidates for a path (0 = unlimited). </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>Map from the starting node id of each path to its (node id -> pose) chain. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="aad648f09bb04b193907528987ccda413" name="aad648f09bb04b193907528987ccda413"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#aad648f09bb04b193907528987ccda413">◆ </a></span>adjustLikelihood()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void rtabmap::Rtabmap::adjustLikelihood </td>
|
|
<td>(</td>
|
|
<td class="paramtype">std::map< int, float > & </td>
|
|
<td class="paramname"><em>likelihood</em></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Applies the standard RTAB-Map likelihood adjustment. </p>
|
|
<p>Normalizes raw likelihoods using mean and standard deviation across non-null values. Real-place entries with <code>value</code> <= <code>mean</code> + <code>stdDev</code> are clamped to <code>1.0</code>; only entries above that threshold are scaled. The virtual place (the first key in <code>likelihood</code>, representing the "new place" hypothesis) is then set so that its likelihood reflects how peaked the real distribution is.</p>
|
|
<p>The exact formulas are selected by <a class="el" href="classrtabmap_1_1Parameters.html#aef900d9efe01dcbfbe5348b131d9ff46">Parameters::kRtabmapVirtualPlaceLikelihoodRatio()</a> (default 0, Angeli PhD formulation):</p>
|
|
<ul>
|
|
<li><b>Ratio = 0</b> (mean / std-dev formulation):<ul>
|
|
<li>Real place above threshold: <code></code>(value - (stdDev - epsilon)) / mean</li>
|
|
<li>Virtual place: <code>mean</code> / stdDev + 1 (when <code>stdDev</code> is non-trivial and a maximum exists; otherwise 2). The virtual place "wins" when the real-place distribution is flat (small <code>stdDev</code> relative to <code>mean</code>).</li>
|
|
</ul>
|
|
</li>
|
|
<li><b>Ratio != 0</b> (z-score formulation):<ul>
|
|
<li>Real place above threshold: <code></code>(value - mean) / stdDev (i.e. the z-score).</li>
|
|
<li>Virtual place: <code>stdDev</code> / (max - mean) + 1 (when <code>max</code> > <code>mean</code>; otherwise 2). The virtual place "wins" when no real candidate stands out far above the mean.</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
<p>In both formulations a low virtual-place likelihood favors a real-place loop closure on the next Bayes update; a high one favors the "new place" hypothesis.</p>
|
|
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classrtabmap_1_1Parameters.html#aef900d9efe01dcbfbe5348b131d9ff46" title="Key of parameter Rtabmap/VirtualPlaceLikelihoodRatio : "Likelihood ratio for virtual place (for no lo...">Parameters::kRtabmapVirtualPlaceLikelihoodRatio()</a> </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<hr/>The documentation for this class was generated from the following file:<ul>
|
|
<li>corelib/include/rtabmap/core/<a class="el" href="Rtabmap_8h_source.html">Rtabmap.h</a></li>
|
|
</ul>
|
|
</div><!-- contents -->
|
|
</div><!-- doc-content -->
|
|
<!-- start footer part -->
|
|
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
|
<ul>
|
|
<li class="navelem"><a class="el" href="namespacertabmap.html">rtabmap</a></li><li class="navelem"><a class="el" href="classrtabmap_1_1Rtabmap.html">Rtabmap</a></li>
|
|
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
|
|
</ul>
|
|
</div>
|
|
</body>
|
|
</html>
|