I've got a huge idea (huge = a lot of data).
I'd like to map a small underground mine in our village.
Now I played a bit with RTAB-Map and I was amazed about the details and the quality.
Weeks ago I tried to map the cave with Structure from Motion (VisualSFM) but I've never get so many details (most of the time no points).
I'd like to record with my Kinect for XBOX with the full frame rate. Unfortunately the processing needs much more time that I thought with the full frame rate. So now I've got the following idea:
Is it possible only to record the data and processing the data later? or even better
capture the data with full frame rate, but processing live the data with a less frames to see that I capture everything what I want.
It could be interesting to map an underground mine, that makes me think about this movie scene :P. RTAB-Map needs some lighting to work though.
The first option is possible through rtabmap-dataRecorder (run it from a command window). However you can't have a feedback if RTAB-Map would be able to compute odometry from these images.
The second option would be better to have a feedback to know if at least odometry can be computed. You can reduce the detection rate (default 1 Hz, you could set 0.5 or 0.2) to save some CPU to create the live map. Open RTAB-Map, select Tools->"Data recorder..." and then start mapping as usual. The Data recorder will record at the frame rate set in Source tab of the Preferences dialog.
Be aware that at 30Hz, the database generated by the Data recorder will grow very fast. For example, here for about
8 seconds of recording, 57 MB is used for 243 frames.
If you are using the latest binaries 0.8.3 (not the latest from source), the data recorder tool is in the Edit menu and the mapping should be already started/paused to enable it. You can open the recorded database with rtabmap-databaseViewer to see if all frames you want were recorded.
Thanks for your reply! The movie-sequence showed exactly what I want ;-)
The dataRecorder is what I was looking for! Thanks a lot!
About the size of the db: During my testing and playing around with the parameters, a lot of BIG file were generated... (some more than 1.2GB).
But my biggest problem was that the loop closing doesn't work fine at all!
Do you have any suggestions for me? Would it be good to point the kinect at the beginning and at the end of a round against a target (like these: http://www.lightcrafttech.com/support/doc/setting-the-stage/target-layout/) or only to point the kinect for some seconds against the same spot?
And is there any problem with artificial light (changing light-situation)? I don't find any evidence that the light have to stay at the same spot. And would RTAB-Map smooth out the color changing like the algorithm in this video (https://www.youtube.com/watch?v=D3yYjaLmiqU)
On my computer, the odometry can't run over 20Hz, so generally I record at 15-20Hz source rate to save some space. But yes, this gives large databases.
For loop closure detection in an underground mine, visual features may look all similar, limiting the chance to detect loop closures. In the video you've posted, the second loop closure was on the same panel (with many distinctive visual features) as the early beginning of the video.
With RTAB-Map, you can do the same to find a loop closure between the beginning and the end of the run. On start, look at something very descriptive for a couple of seconds (make sure the loop closure detection view shows all blue circles as below), the current location will get more weight (it will not be forgotten if the time threshold is set).
Well, if RTAB-Map cannot find automatically the loop closure, it can be done manually after the mapping is completed using the databaseViewer. Example (adding loop closure between location 1 and 25):
On success, you can see the two point clouds on the right. A red loop closure link is also added in the graph view:
When closing the database viewer, you will be asked to save changes in the database:
Thanks for that detailed information. The manual loop closing was also one of the "missing" feature, but it's really cool!
Another small question: what do you mean with "your computer can't run over 20Hz"?!
Does it not work or not realtime?! If you mean real time, whats your system equipment (RAM, CPU) that you can run 10Hz real time?!
I have an i7 from 2010, the odometry computation time for each frame varies between 35 to 60 ms. On a more powerful computer, you may reach computation under < 33 ms (30 Hz). Well, generally with an odometry running over 10 Hz, the odometry quality and the maximum camera speed are satisfying for hand-held mapping.
Work now on my old Macbook Pro (also 2010) and it works much faster than the new 2014 Windows Notebook! (With also faster CPU).
How can I open the Database Viewer from the Mac binary, or do I have to build it from the source?
In 0.8.3 and 0.8.5, you can open the DatabaseViewer with "File-> Edit database..." directly in RTAB-Map. However, 0.8.5 seems to freeze when opening a database. It is fixed in recent versions. I've uploaded the binaries of 0.8.9 for convenience. In 0.8.9, the "Edit database..." is under the "Tools" menu.