Re: Navigation Stack + rtabmap requesting map configuration problem
Posted by
mjedmonds on
URL: http://official-rtab-map-forum.206.s1.nabble.com/Navigation-Stack-rtabmap-requesting-map-configuration-problem-tp1378p1415.html
Thanks matlabbe! You were right. I was following the navigation tutorial, which shows a nav_msgs/GetMap, which is a service call. But it is working with the /proj_map topic.
Now, I'm having another problem with the Reg/Force3DoF parameter being respected. I'm quiet puzzled because it was working previously. Here's a screenshot of the odom I'm seeing:

And here's the corresponding roslaunch file:
rtabmap.launch<launch>
<arg name="publish_odom_tf" default="true"/>
<arg name="publish_map_tf" default="true"/>
<arg name="localization" default="true" />
<arg if="$(arg localization)" name="mapping" value="false" />
<arg unless="$(arg localization)" name="mapping" value="true" />
<arg if="$(arg localization)" name="rtabmap_args" value="" />
<arg unless="$(arg localization)" name="rtabmap_args" value="--delete_db_on_start" />
<arg name="frame_id" default="base_link"/>
<arg name="wait_for_transform_duration" default="0.5"/>
<arg name="wait_for_transform" default="true"/>
<arg name="rgb/image" default="/camera/rgb/image_rect_color"/>
<arg name="depth/image" default="/camera/depth_registered/image_raw"/>
<arg name="rgb/camera_info" default="/camera/rgb/camera_info"/>
<group ns="rtabmap">
<arg name="strategy" default="0" />
<arg name="feature" default="6" />
<arg name="nn" default="3" />
<arg name="max_depth" default="6.0" />
<arg name="min_inliers" default="20" />
<arg name="inlier_distance" default="0.02" />
<arg name="local_map" default="1000" />
<arg name="gftt_max_corners" default="1000" />
<arg name="gftt_min_distance" default="7" />
<!-- Odometry -->
<node pkg="rtabmap_ros" type="rgbd_odometry" name="rgbd_odometry" output="screen">
<remap from="rgb/image" to="$(arg rgb/image)"/>
<remap from="depth/image" to="$(arg depth/image)"/>
<remap from="rgb/camera_info" to="$(arg rgb/camera_info)"/>
<!-- Force 2D odometry -->
<param name="Reg/Force2D" type="string" value="true"/>
<param name="frame_id" type="string" value="$(arg frame_id)"/>
<param name="wait_for_transform_duration" type="double" value="$(arg wait_for_transform_duration)" />
<param name="wait_for_transform" type="bool" value="$(arg wait_for_transform)" />
<param name="publish_tf" type="bool" value="$(arg publish_odom_tf)" />
<param name="Vis/CorNNType" type="string" value="$(arg nn)"/>
<param name="Vis/MaxDepth" type="string" value="$(arg max_depth)"/>
<param name="Vis/MinInliers" type="string" value="$(arg min_inliers)"/>
<param name="Vis/InlierDistance" type="string" value="$(arg inlier_distance)"/>
<param name="OdomF2M/LocalHistorySize" type="string" value="$(arg local_map)"/>
<param name="Vis/MaxFeatures" type="string" value="$(arg gftt_max_corners)"/>
<param name="GFTT/MinDistance" type="string" value="$(arg gftt_min_distance)"/>
</node>
<node name="rtabmap" pkg="rtabmap_ros" type="rtabmap" output="screen" args="$(arg rtabmap_args)">
<param name="frame_id" type="string" value="$(arg frame_id)"/>
<param name="publish_tf" type="bool" value="$(arg publish_map_tf)" />
<param name="subscribe_depth" type="bool" value="true"/>
<remap from="odom" to="odom"/>
<remap from="rgb/image" to="$(arg rgb/image)"/>
<remap from="depth/image" to="$(arg depth/image)"/>
<remap from="rgb/camera_info" to="$(arg rgb/camera_info)"/>
<param name="queue_size" type="int" value="10"/>
<param name="wait_for_transform_duration" type="double" value="$(arg wait_for_transform_duration)" />
<param name="wait_for_transform" type="bool" value="$(arg wait_for_transform)" />
<!-- LOCALIZATION OR MAPPING MODE -->
<param name="Mem/IncrementalMemory" type="string" value="$(arg mapping)"/>
<param name="Mem/InitWMWithAllNodes" type="string" value="$(arg localization)"/>
<!--<param name="Mem/IncrementalMemory" type="string" value="true"/>-->
<!-- RTAB-Map's parameters -->
<!-- Force 2D mapping (constrained to x-y plane + yaw) -->
<param name="Reg/Force3DoF" type="string" value="true"/>
<param name="Optimizer/Slam2D" type="string" value="true"/>
<!--<param name="Reg/Strategy" type="string" value="1"/> [> 0=Visual, 1=ICP, 2=Visual+ICP <]-->
<param name="Rtabmap/DetectionRate" type="string" value="3.0" />
<param name="DbSqlite3/InMemory" type="string" value="true" />
<param name="Vis/MinInliers" type="string" value="10"/>
<param name="Vis/InlierDistance" type="string" value="$(arg inlier_distance)"/>
</node>
</group>
</launch>
Any tips on what might be wrong, or is this expected behavior? Force 3DoF should zero any z-translation...
Thanks!