1
$\begingroup$

I am trying to run this rtabmap config on my Jetson Orin:

ros2 launch rtabmap_launch rtabmap.launch.py \
    frame_id:=base_link \
    rgb_topic:=/camera/color/image_raw \
    depth_topic:=/camera/depth/image_rect_raw \
    camera_info_topic:=/camera/color/camera_info \
    approx_sync:=true \
    subscribe_rgb:=true \
    subscribe_depth:=true \
    rtabmap_viz:=false \
    rtabmap_args:="-d" \
    qos_image:=2 \
    qos_imu:=2 \
    qos_camera_info:=2

The odometry seems good (visualizations seems stable and updated promptly), but the mapper doesn't do anything but report it doesn't receive data:

[rtabmap-2] [WARN] [1708949110.123611636] [rtabmap.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-2] rtabmap subscribed to (approx sync):
[rtabmap-2]    /rtabmap/odom \
[rtabmap-2]    /camera/color/image_raw \
[rtabmap-2]    /camera/depth/image_rect_raw \
[rtabmap-2]    /camera/color/camera_info \
[rtabmap-2]    /rtabmap/odom_info

I run this here with the apt-installed version, but I get the same error on another computer with the source-install.

Is anything wrong with the data?

$ ros2 topic hz /rtabmap/odom
average rate: 19.134
    min: 0.051s max: 0.055s std dev: 0.00104s window: 21
average rate: 19.097
    min: 0.051s max: 0.055s std dev: 0.00094s window: 41

$ ros2 topic delay /rtabmap/odom
average delay: 0.107
    min: 0.093s max: 0.122s std dev: 0.00964s window: 18
average delay: 0.106
    min: 0.089s max: 0.123s std dev: 0.00966s window: 37

$ ros2 topic hz /camera/color/image_raw
average rate: 30.010
    min: 0.032s max: 0.039s std dev: 0.00148s window: 31
average rate: 29.480
    min: 0.032s max: 0.072s std dev: 0.00508s window: 60

$ ros2 topic delay /camera/color/image_raw
average delay: 0.037
    min: 0.034s max: 0.039s std dev: 0.00137s window: 29
average delay: 0.037
    min: 0.034s max: 0.040s std dev: 0.00138s window: 57

$ ros2 topic hz /camera/depth/image_rect_raw
average rate: 28.994
    min: 0.024s max: 0.065s std dev: 0.00627s window: 31
average rate: 29.545
    min: 0.024s max: 0.065s std dev: 0.00467s window: 62

$ ros2 topic delay /camera/depth/image_rect_raw
average delay: 0.040
    min: 0.035s max: 0.045s std dev: 0.00207s window: 29
average delay: 0.040
    min: 0.035s max: 0.045s std dev: 0.00204s window: 59

$ ros2 topic hz /rtabmap/odom_info
average rate: 17.805
    min: 0.048s max: 0.078s std dev: 0.00835s window: 19
average rate: 18.363
    min: 0.019s max: 0.084s std dev: 0.00965s window: 38

$ ros2 topic delay /rtabmap/odom_info
average delay: 0.122
    min: 0.107s max: 0.136s std dev: 0.00913s window: 18

The delays look high, but is it too bad?

Is there a parameter that I can adjust to make the mapper still try to work with the data it gets?

How can I fix this?

$\endgroup$

1 Answer 1

0
$\begingroup$

Apparantly this had something to do with the topic QoS. When I specified the QoS for all topics with the qos argument, it worked:

ros2 launch rtabmap_launch rtabmap.launch.py \
    frame_id:=base_link \
    rgb_topic:=/camera/color/image_raw \
    depth_topic:=/camera/depth/image_rect_raw \
    camera_info_topic:=/camera/color/camera_info \
    approx_sync:=true \
    subscribe_rgb:=true \
    subscribe_depth:=true \
    rtabmap_viz:=false \
    rtabmap_args:="-d" \
    qos:=2
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.