Hi matlabbe,
I'm facing an issue regarding the loop closure detection. When I try to postprocess a db offline with the databaseViewer, and try to add more loop closures (both manually and automatically), I'm getting the following error which makes impossible to increase the number of loop closures:
[ERROR] (2018-07-18 10:20:18.149) RegistrationIcp.cpp:1174::computeTransformationImpl() RegistrationIcp cannot do registration with a null guess.
The error shows in both laser and RGBD mapping. Is this the expected behaviour? I don't now if I'm missing some steps... I'll copy below the parameters I'm using in case they can help. They are based on the multimapping demo, but some of them have been changed to improve the loop closure detection in long runs (I'm mapping a huge office).
<!-- RTAB-Map's parameters: do "rosrun rtabmap rtabmap (double-dash)params" to see the list of available parameters. -->
<!--param name="Rtabmap/TimeThr" type="string" value="700"/-->
<param name="Rtabmap/DetectionRate" type="string" value="1"/> <!-- def= 1, better 2-->
<param name="Mem/RehearsalSimilarity" type="string" value="0.45"/>
<param name="Kp/DetectorStrategy" type="string" value="0"/> <!-- use SURF -->
<param name="SURF/HessianThreshold" type="string" value="60"/> <!-- def=500, p=60 -->
<param name="Kp/IncrementalFlann" type="string" value="true"/> <!-- ¿? -->
<param name="Kp/TfIdfLikelihoodUsed" type="string" value="true"/> <!-- ¿? -->
<param name="RGBD/AngularUpdate" type="string" value="0.01"/>
<param name="RGBD/LinearUpdate" type="string" value="0.01"/>
<param name="RGBD/NeighborLinkRefining" type="string" value="true"/> <!--odom with laser-->
<param name="RGBD/ProximityBySpace" type="string" value="false"/>
<param name="RGBD/ProximityByTime" type="string" value="false"/>
<param name="RGBD/OptimizeFromGraphEnd" type="string" value="false"/> <!-- ¿? -->
<param name="RGBD/OptimizeMaxError" type="string" value="1.0"/> <!--def=1.0-->
<param name="RGBD/ProximityPathMaxNeighbors" type="string" value="10"/>
<param name="RGBD/CreateOccupancyGrid" type="string" value="true"/>
<param name="RGBD/ProximityMaxGraphDepth" type="string" value="0"/>
<param name="RGBD/ProximityPathFilteringRadius" type="string" value="1"/>
<!--param name="RGBD/LocalImmunizationRatio" type="string" value="0.55"/-->
<param name="Optimizer/Strategy" type="string" value="1"/> <!-- TORO=0, g20=1 -->
<param name="Optimizer/Iterations" type="string" value="100"/>
<param name="Bayes/FullPredictionUpdate" type="string" value="true"/>
<param name="Reg/Strategy" type="string" value="1"/> <!-- ICP -->
<param name="Reg/Force3DoF" type="string" value="true"/>
<!-- As we are not using visual odometry, Vis params are not used, only ICP params -->
<param name="Vis/MinInliers" type="string" value="5"/>
<param name="Vis/MaxDepth" type="string" value="4.0"/>
<param name="Vis/FeatureType" type="string" value="0"/> <!-- use SURF -->
<param name="Icp/Iterations" type="string" value="60"/>
<param name="Icp/VoxelSize" type="string" value="0"/>
<!--param name="Icp/Epsilon" type="string" value="0.01"/-->
<param name="Grid/FromDepth" type="string" value="false"/>
<!--param name="Grid/Scan2dUnknownSpaceFilled" type="string" value="true"/--> <!--Fill unknown space if laser map is selected-->
<param name="Grid/RangeMax" type="string" value="4.0"/>
<param name="Grid/3D" type="string" value="false"/>
<!--param name="GridGlobal/FootprintRadius" type="string" value="0.45"/--> <!-- 0.54 -->
<param name="GridGlobal/MinSize" type="string" value="40"/> <!-- -->
Thanks for your help.