vision_visp: visp | visp_bridge | visp_camera_calibration | visp_hand2eye_calibration | visp_tracker
- Code API
- diamondback
- electric
- fuerte
- unstable - Msg/Srv API
- diamondback
- electric
- fuerte
- unstable - Tutorials
- Troubleshooting
- FAQ
- Reviews (experimental)
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.
- Author: Thomas Moulard/thomas.moulard@gmail.com
- License: BSD
- Repository: laas-ros-pkg
- Source: git git://github.com/laas/visp_tracker.git
Contents
Overview
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.
Use cases
Roadmap
The package implementation is finished. Minor changes in the API may happen in the future but impact should be limited.
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.
Provide a mutex for dynamic_reconfigure server to allow safe update.
Features
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.
ROS API
tracker
Main tracking node.Subscribed Topics
~camera_prefix/camera_info (sensor_msgs/CameraInfo)- Camera calibration information, see the camera_calibration package for more details.
- 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.
- Tracking object pose (stamped).
Services
/tracker_mbt/init_tracker (visp_tracker/Init)- Initialize the tracking by providing the model name, model path, initial object pose and moving edge settings.
- Provides the current camera prefix, model name and model path.
Parameters
~camera_prefix (std_msgs/String)- Camera topics namespace ('image_rect' and 'camera_info' topics must be published in this namespace)
- What proportion of points should be valid to acccept an initial pose.
- Gain used to compute the control law.
- Mask size (in pixel) used to compute the image gradient and determine the object contour.
- Minimum allowed samplestep. Useful to specify a lower bound when the samplestep is changed.
- Model name (without the .wrl filename extension)
- Model database path. The last development version supports the resource_retriever syntax to fetch remote models (i.e. package://, http://, etc)New in ROS Unstable
- Minimum image contrast allowed to detect a contour.
- Maximum image contrast allowed to detect a contour.
- Number of masks applied to determine the object contour.
- How many discretization points are used to track the feature.
- Maximum seek distance on both sides of the reference pixel.
- Minimum distance in pixel between two discretization points.
- How many pixels are ignored around the borders.
- Value used to determine if a moving edge is valid or not.
- Ignored.
- Ignored.
Provided tf Transforms
<camera frame> → visp_tracker- Object position w.r.t. the camera.
client
Command line tool used to decide which object to track and what is its initial pose.Parameters
~camera_prefix (std_msgs/String)- Camera topics namespace ('image_rect' and 'camera_info' topics must be published in this namespace)
- Namespace in which the tracker has been launched.
- Model location on the filesystem.
- Model name. This parameter is mandatory when launching the client.
viewer
Monitoring tool.Parameters
~tracker_prefix (std_msgs/String, default: /tracker_mbt)- Namespace in which the tracker has been launched.
- image_transport plug-in to be used.
Nodelets
New in ROS Unstable
Development version includes nodelet versions of the tracker, client and viewer.
They are respectively named:
visp_tracker/Tracker
visp_tracker/TrackerClient
visp_tracker/TrackerViewer
...and provide the same API than the equivalent nodes.
When the nodelet version is used, no-copy intraprocess publishing is used. See the nodelet documentation for more information.
An example launch file is also provided: roslaunch visp_tracker tutorial-nodelet.launch.
Note: even if a nodelet is available for the client and viewer, one should avoid running them in the same process than the vision pipeline to avoid crashing the whole pipeline if something goes wrong.
Launch file example
Here is a launch file which starts the tracker and client.
1 <launch>
2 <!-- you should first setup your camera grabbing/rectification nodes,
3 see image_pipeline documentation. -->
4
5 <!-- tracking node -->
6 <node pkg="visp_tracker" type="tracker" name="tracker_mbt">
7 <param name="camera_prefix" value="/wide_left/camera" />
8 </node>
9
10 <!-- starts the client while setting the camera input and the model
11 which will be tracked -->
12 <node pkg="visp_tracker" type="client" name="tracker_mbt_client">
13 <param name="camera_prefix" value="/wide_left/camera" />
14 <param name="model_name" value="laas-box" />
15 </node>
16 </launch>
Report a bug
Use GitHub to report a bug or submit an enhancement.
vision_visp: visp | visp_bridge | visp_camera_calibration | visp_hand2eye_calibration | visp_tracker
- Code API
- diamondback
- electric
- fuerte
- unstable - Msg/Srv API
- diamondback
- electric
- fuerte
- unstable - Tutorials
- Troubleshooting
- FAQ
- Reviews (experimental)
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.
- Author: Thomas Moulard/thomas.moulard@gmail.com
- License: BSD
- Repository: laas-ros-pkg
- Source: git git://github.com/laas/visp_tracker.git
Contents
Overview
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.
Use cases
Roadmap
The package implementation is finished. Minor changes in the API may happen in the future but impact should be limited.
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.
Provide a mutex for dynamic_reconfigure server to allow safe update.
Features
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.
ROS API
tracker
Main tracking node.Subscribed Topics
~camera_prefix/camera_info (sensor_msgs/CameraInfo)- Camera calibration information, see the camera_calibration package for more details.
- 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.
- Tracking object pose (stamped).
Services
/tracker_mbt/init_tracker (visp_tracker/Init)- Initialize the tracking by providing the model name, model path, initial object pose and moving edge settings.
- Provides the current camera prefix, model name and model path.
Parameters
~camera_prefix (std_msgs/String)- Camera topics namespace ('image_rect' and 'camera_info' topics must be published in this namespace)
- What proportion of points should be valid to acccept an initial pose.
- Gain used to compute the control law.
- Mask size (in pixel) used to compute the image gradient and determine the object contour.
- Minimum allowed samplestep. Useful to specify a lower bound when the samplestep is changed.
- Model name (without the .wrl filename extension)
- Model database path. The last development version supports the resource_retriever syntax to fetch remote models (i.e. package://, http://, etc)New in ROS Unstable
- Minimum image contrast allowed to detect a contour.
- Maximum image contrast allowed to detect a contour.
- Number of masks applied to determine the object contour.
- How many discretization points are used to track the feature.
- Maximum seek distance on both sides of the reference pixel.
- Minimum distance in pixel between two discretization points.
- How many pixels are ignored around the borders.
- Value used to determine if a moving edge is valid or not.
- Ignored.
- Ignored.
Provided tf Transforms
<camera frame> → visp_tracker- Object position w.r.t. the camera.
client
Command line tool used to decide which object to track and what is its initial pose.Parameters
~camera_prefix (std_msgs/String)- Camera topics namespace ('image_rect' and 'camera_info' topics must be published in this namespace)
- Namespace in which the tracker has been launched.
- Model location on the filesystem.
- Model name. This parameter is mandatory when launching the client.
viewer
Monitoring tool.Parameters
~tracker_prefix (std_msgs/String, default: /tracker_mbt)- Namespace in which the tracker has been launched.
- image_transport plug-in to be used.
Nodelets
New in ROS Unstable
Development version includes nodelet versions of the tracker, client and viewer.
They are respectively named:
visp_tracker/Tracker
visp_tracker/TrackerClient
visp_tracker/TrackerViewer
...and provide the same API than the equivalent nodes.
When the nodelet version is used, no-copy intraprocess publishing is used. See the nodelet documentation for more information.
An example launch file is also provided: roslaunch visp_tracker tutorial-nodelet.launch.
Note: even if a nodelet is available for the client and viewer, one should avoid running them in the same process than the vision pipeline to avoid crashing the whole pipeline if something goes wrong.
Launch file example
Here is a launch file which starts the tracker and client.
1 <launch>
2 <!-- you should first setup your camera grabbing/rectification nodes,
3 see image_pipeline documentation. -->
4
5 <!-- tracking node -->
6 <node pkg="visp_tracker" type="tracker" name="tracker_mbt">
7 <param name="camera_prefix" value="/wide_left/camera" />
8 </node>
9
10 <!-- starts the client while setting the camera input and the model
11 which will be tracked -->
12 <node pkg="visp_tracker" type="client" name="tracker_mbt_client">
13 <param name="camera_prefix" value="/wide_left/camera" />
14 <param name="model_name" value="laas-box" />
15 </node>
16 </launch>
Report a bug
Use GitHub to report a bug or submit an enhancement.






