visp_tracker

Summary

visp_tracker
Version:

0.8.0

Description:

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.

Maintainers:
  • Fabien Spindler <fabien DOT spindler AT inria DOT fr>
Licenses:
  • BSD
Urls:
Authors:
  • Thomas Moulard <thomas DOT moulard AT gmail DOT com>
BuildDepends:
BuildtoolDepends:
 
BuildExportDepends:
 
ExecDepends:
Exports:
  • <nodelet plugin=”${prefix}/nodelet_plugins.xml”/>

Types

Message types

visp_tracker/TrackerSettings
Field:
  • angle_appear (float64) –
  • angle_disappear (float64) –

This message contains tracking parameters.

These parameters determine how precise, how fast and how reliable will be the tracking.

It should be tuned carefully and can be changed dynamically.

For more details, see the ViSP documentation: http://www.irisa.fr/lagadic/visp/publication.html

Common Tracker Parameters.

# This message contains tracking parameters.
#
# These parameters determine how precise, how fast and how
# reliable will be the tracking.
#
# It should be tuned carefully and can be changed dynamically.
#
# For more details, see the ViSP documentation:
# http://www.irisa.fr/lagadic/visp/publication.html

# Common Tracker Parameters.
float64 angle_appear    # Angle to test faces apparition
float64 angle_disappear # Angle to test faces disparition
visp_tracker/MovingEdgeSite
Field:
  • x (float64) –
  • y (float64) –
  • suppress (int32) –

Moving edge position.

# Moving edge position.

float64 x      # X position in the image
float64 y      # Y position in the image
int32 suppress # Is the moving edge valid?
               # - 0:   yes
	       # - 1:   no, constrast check has failed.
	       # - 2:   no, threshold check has failed.
	       # - 3:   no, M-estimator check has failed.
	       # - >=4: no, undocumented reason.
visp_tracker/MovingEdgeSites
Field:

Stamped list of moving edge positions.

Moving edge positions associated with a particular timestamp. Used by the viewer to display moving edge positions and allow tracking debug.

# Stamped list of moving edge positions.
#
# Moving edge positions associated with a particular timestamp.
# Used by the viewer to display moving edge positions and allow
# tracking debug.

Header header                       # Header (required for synchronization).
MovingEdgeSite[] moving_edge_sites  # List of moving dge sites (i.e. positions).
visp_tracker/KltPoint
Field:
  • i (float64) –
  • j (float64) –
  • id (int32) –

KLT point position.

# KLT point position.

float64 i      # i position in the image
float64 j      # j position in the image
int32   id     # Point id
visp_tracker/KltPoints
Field:

Stamped list of KLT points positions.

KLT points positions associated with a particular timestamp. Used by the viewer to display KLT points positions and allow tracking debug.

# Stamped list of KLT points positions.
#
# KLT points positions associated with a particular timestamp.
# Used by the viewer to display KLT points positions and allow
# tracking debug.

Header header                        # Header (required for synchronization).
KltPoint[] klt_points_positions      # List of KLT points positions.
visp_tracker/MovingEdgeSettings
Field:
  • mask_size (int64) –
  • n_mask (int64) –
  • range (int64) –
  • threshold (float64) –
  • mu1 (float64) –
  • mu2 (float64) –
  • sample_step (int64) –
  • ntotal_sample (int64) –
  • strip (int64) –
  • min_samplestep (float64) –
  • aberration (float64) –
  • init_aberration (float64) –
  • lambda (float64) –
  • first_threshold (float64) –

This message contains tracking parameters.

These parameters determine how precise, how fast and how reliable will be the tracking.

It should be tuned carefully and can be changed dynamically.

For more details, see the ViSP documentation: http://www.irisa.fr/lagadic/visp/publication.html

Moving edge parameters.

# This message contains tracking parameters.
#
# These parameters determine how precise, how fast and how
# reliable will be the tracking.
#
# It should be tuned carefully and can be changed dynamically.
#
# For more details, see the ViSP documentation:
# http://www.irisa.fr/lagadic/visp/publication.html


# Moving edge parameters.

int64 mask_size    # Mask size (in pixel) used to compute the image gradient
                   # and determine the object contour.
		   # A larger mask size is better for larger images.
		   # 3 pixels is enough for 640x480 images.
                   # Increasing this value makes the tracking slower.
		   #
		   # Caution: this value cannot be changed dynamically
		   # without resetting the tracking.

int64 n_mask       # Number of masks applied to determine the object contour.
                   # Increasing this value makes the tracking slower.

int64 range        # Maximum seek distance on both sides of the reference pixel.
      		   # It should match the maximum distance in pixel between
		   # the current position of the feature projection and
		   # its next position.
		   # I.e. if the object moves fast and your tracking
		   # frequency is low, this value should be increased.
                   # Increasing this value makes the tracking slower.

float64 threshold  # Value used to determine if a moving edge is valid
		   # or not.

float64 mu1        # Minimum image contrast allowed to detect a contour.
float64 mu2        # Maximum image contrast allowed to detect a contour.

int64 sample_step   # Minimum distance in pixel between two
      		    # discretization points.
      		    # It avoids having too many discretization points when
		    # the tracked object is far away (and its projection
		    # in the image is small).
		    # Increasing this value makes the tracking *faster*.

int64 ntotal_sample # How many discretization points are used to track the
      		    # feature.
		    # Higher is better but slow down the tracking.
		    # The best value depends on your model and its distance
		    # with respect to the camera.
		    # Increasing this value makes the tracking slower.

int64 strip             # How many pixels are ignored around the borders.
float64 min_samplestep  # Minimum allowed samplestep. Useful to specify
			# a lower bound when the samplestep is changed
			# dynamically.
			# This is not done by visp_tracker currently.
float64 aberration      # Ignored.
float64 init_aberration # Ignored.


# Tracker parameters.

float64 lambda          # Gain used to compute the control law.
float64 first_threshold # What proportion of points should be valid to
                        # acccept an initial pose.
			# Value should be between 0 et 1.
visp_tracker/KltSettings
Field:
  • max_features (int64) –
  • window_size (int64) –
  • quality (float64) –
  • min_distance (float64) –
  • harris (float64) –
  • size_block (int64) –
  • pyramid_lvl (int64) –
  • mask_border (int64) –

This message contains tracking parameters.

These parameters determine how precise, how fast and how reliable will be the tracking.

It should be tuned carefully and can be changed dynamically.

For more details, see the ViSP documentation: http://www.irisa.fr/lagadic/visp/publication.html

Klt Parameters.

# This message contains tracking parameters.
#
# These parameters determine how precise, how fast and how
# reliable will be the tracking.
#
# It should be tuned carefully and can be changed dynamically.
#
# For more details, see the ViSP documentation:
# http://www.irisa.fr/lagadic/visp/publication.html

# Klt Parameters.

int64 max_features      # Maximum number of features
int64 window_size       # Window size
float64 quality         # Quality of the tracker
float64 min_distance      # Minimum distance betwenn two points
float64 harris          # Harris free parameters
int64 size_block        # Block size
int64 pyramid_lvl       # Pyramid levels
int64 mask_border       # Mask Border

Service types

visp_tracker/Init
Field (Request):
 
Field (Response):
 
  • initialization_succeed (bool) –

Initialize the tracking.

During the initialization the tracked object is chosen and its initial pose is required to start the tracking.

The model is retrieved through the parameter server using the model_description parameter.

Object initial pose.

# Initialize the tracking.
#
# During the initialization the tracked object is chosen and its
# initial pose is required to start the tracking.
#
# The model is retrieved through the parameter server using the
# model_description parameter.

# Object initial pose.
geometry_msgs/Transform initial_cMo

# Common Tracker Parameters
TrackerSettings tracker_param

# Moving Edge parameters
MovingEdgeSettings moving_edge

# Klt Parameters
KltSettings klt_param
---
# Did the initialization succeed?
bool initialization_succeed