Poor results of loop closurse detection rtabmap_ros.
Hello,
I was trying to map hallway and passed it twice, during mapping i got almost zero loop closures and my second pass is seen under another angle. Result is that i got two connected hallways: http://i.imgur.com/yJkODMn.png .
I'm using Xtion Live Pro with configuration:
<param name="Kp/DetectorStrategy" type="string" value="5"/> <!-- GFFT+FREAK -->
<param name="Kp/MaxDepth" type="string" value="3.5"/> <!-- Max distance -->
<param name="Vis/MaxDepth" type="string" value="3.5"/>
<param name="Vis/MinDepth" type="string" value="0.8"/> <!-- Min distance -->
<param name="Kp/MinDepth" type="string" value="0.8"/>
<param name="Kp/NNStrategy" type="string" value="3"/> <!-- BruteForce -->
<param name="Vis/CorNNType" type="string" value="3"/> <!-- BruteForce -->
Do you have any ideas how i can get better results? Also I'm not sure about those Brute Forces. I decided to use GFFT+FREAK because i read they give good results, should I try another algorithm?
Thanks for answers.
[EDIT]
I realized that using GFFT+FREAK (which i read are slow) i got 440 frames in 30 minutes which gives only 14,(6) frames per minute which is 0,2(4)FPS, with this i scanned 2 floors + stairs few times.
Next i decided to use ORB algorithm which gives me 330 frames in 6 minutes ~0,91FPS.
Can I record with high framerate and them make GFFT+FREAK algorithm work? To make sure, algorithms use most of my CPU not GPU or RAM? In comments there are few questions please answer as much as you can. I will make more algorithm tests but my battery is empty i need to wait for charge ;)
Did you save the database somewhere and can you share it? (the one created in
~/.ros/rtabmap.db
)Clouds are saved in database only if I download them all from cache? I few scans today but my database files are very small... Now I'm in office i looked around, downloaded clouds and my database is much bigger.
Also i realized that after first pass i got about 100 new pictures (IDs counter), second pass ~80, thid ~60 and so on... After 8 passes through hall i got 367 entries which give me about 45 per walk. Today first floor was ok (4passes) when staris are curved and another floor (4passes) looks bad.
The database contains all data in the map automatically added to it. Make sure to kill rtabmap before copying the database (to make sure everything is saved in it). You can browse data in the database with
rtabmap-databaseViewer
.My bad. In a while I'm going for another scan. Can i record database with data recorder and then process it? Already i recorded DB but it says there is no graph when i try to make pointcloud from databaseViewer, i generated it but viewer still don't see it. How can i export pcl from Data recorder?
I want to make it this way because my laptop is slow and I'm not in hurry so my idea is to record big amount of pictures and then process them (already all is made "live" which i don't need). In short i have a lot of time and i want to process record with high accuray.
I'm back. I realized that using GFFT+FREAK (which i read are slow) i got 440 frames in 30 minutes which gives only 14,(6) frames per minute which is 0,2(4)FPS, with this i scanned 2 floors + stairs few times.
Next i decided to use ORB algorithm which gives me 330 frames in 6 minutes ~0,91FPS.
Can I record with high framerate and them make GFFT+FREAK algorithm work? To make sure, algorithms use most of my CPU not GPU or RAM?
In comments there are few questions please answer as much as you can. I will make more algorithm tests but my battery is empty i need to wait for charge ;)