Error generating Odometry Data - KITTI Dataset Sequence 00

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

Error generating Odometry Data - KITTI Dataset Sequence 00

Divyansh
I am trying to get to run RTABMAP with  KITTI dataset, following the roslaunch command and altering few parameters as discussed in these 2 posts:
https://answers.ros.org/question/330157/large-kitti-data-mapor-loopclosure-make-rtabmap_ros-and-the-whole-ubuntu-crash/
https://answers.ros.org/questions/330157/revisions/

I am getting an error in generating Odometry after `35 seconds, how can I resolve this? I also tried playing around with few other parameters for RTAB_Settings and Visual Registration in RTABMAB->Preferences, but still same error.

Not enough inliers found;
OdometryF2M.cpp:557::computeTransform() Registration failed: "Not enough inliers 0/20 (matches=63) between -1 and 351"

Any suggestion on what individual parameters I should tweek with. Thanks.

Reply | Threaded
Open this post in threaded view
|

Re: Error generating Odometry Data - KITTI Dataset Sequence 00

matlabbe
Administrator
I don't what are the spec of your computer, but with rosbags, it is not like processing the dataset offline, so processing power will change the results as less frames will be computed online. I am currently downloading the dataset to test more (not sure why, but can only download at 200KB/s, so I will get it in 27 hours). In the mean time, if you can show the terminal output of the rtabmap/odometry, it could help to see if the processing time is as expected.
Reply | Threaded
Open this post in threaded view
|

Re: Error generating Odometry Data - KITTI Dataset Sequence 00

Divyansh
Laptop Specs: i7-9750H, 16GB RAM and 6GB GTX-1660Ti, I even tried playing the rosbag at 0.5 and 0.1 rate still it fails at same position.

I am attaching ther terminal screenshots: Part where it was working and second when it crashed. Additionally, I tried setting the ROI ratios: [0.001 0 0 0] to prevent decimation error with 1241x376 image size but still I am getting this warning for some frames.





Reply | Threaded
Open this post in threaded view
|

Re: Error generating Odometry Data - KITTI Dataset Sequence 00

matlabbe
Administrator
Hi,

your odometry processing time is similar to mine (around 40 ms), so it may be not the problem. I followed all my instructions from this post, and it is mapping correctly:


Here are the complete instructions:

1. Download a dataset:
wget https://s3.eu-central-1.amazonaws.com/avg-kitti/raw_data/2011_10_03_drive_0027/2011_10_03_drive_0027_sync.zip
wget https://s3.eu-central-1.amazonaws.com/avg-kitti/raw_data/2011_10_03_calib.zip
unzip 2011_10_03_drive_0027_sync.zip
unzip 2011_10_03_calib.zip

2. Copy "image_00/timestamps.txt" to "image_01/timestamps.txt" and "image_02/timestamps.txt" to "image_03/timestamps.txt"

3. Using kitti2bag, to avoid the pandas error with the docker, do:
$ docker run -v `pwd`:/data -it  --entrypoint /bin/bash tomas789/kitti2bag
# pip install pandas==0.23
# /kitti2bag/docker_entrypoint.sh -t 2011_10_03 -r 0027 raw_synced .
# exit
$ sudo chown $USERNAME kitti_2011_10_03_drive_0027_synced.bag

4. Now start rtabmap_ros with:
roslaunch rtabmap_ros rtabmap.launch \
   stereo:="true" \
   left_image_topic:=/kitti/camera_color_left/image_raw \
   right_image_topic:=/kitti/camera_color_right/image_raw \
   left_camera_info_topic:=/kitti/camera_color_left/camera_info \
   right_camera_info_topic:=/kitti/camera_color_right/camera_info \
   rtabmap_args:="--delete_db_on_start \
      --RGBD/CreateOccupancyGrid false \
      --Rtabmap/ImageBufferSize 0 \
      --Odom/ImageBufferSize 0 \
      --Rtabmap/CreateIntermediateNodes true" \
   approx_sync:=false \
   use_sim_time:=true \
   frame_id:=base_link \
   queue_size:=100

5. For the RAM issue, in rtabmap_viz, do window->Preferences, under 3D Rendering panel:
 - set Decimation 8 for Map and Odom columns,
 - set ROI "0.001 0.0 0.0 0.0" for Map and Odom columns,
 - set Maximum Depth to 30 m for Map column.

6. We are all set, start the bag:
rosbag play --clock --pause kitti_2011_10_03_drive_0027_synced.bag

You should see final results as above.
Reply | Threaded
Open this post in threaded view
|

Re: Error generating Odometry Data - KITTI Dataset Sequence 00

Divyansh
I tried following the exact same steps as you have suggested, it improved but it fails after 38 seconds. I tried reducing the bag playback rate to 0.5, it didn't made any difference. I also tried turning off 3D map visualization.

Additionally, I am not sure if there is an issue with RAM usage as I was observed RAM usage and it never increased more than 5 GB.

Can you suggest any other methods that I can follow to further improve, or will it be possible if you could share your configuration file, I can try with? Thanks.


Reply | Threaded
Open this post in threaded view
|

Re: Error generating Odometry Data - KITTI Dataset Sequence 00

matlabbe
Administrator
Can you show the rtabmap version you are using (with dependencies)?

rtabmap --version

I don't use specific configuration file, everything is there is my previous post.
Reply | Threaded
Open this post in threaded view
|

Re: Error generating Odometry Data - KITTI Dataset Sequence 00

Divyansh
Reply | Threaded
Open this post in threaded view
|

Re: Error generating Odometry Data - KITTI Dataset Sequence 00

matlabbe
Administrator
Hi, I was using a version with OpenCV from source (With OpenCV xfeatures2d: true), which used different features by default. However I just tried again with ros binaries:
rtabmap --version
RTAB-Map:              0.20.21
PCL:                    1.10.0
With VTK:                7.1.1
OpenCV:                  4.2.0
With OpenCV xfeatures2d: false
With OpenCV nonfree:     false
With ORB OcTree:          true
With SuperPoint Torch:   false
With Python3:            false
With FastCV:             false
With OpenGV:             false
With Madgwick:            true
With PDAL:               false
With TORO:                true
With g2o:                 true
With GTSAM:              false
With Vertigo:             true
With CVSBA:              false
With Ceres:              false
With OpenNI2:             true
With Freenect:            true
With Freenect2:          false
With K4W2:               false
With K4A:                false
With DC1394:              true
With FlyCapture2:        false
With ZED:                false
With ZED Open Capture:   false
With RealSense:          false
With RealSense SLAM:     false
With RealSense2:         false
With MYNT EYE S:         false
With DepthAI:            false
With libpointmatcher:     true
With CCCoreLib:          false
With octomap:             true
With cpu-tsdf:           false
With open chisel:        false
With Alice Vision:       false
With LOAM:               false
With FLOAM:              false
With FOVIS:              false
With Viso2:              false
With DVO:                false
With ORB_SLAM:           false
With OKVIS:              false
With MSCKF_VIO:          false
With VINS-Fusion:        false
With OpenVINS:           false

I don't see big differences, here is the result:


You may try to show the Odometry/Inliers statistics, to make sure we have similar number of inliers (around 300):
Reply | Threaded
Open this post in threaded view
|

Re: Error generating Odometry Data - KITTI Dataset Sequence 00

ossome
This post was updated on .
I followed all the steps mentioned above, and am getting the same issue while trying to run rtabmap on the mentioned Kitti dataset.
I tried tweaking a couple of parameters in the rtabmap.launch file. I tried different "Odom/Strategy" to use different feature detectors, but it has not been of much help.

I am getting only around 100-120 inliers

Not sure how to proceed with getting it working.
Thanks.
Reply | Threaded
Open this post in threaded view
|

Re: Error generating Odometry Data - KITTI Dataset Sequence 00

matlabbe
Administrator
Hi,

tested again even with images not exactly synchronized, cannot reproduce your problem...

You can make sure you are using the rtabmap binaries by re-sourcing only /opt/ros/noetic/setup.bash before the launch:
sudo apt install ros-noetic-rtabmap-ros
source /opt/ros/noetic/setup.bash
roslaunch ...

You can also show the actual processing time on your computer. Here are my results:


We can see for the 37 first seconds, we don't have the same number of inliers: