[Documentation] [TitleIndex] [WordIndex

New in Electric

vision_visp: visp | visp_tracker

Package Summary

visp_tracker wraps the ViSP moving edge tracker provided by the ViSP visual servoing library into a ROS package. This computer vision algorithm computes the pose (i.e. position and orientation) of an object in an image. It is fast enough to allow object online tracking using a camera.

ViSP box tracking


This package wraps an object tracker provided by the ViSP library. The tracker provides the tracked object position with respect to the camera. It requires the tracked object 3d model as a VRML file and the object initial pose.

The package is composed of one node tracker and two additional binaries client and viewer.

The node tries to track the object as fast as possible but needs to be initialized using the client. The viewer can be used to monitor the tracking result.


The package implementation is finished. Minor changes in the API may happen in the future but impact should be limite.

Future improvements could be:

  • Add strategies to reset tracking when tracking is lost:
    • Retry to track the object using the last position when tracking is lost.
    • Giving an estimation of the object position to the tracker in order
      • to allow automatic tracking reset.
  • Add nodelet to reduce message passing delay.


This package objective is to provide the pose of an object (i.e. position and orientation) in a sequence of images knowing its 3d model and its initial pose.



Main tracking node.

Subscribed Topics

~camera_prefix/camera_info (sensor_msgs/CameraInfo)
  • Camera calibration information, see the camera_calibration package for more details.
~camera_prefix/image_rect (sensor_msgs/Image)
  • Rectified image, see the camera_calibration package for more details.

Published Topics

/tracker_mbt/moving_edge_sites (visp_tracker/MovingEdgeSites)
  • Moving edge sites information (stamped). For debugging/monitoring purpose.
/tracker_mbt/result (visp_tracker/TrackingResult)
  • Tracking object pose (stamped).


/tracker_mbt/init_tracker (visp_tracker/Init)
  • Initialize the tracking by providing the model name, model path, initial object pose and moving edge settings.
/tracker_mbt/tracking_meta_data (visp_tracker/TrackingMetaData)
  • Provides the current camera prefix, model name and model path.


~camera_prefix (std_msgs/String)
  • Camera topics namespace ('image_rect' and 'camera_info' topics must be published in this namespace)


Command line tool used to decide which object to track and what is its initial pose.


~camera_prefix (std_msgs/String)
  • Camera topics namespace ('image_rect' and 'camera_info' topics must be published in this namespace)
~tracker_prefix (std_msgs/String)
  • Namespace in which the tracker has been launched. By default '/tracker_mbt'.
~model_path (std_msgs/String)
  • Model location on the filesystem. Its default value points to the 'models' directory in the package source.
~model_name (std_msgs/String)
  • Model name. This parameter is mandatory when launching the client.


Monitoring tool.


~tracker_prefix (std_msgs/String)
  • Namespace in which the tracker has been launched. By default '/tracker_mbt'.

Launch file example

Here is a launch file which starts the tracker and client.

  <!-- you should first setup your camera grabbing/rectification nodes,
       see image_pipeline documentation. -->

  <!-- tracking node -->
  <node pkg="visp_tracker" type="tracker" name="tracker_mbt">
    <param name="camera_prefix" value="/wide_left/camera" />

  <!-- starts the client while setting the camera input and the model
       which will be tracked -->
  <node pkg="visp_tracker" type="client" name="tracker_mbt_client">
    <param name="camera_prefix" value="/wide_left/camera" />
    <param name="model_name" value="laas-box" />

Report a bug

Use GitHub to report a bug or submit an enhancement.

2011-11-19 12:38