[Closed] Trying to set RTAB Map, getting warnings for unavailable topics

Hi all,

I am trying to use the RGBD camera to 3d map the gazebo environment, but i am getting the error down below. I checked if the topics are publishing separately and they are. I am not sure what is happening here. Along with the rosbot default file that puts it in the turtlebot environment i launched the below attached launch file for mapping,

Error:
[ WARN] [1706436313.807297651, 1190.770000000]: /rtabmap/rtabmap: Did not receive data since 5 seconds! Make sure the input topics are published (“$ rostopic hz my_topic”) and the timestamps in their header are set. If topics are coming from different computers, make sure the clocks of the computers are synchronized (“ntpdate”). If topics are not published at the same rate, you could increase “queue_size” parameter (current=10).
/rtabmap/rtabmap subscribed to (approx sync):
/camera/rgb/image_raw
/camera/depth/image_raw
/camera/rgb/camera_info \

Launch file:

<node name="rtabmap" pkg="rtabmap_slam" type="rtabmap" output="screen" args="$(arg args)">
  <param name="database_path"       type="string" value="$(arg database_path)"/>
  <param name="frame_id"            type="string" value="base_link"/>
  <param name="wait_for_transform_duration"  type="double"   value="$(arg wait_for_transform)"/>
  <param name="subscribe_depth"     type="bool"   value="true"/>
  <param name="subscribe_scan"      type="bool"   value="true"/>
  <param name="map_always_update" type="bool" value="true"/>


      <!-- When sending goals on /rtabmap/goal topic, use actionlib to communicate with move_base --> 
  <param name="use_action_for_goal" type="bool" value="true"/>
      <remap from="move_base"            to="/move_base"/>

  <!-- inputs -->
  <remap from="scan"            to="/scan"/>
  <remap from="rgb/image"       to="$(arg rgb_topic)"/>
  <remap from="depth/image"     to="$(arg depth_topic)"/>
  <remap from="rgb/camera_info" to="$(arg camera_info_topic)"/>

      <!-- Fix odom covariance as in simulation the covariance in /odom topic is high (0.1 for linear and 0.05 for angular) -->
      <param unless="$(arg rgbd_odometry)" name="odom_frame_id" value="odom"/>
      <param unless="$(arg rgbd_odometry)" name="odom_tf_linear_variance" value="0.001"/>
      <param unless="$(arg rgbd_odometry)" name="odom_tf_angular_variance" value="0.001"/>
  
  <!-- output -->
  <remap from="grid_map" to="/map"/>

  <!-- RTAB-Map's parameters: do "rosrun rtabmap rtabmap (double-dash)params" to see the list of available parameters. -->
  <param name="RGBD/ProximityBySpace"        type="string" value="true"/>   <!-- Local loop closure detection (using estimated position) with locations in WM -->
  <param name="RGBD/OptimizeFromGraphEnd"    type="string" value="false"/>  <!-- Set to false to generate map correction between /map and /odom -->
  <param name="Kp/MaxDepth"                  type="string" value="4.0"/>
  <param name="Reg/Strategy"                 type="string" value="0"/>      <!-- Loop closure transformation: 0=Visual, 1=ICP, 2=Visual+ICP -->
  <param name="Icp/CorrespondenceRatio"      type="string" value="0.3"/>
  <param name="Vis/MinInliers"               type="string" value="15"/>      <!-- 3D visual words minimum inliers to accept loop closure -->
  <param name="Vis/InlierDistance"           type="string" value="0.1"/>    <!-- 3D visual words correspondence distance -->
  <param name="RGBD/AngularUpdate"           type="string" value="0.1"/>    <!-- Update map only if the robot is moving -->
  <param name="RGBD/LinearUpdate"            type="string" value="0.1"/>    <!-- Update map only if the robot is moving -->
  <param name="RGBD/ProximityPathMaxNeighbors" type="string" value="0"/> 
  <param name="Rtabmap/TimeThr"              type="string" value="0"/>
  <param name="Mem/RehearsalSimilarity"      type="string" value="0.30"/>
  <param name="Reg/Force3DoF"                type="string" value="true"/>
  <param name="GridGlobal/MinSize"           type="string" value="20"/>

  
  <!-- localization mode -->
  <param     if="$(arg localization)" name="Mem/IncrementalMemory" type="string" value="false"/>
  <param unless="$(arg localization)" name="Mem/IncrementalMemory" type="string" value="true"/>
  <param name="Mem/InitWMWithAllNodes" type="string" value="$(arg localization)"/> 
</node>

<!-- Odometry : ONLY for testing without the actual robot! /odom TF should not be already published. -->
<node if="$(arg rgbd_odometry)" pkg="rtabmap_odom" type="rgbd_odometry" name="rgbd_odometry" output="screen">
  <param name="frame_id"                    type="string" value="base_footprint"/>
  <param name="wait_for_transform_duration" type="double" value="$(arg wait_for_transform)"/>
  <param name="Reg/Force3DoF"               type="string" value="true"/>
  <param name="Vis/InlierDistance"          type="string" value="0.05"/>
  
  <remap from="rgb/image"       to="$(arg rgb_topic)"/>
  <remap from="depth/image"     to="$(arg depth_topic)"/>
  <remap from="rgb/camera_info" to="$(arg camera_info_topic)"/>
</node>

<!-- visualization with rtabmapviz -->
<node if="$(arg rtabmapviz)" pkg="rtabmap_viz" type="rtabmap_viz" name="rtabmap_viz" args="-d $(find rtabmap_viz)/launch/config/rgbd_gui.ini" output="screen">
  <param name="subscribe_depth"             type="bool" value="true"/>
  <param name="subscribe_scan"              type="bool" value="true"/>
  <param name="frame_id"                    type="string" value="base_link"/>
  <param name="wait_for_transform_duration" type="double" value="$(arg wait_for_transform)"/>
  <param name="subscribe_depth" type="bool" value="true"/>
  <param name="subscribe_scan" type="bool" value="true"/>
  <param name="queue_size" type="int" value="300"/>


  <remap from="rgb/image"       to="$(arg rgb_topic)"/>
  <remap from="depth/image"     to="$(arg depth_topic)"/>
  <remap from="rgb/camera_info" to="$(arg camera_info_topic)"/>
  <remap from="scan"            to="/scan"/>
</node>

Hello @leaf_cat,

I’m sorry you had to wait so long for a reply. I don’t really know how to help you, but if you would like to use the simulation, I recommend using the simulation in gazebo ignition, which you can run in two ways:

  1. Natively installed ROS Humble manual in the repository:
  1. Using docker simulation. We have prepared demo with mapping and navigation working in gazebo.

I hope the above information will be useful to you.
Regards

This topic was automatically closed after 14 days. New replies are no longer allowed.