The problem is with running the euroc_datasets.launch file.

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

The problem is with running the euroc_datasets.launch file.

ground
This post was updated on .
CONTENTS DELETED
The author has deleted this message.
Reply | Threaded
Open this post in threaded view
|

Re: The problem is with running the euroc_datasets.launch file.

matlabbe
Administrator
Just tried with VINS-fusion installed with opencv4 support, and executing exactly your commands and it works (I am using latest rtabmap and rtabmap_ros from source). It worked better though playing the bag after 50 sec:

roslaunch rtabmap_examples euroc_datasets.launch \
    args:="Odom/Strategy 9 OdomVINS/ConfigPath ~/catkin_ws/src/VINS-Fusion/config/euroc/euroc_stereo_imu_config.yaml" \
    MH_seq:=true \
    raw_images_for_odom:=true

rosbag play --clock -s 52 MH_01_easy.bag


Which rtabmap version are you using? How VINS-Fusion was installed?


Reply | Threaded
Open this post in threaded view
|

Re: The problem is with running the euroc_datasets.launch file.

ground
Thank you for your reply. I found the answer in your response to questions from others and solved the problem.

However, I have encountered other issues. I am now trying to use stereo cameras with IMU for rtabmap odometry. I am using the D455 camera.

After running the command "roslaunch rtabmap_launch rtabmap.launch rtabmap_args:="--delete_db_on_start" left_image_topic:=/stereo/left/image_raw right_image_topic:=/stereo/right/image_raw left_camera_info_topic:=/stereo/left/camera_info right_camera_info_topic:=/stereo/right/camera_info stereo:=true wait_imu_to_init:=true imu_topic:=/rtabmap/imu",
a window pops up with content,
[ INFO] [1703421440.284319928]: Odom: quality=262, std dev=0.023027m|0.060975rad, update time=0.068732s
[ INFO] [1703421440.344247606]: Odom: quality=263, std dev=0.025200m|0.060330rad, update time=0.057547s
[ INFO] [1703421440.408446842]: Odom: quality=245, std dev=0.027512m|0.062208rad, update time=0.062801s
[ INFO] [1703421440.468802214]: Odom: quality=271, std dev=0.025105m|0.060330rad, update time=0.058901s
[ INFO] [1703421440.532898508]: Odom: quality=246, std dev=0.025510m|0.060975rad, update time=0.057006s
[ INFO] [1703421440.602631941]: Odom: quality=248, std dev=0.025627m|0.064474rad, update time=0.059362s
[ INFO] [1703421440.668927937]: Odom: quality=240, std dev=0.025168m|0.064474rad, update time=0.059415s
[ INFO] [1703421440.733355469]: Odom: quality=255, std dev=0.029201m|0.060975rad, update time=0.057126s



 but after slight movement, the following errors and warnings appear.
[ERROR] (2023-12-24 20:37:30.458) Rtabmap.cpp:1348::process() RGB-D SLAM mode is enabled, memory is incremental but no odometry is provided. Image 1646 is ignored!
[ INFO] [1703421450.458865649]: rtabmap (96): Rate=1.00s, Limit=0.000s, Conversion=0.0013s, RTAB-Map=0.0002s, Maps update=0.0000s pub=0.0000s (local map=12, WM=12)
[ WARN] (2023-12-24 20:37:30.490) Features2d.cpp:837::generateKeypoints3D() A large number (527/822) of stereo correspondences are rejected! Optical flow may have failed because images are not calibrated, the background is too far (no disparity between the images), maximum disparity may be too small (128.000000) or that exposure between left and right images is too different.
[ WARN] (2023-12-24 20:37:30.539) OdometryF2M.cpp:566::computeTransform() Registration failed: "Not enough inliers 10/20 (matches=73) between -1 and 1239" (guess=xyz=0.000000,0.000000,0.000000 rpy=0.092260,0.057604,-0.533286)
[ WARN] (2023-12-24 20:37:30.539) OdometryF2M.cpp:314::computeTransform() Failed to find a transformation with the provided guess (xyz=0.000000,0.000000,0.000000 rpy=0.092260,0.057604,-0.533286), trying again without a guess.
[ WARN] (2023-12-24 20:37:30.628) OdometryF2M.cpp:556::computeTransform() Trial with no guess still fail.


I'm puzzled why it still shows me in RGB-D mode, even though I have already made modifications in the rtabmap.launch file. How can I correctly provide odometry?

Thanks
Reply | Threaded
Open this post in threaded view
|

Re: The problem is with running the euroc_datasets.launch file.

matlabbe
Administrator
Hi, you should add "stereo:=true" argument to rtabmap.launch command to explicitly tell rtabmap to use stereo. However, in your log it seems using stereo data, not sure why.

It seems odometry got lost:
"[ WARN] (2023-12-24 20:37:30.539) OdometryF2M.cpp:566::computeTransform() Registration failed: "Not enough inliers 10/20 (matches=73) between -1 and 1239" (guess=xyz=0.000000,0.000000,0.000000 rpy=0.092260,0.057604,-0.533286) "

That message:
"[ WARN] (2023-12-24 20:37:30.490) Features2d.cpp:837::generateKeypoints3D() A large number (527/822) of stereo correspondences are rejected! Optical flow may have failed because images are not calibrated, the background is too far (no disparity between the images), maximum disparity may be too small (128.000000) or that exposure between left and right images is too different. "

can indicate that left and right frames have different exposure, there are just not enough good features to track (try not pointing the camera towards a featureless area) or there is a bad synchronization. Normally with stereo:=true, approx_sync should be false, otherwise explicitly set "approx_sync:=false".