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!