Skip to content

The lockbox tracking algorithm based on DART: Dense Articulated Real time Tracking

Notifications You must be signed in to change notification settings

Yuchen966/lockbox-tracking

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 

Repository files navigation

Lockbox Tracking based on DART: Dense Articulated Real time Tracking

This project aims at tracking a lockbox using DART.

Installation

git clone https://github.com/Yuchen966/lockbox-tracking.git
cd src
git clone https://github.com/stevenlovegrove/Pangolin.git
git clone https://github.com/tschmidt23/dart.git

Navigate to src/Pangolin directory, follow the install instructions of the Pangolin github repo

Navigate to src/dart directory, follow the install instructions of the DART github repo.

Put an empty file named 'CATKIN_IGNORE' both in dart and Pangolin directory.

Navigate back to the root directory, run

catkin_make

This command should build the executables based on cpp files in ROOT/src/dart_example/node. The default path of the executables is ROOT/build/devel/lib/dart_example.

Before you run the executables, make sure that you have modified the path defined in corresponding cpp files.

How to use

In ROOT/src/dart_example/node folder

  • track_lockbox_mov.cpp tracks the moving articulated lockbox recursively.
  • track_lockbox_mov_exp.cpp tracks the moving articulated lockbox only once, then write the error data to a csv file.
  • track_lockbox_rigid.cpp tracks the static lockbox recursively.
  • track_lockbox_rigid_exp.cpp tracks the static lockbox only once, then write the error data and the convergence abilities to a csv file.

Hints on model files

In ROOT/models, all the mesh obj files are generated firstly by blender, after triangulated, they are exported as obj files. Then, they are imported in meshlab, and finally exported as obj files.

Folder ikeaMug/ and spaceJustin/ are for testing the original dart demo track_space_justin_demo.cpp. Measurements/ contains 3 drafts showing the size information of the lockbox and its blocks.

The lockbox_mov_articulated.xml is called by track_lockbox_mov.cpp and track_lockbox_mov_exp.cpp, the lockbox_rigid.xml is called by track_lockbox_rigid.cpp and track_lockbox_rigid_exp.cpp.

Inside the xml files, one geom tag corresponds to one obj file. sx, sy, sz denotes the scale in x, y, z direction; tx, ty, tz denotes the translation in x, y, z direction; rx, ry, rz denotes the rotation around x, y, z direction.

Results

Results are saved in ROOT/results folder. All the data in data/ folder are derived by track_lockbox_mov_exp.cpp and track_lockbox_rigid_exp.cpp, as csv files. Images in images/ folder are either screenshots on the Pangolin gui, or generated by the python file visualize_tools.py, which plots the data by matplotlib.

In videos/ folder, mov_inter_before.mp4 shows the moving articulated lockbox tracking results before we improve the intersection term. mov_inter_success.mp4 shows the results after the improvement. rigid_different_ini.mp4 shows the rigid tracking results beginning with different initial guesses. source_lockbox.mp4 shows the original source rgb video of moving lockbox.

There are also a presentation slide and a report attached here.

About

The lockbox tracking algorithm based on DART: Dense Articulated Real time Tracking

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published