Skip to content
matlabbe edited this page Jul 18, 2022 · 13 revisions

Database viewer

This tool is useful to browse stuff saved in a RTAB-Map database. There is a standalone app (rtabmap-databaseViewer.exe) or it can be opened from "Tools->Edit database..." in RTAB-Map. You can also generate 3D map, TORO graph, DOT graph and extract images from the database. For example with this database: 5MappingSessions_OnlineConstraint700ms.db.zip

$ rtabmap-databaseViewer 5MappingSessions_OnlineConstraint700ms.db

You can browse images in the database and add/remove loop closures. Explore also the right clicks over the views, more options available as well as in the menus.

Odometry viewer

This tool is a simple application from the terminal to try different odometry approaches implemented in RTAB-Map. This mostly the same as in RTAB-Map->Edit->Preferences->Odometry->"Test odometry" but from the terminal. Look at the examples shown in the usage below.

EDIT: this tool has not been continuously updated over the years and may not have all options available with the RTAB-Map->Edit->Preferences->Odometry->"Test odometry". If you want to record a database like the example below, use the action RTAB-Map->Tools->"Data recorder..." in the standalone app.

$ rtabmap-odometryViewer
Usage:
odometryViewer [options]
Options:
 -bow #                    Use bag-of-words odometry (default 0): 0=SURF, 1=SIFT
 -bin                      Use binary odometry (FAST+BRIEF)
 -icp                      Use ICP odometry

 -hz #.#                   Camera rate (default 0, 0 means as fast as the camera can)
 -db "input.db"          Use database instead of camera (recorded with rtabmap-dataRecorder)
 -clouds #                 Maximum clouds shown (default 10, zero means inf)
 -sec #.#                  Delay (seconds) before reading the database (if set)

 -in #.#                   Inliers maximum distance, features/ICP (default 0.005 m)
 -max #                    Max features used for matching (default 0=inf)
 -min #                    Minimum inliers to accept the transform (default 20)
 -depth #.#                Maximum features depth (default 5.0 m)
 -i #                      RANSAC/ICP iterations (default 100)
 -lu #                     Linear update (default 0.0 m)
 -au #                     Angular update (default 0.0 radian)
 -reset #                  Reset countdown (default 0 = disabled)

 -bin_brief_bytes #        BRIEF bytes (default 32)
 -bin_fast_thr #           FAST threshold (default 30)
 -bin_lsh                  Use nearest neighbor LSH (default brute force hamming)

 -d #                      ICP decimation (default 4)
 -v #                      ICP voxel size (default 0.005)
 -s #                      ICP samples (default 0, not used if voxel is set.)
 -f #.#                    ICP fitness (default 0.01)

 -debug                    Log debug messages

Examples:
 odometryViewer -bow 0                                SURF example
 odometryViewer -bow 1                                SIFT example
 odometryViewer -bin -hz 10                           FAST/BRIEF example
 odometryViewer -icp -in 0.05 -i 30                   ICP example

Using a database called input.db (not available for download anymore), the four techniques are compared:

  • In order: SURF, SIFT, BRIEF/FAST and ICP
./rtabmap-odometryViewer -hz 10 -db input.db -bow 0 -clouds 0
./rtabmap-odometryViewer -hz 10 -db input.db -bow 1 -clouds 0
./rtabmap-odometryViewer -hz 10 -db input.db -bin -clouds 0 -in 0.005 -bin_brief_bytes 64
./rtabmap-odometryViewer -hz 10 -db input.db -icp -in 0.04 -v 0.02 -clouds 0 -f 1 -i 30

video

Data recorder

This tool can be used to record images from a webcam or an OpenNI camera (with depth) to RTAB-Map database format, which can be after used as input for RTAB-Map.

EDIT: this tool has not been continuously updated over the years and may not have all camera options available in the standalone. With the standalone UI, you can record using Tools->"Data recorder...".

$ rtabmap-dataRecorder
Usage:
dataRecorder [options] output.db
Options:
 -hide                    Don't display the current cloud recorded.
 -debug                   Set debug level for the logger.
 -rate #.#                Input rate Hz (default 0=inf)
 -openni                  Use openni camera instead of the usb camera.