How to localize in a previously created map using ZED, Laser and odom in RTABMap_ros?
I am able to create a rtabmap using zed, laser and odom according to Kinect + Odometry + 2D laser in this tutorial http://wiki.ros.org/rtabmap_ros/Tutor...
But this tutorial does not tell how to localise once we start the run again. This tutorial http://wiki.ros.org/rtabmap_ros/Tutor...
tells how to localise but that way is not working with the previous Kinect + Odom +2D Laser approach. How do I localize?
This is what my launch file launches
<!-- Localization-only mode -->
<arg name="localization" default="false"/>
<arg if="$(arg localization)" name="rtabmap_args" default=""/>
<arg unless="$(arg localization)" name="rtabmap_args" default="--delete_db_on_start"/>
<node name="rtabmap" pkg="rtabmap_ros" type="rtabmap" output="screen" args="$(arg rtabmap_args)">
<param name="frame_id" type="string" value="base_link"/>
<param name="subscribe_depth" type="bool" value="true"/>
<param name="subscribe_scan" type="bool" value="true"/>
<remap from="rgb/image" to="/zed/left/image_rect_color"/>
<remap from="depth/image" to="/zed/depth/depth_registered"/>
<remap from="rgb/camera_info" to="/zed/left/camera_info"/>
<remap from="/rtabmap/odom" to="/odom"/>
<remap from="/rtabmap/scan" to="/scan"/>
<param name="queue_size" type="int" value="1"/>
<remap from="grid_map" to="map"/>
<param name="RGBD/NeighborLinkRefining" type="string" value="true"/>
<param name="RGBD/ProximityBySpace" 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/OptimizeFromGraphEnd" type="string" value="false"/>
<param name="Optimizer/Slam2D" type="string" value="true"/>
<param name="Reg/Strategy" type="string" value="1"/>
<param name="Reg/Force3DoF" type="string" value="true"/>
<param name="Vis/MinInliers" type="string" value="5"/>
<param name="Vis/InlierDistance" type="string" value="0.1"/>
<param name="Rtabmap/TimeThr" type="string" value="700"/>
<param name="Mem/RehearsalSimilarity" type="string" value="0.45"/>
<!-- localization mode -->
<param if="$(arg localization)" name="Mem/IncrementalMemory" type="string" value="false"/>
<param if="$(arg localization)" name="Mem/InitWMWithAllNodes" type="string" value="true"/>
</node>
This is what I get when I set localization to true.
[ WARN] (2018-05-04 10:58:12.928) Rtabmap.cpp:990::process() Update map correction based on last localization saved in database! correction = xyz=-39.871330,14.157864,0.835705 rpy=-0.038996,-0.008449,-0.733314, nearest id = 173 of last pose = xyz=-10.255625,18.225515,0.453622 rpy=0.039121,0.003428,2.411816, odom = xyz=19.276752,22.848824,0.346089 rpy=0.000095,-0.004879,-3.137862
[ WARN] (2018-05-04 10:58:13.163) Rtabmap.cpp:1913::process() Rejected loop closure 9 -> 174: Cannot compute transform (converged=false var=1.000000)
[ WARN] [1525411693.255677825, 4.199000000]: Many occupancy grids should be loaded (~167), this may take a while to update the map(s)...
[ WARN] (2018-05-04 10:58:13.800) MapsManager.cpp:497::updateMapCaches() Occupancy grid for location 94 should be added to global map (e..g, a ROS node is subscribed to any occupancy grid output) but it cannot be found in memory. For convenience, the occupancy grid is regenerated. Make sure parameter "RGBD/CreateOccupancyGrid" is true to avoid this warning for the next locations added to map. For older ...