Skip to content

Running PUTSLAM on datasets

Dominik Belter edited this page Feb 23, 2015 · 6 revisions

Evaluating PUTSLAM on datasets

As for now, the PUTSLAM pre-alfa version had been tested on rgbd_freiburg1_desk, but expect more datasets in the future.

To download the data use the the website (http://vision.in.tum.de/data/datasets/rgbd-dataset/download). When in your home directory please copy-paste the following commands:

mkdir Datasets && cd Datasets && wget http://vision.in.tum.de/rgbd/dataset/freiburg1/rgbd_dataset_freiburg1_desk.tgz

Then unzip and remove .tgz file:

tar -zxvf rgbd_dataset_freiburg1_desk.tgz 
rm rgbd_dataset_freiburg1_desk.tgz

Before using the dataset, it is necessary to convert Dataset to PUTSLAM format. Go to the PUTSLAM/scripts directory and run command (please change the path where the dataset is downloaded, "pwd" command can provide you with the absolute path)

python prepareDatasetFreiburg.py /home/mn/Datasets/rgbd_dataset_freiburg1_desk

Then everything is ready to run the main application. Go to the PUTSLAM/resources/ and open the fileModel.xml file with your preferred editor (vim, nano, gedit, etc.). Change the base dataset location to the absolute path that you previously found:

<datasetPath base="/home/mn/Datasets" datasetName="rgbd_dataset_freiburg1_desk"></datasetPath>

The next step involves actually running the software (!), so go to PUTSLAM/build/. Do make (if is hasn't been previously done). Then go to PUTSLAM/build/bin. Execute:

mkdir result

In result directory, you will find estimated trajectory and some error measurements once the tutorial is finished. Now, run the PUTSLAM demoMatching:

./demoMatching

Once the program finished go to "result" directory (cd result), inside the 'estimatedTrajectory' file should have been created. The obtained tracejtory is in the Freiburg format and therefore it is possible to use Freiburg tools to evaluate the obtained estimate (please change the paths accordingly to your Dataset location):

python2 ../../../scripts/evaluate_ate.py /home/mn/Datasets/rgbd_dataset_freiburg1_desk/groundtruth.txt graph_trajectory.res --verbose --scale 1 --save_associations ate_association.res --plot ate.png > ate.res

and

python2 ../../../scripts/evaluate_rpe.py /home/mn/Datasets/rgbd_dataset_freiburg1_desk/groundtruth.txt graph_trajectory.res --verbose --delta_unit 'f' --fixed_delta --plot rpe.png > rpe.res

The ATE (absolute trajectory error) computes the difference between the real motion and estimated trajectory and stores the error metrics in ate.res while presenting the trajectory on a figure in ate.png file.

The RPE (relative pose error) computes the error of each frame-frame matching. The error metrics are stores in rpe.res while presenting the frame-frame error as a function of frame number in rpe.png file.

Clone this wiki locally