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:

@TechReport{nogueira2019,
  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}
}

Installation

Dependencies

Install the usb_cam driver from ROS repositories.

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

Build

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 ..
make

Install the ROS packages

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

Running

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 

Nodes

ibgho_tracker_node

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.

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.

Resources

  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/

Acknowledgment

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)