2026-08-06 22:56:24 +00:00
<!-- 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: corelib/include/rtabmap/core/Optimizer.h Source File</ 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" >
2026-09-20 06:51:14 +00:00
< div id = "projectname" > RTAB-Map< span id = "projectnumber" >   0.23.12</ span >
2026-08-06 22:56:24 +00:00
</ 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 >
< script type = "text/javascript" >
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$ ( document ). ready ( function () { init_codefold ( 0 ); });
/* @license-end */
</ script >
</ 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 ( 'Optimizer_8h_source.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 = "headertitle" >< div class = "title" > Optimizer.h</ div ></ div >
</ div > <!--header-->
< div class = "contents" >
< div class = "fragment" >< div class = "line" >< a id = "l00001" name = "l00001" ></ a >< span class = "lineno" > 1</ span >< span class = "comment" > /*</ span ></ div >
< div class = "line" >< a id = "l00002" name = "l00002" ></ a >< span class = "lineno" > 2</ span >< span class = "comment" > Copyright (c) 2010-2016, Mathieu Labbe - IntRoLab - Universite de Sherbrooke</ span ></ div >
< div class = "line" >< a id = "l00003" name = "l00003" ></ a >< span class = "lineno" > 3</ span >< span class = "comment" > All rights reserved.</ span ></ div >
< div class = "line" >< a id = "l00004" name = "l00004" ></ a >< span class = "lineno" > 4</ span >< span class = "comment" ></ span > </ div >
< div class = "line" >< a id = "l00005" name = "l00005" ></ a >< span class = "lineno" > 5</ span >< span class = "comment" > Redistribution and use in source and binary forms, with or without</ span ></ div >
< div class = "line" >< a id = "l00006" name = "l00006" ></ a >< span class = "lineno" > 6</ span >< span class = "comment" > modification, are permitted provided that the following conditions are met:</ span ></ div >
< div class = "line" >< a id = "l00007" name = "l00007" ></ a >< span class = "lineno" > 7</ span >< span class = "comment" > * Redistributions of source code must retain the above copyright</ span ></ div >
< div class = "line" >< a id = "l00008" name = "l00008" ></ a >< span class = "lineno" > 8</ span >< span class = "comment" > notice, this list of conditions and the following disclaimer.</ span ></ div >
< div class = "line" >< a id = "l00009" name = "l00009" ></ a >< span class = "lineno" > 9</ span >< span class = "comment" > * Redistributions in binary form must reproduce the above copyright</ span ></ div >
< div class = "line" >< a id = "l00010" name = "l00010" ></ a >< span class = "lineno" > 10</ span >< span class = "comment" > notice, this list of conditions and the following disclaimer in the</ span ></ div >
< div class = "line" >< a id = "l00011" name = "l00011" ></ a >< span class = "lineno" > 11</ span >< span class = "comment" > documentation and/or other materials provided with the distribution.</ span ></ div >
< div class = "line" >< a id = "l00012" name = "l00012" ></ a >< span class = "lineno" > 12</ span >< span class = "comment" > * Neither the name of the Universite de Sherbrooke nor the</ span ></ div >
< div class = "line" >< a id = "l00013" name = "l00013" ></ a >< span class = "lineno" > 13</ span >< span class = "comment" > names of its contributors may be used to endorse or promote products</ span ></ div >
< div class = "line" >< a id = "l00014" name = "l00014" ></ a >< span class = "lineno" > 14</ span >< span class = "comment" > derived from this software without specific prior written permission.</ span ></ div >
< div class = "line" >< a id = "l00015" name = "l00015" ></ a >< span class = "lineno" > 15</ span >< span class = "comment" ></ span > </ div >
< div class = "line" >< a id = "l00016" name = "l00016" ></ a >< span class = "lineno" > 16</ span >< span class = "comment" > THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS " AS IS" AND</ span ></ div >
< div class = "line" >< a id = "l00017" name = "l00017" ></ a >< span class = "lineno" > 17</ span >< span class = "comment" > ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED</ span ></ div >
< div class = "line" >< a id = "l00018" name = "l00018" ></ a >< span class = "lineno" > 18</ span >< span class = "comment" > WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE</ span ></ div >
< div class = "line" >< a id = "l00019" name = "l00019" ></ a >< span class = "lineno" > 19</ span >< span class = "comment" > DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY</ span ></ div >
< div class = "line" >< a id = "l00020" name = "l00020" ></ a >< span class = "lineno" > 20</ span >< span class = "comment" > DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES</ span ></ div >
< div class = "line" >< a id = "l00021" name = "l00021" ></ a >< span class = "lineno" > 21</ span >< span class = "comment" > (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;</ span ></ div >
< div class = "line" >< a id = "l00022" name = "l00022" ></ a >< span class = "lineno" > 22</ span >< span class = "comment" > LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND</ span ></ div >
< div class = "line" >< a id = "l00023" name = "l00023" ></ a >< span class = "lineno" > 23</ span >< span class = "comment" > ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT</ span ></ div >
< div class = "line" >< a id = "l00024" name = "l00024" ></ a >< span class = "lineno" > 24</ span >< span class = "comment" > (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS</ span ></ div >
< div class = "line" >< a id = "l00025" name = "l00025" ></ a >< span class = "lineno" > 25</ span >< span class = "comment" > SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</ span ></ div >
< div class = "line" >< a id = "l00026" name = "l00026" ></ a >< span class = "lineno" > 26</ span >< span class = "comment" > */</ span ></ div >
< div class = "line" >< a id = "l00027" name = "l00027" ></ a >< span class = "lineno" > 27</ span > </ div >
< div class = "line" >< a id = "l00028" name = "l00028" ></ a >< span class = "lineno" > 28</ span >< span class = "preprocessor" > #ifndef OPTIMIZER_H_</ span ></ div >
< div class = "line" >< a id = "l00029" name = "l00029" ></ a >< span class = "lineno" > 29</ span >< span class = "preprocessor" > #define OPTIMIZER_H_</ span ></ div >
< div class = "line" >< a id = "l00030" name = "l00030" ></ a >< span class = "lineno" > 30</ span > </ div >
< div class = "line" >< a id = "l00031" name = "l00031" ></ a >< span class = "lineno" > 31</ span >< span class = "preprocessor" > #include " rtabmap/core/rtabmap_core_export.h" </ span > < span class = "comment" > // DLL export/import defines</ span ></ div >
< div class = "line" >< a id = "l00032" name = "l00032" ></ a >< span class = "lineno" > 32</ span > </ div >
< div class = "line" >< a id = "l00033" name = "l00033" ></ a >< span class = "lineno" > 33</ span >< span class = "preprocessor" > #include < map> </ span ></ div >
< div class = "line" >< a id = "l00034" name = "l00034" ></ a >< span class = "lineno" > 34</ span >< span class = "preprocessor" > #include < list> </ span ></ div >
2026-08-10 00:39:24 +00:00
< div class = "line" >< a id = "l00035" name = "l00035" ></ a >< span class = "lineno" > 35</ span >< span class = "preprocessor" > #include < set> </ span ></ div >
< div class = "line" >< a id = "l00036" name = "l00036" ></ a >< span class = "lineno" > 36</ span >< span class = "preprocessor" > #include < rtabmap/core/Link.h> </ span ></ div >
< div class = "line" >< a id = "l00037" name = "l00037" ></ a >< span class = "lineno" > 37</ span >< span class = "preprocessor" > #include < rtabmap/core/Parameters.h> </ span ></ div >
< div class = "line" >< a id = "l00038" name = "l00038" ></ a >< span class = "lineno" > 38</ span >< span class = "preprocessor" > #include < rtabmap/core/Signature.h> </ span ></ div >
< div class = "line" >< a id = "l00039" name = "l00039" ></ a >< span class = "lineno" > 39</ span > </ div >
< div class = "line" >< a id = "l00040" name = "l00040" ></ a >< span class = "lineno" > 40</ span >< span class = "keyword" > namespace </ span >< a class = "code hl_namespace" href = "namespacertabmap.html" > rtabmap</ a > {</ div >
< div class = "line" >< a id = "l00041" name = "l00041" ></ a >< span class = "lineno" > 41</ span > </ div >
< div class = "foldopen" id = "foldopen00051" data-start = "{" data-end = "};" >
< div class = "line" >< a id = "l00051" name = "l00051" ></ a >< span class = "lineno" >< a class = "line" href = "classrtabmap_1_1FeatureBA.html" > 51</ a ></ span >< span class = "keyword" > class </ span >< a class = "code hl_class" href = "classrtabmap_1_1FeatureBA.html" > FeatureBA</ a ></ div >
< div class = "line" >< a id = "l00052" name = "l00052" ></ a >< span class = "lineno" > 52</ span > {</ div >
< div class = "line" >< a id = "l00053" name = "l00053" ></ a >< span class = "lineno" > 53</ span >< span class = "keyword" > public</ span > :</ div >
< div class = "line" >< a id = "l00054" name = "l00054" ></ a >< span class = "lineno" > 54</ span > < a class = "code hl_class" href = "classrtabmap_1_1FeatureBA.html" > FeatureBA</ a > (< span class = "keyword" > const</ span > cv::KeyPoint & kptIn, < span class = "keyword" > const</ span > < span class = "keywordtype" > float</ span > & depthIn = 0.0f, < span class = "keyword" > const</ span > cv::Mat & descriptorIn = cv::Mat(), < span class = "keywordtype" > int</ span > cameraIndexIn = 0):</ div >
< div class = "line" >< a id = "l00055" name = "l00055" ></ a >< span class = "lineno" > 55</ span > < a class = "code hl_variable" href = "classrtabmap_1_1FeatureBA.html#a2bea5690d958d81f5edfa6df954d4a8b" > kpt</ a > (kptIn),</ div >
< div class = "line" >< a id = "l00056" name = "l00056" ></ a >< span class = "lineno" > 56</ span > < a class = "code hl_variable" href = "classrtabmap_1_1FeatureBA.html#ad48600a5b6ed17e7713f1485c4317948" > depth</ a > (depthIn),</ div >
< div class = "line" >< a id = "l00057" name = "l00057" ></ a >< span class = "lineno" > 57</ span > < a class = "code hl_variable" href = "classrtabmap_1_1FeatureBA.html#a7db630b2f418b05d2fbd772d1caadf48" > descriptor</ a > (descriptorIn),</ div >
< div class = "line" >< a id = "l00058" name = "l00058" ></ a >< span class = "lineno" > 58</ span > < a class = "code hl_variable" href = "classrtabmap_1_1FeatureBA.html#a8db953b6f93249d5c28c25073cd4e095" > cameraIndex</ a > (cameraIndexIn)</ div >
< div class = "line" >< a id = "l00059" name = "l00059" ></ a >< span class = "lineno" > 59</ span > {</ div >
< div class = "line" >< a id = "l00060" name = "l00060" ></ a >< span class = "lineno" > 60</ span > < span class = "comment" > //UDEBUG(" kpt=(%f,%f) depth=%f, camIndex=%d" , kpt.pt.x, kpt.pt.y, depth, cameraIndex);</ span ></ div >
< div class = "line" >< a id = "l00061" name = "l00061" ></ a >< span class = "lineno" > 61</ span > }</ div >
< div class = "line" >< a id = "l00062" name = "l00062" ></ a >< span class = "lineno" >< a class = "line" href = "classrtabmap_1_1FeatureBA.html#a2bea5690d958d81f5edfa6df954d4a8b" > 62</ a ></ span > cv::KeyPoint < a class = "code hl_variable" href = "classrtabmap_1_1FeatureBA.html#a2bea5690d958d81f5edfa6df954d4a8b" > kpt</ a > ; </ div >
< div class = "line" >< a id = "l00063" name = "l00063" ></ a >< span class = "lineno" >< a class = "line" href = "classrtabmap_1_1FeatureBA.html#ad48600a5b6ed17e7713f1485c4317948" > 63</ a ></ span > < span class = "keywordtype" > float</ span > < a class = "code hl_variable" href = "classrtabmap_1_1FeatureBA.html#ad48600a5b6ed17e7713f1485c4317948" > depth</ a > ; </ div >
< div class = "line" >< a id = "l00064" name = "l00064" ></ a >< span class = "lineno" >< a class = "line" href = "classrtabmap_1_1FeatureBA.html#a7db630b2f418b05d2fbd772d1caadf48" > 64</ a ></ span > cv::Mat < a class = "code hl_variable" href = "classrtabmap_1_1FeatureBA.html#a7db630b2f418b05d2fbd772d1caadf48" > descriptor</ a > ; </ div >
< div class = "line" >< a id = "l00065" name = "l00065" ></ a >< span class = "lineno" >< a class = "line" href = "classrtabmap_1_1FeatureBA.html#a8db953b6f93249d5c28c25073cd4e095" > 65</ a ></ span > < span class = "keywordtype" > int</ span > < a class = "code hl_variable" href = "classrtabmap_1_1FeatureBA.html#a8db953b6f93249d5c28c25073cd4e095" > cameraIndex</ a > ; </ div >
< div class = "line" >< a id = "l00066" name = "l00066" ></ a >< span class = "lineno" > 66</ span > };</ div >
2026-08-06 22:56:24 +00:00
</ div >
2026-08-10 00:39:24 +00:00
< div class = "line" >< a id = "l00067" name = "l00067" ></ a >< span class = "lineno" > 67</ span > </ div >
< div class = "line" >< a id = "l00068" name = "l00068" ></ a >< span class = "lineno" > 68</ span >< span class = "keyword" > typedef</ span > std::map< int, std::set< int> > BAOutliers; < span class = "comment" > // < word ID, rejected pose IDs> , matching wordReferences</ span ></ div >
< div class = "line" >< a id = "l00069" name = "l00069" ></ a >< span class = "lineno" > 69</ span > </ div >
< div class = "foldopen" id = "foldopen00090" data-start = "{" data-end = "};" >
< div class = "line" >< a id = "l00090" name = "l00090" ></ a >< span class = "lineno" >< a class = "line" href = "classrtabmap_1_1Optimizer.html" > 90</ a ></ span >< span class = "keyword" > class </ span > RTABMAP_CORE_EXPORT < a class = "code hl_class" href = "classrtabmap_1_1Optimizer.html" > Optimizer</ a ></ div >
< div class = "line" >< a id = "l00091" name = "l00091" ></ a >< span class = "lineno" > 91</ span > {</ div >
< div class = "line" >< a id = "l00092" name = "l00092" ></ a >< span class = "lineno" > 92</ span >< span class = "keyword" > public</ span > :</ div >
< div class = "foldopen" id = "foldopen00094" data-start = "{" data-end = "};" >
< div class = "line" >< a id = "l00094" name = "l00094" ></ a >< span class = "lineno" >< a class = "line" href = "classrtabmap_1_1Optimizer.html#a18ae8ac76346d1adc68ab176a5b02d16" > 94</ a ></ span > < span class = "keyword" > enum</ span > < a class = "code hl_enumeration" href = "classrtabmap_1_1Optimizer.html#a18ae8ac76346d1adc68ab176a5b02d16" > Type</ a > {</ div >
< div class = "line" >< a id = "l00095" name = "l00095" ></ a >< span class = "lineno" >< a class = "line" href = "classrtabmap_1_1Optimizer.html#a18ae8ac76346d1adc68ab176a5b02d16abae75975865bff7e12e82d2f5295e0db" > 95</ a ></ span > kTypeUndef = -1, </ div >
< div class = "line" >< a id = "l00096" name = "l00096" ></ a >< span class = "lineno" >< a class = "line" href = "classrtabmap_1_1Optimizer.html#a18ae8ac76346d1adc68ab176a5b02d16a6065bdb6e49c0f5ffc98d5f2f6b0d5ab" > 96</ a ></ span > kTypeTORO = 0, </ div >
< div class = "line" >< a id = "l00097" name = "l00097" ></ a >< span class = "lineno" >< a class = "line" href = "classrtabmap_1_1Optimizer.html#a18ae8ac76346d1adc68ab176a5b02d16aa4d070fe00ba5e81adbc958bad18d853" > 97</ a ></ span > kTypeG2O = 1, </ div >
< div class = "line" >< a id = "l00098" name = "l00098" ></ a >< span class = "lineno" >< a class = "line" href = "classrtabmap_1_1Optimizer.html#a18ae8ac76346d1adc68ab176a5b02d16ab71c83617497f5da0607a47ab162630f" > 98</ a ></ span > kTypeGTSAM = 2, </ div >
< div class = "line" >< a id = "l00099" name = "l00099" ></ a >< span class = "lineno" >< a class = "line" href = "classrtabmap_1_1Optimizer.html#a18ae8ac76346d1adc68ab176a5b02d16a891b6c7cbbe5e149e583ac1fc14fc91d" > 99</ a ></ span > kTypeCeres = 3, </ div >
< div class = "line" >< a id = "l00100" name = "l00100" ></ a >< span class = "lineno" > 100</ span > kTypeCVSBA = 4 </ div >
< div class = "line" >< a id = "l00101" name = "l00101" ></ a >< span class = "lineno" >< a class = "line" href = "classrtabmap_1_1Optimizer.html#a18ae8ac76346d1adc68ab176a5b02d16a53545e83af9618cb4d39cf0420b3cd54" > 101</ a ></ span > };</ div >
2026-08-06 22:56:24 +00:00
</ div >
2026-08-10 00:39:24 +00:00
< div class = "line" >< a id = "l00102" name = "l00102" ></ a >< span class = "lineno" > 102</ span > </ div >
< div class = "line" >< a id = "l00109" name = "l00109" ></ a >< span class = "lineno" >< a class = "line" href = "classrtabmap_1_1Optimizer.html#afe0381a3b42926b7634027e522766eb1" > 109</ a ></ span > < span class = "keyword" > static</ span > < span class = "keywordtype" > bool</ span > < a class = "code hl_function" href = "classrtabmap_1_1Optimizer.html#afe0381a3b42926b7634027e522766eb1" > isAvailable</ a > (< a class = "code hl_enumeration" href = "classrtabmap_1_1Optimizer.html#a18ae8ac76346d1adc68ab176a5b02d16" > Optimizer::Type</ a > type);</ div >
< div class = "line" >< a id = "l00110" name = "l00110" ></ a >< span class = "lineno" > 110</ span > </ div >
< div class = "line" >< a id = "l00117" name = "l00117" ></ a >< span class = "lineno" >< a class = "line" href = "classrtabmap_1_1Optimizer.html#a78b457bec2cdb7bdd320e2bfcca759df" > 117</ a ></ span > < span class = "keyword" > static</ span > < a class = "code hl_class" href = "classrtabmap_1_1Optimizer.html" > Optimizer</ a > * < a class = "code hl_function" href = "classrtabmap_1_1Optimizer.html#a78b457bec2cdb7bdd320e2bfcca759df" > create</ a > (< span class = "keyword" > const</ span > < a class = "code hl_typedef" href = "namespacertabmap.html#ad08b6f1796a27dd7316c99c385e2cc55" > ParametersMap</ a > & parameters);</ div >
2026-08-06 22:56:24 +00:00
< div class = "line" >< a id = "l00118" name = "l00118" ></ a >< span class = "lineno" > 118</ span > </ div >
2026-08-10 00:39:24 +00:00
< div class = "line" >< a id = "l00120" name = "l00120" ></ a >< span class = "lineno" >< a class = "line" href = "classrtabmap_1_1Optimizer.html#aeff86117cf69fdae3c25e5bc327a142d" > 120</ a ></ span > < span class = "keyword" > static</ span > < a class = "code hl_class" href = "classrtabmap_1_1Optimizer.html" > Optimizer</ a > * < a class = "code hl_function" href = "classrtabmap_1_1Optimizer.html#aeff86117cf69fdae3c25e5bc327a142d" > create</ a > (< a class = "code hl_enumeration" href = "classrtabmap_1_1Optimizer.html#a18ae8ac76346d1adc68ab176a5b02d16" > Optimizer::Type</ a > type, < span class = "keyword" > const</ span > < a class = "code hl_typedef" href = "namespacertabmap.html#ad08b6f1796a27dd7316c99c385e2cc55" > ParametersMap</ a > & parameters = < a class = "code hl_typedef" href = "namespacertabmap.html#ad08b6f1796a27dd7316c99c385e2cc55" > ParametersMap</ a > ());</ div >
< div class = "line" >< a id = "l00121" name = "l00121" ></ a >< span class = "lineno" > 121</ span > </ div >
< div class = "line" >< a id = "l00130" name = "l00130" ></ a >< span class = "lineno" >< a class = "line" href = "classrtabmap_1_1Optimizer.html#a4477c9a5b6651729944726465b5eba7f" > 130</ a ></ span > < span class = "keywordtype" > void</ span > < a class = "code hl_function" href = "classrtabmap_1_1Optimizer.html#a4477c9a5b6651729944726465b5eba7f" > getConnectedGraph</ a > (</ div >
< div class = "line" >< a id = "l00131" name = "l00131" ></ a >< span class = "lineno" > 131</ span > < span class = "keywordtype" > int</ span > fromId,</ div >
< div class = "line" >< a id = "l00132" name = "l00132" ></ a >< span class = "lineno" > 132</ span > < span class = "keyword" > const</ span > std::map< int, Transform> & posesIn,</ div >
< div class = "line" >< a id = "l00133" name = "l00133" ></ a >< span class = "lineno" > 133</ span > < span class = "keyword" > const</ span > std::multimap< int, Link> & linksIn,</ div >
< div class = "line" >< a id = "l00134" name = "l00134" ></ a >< span class = "lineno" > 134</ span > std::map< int, Transform> & posesOut,</ div >
< div class = "line" >< a id = "l00135" name = "l00135" ></ a >< span class = "lineno" > 135</ span > std::multimap< int, Link> & linksOut) < span class = "keyword" > const</ span > ;</ div >
2026-08-06 22:56:24 +00:00
< div class = "line" >< a id = "l00136" name = "l00136" ></ a >< span class = "lineno" > 136</ span > </ div >
2026-08-10 00:39:24 +00:00
< div class = "line" >< a id = "l00137" name = "l00137" ></ a >< span class = "lineno" > 137</ span >< span class = "keyword" > public</ span > :</ div >
< div class = "line" >< a id = "l00138" name = "l00138" ></ a >< span class = "lineno" > 138</ span > < span class = "keyword" > virtual</ span > < a class = "code hl_class" href = "classrtabmap_1_1Optimizer.html" > ~Optimizer</ a > () {}</ div >
2026-08-06 22:56:24 +00:00
< div class = "line" >< a id = "l00139" name = "l00139" ></ a >< span class = "lineno" > 139</ span > </ div >
2026-08-10 00:39:24 +00:00
< div class = "line" >< a id = "l00141" name = "l00141" ></ a >< span class = "lineno" >< a class = "line" href = "classrtabmap_1_1Optimizer.html#aa2be82e1f986b1beae103148be7cd520" > 141</ a ></ span > < span class = "keyword" > virtual</ span > < a class = "code hl_enumeration" href = "classrtabmap_1_1Optimizer.html#a18ae8ac76346d1adc68ab176a5b02d16" > Type</ a > < a class = "code hl_function" href = "classrtabmap_1_1Optimizer.html#aa2be82e1f986b1beae103148be7cd520" > type</ a > () < span class = "keyword" > const</ span > = 0;</ div >
< div class = "line" >< a id = "l00142" name = "l00142" ></ a >< span class = "lineno" > 142</ span > </ div >
< div class = "line" >< a id = "l00145" name = "l00145" ></ a >< span class = "lineno" >< a class = "line" href = "classrtabmap_1_1Optimizer.html#a178bb719b0e22863e29add12c85e14a5" > 145</ a ></ span > < span class = "keywordtype" > int</ span > < a class = "code hl_function" href = "classrtabmap_1_1Optimizer.html#a178bb719b0e22863e29add12c85e14a5" > iterations</ a > ()< span class = "keyword" > const </ span > {< span class = "keywordflow" > return</ span > iterations_;} </ div >
2026-08-06 22:56:24 +00:00
< div class = "foldopen" id = "foldopen00146" data-start = "{" data-end = "}" >
2026-08-10 00:39:24 +00:00
< div class = "line" >< a id = "l00146" name = "l00146" ></ a >< span class = "lineno" >< a class = "line" href = "classrtabmap_1_1Optimizer.html#a51485674608bbf910922ecee43cc13aa" > 146</ a ></ span > < span class = "keywordtype" > bool</ span > < a class = "code hl_function" href = "classrtabmap_1_1Optimizer.html#a51485674608bbf910922ecee43cc13aa" > isSlam2d</ a > ()< span class = "keyword" > const </ span > {< span class = "keywordflow" > return</ span > slam2d_;} </ div >
2026-08-06 22:56:24 +00:00
< div class = "foldopen" id = "foldopen00147" data-start = "{" data-end = "}" >
2026-08-10 00:39:24 +00:00
< div class = "line" >< a id = "l00147" name = "l00147" ></ a >< span class = "lineno" >< a class = "line" href = "classrtabmap_1_1Optimizer.html#a8bb6372ce4c67fd9b8d54f692ac34238" > 147</ a ></ span > < span class = "keywordtype" > bool</ span > < a class = "code hl_function" href = "classrtabmap_1_1Optimizer.html#a8bb6372ce4c67fd9b8d54f692ac34238" > isCovarianceIgnored</ a > ()< span class = "keyword" > const </ span > {< span class = "keywordflow" > return</ span > covarianceIgnored_;} </ div >
2026-08-06 22:56:24 +00:00
< div class = "foldopen" id = "foldopen00148" data-start = "{" data-end = "}" >
2026-08-10 00:39:24 +00:00
< div class = "line" >< a id = "l00148" name = "l00148" ></ a >< span class = "lineno" >< a class = "line" href = "classrtabmap_1_1Optimizer.html#a3bca4e3df1048f8bbad9b3b9473924a2" > 148</ a ></ span > < span class = "keywordtype" > double</ span > < a class = "code hl_function" href = "classrtabmap_1_1Optimizer.html#a3bca4e3df1048f8bbad9b3b9473924a2" > epsilon</ a > ()< span class = "keyword" > const </ span > {< span class = "keywordflow" > return</ span > epsilon_;} </ div >
2026-08-06 22:56:24 +00:00
< div class = "foldopen" id = "foldopen00149" data-start = "{" data-end = "}" >
2026-08-10 00:39:24 +00:00
< div class = "line" >< a id = "l00149" name = "l00149" ></ a >< span class = "lineno" >< a class = "line" href = "classrtabmap_1_1Optimizer.html#a29ba07e1e829ae616d82756977161c9f" > 149</ a ></ span > < span class = "keywordtype" > bool</ span > < a class = "code hl_function" href = "classrtabmap_1_1Optimizer.html#a29ba07e1e829ae616d82756977161c9f" > isRobust</ a > ()< span class = "keyword" > const </ span > {< span class = "keywordflow" > return</ span > robust_;} </ div >
< div class = "foldopen" id = "foldopen00150" data-start = "{" data-end = "}" >
< div class = "line" >< a id = "l00150" name = "l00150" ></ a >< span class = "lineno" >< a class = "line" href = "classrtabmap_1_1Optimizer.html#aeebd0d5575ab7e9f492b095c05ddb237" > 150</ a ></ span > < span class = "keywordtype" > bool</ span > < a class = "code hl_function" href = "classrtabmap_1_1Optimizer.html#aeebd0d5575ab7e9f492b095c05ddb237" > priorsIgnored</ a > ()< span class = "keyword" > const </ span > {< span class = "keywordflow" > return</ span > priorsIgnored_;} </ div >
< div class = "foldopen" id = "foldopen00151" data-start = "{" data-end = "}" >
< div class = "line" >< a id = "l00151" name = "l00151" ></ a >< span class = "lineno" >< a class = "line" href = "classrtabmap_1_1Optimizer.html#a32f53d408ef0372c5c196ee89ff5ad79" > 151</ a ></ span > < span class = "keywordtype" > bool</ span > < a class = "code hl_function" href = "classrtabmap_1_1Optimizer.html#a32f53d408ef0372c5c196ee89ff5ad79" > landmarksIgnored</ a > ()< span class = "keyword" > const </ span > {< span class = "keywordflow" > return</ span > landmarksIgnored_;}</ div >
< div class = "foldopen" id = "foldopen00152" data-start = "{" data-end = "}" >
< div class = "line" >< a id = "l00152" name = "l00152" ></ a >< span class = "lineno" >< a class = "line" href = "classrtabmap_1_1Optimizer.html#aceb68e0f692b81c4a978e46f804515d7" > 152</ a ></ span > < span class = "keywordtype" > float</ span > < a class = "code hl_function" href = "classrtabmap_1_1Optimizer.html#aceb68e0f692b81c4a978e46f804515d7" > gravitySigma</ a > ()< span class = "keyword" > const </ span > {< span class = "keywordflow" > return</ span > gravitySigma_;} </ div >
< div class = "line" >< a id = "l00154" name = "l00154" ></ a >< span class = "lineno" > 154</ span > </ div >
< div class = "line" >< a id = "l00157" name = "l00157" ></ a >< span class = "lineno" > 157</ span > < span class = "keywordtype" > void</ span > setIterations(< span class = "keywordtype" > int</ span > iterations) {iterations_ = iterations;}</ div >
< div class = "line" >< a id = "l00158" name = "l00158" ></ a >< span class = "lineno" > 158</ span > < span class = "keywordtype" > void</ span > setSlam2d(< span class = "keywordtype" > bool</ span > enabled) {slam2d_ = enabled;}</ div >
< div class = "line" >< a id = "l00159" name = "l00159" ></ a >< span class = "lineno" > 159</ span > < span class = "keywordtype" > void</ span > setCovarianceIgnored(< span class = "keywordtype" > bool</ span > enabled) {covarianceIgnored_ = enabled;}</ div >
< div class = "line" >< a id = "l00160" name = "l00160" ></ a >< span class = "lineno" > 160</ span > < span class = "keywordtype" > void</ span > setEpsilon(< span class = "keywordtype" > double</ span > epsilon) {epsilon_ = epsilon;}</ div >
< div class = "line" >< a id = "l00161" name = "l00161" ></ a >< span class = "lineno" > 161</ span > < span class = "keywordtype" > void</ span > setRobust(< span class = "keywordtype" > bool</ span > enabled) {robust_ = enabled;}</ div >
< div class = "line" >< a id = "l00162" name = "l00162" ></ a >< span class = "lineno" > 162</ span > < span class = "keywordtype" > void</ span > setPriorsIgnored(< span class = "keywordtype" > bool</ span > enabled) {priorsIgnored_ = enabled;}</ div >
< div class = "line" >< a id = "l00163" name = "l00163" ></ a >< span class = "lineno" > 163</ span > < span class = "keywordtype" > void</ span > setLandmarksIgnored(< span class = "keywordtype" > bool</ span > enabled) {landmarksIgnored_ = enabled;}</ div >
< div class = "line" >< a id = "l00164" name = "l00164" ></ a >< span class = "lineno" > 164</ span > < span class = "keywordtype" > void</ span > setGravitySigma(< span class = "keywordtype" > float</ span > value) {gravitySigma_ = value;}</ div >
< div class = "line" >< a id = "l00166" name = "l00166" ></ a >< span class = "lineno" > 166</ span > </ div >
< div class = "line" >< a id = "l00173" name = "l00173" ></ a >< span class = "lineno" >< a class = "line" href = "classrtabmap_1_1Optimizer.html#a0a942bd7902c8d2f9444b8eba6a648a3" > 173</ a ></ span > < span class = "keyword" > virtual</ span > < span class = "keywordtype" > void</ span > < a class = "code hl_function" href = "classrtabmap_1_1Optimizer.html#a0a942bd7902c8d2f9444b8eba6a648a3" > parseParameters</ a > (< span class = "keyword" > const</ span > < a class = "code hl_typedef" href = "namespacertabmap.html#ad08b6f1796a27dd7316c99c385e2cc55" > ParametersMap</ a > & parameters);</ div >
< div class = "line" >< a id = "l00174" name = "l00174" ></ a >< span class = "lineno" > 174</ span > </ div >
< div class = "line" >< a id = "l00192" name = "l00192" ></ a >< span class = "lineno" >< a class = "line" href = "classrtabmap_1_1Optimizer.html#a278f42e0d250085ac6fe9ed425627acf" > 192</ a ></ span > std::map< int, Transform> < a class = "code hl_function" href = "classrtabmap_1_1Optimizer.html#a278f42e0d250085ac6fe9ed425627acf" > optimizeIncremental</ a > (</ div >
< div class = "line" >< a id = "l00193" name = "l00193" ></ a >< span class = "lineno" > 193</ span > < span class = "keywordtype" > int</ span > rootId,</ div >
< div class = "line" >< a id = "l00194" name = "l00194" ></ a >< span class = "lineno" > 194</ span > < span class = "keyword" > const</ span > std::map< int, Transform> & poses,</ div >
< div class = "line" >< a id = "l00195" name = "l00195" ></ a >< span class = "lineno" > 195</ span > < span class = "keyword" > const</ span > std::multimap< int, Link> & constraints,</ div >
< div class = "line" >< a id = "l00196" name = "l00196" ></ a >< span class = "lineno" > 196</ span > std::list< std::map< int, Transform> > * intermediateGraphes = 0,</ div >
< div class = "line" >< a id = "l00197" name = "l00197" ></ a >< span class = "lineno" > 197</ span > < span class = "keywordtype" > double</ span > * finalError = 0,</ div >
< div class = "line" >< a id = "l00198" name = "l00198" ></ a >< span class = "lineno" > 198</ span > < span class = "keywordtype" > int</ span > * iterationsDone = 0);</ div >
< div class = "line" >< a id = "l00199" name = "l00199" ></ a >< span class = "lineno" > 199</ span > </ div >
< div class = "line" >< a id = "l00206" name = "l00206" ></ a >< span class = "lineno" >< a class = "line" href = "classrtabmap_1_1Optimizer.html#a7e3aff943e77603493a358ff522fa2dc" > 206</ a ></ span > std::map< int, Transform> < a class = "code hl_function" href = "classrtabmap_1_1Optimizer.html#a7e3aff943e77603493a358ff522fa2dc" > optimize</ a > (</ div >
< div class = "line" >< a id = "l00207" name = "l00207" ></ a >< span class = "lineno" > 207</ span > < span class = "keywordtype" > int</ span > rootId,</ div >
< div class = "line" >< a id = "l00208" name = "l00208" ></ a >< span class = "lineno" > 208</ span > < span class = "keyword" > const</ span > std::map< int, Transform> & poses,</ div >
< div class = "line" >< a id = "l00209" name = "l00209" ></ a >< span class = "lineno" > 209</ span > < span class = "keyword" > const</ span > std::multimap< int, Link> & constraints,</ div >
< div class = "line" >< a id = "l00210" name = "l00210" ></ a >< span class = "lineno" > 210</ span > std::list< std::map< int, Transform> > * intermediateGraphes = 0,</ div >
< div class = "line" >< a id = "l00211" name = "l00211" ></ a >< span class = "lineno" > 211</ span > < span class = "keywordtype" > double</ span > * finalError = 0,</ div >
< div class = "line" >< a id = "l00212" name = "l00212" ></ a >< span class = "lineno" > 212</ span > < span class = "keywordtype" > int</ span > * iterationsDone = 0);</ div >
< div class = "line" >< a id = "l00213" name = "l00213" ></ a >< span class = "lineno" > 213</ span > </ div >
< div class = "line" >< a id = "l00230" name = "l00230" ></ a >< span class = "lineno" >< a class = "line" href = "classrtabmap_1_1Optimizer.html#af59c8340394268f9a1eb76fd5709f2c3" > 230</ a ></ span > < span class = "keyword" > virtual</ span > std::map< int, Transform> < a class = "code hl_function" href = "classrtabmap_1_1Optimizer.html#af59c8340394268f9a1eb76fd5709f2c3" > optimize</ a > (</ div >
< div class = "line" >< a id = "l00231" name = "l00231" ></ a >< span class = "lineno" > 231</ span > < span class = "keywordtype" > int</ span > rootId,</ div >
< div class = "line" >< a id = "l00232" name = "l00232" ></ a >< span class = "lineno" > 232</ span > < span class = "keyword" > const</ span > std::map< int, Transform> & poses,</ div >
< div class = "line" >< a id = "l00233" name = "l00233" ></ a >< span class = "lineno" > 233</ span > < span class = "keyword" > const</ span > std::multimap< int, Link> & constraints,</ div >
< div class = "line" >< a id = "l00234" name = "l00234" ></ a >< span class = "lineno" > 234</ span > cv::Mat & outputCovariance,</ div >
< div class = "line" >< a id = "l00235" name = "l00235" ></ a >< span class = "lineno" > 235</ span > std::list< std::map< int, Transform> > * intermediateGraphes = 0,</ div >
< div class = "line" >< a id = "l00236" name = "l00236" ></ a >< span class = "lineno" > 236</ span > < span class = "keywordtype" > double</ span > * finalError = 0,</ div >
< div class = "line" >< a id = "l00237" name = "l00237" ></ a >< span class = "lineno" > 237</ span > < span class = "keywordtype" > int</ span > * iterationsDone = 0);</ div >
< div class = "line" >< a id = "l00238" name = "l00238" ></ a >< span class = "lineno" > 238</ span > </ div >
< div class = "line" >< a id = "l00256" name = "l00256" ></ a >< span class = "lineno" >< a class = "line" href = "classrtabmap_1_1Optimizer.html#a1122f017f10105f7e6c14039d41709e5" > 256</ a ></ span > < span class = "keyword" > virtual</ span > std::map< int, Transform> < a class = "code hl_function" href = "classrtabmap_1_1Optimizer.html#a1122f017f10105f7e6c14039d41709e5" > optimizeBA</ a > (</ div >
< div class = "line" >< a id = "l00257" name = "l00257" ></ a >< span class = "lineno" > 257</ span > < span class = "keywordtype" > int</ span > rootId,</ div >
< div class = "line" >< a id = "l00258" name = "l00258" ></ a >< span class = "lineno" > 258</ span > < span class = "keyword" > const</ span > std::map< int, Transform> & poses,</ div >
< div class = "line" >< a id = "l00259" name = "l00259" ></ a >< span class = "lineno" > 259</ span > < span class = "keyword" > const</ span > std::multimap< int, Link> & links,</ div >
< div class = "line" >< a id = "l00260" name = "l00260" ></ a >< span class = "lineno" > 260</ span > < span class = "keyword" > const</ span > std::map< < span class = "keywordtype" > int</ span > , std::vector< CameraModel> > & models,</ div >
< div class = "line" >< a id = "l00261" name = "l00261" ></ a >< span class = "lineno" > 261</ span > std::map< int, cv::Point3f> & points3DMap,</ div >
< div class = "line" >< a id = "l00262" name = "l00262" ></ a >< span class = "lineno" > 262</ span > < span class = "keyword" > const</ span > std::map< < span class = "keywordtype" > int</ span > , std::map< int, FeatureBA> > & wordReferences,</ div >
< div class = "line" >< a id = "l00263" name = "l00263" ></ a >< span class = "lineno" > 263</ span > BAOutliers * outliers = 0);</ div >
< div class = "line" >< a id = "l00264" name = "l00264" ></ a >< span class = "lineno" > 264</ span > </ div >
< div class = "line" >< a id = "l00277" name = "l00277" ></ a >< span class = "lineno" >< a class = "line" href = "classrtabmap_1_1Optimizer.html#a2f7cbdebed9787ffa6b0b30536dfa1a0" > 277</ a ></ span > std::map< int, Transform> < a class = "code hl_function" href = "classrtabmap_1_1Optimizer.html#a2f7cbdebed9787ffa6b0b30536dfa1a0" > optimizeBA</ a > (</ div >
< div class = "line" >< a id = "l00278" name = "l00278" ></ a >< span class = "lineno" > 278</ span > < span class = "keywordtype" > int</ span > rootId,</ div >
< div class = "line" >< a id = "l00279" name = "l00279" ></ a >< span class = "lineno" > 279</ span > < span class = "keyword" > const</ span > std::map< int, Transform> & poses,</ div >
< div class = "line" >< a id = "l00280" name = "l00280" ></ a >< span class = "lineno" > 280</ span > < span class = "keyword" > const</ span > std::multimap< int, Link> & links,</ div >
< div class = "line" >< a id = "l00281" name = "l00281" ></ a >< span class = "lineno" > 281</ span > < span class = "keyword" > const</ span > std::map< int, Signature> & signatures,</ div >
< div class = "line" >< a id = "l00282" name = "l00282" ></ a >< span class = "lineno" > 282</ span > std::map< int, cv::Point3f> & points3DMap,</ div >
< div class = "line" >< a id = "l00283" name = "l00283" ></ a >< span class = "lineno" > 283</ span > std::map< < span class = "keywordtype" > int</ span > , std::map< int, FeatureBA> > & wordReferences,</ div >
< div class = "line" >< a id = "l00284" name = "l00284" ></ a >< span class = "lineno" > 284</ span > < span class = "keywordtype" > bool</ span > rematchFeatures = < span class = "keyword" > false</ span > ,</ div >
< div class = "line" >< a id = "l00285" name = "l00285" ></ a >< span class = "lineno" > 285</ span > < span class = "keyword" > const</ span > < a class = "code hl_typedef" href = "namespacertabmap.html#ad08b6f1796a27dd7316c99c385e2cc55" > ParametersMap</ a > & registrationParameters = < a class = "code hl_typedef" href = "namespacertabmap.html#ad08b6f1796a27dd7316c99c385e2cc55" > ParametersMap</ a > ());</ div >
< div class = "line" >< a id = "l00286" name = "l00286" ></ a >< span class = "lineno" > 286</ span > </ div >
< div class = "line" >< a id = "l00289" name = "l00289" ></ a >< span class = "lineno" >< a class = "line" href = "classrtabmap_1_1Optimizer.html#aab99f045516162944ad68fdabacb53dc" > 289</ a ></ span > std::map< int, Transform> < a class = "code hl_function" href = "classrtabmap_1_1Optimizer.html#aab99f045516162944ad68fdabacb53dc" > optimizeBA</ a > (</ div >
< div class = "line" >< a id = "l00290" name = "l00290" ></ a >< span class = "lineno" > 290</ span > < span class = "keywordtype" > int</ span > rootId,</ div >
< div class = "line" >< a id = "l00291" name = "l00291" ></ a >< span class = "lineno" > 291</ span > < span class = "keyword" > const</ span > std::map< int, Transform> & poses,</ div >
< div class = "line" >< a id = "l00292" name = "l00292" ></ a >< span class = "lineno" > 292</ span > < span class = "keyword" > const</ span > std::multimap< int, Link> & links,</ div >
< div class = "line" >< a id = "l00293" name = "l00293" ></ a >< span class = "lineno" > 293</ span > < span class = "keyword" > const</ span > std::map< int, Signature> & signatures,</ div >
< div class = "line" >< a id = "l00294" name = "l00294" ></ a >< span class = "lineno" > 294</ span > < span class = "keywordtype" > bool</ span > rematchFeatures = < span class = "keyword" > false</ span > ,</ div >
< div class = "line" >< a id = "l00295" name = "l00295" ></ a >< span class = "lineno" > 295</ span > < span class = "keyword" > const</ span > < a class = "code hl_typedef" href = "namespacertabmap.html#ad08b6f1796a27dd7316c99c385e2cc55" > ParametersMap</ a > & registrationParameters = < a class = "code hl_typedef" href = "namespacertabmap.html#ad08b6f1796a27dd7316c99c385e2cc55" > ParametersMap</ a > ());</ div >
< div class = "line" >< a id = "l00296" name = "l00296" ></ a >< span class = "lineno" > 296</ span > </ div >
< div class = "line" >< a id = "l00304" name = "l00304" ></ a >< span class = "lineno" >< a class = "line" href = "classrtabmap_1_1Optimizer.html#aedaeb7cc371f3685f8595d9a151f6605" > 304</ a ></ span > < a class = "code hl_class" href = "classrtabmap_1_1Transform.html" > Transform</ a > < a class = "code hl_function" href = "classrtabmap_1_1Optimizer.html#aedaeb7cc371f3685f8595d9a151f6605" > optimizeBA</ a > (</ div >
< div class = "line" >< a id = "l00305" name = "l00305" ></ a >< span class = "lineno" > 305</ span > < span class = "keyword" > const</ span > < a class = "code hl_class" href = "classrtabmap_1_1Link.html" > Link</ a > & link,</ div >
< div class = "line" >< a id = "l00306" name = "l00306" ></ a >< span class = "lineno" > 306</ span > < span class = "keyword" > const</ span > < a class = "code hl_class" href = "classrtabmap_1_1CameraModel.html" > CameraModel</ a > & model,</ div >
< div class = "line" >< a id = "l00307" name = "l00307" ></ a >< span class = "lineno" > 307</ span > std::map< int, cv::Point3f> & points3DMap,</ div >
< div class = "line" >< a id = "l00308" name = "l00308" ></ a >< span class = "lineno" > 308</ span > < span class = "keyword" > const</ span > std::map< < span class = "keywordtype" > int</ span > , std::map< int, FeatureBA> > & wordReferences,</ div >
< div class = "line" >< a id = "l00309" name = "l00309" ></ a >< span class = "lineno" > 309</ span > BAOutliers * outliers = 0);</ div >
< div class = "line" >< a id = "l00310" name = "l00310" ></ a >< span class = "lineno" > 310</ span > </ div >
< div class = "line" >< a id = "l00326" name = "l00326" ></ a >< span class = "lineno" >< a class = "line" href = "classrtabmap_1_1Optimizer.html#a93fb09dac068e64de000f692bcb8216f" > 326</ a ></ span > < span class = "keywordtype" > void</ span > < a class = "code hl_function" href = "classrtabmap_1_1Optimizer.html#a93fb09dac068e64de000f692bcb8216f" > computeBACorrespondences</ a > (</ div >
< div class = "line" >< a id = "l00327" name = "l00327" ></ a >< span class = "lineno" > 327</ span > < span class = "keyword" > const</ span > std::map< int, Transform> & poses,</ div >
< div class = "line" >< a id = "l00328" name = "l00328" ></ a >< span class = "lineno" > 328</ span > < span class = "keyword" > const</ span > std::multimap< int, Link> & links,</ div >
< div class = "line" >< a id = "l00329" name = "l00329" ></ a >< span class = "lineno" > 329</ span > < span class = "keyword" > const</ span > std::map< int, Signature> & signatures,</ div >
< div class = "line" >< a id = "l00330" name = "l00330" ></ a >< span class = "lineno" > 330</ span > std::map< int, cv::Point3f> & points3DMap,</ div >
< div class = "line" >< a id = "l00331" name = "l00331" ></ a >< span class = "lineno" > 331</ span > std::map< < span class = "keywordtype" > int</ span > , std::map< int, FeatureBA > > & wordReferences,</ div >
< div class = "line" >< a id = "l00332" name = "l00332" ></ a >< span class = "lineno" > 332</ span > < span class = "keywordtype" > bool</ span > rematchFeatures = < span class = "keyword" > false</ span > ,</ div >
< div class = "line" >< a id = "l00333" name = "l00333" ></ a >< span class = "lineno" > 333</ span > < span class = "keywordtype" > bool</ span > useLinkTransformAsGuess = < span class = "keyword" > false</ span > ,</ div >
< div class = "line" >< a id = "l00334" name = "l00334" ></ a >< span class = "lineno" > 334</ span > < a class = "code hl_typedef" href = "namespacertabmap.html#ad08b6f1796a27dd7316c99c385e2cc55" > ParametersMap</ a > registrationParameters = < a class = "code hl_typedef" href = "namespacertabmap.html#ad08b6f1796a27dd7316c99c385e2cc55" > ParametersMap</ a > ());</ div >
< div class = "line" >< a id = "l00335" name = "l00335" ></ a >< span class = "lineno" > 335</ span > </ div >
< div class = "line" >< a id = "l00336" name = "l00336" ></ a >< span class = "lineno" > 336</ span >< span class = "keyword" > protected</ span > :</ div >
< div class = "line" >< a id = "l00337" name = "l00337" ></ a >< span class = "lineno" > 337</ span > < a class = "code hl_class" href = "classrtabmap_1_1Optimizer.html" > Optimizer</ a > (</ div >
< div class = "line" >< a id = "l00338" name = "l00338" ></ a >< span class = "lineno" > 338</ span > < span class = "keywordtype" > int</ span > iterations = Parameters::defaultOptimizerIterations(),</ div >
< div class = "line" >< a id = "l00339" name = "l00339" ></ a >< span class = "lineno" > 339</ span > < span class = "keywordtype" > bool</ span > slam2d = Parameters::defaultRegForce3DoF(),</ div >
< div class = "line" >< a id = "l00340" name = "l00340" ></ a >< span class = "lineno" > 340</ span > < span class = "keywordtype" > bool</ span > covarianceIgnored = Parameters::defaultOptimizerVarianceIgnored(),</ div >
< div class = "line" >< a id = "l00341" name = "l00341" ></ a >< span class = "lineno" > 341</ span > < span class = "keywordtype" > double</ span > epsilon = Parameters::defaultOptimizerEpsilon(),</ div >
< div class = "line" >< a id = "l00342" name = "l00342" ></ a >< span class = "lineno" > 342</ span > < span class = "keywordtype" > bool</ span > robust = Parameters::defaultOptimizerRobust(),</ div >
< div class = "line" >< a id = "l00343" name = "l00343" ></ a >< span class = "lineno" > 343</ span > < span class = "keywordtype" > bool</ span > priorsIgnored = Parameters::defaultOptimizerPriorsIgnored(),</ div >
< div class = "line" >< a id = "l00344" name = "l00344" ></ a >< span class = "lineno" > 344</ span > < span class = "keywordtype" > bool</ span > landmarksIgnored = Parameters::defaultOptimizerLandmarksIgnored(),</ div >
< div class = "line" >< a id = "l00345" name = "l00345" ></ a >< span class = "lineno" > 345</ span > < span class = "keywordtype" > float</ span > gravitySigma = Parameters::defaultOptimizerGravitySigma());</ div >
< div class = "line" >< a id = "l00346" name = "l00346" ></ a >< span class = "lineno" > 346</ span > < a class = "code hl_class" href = "classrtabmap_1_1Optimizer.html" > Optimizer</ a > (< span class = "keyword" > const</ span > < a class = "code hl_typedef" href = "namespacertabmap.html#ad08b6f1796a27dd7316c99c385e2cc55" > ParametersMap</ a > & parameters);</ div >
< div class = "line" >< a id = "l00347" name = "l00347" ></ a >< span class = "lineno" > 347</ span > </ div >
< div class = "line" >< a id = "l00348" name = "l00348" ></ a >< span class = "lineno" > 348</ span >< span class = "keyword" > private</ span > :</ div >
< div class = "line" >< a id = "l00349" name = "l00349" ></ a >< span class = "lineno" > 349</ span > < span class = "keywordtype" > int</ span > iterations_;</ div >
< div class = "line" >< a id = "l00350" name = "l00350" ></ a >< span class = "lineno" > 350</ span > < span class = "keywordtype" > bool</ span > slam2d_;</ div >
< div class = "line" >< a id = "l00351" name = "l00351" ></ a >< span class = "lineno" > 351</ span > < span class = "keywordtype" > bool</ span > covarianceIgnored_;</ div >
< div class = "line" >< a id = "l00352" name = "l00352" ></ a >< span class = "lineno" > 352</ span > < span class = "keywordtype" > double</ span > epsilon_;</ div >
< div class = "line" >< a id = "l00353" name = "l00353" ></ a >< span class = "lineno" > 353</ span > < span class = "keywordtype" > bool</ span > robust_;</ div >
< div class = "line" >< a id = "l00354" name = "l00354" ></ a >< span class = "lineno" > 354</ span > < span class = "keywordtype" > bool</ span > priorsIgnored_;</ div >
< div class = "line" >< a id = "l00355" name = "l00355" ></ a >< span class = "lineno" > 355</ span > < span class = "keywordtype" > bool</ span > landmarksIgnored_;</ div >
< div class = "line" >< a id = "l00356" name = "l00356" ></ a >< span class = "lineno" > 356</ span > < span class = "keywordtype" > float</ span > gravitySigma_;</ div >
< div class = "line" >< a id = "l00357" name = "l00357" ></ a >< span class = "lineno" > 357</ span > };</ div >
< div class = "line" >< a id = "l00358" name = "l00358" ></ a >< span class = "lineno" > 358</ span > </ div >
< div class = "line" >< a id = "l00359" name = "l00359" ></ a >< span class = "lineno" > 359</ span > } < span class = "comment" > /* namespace rtabmap */</ span ></ div >
< div class = "line" >< a id = "l00360" name = "l00360" ></ a >< span class = "lineno" > 360</ span >< span class = "preprocessor" > #endif </ span >< span class = "comment" > /* OPTIMIZER_H_ */</ span >< span class = "preprocessor" ></ span ></ div >
2026-08-06 22:56:24 +00:00
</ div >
</ div >
</ div >
</ div >
</ div >
</ div >
</ div >
</ div >
< div class = "ttc" id = "aclassrtabmap_1_1CameraModel_html" >< div class = "ttname" >< a href = "classrtabmap_1_1CameraModel.html" > rtabmap::CameraModel</ a ></ div >< div class = "ttdoc" > Represents a pinhole camera model containing intrinsic and extrinsic parameters, used for projection,...</ div >< div class = "ttdef" >< b > Definition</ b > < a href = "CameraModel_8h_source.html#l00052" > CameraModel.h:53</ a ></ div ></ div >
2026-08-10 00:39:24 +00:00
< div class = "ttc" id = "aclassrtabmap_1_1FeatureBA_html" >< div class = "ttname" >< a href = "classrtabmap_1_1FeatureBA.html" > rtabmap::FeatureBA</ a ></ div >< div class = "ttdoc" > A single bundle adjustment feature observation: one keypoint seen in one frame.</ div >< div class = "ttdef" >< b > Definition</ b > < a href = "Optimizer_8h_source.html#l00051" > Optimizer.h:52</ a ></ div ></ div >
< div class = "ttc" id = "aclassrtabmap_1_1FeatureBA_html_a2bea5690d958d81f5edfa6df954d4a8b" >< div class = "ttname" >< a href = "classrtabmap_1_1FeatureBA.html#a2bea5690d958d81f5edfa6df954d4a8b" > rtabmap::FeatureBA::kpt</ a ></ div >< div class = "ttdeci" > cv::KeyPoint kpt</ div >< div class = "ttdoc" > 2D image keypoint.</ div >< div class = "ttdef" >< b > Definition</ b > < a href = "Optimizer_8h_source.html#l00062" > Optimizer.h:62</ a ></ div ></ div >
< div class = "ttc" id = "aclassrtabmap_1_1FeatureBA_html_a7db630b2f418b05d2fbd772d1caadf48" >< div class = "ttname" >< a href = "classrtabmap_1_1FeatureBA.html#a7db630b2f418b05d2fbd772d1caadf48" > rtabmap::FeatureBA::descriptor</ a ></ div >< div class = "ttdeci" > cv::Mat descriptor</ div >< div class = "ttdoc" > Optional descriptor for the keypoint (used when re-matching is enabled).</ div >< div class = "ttdef" >< b > Definition</ b > < a href = "Optimizer_8h_source.html#l00064" > Optimizer.h:64</ a ></ div ></ div >
< div class = "ttc" id = "aclassrtabmap_1_1FeatureBA_html_a8db953b6f93249d5c28c25073cd4e095" >< div class = "ttname" >< a href = "classrtabmap_1_1FeatureBA.html#a8db953b6f93249d5c28c25073cd4e095" > rtabmap::FeatureBA::cameraIndex</ a ></ div >< div class = "ttdeci" > int cameraIndex</ div >< div class = "ttdoc" > Index into the frame's camera model list for multi-camera rigs.</ div >< div class = "ttdef" >< b > Definition</ b > < a href = "Optimizer_8h_source.html#l00065" > Optimizer.h:65</ a ></ div ></ div >
< div class = "ttc" id = "aclassrtabmap_1_1FeatureBA_html_ad48600a5b6ed17e7713f1485c4317948" >< div class = "ttname" >< a href = "classrtabmap_1_1FeatureBA.html#ad48600a5b6ed17e7713f1485c4317948" > rtabmap::FeatureBA::depth</ a ></ div >< div class = "ttdeci" > float depth</ div >< div class = "ttdoc" > Depth at kpt in meters, or 0 if unknown (monocular).</ div >< div class = "ttdef" >< b > Definition</ b > < a href = "Optimizer_8h_source.html#l00063" > Optimizer.h:63</ a ></ div ></ div >
2026-08-06 22:56:24 +00:00
< div class = "ttc" id = "aclassrtabmap_1_1Link_html" >< div class = "ttname" >< a href = "classrtabmap_1_1Link.html" > rtabmap::Link</ a ></ div >< div class = "ttdoc" > Directed constraint between two nodes in RTAB-Map's pose graph.</ div >< div class = "ttdef" >< b > Definition</ b > < a href = "Link_8h_source.html#l00054" > Link.h:55</ a ></ div ></ div >
2026-08-10 00:39:24 +00:00
< div class = "ttc" id = "aclassrtabmap_1_1Optimizer_html" >< div class = "ttname" >< a href = "classrtabmap_1_1Optimizer.html" > rtabmap::Optimizer</ a ></ div >< div class = "ttdoc" > Abstract base for pose-graph and bundle-adjustment optimizers.</ div >< div class = "ttdef" >< b > Definition</ b > < a href = "Optimizer_8h_source.html#l00090" > Optimizer.h:91</ a ></ div ></ div >
2026-08-06 22:56:24 +00:00
< div class = "ttc" id = "aclassrtabmap_1_1Optimizer_html_a0a942bd7902c8d2f9444b8eba6a648a3" >< div class = "ttname" >< a href = "classrtabmap_1_1Optimizer.html#a0a942bd7902c8d2f9444b8eba6a648a3" > rtabmap::Optimizer::parseParameters</ a ></ div >< div class = "ttdeci" > virtual void parseParameters(const ParametersMap & parameters)</ div >< div class = "ttdoc" > Reads shared knobs from parameters and applies them to this instance.</ div ></ div >
2026-08-10 00:39:24 +00:00
< div class = "ttc" id = "aclassrtabmap_1_1Optimizer_html_a1122f017f10105f7e6c14039d41709e5" >< div class = "ttname" >< a href = "classrtabmap_1_1Optimizer.html#a1122f017f10105f7e6c14039d41709e5" > rtabmap::Optimizer::optimizeBA</ a ></ div >< div class = "ttdeci" > virtual std::map< int, Transform > optimizeBA(int rootId, const std::map< int, Transform > & poses, const std::multimap< int, Link > & links, const std::map< int, std::vector< CameraModel > > & models, std::map< int, cv::Point3f > & points3DMap, const std::map< int, std::map< int, FeatureBA > > & wordReferences, BAOutliers *outliers=0)</ div >< div class = "ttdoc" > Bundle adjustment: jointly refine poses and 3D points (back-end-level entry point).</ div ></ div >
< div class = "ttc" id = "aclassrtabmap_1_1Optimizer_html_a178bb719b0e22863e29add12c85e14a5" >< div class = "ttname" >< a href = "classrtabmap_1_1Optimizer.html#a178bb719b0e22863e29add12c85e14a5" > rtabmap::Optimizer::iterations</ a ></ div >< div class = "ttdeci" > int iterations() const</ div >< div class = "ttdoc" > Max solver iterations.</ div >< div class = "ttdef" >< b > Definition</ b > < a href = "Optimizer_8h_source.html#l00145" > Optimizer.h:145</ a ></ div ></ div >
< div class = "ttc" id = "aclassrtabmap_1_1Optimizer_html_a18ae8ac76346d1adc68ab176a5b02d16" >< div class = "ttname" >< a href = "classrtabmap_1_1Optimizer.html#a18ae8ac76346d1adc68ab176a5b02d16" > rtabmap::Optimizer::Type</ a ></ div >< div class = "ttdeci" > Type</ div >< div class = "ttdoc" > Graph-optimizer back-end identifier.</ div >< div class = "ttdef" >< b > Definition</ b > < a href = "Optimizer_8h_source.html#l00094" > Optimizer.h:94</ a ></ div ></ div >
2026-08-06 22:56:24 +00:00
< div class = "ttc" id = "aclassrtabmap_1_1Optimizer_html_a278f42e0d250085ac6fe9ed425627acf" >< div class = "ttname" >< a href = "classrtabmap_1_1Optimizer.html#a278f42e0d250085ac6fe9ed425627acf" > rtabmap::Optimizer::optimizeIncremental</ a ></ div >< div class = "ttdeci" > std::map< int, Transform > optimizeIncremental(int rootId, const std::map< int, Transform > & poses, const std::multimap< int, Link > & constraints, std::list< std::map< int, Transform > > *intermediateGraphes=0, double *finalError=0, int *iterationsDone=0)</ div >< div class = "ttdoc" > Pose-graph optimization that grows the graph one node at a time.</ div ></ div >
2026-08-10 00:39:24 +00:00
< div class = "ttc" id = "aclassrtabmap_1_1Optimizer_html_a29ba07e1e829ae616d82756977161c9f" >< div class = "ttname" >< a href = "classrtabmap_1_1Optimizer.html#a29ba07e1e829ae616d82756977161c9f" > rtabmap::Optimizer::isRobust</ a ></ div >< div class = "ttdeci" > bool isRobust() const</ div >< div class = "ttdoc" > If true, use a robust kernel / switchable factors against bad loop closures.</ div >< div class = "ttdef" >< b > Definition</ b > < a href = "Optimizer_8h_source.html#l00149" > Optimizer.h:149</ a ></ div ></ div >
2026-08-06 22:56:24 +00:00
< div class = "ttc" id = "aclassrtabmap_1_1Optimizer_html_a2f7cbdebed9787ffa6b0b30536dfa1a0" >< div class = "ttname" >< a href = "classrtabmap_1_1Optimizer.html#a2f7cbdebed9787ffa6b0b30536dfa1a0" > rtabmap::Optimizer::optimizeBA</ a ></ div >< div class = "ttdeci" > std::map< int, Transform > optimizeBA(int rootId, const std::map< int, Transform > & poses, const std::multimap< int, Link > & links, const std::map< int, Signature > & signatures, std::map< int, cv::Point3f > & points3DMap, std::map< int, std::map< int, FeatureBA > > & wordReferences, bool rematchFeatures=false, const ParametersMap & registrationParameters=ParametersMap())</ div >< div class = "ttdoc" > BA wrapper that derives camera models and correspondences from signatures.</ div ></ div >
2026-08-10 00:39:24 +00:00
< div class = "ttc" id = "aclassrtabmap_1_1Optimizer_html_a32f53d408ef0372c5c196ee89ff5ad79" >< div class = "ttname" >< a href = "classrtabmap_1_1Optimizer.html#a32f53d408ef0372c5c196ee89ff5ad79" > rtabmap::Optimizer::landmarksIgnored</ a ></ div >< div class = "ttdeci" > bool landmarksIgnored() const</ div >< div class = "ttdoc" > If true, landmark/marker observations are dropped.</ div >< div class = "ttdef" >< b > Definition</ b > < a href = "Optimizer_8h_source.html#l00151" > Optimizer.h:151</ a ></ div ></ div >
< div class = "ttc" id = "aclassrtabmap_1_1Optimizer_html_a3bca4e3df1048f8bbad9b3b9473924a2" >< div class = "ttname" >< a href = "classrtabmap_1_1Optimizer.html#a3bca4e3df1048f8bbad9b3b9473924a2" > rtabmap::Optimizer::epsilon</ a ></ div >< div class = "ttdeci" > double epsilon() const</ div >< div class = "ttdoc" > Convergence threshold on cost decrease.</ div >< div class = "ttdef" >< b > Definition</ b > < a href = "Optimizer_8h_source.html#l00148" > Optimizer.h:148</ a ></ div ></ div >
2026-08-06 22:56:24 +00:00
< div class = "ttc" id = "aclassrtabmap_1_1Optimizer_html_a4477c9a5b6651729944726465b5eba7f" >< div class = "ttname" >< a href = "classrtabmap_1_1Optimizer.html#a4477c9a5b6651729944726465b5eba7f" > rtabmap::Optimizer::getConnectedGraph</ a ></ div >< div class = "ttdeci" > void getConnectedGraph(int fromId, const std::map< int, Transform > & posesIn, const std::multimap< int, Link > & linksIn, std::map< int, Transform > & posesOut, std::multimap< int, Link > & linksOut) const</ div >< div class = "ttdoc" > Extracts the connected component reachable from fromId.</ div ></ div >
2026-08-10 00:39:24 +00:00
< div class = "ttc" id = "aclassrtabmap_1_1Optimizer_html_a51485674608bbf910922ecee43cc13aa" >< div class = "ttname" >< a href = "classrtabmap_1_1Optimizer.html#a51485674608bbf910922ecee43cc13aa" > rtabmap::Optimizer::isSlam2d</ a ></ div >< div class = "ttdeci" > bool isSlam2d() const</ div >< div class = "ttdoc" > True if optimizing in SE(2) instead of SE(3).</ div >< div class = "ttdef" >< b > Definition</ b > < a href = "Optimizer_8h_source.html#l00146" > Optimizer.h:146</ a ></ div ></ div >
2026-08-06 22:56:24 +00:00
< div class = "ttc" id = "aclassrtabmap_1_1Optimizer_html_a78b457bec2cdb7bdd320e2bfcca759df" >< div class = "ttname" >< a href = "classrtabmap_1_1Optimizer.html#a78b457bec2cdb7bdd320e2bfcca759df" > rtabmap::Optimizer::create</ a ></ div >< div class = "ttdeci" > static Optimizer * create(const ParametersMap & parameters)</ div >< div class = "ttdoc" > Factory: build an optimizer from a ParametersMap.</ div ></ div >
< div class = "ttc" id = "aclassrtabmap_1_1Optimizer_html_a7e3aff943e77603493a358ff522fa2dc" >< div class = "ttname" >< a href = "classrtabmap_1_1Optimizer.html#a7e3aff943e77603493a358ff522fa2dc" > rtabmap::Optimizer::optimize</ a ></ div >< div class = "ttdeci" > std::map< int, Transform > optimize(int rootId, const std::map< int, Transform > & poses, const std::multimap< int, Link > & constraints, std::list< std::map< int, Transform > > *intermediateGraphes=0, double *finalError=0, int *iterationsDone=0)</ div >< div class = "ttdoc" > Pose-graph optimization (single shot).</ div ></ div >
2026-08-10 00:39:24 +00:00
< div class = "ttc" id = "aclassrtabmap_1_1Optimizer_html_a8bb6372ce4c67fd9b8d54f692ac34238" >< div class = "ttname" >< a href = "classrtabmap_1_1Optimizer.html#a8bb6372ce4c67fd9b8d54f692ac34238" > rtabmap::Optimizer::isCovarianceIgnored</ a ></ div >< div class = "ttdeci" > bool isCovarianceIgnored() const</ div >< div class = "ttdoc" > If true, all edges share an identity information matrix.</ div >< div class = "ttdef" >< b > Definition</ b > < a href = "Optimizer_8h_source.html#l00147" > Optimizer.h:147</ a ></ div ></ div >
2026-08-06 22:56:24 +00:00
< div class = "ttc" id = "aclassrtabmap_1_1Optimizer_html_a93fb09dac068e64de000f692bcb8216f" >< div class = "ttname" >< a href = "classrtabmap_1_1Optimizer.html#a93fb09dac068e64de000f692bcb8216f" > rtabmap::Optimizer::computeBACorrespondences</ a ></ div >< div class = "ttdeci" > void computeBACorrespondences(const std::map< int, Transform > & poses, const std::multimap< int, Link > & links, const std::map< int, Signature > & signatures, std::map< int, cv::Point3f > & points3DMap, std::map< int, std::map< int, FeatureBA > > & wordReferences, bool rematchFeatures=false, bool useLinkTransformAsGuess=false, ParametersMap registrationParameters=ParametersMap())</ div >< div class = "ttdoc" > Build BA correspondences (3D points + per-frame observations) from signatures.</ div ></ div >
< div class = "ttc" id = "aclassrtabmap_1_1Optimizer_html_aa2be82e1f986b1beae103148be7cd520" >< div class = "ttname" >< a href = "classrtabmap_1_1Optimizer.html#aa2be82e1f986b1beae103148be7cd520" > rtabmap::Optimizer::type</ a ></ div >< div class = "ttdeci" > virtual Type type() const =0</ div >< div class = "ttdoc" > Returns the concrete back-end identifier (one of Type).</ div ></ div >
< div class = "ttc" id = "aclassrtabmap_1_1Optimizer_html_aab99f045516162944ad68fdabacb53dc" >< div class = "ttname" >< a href = "classrtabmap_1_1Optimizer.html#aab99f045516162944ad68fdabacb53dc" > rtabmap::Optimizer::optimizeBA</ a ></ div >< div class = "ttdeci" > std::map< int, Transform > optimizeBA(int rootId, const std::map< int, Transform > & poses, const std::multimap< int, Link > & links, const std::map< int, Signature > & signatures, bool rematchFeatures=false, const ParametersMap & registrationParameters=ParametersMap())</ div >< div class = "ttdoc" > BA convenience wrapper: like the overload above but ignores the refined 3D points and observation map...</ div ></ div >
2026-08-10 00:39:24 +00:00
< div class = "ttc" id = "aclassrtabmap_1_1Optimizer_html_aceb68e0f692b81c4a978e46f804515d7" >< div class = "ttname" >< a href = "classrtabmap_1_1Optimizer.html#aceb68e0f692b81c4a978e46f804515d7" > rtabmap::Optimizer::gravitySigma</ a ></ div >< div class = "ttdeci" > float gravitySigma() const</ div >< div class = "ttdoc" > Std-dev (rad) of the gravity prior on roll/pitch; 0 disables it.</ div >< div class = "ttdef" >< b > Definition</ b > < a href = "Optimizer_8h_source.html#l00152" > Optimizer.h:152</ a ></ div ></ div >
< div class = "ttc" id = "aclassrtabmap_1_1Optimizer_html_aedaeb7cc371f3685f8595d9a151f6605" >< div class = "ttname" >< a href = "classrtabmap_1_1Optimizer.html#aedaeb7cc371f3685f8595d9a151f6605" > rtabmap::Optimizer::optimizeBA</ a ></ div >< div class = "ttdeci" > Transform optimizeBA(const Link & link, const CameraModel & model, std::map< int, cv::Point3f > & points3DMap, const std::map< int, std::map< int, FeatureBA > > & wordReferences, BAOutliers *outliers=0)</ div >< div class = "ttdoc" > Refine a single two-frame link via BA.</ div ></ div >
< div class = "ttc" id = "aclassrtabmap_1_1Optimizer_html_aeebd0d5575ab7e9f492b095c05ddb237" >< div class = "ttname" >< a href = "classrtabmap_1_1Optimizer.html#aeebd0d5575ab7e9f492b095c05ddb237" > rtabmap::Optimizer::priorsIgnored</ a ></ div >< div class = "ttdeci" > bool priorsIgnored() const</ div >< div class = "ttdoc" > If true, unary priors on poses are dropped.</ div >< div class = "ttdef" >< b > Definition</ b > < a href = "Optimizer_8h_source.html#l00150" > Optimizer.h:150</ a ></ div ></ div >
2026-08-06 22:56:24 +00:00
< div class = "ttc" id = "aclassrtabmap_1_1Optimizer_html_aeff86117cf69fdae3c25e5bc327a142d" >< div class = "ttname" >< a href = "classrtabmap_1_1Optimizer.html#aeff86117cf69fdae3c25e5bc327a142d" > rtabmap::Optimizer::create</ a ></ div >< div class = "ttdeci" > static Optimizer * create(Optimizer::Type type, const ParametersMap & parameters=ParametersMap())</ div >< div class = "ttdoc" > Factory: build an optimizer of a specific type. Caller owns the result.</ div ></ div >
< div class = "ttc" id = "aclassrtabmap_1_1Optimizer_html_af59c8340394268f9a1eb76fd5709f2c3" >< div class = "ttname" >< a href = "classrtabmap_1_1Optimizer.html#af59c8340394268f9a1eb76fd5709f2c3" > rtabmap::Optimizer::optimize</ a ></ div >< div class = "ttdeci" > virtual std::map< int, Transform > optimize(int rootId, const std::map< int, Transform > & poses, const std::multimap< int, Link > & constraints, cv::Mat & outputCovariance, std::list< std::map< int, Transform > > *intermediateGraphes=0, double *finalError=0, int *iterationsDone=0)</ div >< div class = "ttdoc" > Pose-graph optimization with marginal covariance of rootId.</ div ></ div >
< div class = "ttc" id = "aclassrtabmap_1_1Optimizer_html_afe0381a3b42926b7634027e522766eb1" >< div class = "ttname" >< a href = "classrtabmap_1_1Optimizer.html#afe0381a3b42926b7634027e522766eb1" > rtabmap::Optimizer::isAvailable</ a ></ div >< div class = "ttdeci" > static bool isAvailable(Optimizer::Type type)</ div >< div class = "ttdoc" > Returns whether type was compiled in (its third-party dependency was found).</ div ></ div >
< div class = "ttc" id = "aclassrtabmap_1_1Transform_html" >< div class = "ttname" >< a href = "classrtabmap_1_1Transform.html" > rtabmap::Transform</ a ></ div >< div class = "ttdoc" > Represents a 3D rigid body transformation (rotation + translation).</ div >< div class = "ttdef" >< b > Definition</ b > < a href = "Transform_8h_source.html#l00052" > Transform.h:53</ a ></ div ></ div >
2026-08-23 20:27:42 +00:00
< div class = "ttc" id = "anamespacertabmap_html" >< div class = "ttname" >< a href = "namespacertabmap.html" > rtabmap</ a ></ div >< div class = "ttdef" >< b > Definition</ b > < a href = "BayesFilter_8h_source.html#l00042" > BayesFilter.h:42</ a ></ div ></ div >
2026-08-06 22:56:24 +00:00
< div class = "ttc" id = "anamespacertabmap_html_ad08b6f1796a27dd7316c99c385e2cc55" >< div class = "ttname" >< a href = "namespacertabmap.html#ad08b6f1796a27dd7316c99c385e2cc55" > rtabmap::ParametersMap</ a ></ div >< div class = "ttdeci" > std::map< std::string, std::string > ParametersMap</ div >< div class = "ttdoc" > Parameter keys mapped to their values, as used by every configurable class (see Parameters).</ div >< div class = "ttdef" >< b > Definition</ b > < a href = "Parameters_8h_source.html#l00044" > Parameters.h:44</ a ></ div ></ div >
</ div > <!-- fragment --> </ 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 = "dir_04d49acea3c42cab2afcd35cb2f2a48f.html" > corelib</ a ></ li >< li class = "navelem" >< a class = "el" href = "dir_e996b11fd4b3a747423759b16a8ba4a6.html" > include</ a ></ li >< li class = "navelem" >< a class = "el" href = "dir_ff01f7bc5399ccf9ff1cc91d1f45726a.html" > rtabmap</ a ></ li >< li class = "navelem" >< a class = "el" href = "dir_884419f21456e80aa47bc1d0c2ab0140.html" > core</ a ></ li >< li class = "navelem" >< b > Optimizer.h</ b ></ 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 >