shiva16 / rtabmap

Automatically exported from code.google.com/p/rtabmap
0 stars 0 forks source link

Odom is lost. Not enough inliers error #24

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. roslaunch rtabmap rgbd_mapping.launch . I am running a hand held Kinect XBox 
360 for mapping purpose and plan to use it for visual odom and localization as 
well. 

What is the expected output? What do you see instead?
The mapping begins normally and then all of a sudden the 3d map screen goes 
wierdly reddish around the edges and the map is no longer being built.
screen shot of the gui is attached.

What version of the product are you using? On what operating system?
Ros Indigo 1.11.9 and latest Rtabmap ( i cant find the version info on 
package.xml but I downloaded it last week )

Please provide any additional information below.

The strange thing is it works sometimes and breaks unexpectedly but fairly 
frequent. The only fix I have currently is to dump the memory and restart 
mapping again. I have been able to occasionally build a complete map but I have 
to try 5-6 times to get a good run where it doesnt crash. 

I have attached the entire the output from terminal but thats too long. The 
important errors that i see just when the GUI breaks down are :

[ WARN] (2014-11-20 13:15:15.131) Odometry.cpp:343::computeTransform() 
Transform not valid (inliers = 15/48)

[ERROR] (2014-11-20 13:15:19.968) Rtabmap.cpp:763::process() RGB-D SLAM mode is 
enabled and no odometry is provided. Image 15045 is ignored!

and then a repeated stream of 

[ERROR] (2014-11-20 13:15:30.754) Rtabmap.cpp:763::process() RGB-D SLAM mode is 
enabled and no odometry is provided. Image 15157 is ignored!
[ WARN] [1416518130.754808571]: RTAB-Map could not process the data received! 
(ROS id = 15157)
[ INFO] [1416518130.754843712]: rtabmap: Update rate=1.000000s, 
Limit=0.000000s, Processing time = 0.000502s (13 local nodes)
[ INFO] [1416518130.809115000]: Odom: quality=0, update time=0.014725s
[ INFO] [1416518130.953116577]: Odom: quality=0, update time=0.017939s
[ INFO] [1416518131.049253090]: Odom: quality=0, update time=0.018129s
[ INFO] [1416518131.107650197]: Odom: quality=0, update time=0.012924s
[ INFO] [1416518131.175456149]: Odom: quality=0, update time=0.012601s
[ WARN] (2014-11-20 13:15:31.252) Odometry.cpp:348::computeTransform() Not 
enough inliers 0 < 20
[ INFO] [1416518131.252706566]: Odom: quality=0, update time=0.022156s
[ WARN] (2014-11-20 13:15:31.355) Odometry.cpp:348::computeTransform() Not 
enough inliers 2 < 20

Seems like the odom quality is lost. I tried varying the speed of my motion 
with the Kinect but couldnt find a pattern. 

Any suggestions. 

Btw, great all in one package for SLAM. I m excited to use this our project and 
hope that I can resolve this issue. 

Original issue reported on code.google.com by vijethra...@gmail.com on 20 Nov 2014 at 9:37

Attachments:

GoogleCodeExporter commented 9 years ago
This is more a feature than an issue :P I've updated this wiki page to explain 
what are the causes, and what you can do to recover from lost odometry:
https://code.google.com/p/rtabmap/wiki/KinectMapping#Lost_Odometry_(RED_screens!
)

Original comment by matla...@gmail.com on 20 Nov 2014 at 11:02

GoogleCodeExporter commented 9 years ago
Hey,
   Thanks for getting back to me. I will keep this in mind. Also, I was wondering if playing around with the inliers parameter would change the 4meter max range of Kinect? 

Thanks

Original comment by vijethra...@gmail.com on 21 Nov 2014 at 5:22

GoogleCodeExporter commented 9 years ago
Hey,
   Thanks for getting back to me. I will keep this in mind. Also, I was
wondering if playing around with the inliers parameter would change the
4meter max range of Kinect?

Original comment by vijethra...@gmail.com on 21 Nov 2014 at 5:22

GoogleCodeExporter commented 9 years ago
These are common odometry parameters that may influence RED screens:
{{{
$ rosrun rtabmap rgbd_odometry --params
[...]
Param: Odom/InlierDistance = "0.02"  [Maximum distance for visual word 
correspondences.]
Param: Odom/MaxDepth = "4.0"         [Max depth of the words (0 means no 
limit).]
Param: Odom/MinInliers = "20"        [Minimum visual word correspondences to 
compute geometry transform.]
[...]
}}}

In the launch file, you can set a parameter with:
{{{
<param name="Odom/InlierDistance" type="string" value="0.05"/>
}}}
Note that all RTAB-Map's related parameters are set using type "string".

There is also another approach to do odometry (using Optical flow) that can be 
set with this parameter:
{{{
Param: Odom/Strategy = "0"           [0=Bag-of-words 1=Optical Flow]
}}}

Original comment by matla...@gmail.com on 21 Nov 2014 at 4:47

GoogleCodeExporter commented 9 years ago
Thanks. 

Original comment by vijethra...@gmail.com on 22 Nov 2014 at 9:07