Did Not Receive data within 5 secs

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Did Not Receive data within 5 secs

bruchpilot123
Hello everybody,

i am currently working on my bachelor thesis and i am quite stuck for two days now.
I have following error:

[ WARN] [1615475290.390958688]: /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=1000).
/rtabmap subscribed to (approx sync):
   /zedA/zed_node_A/odom \
   /zedA/zed_node_A/rgb/image_rect_color \
   /zedA/zed_node_A/depth/depth_registered \
   /zedA/zed_node_A/rgb/camera_info \
   /bf_lidar/points_raw


But if I check with hz topic, everything seems to be normal:

                 topic                     rate   min_delta   max_delta   std_dev    window
===========================================================================================
/zedA/zed_node_A/odom                     28.53   6.104e-05   0.09813     0.01571    1373
/zedA/zed_node_A/rgb/image_rect_color     14.92   0.02464     0.2635      0.01287    1373
/zedA/zed_node_A/depth/depth_registered   14.99   0.02365     0.1135      0.01048    721
/zedA/zed_node_A/rgb/camera_info          29.99   7.582e-05   0.1122      0.03309    721
/bf_lidar/points_raw                      6.292   0.1442      0.1699      0.004314   720

My launch file is the following:

   
<node name="rtabmap" pkg="rtabmap_ros" type="rtabmap" args="-d $(find rtabmap_ros)/launch/config/rgbd_gui.ini" output="screen">
        <remap from="/odom" to="/zedA/zed_node_A/odom" />
        <remap from="/rgb/image" to="/zedA/zed_node_A/rgb/image_rect_color"/>
        <remap from="/rgb/camera_info" to="/zedA/zed_node_A/rgb/camera_info"/>
        <remap from="/depth/image" to="/zedA/zed_node_A/depth/depth_registered"/>
        <remap from="/scan_cloud" to="/bf_lidar/points_raw"/>
        <param name="Optimizer/Iterations" type="int" value="50"/>
        <param name="subscribe_depth"      type="bool" value="true"/>
        <param name="subscribe_scan_cloud" type="bool" value="true"/>
        <param name="subscribe_stereo"     type="bool" value ="false"/>
        <param name="frame_id"             type="string" value="base_link"/>
        <param name="map_frame_id"         type="string" value ="map"/>
        <param name="publish_tf"           type="bool" value ="false"/>
        <param name="subscribe_rgb" type="bool" value="false"/>
        <param name="Grid/FromDepth" type="string" value="false"/>
        <param name="queue_size" type="int" value="1000"/>
    </node>
</launch>


I am using a ZED2 Camera on a Nvidia Jetson (single system).


Please help me, i feel totally lost and i really need to get run rtabmap.

Kindly regards

bruchpilot123
Reply | Threaded
Open this post in threaded view
|

Re: Did Not Receive data within 5 secs

seanxu112
One of the parameter that helped me resolved this issue is a parameter called approx_sync. To my knowledge it is used to help if the topics are not perfectly synchronized, especially if you have bought lidar and camera individually.

Check if this is helpful, if not I’m sure Mathieu will have a good answer for you.

Sincerely,
Sean
Reply | Threaded
Open this post in threaded view
|

Re: Did Not Receive data within 5 secs

bruchpilot123
Hello Sean,

thanks for the fast reply. But that did not help, i still have the same issue and the same error (warnings)...

    <node name="rtabmap" pkg="rtabmap_ros" type="rtabmap" args="-d $(find rtabmap_ros)/launch/config/rgbd_gui.ini" output="screen">
        <remap from="/odom" to="/zedA/zed_node_A/odom" />
        <remap from="/rgb/image" to="/zedA/zed_node_A/rgb/image_rect_color"/>
        <remap from="/rgb/camera_info" to="/zedA/zed_node_A/rgb/camera_info"/>
        <remap from="/depth/image" to="/zedA/zed_node_A/depth/depth_registered"/>
        <remap from="/scan_cloud" to="/bf_lidar/points_raw"/>
        <param name="Optimizer/Iterations" type="int" value="50"/>
        <param name="subscribe_depth"      type="bool" value="true"/>
        <param name="subscribe_scan_cloud" type="bool" value="true"/>
        <param name="subscribe_stereo"     type="bool" value ="false"/>
        <param name="frame_id"             type="string" value="base_link"/>
        <param name="map_frame_id"         type="string" value ="map"/>
        <param name="publish_tf"           type="bool" value ="false"/>
        <param name="subscribe_rgb" type="bool" value="false"/>
        <param name="Grid/FromDepth" type="string" value="false"/>
        <param name="queue_size" type="int" value="1000"/>
        <param name="approx_sync" type="bool" value="true"/>
    </node>
</launch>

Kindly regards,

bruchpilot123
Reply | Threaded
Open this post in threaded view
|

Re: Did Not Receive data within 5 secs

seanxu112
Have you seen this post: https://github.com/stereolabs/zed-ros-wrapper/pull/557?
Found it in http://wiki.ros.org/rtabmap_ros/Tutorials/StereoHandHeldMapping in section 2.2 which Mathieu recommended running this:
roslaunch zed_wrapper zed_no_tf.launch

Hopefully this will work.

Sincerely,
Sean
Reply | Threaded
Open this post in threaded view
|

Re: Did Not Receive data within 5 secs

matlabbe
Administrator
Hi,

a queue_size of 1000 is quite huge. With the rates you shown, the default queue_size of 10 should have worked. I would recommend to use rgbd_sync to pre-sync zed images together into a rgbd_image before rtabmap node. An example of this can be found here.

While all your topics are published, to last thing that could block ros synchronizer to get the topics is that if there are topics with null timestamp. In particular, check in /bf_lidar/points_raw if there is a valid timestamp.

EDIT: and as explained in the warning, check also if the timestamps are from the same clock, otherwise if from different computers, synchronize their clocks.

cheers,
Mathieu