Files
rtabmap/preview/pr-1492/api/latest/classrtabmap_1_1Registration.html
T

606 lines
40 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::Registration 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="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" />
<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>
</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">&#160;0.23.10</span>
</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&amp;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&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- 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 id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespacertabmap.html">rtabmap</a></li><li class="navelem"><a class="el" href="classrtabmap_1_1Registration.html">Registration</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pub-static-attribs">Static Public Attributes</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="classrtabmap_1_1Registration-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">rtabmap::Registration Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div></div>
</div><!--header-->
<div class="contents">
<p>Abstract base for registering two observations (visual, ICP, or both).
<a href="classrtabmap_1_1Registration.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="Registration_8h_source.html">Registration.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for rtabmap::Registration:</div>
<div class="dyncontent">
<div class="center"><img src="classrtabmap_1_1Registration__inherit__graph.png" border="0" usemap="#artabmap_1_1Registration_inherit__map" alt="Inheritance graph"/></div>
<map name="artabmap_1_1Registration_inherit__map" id="artabmap_1_1Registration_inherit__map">
<area shape="rect" title="Abstract base for registering two observations (visual, ICP, or both)." alt="" coords="119,5,283,31"/>
<area shape="rect" href="classrtabmap_1_1RegistrationIcp.html" title=" " alt="" coords="5,79,188,104"/>
<area shape="poly" title=" " alt="" coords="174,41,115,81,112,76,171,36"/>
<area shape="rect" href="classrtabmap_1_1RegistrationVis.html" title="Visual registration between two signatures using features and geometry." alt="" coords="213,79,397,104"/>
<area shape="poly" title=" " alt="" coords="230,36,289,76,286,81,227,41"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<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:ae693713cd8b7ece4b147eae99880b849" id="r_ae693713cd8b7ece4b147eae99880b849"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Registration.html#ae693713cd8b7ece4b147eae99880b849">Type</a> { <b>kTypeUndef</b> = -1
, <b>kTypeVis</b> = 0
, <b>kTypeIcp</b> = 1
, <b>kTypeVisIcp</b> = 2
}</td></tr>
<tr class="memdesc:ae693713cd8b7ece4b147eae99880b849"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classrtabmap_1_1Registration.html" title="Abstract base for registering two observations (visual, ICP, or both).">Registration</a> strategy selected by <b>Reg/Strategy</b>. <a href="classrtabmap_1_1Registration.html#ae693713cd8b7ece4b147eae99880b849">More...</a><br /></td></tr>
<tr class="separator:ae693713cd8b7ece4b147eae99880b849"><td class="memSeparator" colspan="2">&#160;</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:a0f409a8f0973667ef1687fe102bbf930" id="r_a0f409a8f0973667ef1687fe102bbf930"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Registration.html#a0f409a8f0973667ef1687fe102bbf930">parseParameters</a> (const ParametersMap &amp;parameters)</td></tr>
<tr class="memdesc:a0f409a8f0973667ef1687fe102bbf930"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parses <b>Reg/RepeatOnce</b>, <b>Reg/Force3DoF</b> and forwards to child_ if set. <br /></td></tr>
<tr class="separator:a0f409a8f0973667ef1687fe102bbf930"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae10ae7b6dbf4d5396db66600ebe18228" id="r_ae10ae7b6dbf4d5396db66600ebe18228"><td class="memItemLeft" align="right" valign="top"><a id="ae10ae7b6dbf4d5396db66600ebe18228" name="ae10ae7b6dbf4d5396db66600ebe18228"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>isImageRequired</b> () const</td></tr>
<tr class="memdesc:ae10ae7b6dbf4d5396db66600ebe18228"><td class="mdescLeft">&#160;</td><td class="mdescRight">True if images are needed (parent or child). <br /></td></tr>
<tr class="separator:ae10ae7b6dbf4d5396db66600ebe18228"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa0748ad5a576d0919ef0d360137e5ea7" id="r_aa0748ad5a576d0919ef0d360137e5ea7"><td class="memItemLeft" align="right" valign="top"><a id="aa0748ad5a576d0919ef0d360137e5ea7" name="aa0748ad5a576d0919ef0d360137e5ea7"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>isScanRequired</b> () const</td></tr>
<tr class="memdesc:aa0748ad5a576d0919ef0d360137e5ea7"><td class="mdescLeft">&#160;</td><td class="mdescRight">True if laser scans are needed (parent or child). <br /></td></tr>
<tr class="separator:aa0748ad5a576d0919ef0d360137e5ea7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3cd064c74588fd13cce178596e188b5d" id="r_a3cd064c74588fd13cce178596e188b5d"><td class="memItemLeft" align="right" valign="top"><a id="a3cd064c74588fd13cce178596e188b5d" name="a3cd064c74588fd13cce178596e188b5d"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>isUserDataRequired</b> () const</td></tr>
<tr class="memdesc:a3cd064c74588fd13cce178596e188b5d"><td class="mdescLeft">&#160;</td><td class="mdescRight">True if user data is needed (parent or child). <br /></td></tr>
<tr class="separator:a3cd064c74588fd13cce178596e188b5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab000f795ec498882585a634c2dafec05" id="r_ab000f795ec498882585a634c2dafec05"><td class="memItemLeft" align="right" valign="top"><a id="ab000f795ec498882585a634c2dafec05" name="ab000f795ec498882585a634c2dafec05"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>canUseGuess</b> () const</td></tr>
<tr class="memdesc:ab000f795ec498882585a634c2dafec05"><td class="mdescLeft">&#160;</td><td class="mdescRight">True if the strategy can refine an initial guess (parent or child). <br /></td></tr>
<tr class="separator:ab000f795ec498882585a634c2dafec05"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abc02df4842af900fbb5da75b8e5318e0" id="r_abc02df4842af900fbb5da75b8e5318e0"><td class="memItemLeft" align="right" valign="top"><a id="abc02df4842af900fbb5da75b8e5318e0" name="abc02df4842af900fbb5da75b8e5318e0"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>getMinVisualCorrespondences</b> () const</td></tr>
<tr class="memdesc:abc02df4842af900fbb5da75b8e5318e0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Minimum visual inliers required (max of parent and child thresholds). <br /></td></tr>
<tr class="separator:abc02df4842af900fbb5da75b8e5318e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac4baf87f079ce52df845805b84cad6c9" id="r_ac4baf87f079ce52df845805b84cad6c9"><td class="memItemLeft" align="right" valign="top"><a id="ac4baf87f079ce52df845805b84cad6c9" name="ac4baf87f079ce52df845805b84cad6c9"></a>
float&#160;</td><td class="memItemRight" valign="bottom"><b>getMinGeometryCorrespondencesRatio</b> () const</td></tr>
<tr class="memdesc:ac4baf87f079ce52df845805b84cad6c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Minimum geometry inlier ratio required (max of parent and child thresholds). <br /></td></tr>
<tr class="separator:ac4baf87f079ce52df845805b84cad6c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7a9163259eaebff421953e194a623864" id="r_a7a9163259eaebff421953e194a623864"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Registration.html#a7a9163259eaebff421953e194a623864">repeatOnce</a> () const</td></tr>
<tr class="separator:a7a9163259eaebff421953e194a623864"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abb255bdab60a262f9cfc5d868e50cc9c" id="r_abb255bdab60a262f9cfc5d868e50cc9c"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Registration.html#abb255bdab60a262f9cfc5d868e50cc9c">force3DoF</a> () const</td></tr>
<tr class="separator:abb255bdab60a262f9cfc5d868e50cc9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac105402feeb2ec6551235296604145aa" id="r_ac105402feeb2ec6551235296604145aa"><td class="memItemLeft" align="right" valign="top"><a id="ac105402feeb2ec6551235296604145aa" name="ac105402feeb2ec6551235296604145aa"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>setChildRegistration</b> (<a class="el" href="classrtabmap_1_1Registration.html">Registration</a> *child)</td></tr>
<tr class="memdesc:ac105402feeb2ec6551235296604145aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Replaces child_; takes ownership of <code>child</code>. <br /></td></tr>
<tr class="separator:ac105402feeb2ec6551235296604145aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa6b81a6f4137138a1b49510cc3f97679" id="r_aa6b81a6f4137138a1b49510cc3f97679"><td class="memItemLeft" align="right" valign="top"><a id="aa6b81a6f4137138a1b49510cc3f97679" name="aa6b81a6f4137138a1b49510cc3f97679"></a>
<a class="el" href="classrtabmap_1_1Transform.html">Transform</a>&#160;</td><td class="memItemRight" valign="bottom"><b>computeTransformation</b> (const <a class="el" href="classrtabmap_1_1Signature.html">Signature</a> &amp;from, const <a class="el" href="classrtabmap_1_1Signature.html">Signature</a> &amp;to, <a class="el" href="classrtabmap_1_1Transform.html">Transform</a> guess=<a class="el" href="classrtabmap_1_1Transform.html#a8ea4368f2018d751d2733038081d56a2">Transform::getIdentity</a>(), <a class="el" href="classrtabmap_1_1RegistrationInfo.html">RegistrationInfo</a> *info=0) const</td></tr>
<tr class="memdesc:aa6b81a6f4137138a1b49510cc3f97679"><td class="mdescLeft">&#160;</td><td class="mdescRight">Registers <code>from</code> to <code>to</code> using immutable signatures (copied internally). <br /></td></tr>
<tr class="separator:aa6b81a6f4137138a1b49510cc3f97679"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a42d0c93204bc4da11eb89707ea2c03c6" id="r_a42d0c93204bc4da11eb89707ea2c03c6"><td class="memItemLeft" align="right" valign="top"><a id="a42d0c93204bc4da11eb89707ea2c03c6" name="a42d0c93204bc4da11eb89707ea2c03c6"></a>
<a class="el" href="classrtabmap_1_1Transform.html">Transform</a>&#160;</td><td class="memItemRight" valign="bottom"><b>computeTransformation</b> (const <a class="el" href="classrtabmap_1_1SensorData.html">SensorData</a> &amp;from, const <a class="el" href="classrtabmap_1_1SensorData.html">SensorData</a> &amp;to, <a class="el" href="classrtabmap_1_1Transform.html">Transform</a> guess=<a class="el" href="classrtabmap_1_1Transform.html#a8ea4368f2018d751d2733038081d56a2">Transform::getIdentity</a>(), <a class="el" href="classrtabmap_1_1RegistrationInfo.html">RegistrationInfo</a> *info=0) const</td></tr>
<tr class="memdesc:a42d0c93204bc4da11eb89707ea2c03c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Registers two <a class="el" href="classrtabmap_1_1SensorData.html">SensorData</a> observations (wrapped as signatures). <br /></td></tr>
<tr class="separator:a42d0c93204bc4da11eb89707ea2c03c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a44530cd77f6d0a9657251864fb136c0d" id="r_a44530cd77f6d0a9657251864fb136c0d"><td class="memItemLeft" align="right" valign="top"><a id="a44530cd77f6d0a9657251864fb136c0d" name="a44530cd77f6d0a9657251864fb136c0d"></a>
<a class="el" href="classrtabmap_1_1Transform.html">Transform</a>&#160;</td><td class="memItemRight" valign="bottom"><b>computeTransformationMod</b> (<a class="el" href="classrtabmap_1_1Signature.html">Signature</a> &amp;from, <a class="el" href="classrtabmap_1_1Signature.html">Signature</a> &amp;to, <a class="el" href="classrtabmap_1_1Transform.html">Transform</a> guess=<a class="el" href="classrtabmap_1_1Transform.html#a8ea4368f2018d751d2733038081d56a2">Transform::getIdentity</a>(), <a class="el" href="classrtabmap_1_1RegistrationInfo.html">RegistrationInfo</a> *info=0) const</td></tr>
<tr class="memdesc:a44530cd77f6d0a9657251864fb136c0d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Registers <code>from</code> to <code>to</code>; signatures may be modified by the implementation. <br /></td></tr>
<tr class="separator:a44530cd77f6d0a9657251864fb136c0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-methods" name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a516e8d64cdb3e7a743a3aa40ab026def" id="r_a516e8d64cdb3e7a743a3aa40ab026def"><td class="memItemLeft" align="right" valign="top"><a id="a516e8d64cdb3e7a743a3aa40ab026def" name="a516e8d64cdb3e7a743a3aa40ab026def"></a>
static <a class="el" href="classrtabmap_1_1Registration.html">Registration</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>create</b> (const ParametersMap &amp;parameters)</td></tr>
<tr class="memdesc:a516e8d64cdb3e7a743a3aa40ab026def"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a registration from <b>Reg/Strategy</b> in <code>parameters</code>. Caller owns the pointer. <br /></td></tr>
<tr class="separator:a516e8d64cdb3e7a743a3aa40ab026def"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1e3493a850551c98f9e814fed74400e6" id="r_a1e3493a850551c98f9e814fed74400e6"><td class="memItemLeft" align="right" valign="top"><a id="a1e3493a850551c98f9e814fed74400e6" name="a1e3493a850551c98f9e814fed74400e6"></a>
static <a class="el" href="classrtabmap_1_1Registration.html">Registration</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>create</b> (<a class="el" href="classrtabmap_1_1Registration.html#ae693713cd8b7ece4b147eae99880b849">Type</a> &amp;type, const ParametersMap &amp;parameters=ParametersMap())</td></tr>
<tr class="memdesc:a1e3493a850551c98f9e814fed74400e6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a registration of <code>type</code> (may be adjusted, e.g. to kTypeVis). Caller owns the pointer. <br /></td></tr>
<tr class="separator:a1e3493a850551c98f9e814fed74400e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-attribs" name="pub-static-attribs"></a>
Static Public Attributes</h2></td></tr>
<tr class="memitem:a7c8c2d7a65357ef9f5d60ce3f763f4b3" id="r_a7c8c2d7a65357ef9f5d60ce3f763f4b3"><td class="memItemLeft" align="right" valign="top">static double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Registration.html#a7c8c2d7a65357ef9f5d60ce3f763f4b3">COVARIANCE_LINEAR_EPSILON</a></td></tr>
<tr class="memdesc:a7c8c2d7a65357ef9f5d60ce3f763f4b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Minimum diagonal value for linear covariance (m²). <br /></td></tr>
<tr class="separator:a7c8c2d7a65357ef9f5d60ce3f763f4b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae40b7ab65642aac9f21f44887b23b97d" id="r_ae40b7ab65642aac9f21f44887b23b97d"><td class="memItemLeft" align="right" valign="top">static double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Registration.html#ae40b7ab65642aac9f21f44887b23b97d">COVARIANCE_ANGULAR_EPSILON</a></td></tr>
<tr class="memdesc:ae40b7ab65642aac9f21f44887b23b97d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Minimum diagonal value for angular covariance (rad²). <br /></td></tr>
<tr class="separator:ae40b7ab65642aac9f21f44887b23b97d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-methods" name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a7d0ff4149da7f5839308ff543932b067" id="r_a7d0ff4149da7f5839308ff543932b067"><td class="memItemLeft" align="right" valign="top"><a id="a7d0ff4149da7f5839308ff543932b067" name="a7d0ff4149da7f5839308ff543932b067"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>Registration</b> (const ParametersMap &amp;parameters=ParametersMap(), <a class="el" href="classrtabmap_1_1Registration.html">Registration</a> *child=0)</td></tr>
<tr class="memdesc:a7d0ff4149da7f5839308ff543932b067"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>child</code> is owned and deleted in the destructor. <br /></td></tr>
<tr class="separator:a7d0ff4149da7f5839308ff543932b067"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a21635a391a85b64bc33787179a6cd71b" id="r_a21635a391a85b64bc33787179a6cd71b"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classrtabmap_1_1Transform.html">Transform</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Registration.html#a21635a391a85b64bc33787179a6cd71b">computeTransformationImpl</a> (<a class="el" href="classrtabmap_1_1Signature.html">Signature</a> &amp;from, <a class="el" href="classrtabmap_1_1Signature.html">Signature</a> &amp;to, <a class="el" href="classrtabmap_1_1Transform.html">Transform</a> guess, <a class="el" href="classrtabmap_1_1RegistrationInfo.html">RegistrationInfo</a> &amp;info) const =0</td></tr>
<tr class="memdesc:a21635a391a85b64bc33787179a6cd71b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Strategy-specific registration. <br /></td></tr>
<tr class="separator:a21635a391a85b64bc33787179a6cd71b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8b3d47766e19c82f87e538205853f434" id="r_a8b3d47766e19c82f87e538205853f434"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Registration.html#a8b3d47766e19c82f87e538205853f434">isImageRequiredImpl</a> () const</td></tr>
<tr class="separator:a8b3d47766e19c82f87e538205853f434"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0a352c12a797bd500bf535a4e1495def" id="r_a0a352c12a797bd500bf535a4e1495def"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Registration.html#a0a352c12a797bd500bf535a4e1495def">isScanRequiredImpl</a> () const</td></tr>
<tr class="separator:a0a352c12a797bd500bf535a4e1495def"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a11eb0c058646fcea6f053a50a0b9883c" id="r_a11eb0c058646fcea6f053a50a0b9883c"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Registration.html#a11eb0c058646fcea6f053a50a0b9883c">isUserDataRequiredImpl</a> () const</td></tr>
<tr class="separator:a11eb0c058646fcea6f053a50a0b9883c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e9d0a6de869e59f353ad63cc4f5504d" id="r_a4e9d0a6de869e59f353ad63cc4f5504d"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Registration.html#a4e9d0a6de869e59f353ad63cc4f5504d">canUseGuessImpl</a> () const</td></tr>
<tr class="separator:a4e9d0a6de869e59f353ad63cc4f5504d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1cb7acf5c001dbaa7530cd77fc56a4a7" id="r_a1cb7acf5c001dbaa7530cd77fc56a4a7"><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Registration.html#a1cb7acf5c001dbaa7530cd77fc56a4a7">getMinVisualCorrespondencesImpl</a> () const</td></tr>
<tr class="separator:a1cb7acf5c001dbaa7530cd77fc56a4a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4b50ac5ddfbe06f2a8cc771f10598484" id="r_a4b50ac5ddfbe06f2a8cc771f10598484"><td class="memItemLeft" align="right" valign="top">virtual float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Registration.html#a4b50ac5ddfbe06f2a8cc771f10598484">getMinGeometryCorrespondencesRatioImpl</a> () const</td></tr>
<tr class="separator:a4b50ac5ddfbe06f2a8cc771f10598484"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Abstract base for registering two observations (visual, ICP, or both). </p>
<p>Factory <a class="el" href="classrtabmap_1_1Registration.html#a516e8d64cdb3e7a743a3aa40ab026def">create()</a> builds <a class="el" href="classrtabmap_1_1RegistrationVis.html">RegistrationVis</a>, <a class="el" href="classrtabmap_1_1RegistrationIcp.html">RegistrationIcp</a>, or RegistrationVisIcp from <b>Reg/Strategy</b> in a ParametersMap.</p>
<p><a class="el" href="classrtabmap_1_1Registration.html#aa6b81a6f4137138a1b49510cc3f97679">computeTransformation()</a> wraps signatures and delegates to <a class="el" href="classrtabmap_1_1Registration.html#a44530cd77f6d0a9657251864fb136c0d">computeTransformationMod()</a>, which calls <a class="el" href="classrtabmap_1_1Registration.html#a21635a391a85b64bc33787179a6cd71b">computeTransformationImpl()</a> on the concrete strategy, optionally chains a child_ registration (e.g. ICP after visual), applies <b>Reg/Force3DoF</b>, and may repeat once with the first result as guess when <b>Reg/RepeatOnce</b> is enabled.</p>
<p>Requirement queries (<a class="el" href="classrtabmap_1_1Registration.html#ae10ae7b6dbf4d5396db66600ebe18228">isImageRequired()</a>, <a class="el" href="classrtabmap_1_1Registration.html#aa0748ad5a576d0919ef0d360137e5ea7">isScanRequired()</a>, etc.) OR-combine with the child when the parent returns false. Minimum correspondence thresholds take the maximum between parent and child.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classrtabmap_1_1RegistrationVis.html" title="Visual registration between two signatures using features and geometry.">RegistrationVis</a> </dd>
<dd>
<a class="el" href="classrtabmap_1_1RegistrationIcp.html">RegistrationIcp</a> </dd>
<dd>
<a class="el" href="classrtabmap_1_1RegistrationInfo.html" title="Statistics and diagnostics returned by Registration.">RegistrationInfo</a> </dd></dl>
<p class="definition">Definition at line <a class="el" href="Registration_8h_source.html#l00060">60</a> of file <a class="el" href="Registration_8h_source.html">Registration.h</a>.</p>
</div><h2 class="groupheader">Member Enumeration Documentation</h2>
<a id="ae693713cd8b7ece4b147eae99880b849" name="ae693713cd8b7ece4b147eae99880b849"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae693713cd8b7ece4b147eae99880b849">&#9670;&#160;</a></span>Type</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="classrtabmap_1_1Registration.html#ae693713cd8b7ece4b147eae99880b849">rtabmap::Registration::Type</a></td>
</tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="classrtabmap_1_1Registration.html" title="Abstract base for registering two observations (visual, ICP, or both).">Registration</a> strategy selected by <b>Reg/Strategy</b>. </p>
<p class="definition">Definition at line <a class="el" href="Registration_8h_source.html#l00064">64</a> of file <a class="el" href="Registration_8h_source.html">Registration.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a0f409a8f0973667ef1687fe102bbf930" name="a0f409a8f0973667ef1687fe102bbf930"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0f409a8f0973667ef1687fe102bbf930">&#9670;&#160;</a></span>parseParameters()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual void rtabmap::Registration::parseParameters </td>
<td>(</td>
<td class="paramtype">const ParametersMap &amp;&#160;</td>
<td class="paramname"><em>parameters</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Parses <b>Reg/RepeatOnce</b>, <b>Reg/Force3DoF</b> and forwards to child_ if set. </p>
<p>Reimplemented in <a class="el" href="classrtabmap_1_1RegistrationIcp.html#abd60fffd946201723c35beebc7bfea6a">rtabmap::RegistrationIcp</a>, and <a class="el" href="classrtabmap_1_1RegistrationVis.html#a6560046940995044d7a51cb0066d420e">rtabmap::RegistrationVis</a>.</p>
</div>
</div>
<a id="a7a9163259eaebff421953e194a623864" name="a7a9163259eaebff421953e194a623864"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7a9163259eaebff421953e194a623864">&#9670;&#160;</a></span>repeatOnce()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool rtabmap::Registration::repeatOnce </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>Value of <b>Reg/RepeatOnce</b>. </dd></dl>
<p class="definition">Definition at line <a class="el" href="Registration_8h_source.html#l00102">102</a> of file <a class="el" href="Registration_8h_source.html">Registration.h</a>.</p>
</div>
</div>
<a id="abb255bdab60a262f9cfc5d868e50cc9c" name="abb255bdab60a262f9cfc5d868e50cc9c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abb255bdab60a262f9cfc5d868e50cc9c">&#9670;&#160;</a></span>force3DoF()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool rtabmap::Registration::force3DoF </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>Value of <b>Reg/Force3DoF</b>. </dd></dl>
<p class="definition">Definition at line <a class="el" href="Registration_8h_source.html#l00104">104</a> of file <a class="el" href="Registration_8h_source.html">Registration.h</a>.</p>
</div>
</div>
<a id="a21635a391a85b64bc33787179a6cd71b" name="a21635a391a85b64bc33787179a6cd71b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a21635a391a85b64bc33787179a6cd71b">&#9670;&#160;</a></span>computeTransformationImpl()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual <a class="el" href="classrtabmap_1_1Transform.html">Transform</a> rtabmap::Registration::computeTransformationImpl </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classrtabmap_1_1Signature.html">Signature</a> &amp;&#160;</td>
<td class="paramname"><em>from</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classrtabmap_1_1Signature.html">Signature</a> &amp;&#160;</td>
<td class="paramname"><em>to</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classrtabmap_1_1Transform.html">Transform</a>&#160;</td>
<td class="paramname"><em>guess</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classrtabmap_1_1RegistrationInfo.html">RegistrationInfo</a> &amp;&#160;</td>
<td class="paramname"><em>info</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Strategy-specific registration. </p>
<p>May modify <code>from</code> and <code>to</code>; a child_ registration reuses those changes. </p>
<p>Implemented in <a class="el" href="classrtabmap_1_1RegistrationIcp.html#a8a18107160cfc05cfb8a5109540d81b5">rtabmap::RegistrationIcp</a>, and <a class="el" href="classrtabmap_1_1RegistrationVis.html#aa47fd3a0599ee918e024161db330a92f">rtabmap::RegistrationVis</a>.</p>
</div>
</div>
<a id="a8b3d47766e19c82f87e538205853f434" name="a8b3d47766e19c82f87e538205853f434"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8b3d47766e19c82f87e538205853f434">&#9670;&#160;</a></span>isImageRequiredImpl()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual bool rtabmap::Registration::isImageRequiredImpl </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 class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="Registration_8h_source.html#l00144">144</a> of file <a class="el" href="Registration_8h_source.html">Registration.h</a>.</p>
</div>
</div>
<a id="a0a352c12a797bd500bf535a4e1495def" name="a0a352c12a797bd500bf535a4e1495def"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0a352c12a797bd500bf535a4e1495def">&#9670;&#160;</a></span>isScanRequiredImpl()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual bool rtabmap::Registration::isScanRequiredImpl </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 class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="Registration_8h_source.html#l00145">145</a> of file <a class="el" href="Registration_8h_source.html">Registration.h</a>.</p>
</div>
</div>
<a id="a11eb0c058646fcea6f053a50a0b9883c" name="a11eb0c058646fcea6f053a50a0b9883c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a11eb0c058646fcea6f053a50a0b9883c">&#9670;&#160;</a></span>isUserDataRequiredImpl()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual bool rtabmap::Registration::isUserDataRequiredImpl </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 class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="Registration_8h_source.html#l00146">146</a> of file <a class="el" href="Registration_8h_source.html">Registration.h</a>.</p>
</div>
</div>
<a id="a4e9d0a6de869e59f353ad63cc4f5504d" name="a4e9d0a6de869e59f353ad63cc4f5504d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4e9d0a6de869e59f353ad63cc4f5504d">&#9670;&#160;</a></span>canUseGuessImpl()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual bool rtabmap::Registration::canUseGuessImpl </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 class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="Registration_8h_source.html#l00147">147</a> of file <a class="el" href="Registration_8h_source.html">Registration.h</a>.</p>
</div>
</div>
<a id="a1cb7acf5c001dbaa7530cd77fc56a4a7" name="a1cb7acf5c001dbaa7530cd77fc56a4a7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1cb7acf5c001dbaa7530cd77fc56a4a7">&#9670;&#160;</a></span>getMinVisualCorrespondencesImpl()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual int rtabmap::Registration::getMinVisualCorrespondencesImpl </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 class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="Registration_8h_source.html#l00148">148</a> of file <a class="el" href="Registration_8h_source.html">Registration.h</a>.</p>
</div>
</div>
<a id="a4b50ac5ddfbe06f2a8cc771f10598484" name="a4b50ac5ddfbe06f2a8cc771f10598484"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4b50ac5ddfbe06f2a8cc771f10598484">&#9670;&#160;</a></span>getMinGeometryCorrespondencesRatioImpl()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual float rtabmap::Registration::getMinGeometryCorrespondencesRatioImpl </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 class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="Registration_8h_source.html#l00149">149</a> of file <a class="el" href="Registration_8h_source.html">Registration.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="a7c8c2d7a65357ef9f5d60ce3f763f4b3" name="a7c8c2d7a65357ef9f5d60ce3f763f4b3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7c8c2d7a65357ef9f5d60ce3f763f4b3">&#9670;&#160;</a></span>COVARIANCE_LINEAR_EPSILON</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">double rtabmap::Registration::COVARIANCE_LINEAR_EPSILON</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Minimum diagonal value for linear covariance (m²). </p>
<p class="definition">Definition at line <a class="el" href="Registration_8h_source.html#l00071">71</a> of file <a class="el" href="Registration_8h_source.html">Registration.h</a>.</p>
</div>
</div>
<a id="ae40b7ab65642aac9f21f44887b23b97d" name="ae40b7ab65642aac9f21f44887b23b97d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae40b7ab65642aac9f21f44887b23b97d">&#9670;&#160;</a></span>COVARIANCE_ANGULAR_EPSILON</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">double rtabmap::Registration::COVARIANCE_ANGULAR_EPSILON</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Minimum diagonal value for angular covariance (rad²). </p>
<p class="definition">Definition at line <a class="el" href="Registration_8h_source.html#l00073">73</a> of file <a class="el" href="Registration_8h_source.html">Registration.h</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>corelib/include/rtabmap/core/<a class="el" href="Registration_8h_source.html">Registration.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8
</small></address>
</body>
</html>