vtec_ros: vtec_msgs | vtec_tracker

Package Summary

The vtec_ros metapackage that installs VisioTec packages

Documentation and Citing

A playlist with example applications of the system is also available on YouTube

A technical report is available here: Tech Report. It describes the tracker software and its working principles. If you use this software in an academic context, please cite the technical report, using:

  author = {Lucas Nogueira and Ely de Paiva and Geraldo Silveira},
  title  = {Visio{T}ec robust intensity-based homography optimization software},
  number = {CTI-VTEC-TR-01-19},
  institution = {CTI},
  year = {2019},
  address = {Brazil}



Install the usb_cam driver from ROS repositories.

sudo apt-get install ros-kinetic-usb-cam


Setup a ROS workspace.

mkdir -p ~/catkin_ws/src

Install the vtec cpp library

cd ~/catkin_ws/src
git clone https://github.com/lukscasanova/vtec.git
cd vtec
mkdir build
cd build
cmake ..

Install the ROS packages

cd ~/catkin_ws/src
git clone https://github.com/lukscasanova/vtec_ros.git
cd ~/catkin_ws
source devel/setup.bash


From a dataset

Download the dataset from here: dataset

Open two terminal windows, and launch in the first one the tracker node with:

roslaunch vtec_tracker tracker.launch

In the other terminal, navigate to the directory where you downloaded the dataset, and play the bagfile with:

rosbag play vtec_test_tracker.bag

Now you should see in RViz the tracking process using the default parameters from the launch file.

From a live camera

Open a terminal window and launch the tracker node:

roslaunch vtec_tracker tracker_live.launch

A Rviz window will pop-up with the camera images. In the terminal window where you issued the roslaunch command, press the S key to start tracking. This will select a bounding box in the current frame to be tracked. You can press S again anytime to restart the tracking process.

If you want to enable the robust to unknown occlusion mode, use the following command instead:

roslaunch vtec_tracker tracker_live_occlusion.launch 



Tracks a planar object in an image sequaence.

Subscribed Topics

camera/image (sensor_msgs/Image)
  • The incoming image stream from the camera.
track_cmd (std_msgs/Char)
  • Commands to start tracking.

Published Topics

annotated_image (sensor_msgs/Image)
  • The image stream annotaded with the tracked image region and the score.
stabilized_image (sensor_msgs/Image)
  • The warped image patch from the image stream, that tries to match to the reference image patch.
reference_image (sensor_msgs/Image)
  • The reference template extracted from the reference image file.
tracking (vtec_msgs/Tracking)
  • Information about the tracking. Includes the estimated homography and the photometric parameters.


bbox_size_x (int, default: 200)
  • The length in pixels of the region of interest along the x direction.
bbox_size_y (int, default: 200)
  • The length in pixels of the region of interest along the y direction.
bbox_pos_x (int, default: 200)
  • The x coordinate of the upper left corner of the region of interest in the reference image.
bbox_pos_y (int, default: 150)
  • The y coordinate of the upper left corner of the region of interest in the reference image.
image_topic (string, default: usb_cam/image_raw)
  • The name of the image input topic.
max_nb_iter_per_level (int, default: 5)
  • Maximum number of optimization iterations per pyramid level.
max_nb_pyr_level (int, default: 2)
  • Maximum number of pyramids levels.
sampling_rate (double, default: 1.0)
  • The sampling rate used to sample points used in the optimization process. 1.0 means 100% of the points are used.
homography_type (string, default: full)
  • Specifies the type of homography to be considered by the optimization algorithm. The options are: "full", "affine" and "stretch".
robust_flag (bool, default: false)
  • Set this to true to enable robust mode. This will try to detect partial occlusions on the current image and discard that information from the estimation procedure.


  1. Technical Report: https://github.com/lukscasanova/vtec/blob/master/vtec_ibgho_TR.pdf

  2. VisioTec C++ Libraries: https://github.com/lukscasanova/vtec

  3. Geraldo Silveira's website: https://sites.google.com/site/geraldofsilveira/


This work was supported in part by the CAPES under Grant 88887.136349/2017-00, in part by the FAPESP under Grant 2017/22603-0, and in part by the InSAC (CNPq under Grant 465755/2014-3 and FAPESP under Grant 2014/50851-0).

Report a Bug

Use GitHub to report bugs or submit feature requests. [View active issues]

Wiki: vtec_ros (last edited 2019-04-26 00:53:07 by GeraldoSilveira)