Only released in EOL distros:  

v4r_ros: v4r_artoolkitplus | v4r_ellipses | v4r_laser_filter | v4r_msgs | v4r_opencv_cam | v4r_uvc

Package Summary

The v4r_artoolkitplus package is a wrapper around the ARToolKitPlus software library for ROS. The ARToolKitPlus is a extended version of ARToolKit's library with a class-based API but with no VRML and camera library. It is also optimized to work with a set of precoded marker, so no marker training is needed. The ARToolKitPlus library was published under GPL2, thanks for that work goes to all people listed in a ./3rdParty/ARToolKitPlus/THANKS. More details about ARToolKitPlus package can be found under


  1. Overview
  2. Node


This package uses the ARToolKitPlus to detect visual tags encoded with an id. Details to the tag detection can be found at

This wrapper for the ARToolKitPlus has two modes:

  • Single Marker (Every tag creates a tf)
  • Multi Marker (A predefined set of markers creates only on tf)

The "Multi Marker" mode is especially useful if you would like to estimate your camera pose and to estimate other markers. Nearly all parameters can be tuned by using the dynamic reconfigure package on-line. The note is able to deal with distorted as well as with undistorted images as long as the provided camera_info message is correct.

multi_marker_with_pionerr.png This figure shows the node running the multi marker mode; The marker combination/pattern under the robot is used to estimate the camera pose while the marker on top is used to estimate the robot pose.


There are a large number of ROS Parameters that can be set to customize the behavior of the ARToolKitPlus wrapper. Most of these parameters can also be changed using dynamic_reconfigure but some of them must be set at start-up.

sub{ image
  0.type= sensor_msgs/Image
  0.desc= Image stream from the camera driver see parameter ''distorted_input'' camera_info
  1.type= sensor_msgs/CameraInfo
  1.desc= Camera metadata
pub{ ~<tf_prefix>/tf
  0.type= tf/tfMessage
  0.desc= TF related to the detected markers

param{ = ~<name>/show_camera_image
  0.default = false
  0.type = bool
  0.desc = On true it opens a OpenCV window with debug information = ~<name>/skip_frames
  1.default = 0
  1.type = int
  1.desc = Number of frames skipped between processing = ~<name>/tracker_single_marker
  2.default = true
  2.type = bool
  2.desc = Sets the single marker mode it does not work with tracker_multi_marker = true = ~<name>/tracker_multi_marker
  3.default = false
  3.type = double
  3.desc = Sets the multi marker mode it does not work with tracker_single_marker = true, the multi marker mode requires also a ''~<name>/pattern_file'' = ~<name>/pattern_file
  4.default = ""
  4.type = string
  4.desc = filename of the pattern file used for the  multi marker mode, there is a file within the packages cfg folder = ~<name>/tf_prefix
  5.default = the node_name
  5.type = string
  5.desc = prefix for the tf publisher = ~<name>/marker_mode
  6.default = "bch"
  6.type = string
  6.desc = defines the marker id encoding, options are "bch" or "simple" = ~<name>/pattern_width
  7.default = 0.1
  7.type = double
  7.desc = size of single markers = ~<name>/edge_threshold
  8.default = 0
  8.type = int
  8.desc = Edge threshold used for the detection, zero means automode = ~<name>/border_width
  9.default = 0
  9.type = double
  9.desc = ratio of the marker border, zero means defined by marker_mode = ~<name>/undist_mode
  10.default = "std"
  10.type = string
  10.desc = undistorted function used to cope with image distortions, options are "none", "std" and "lut". "lut" only works up to 1024x1024 = ~<name>/undist_iterations
  11.default = 10
  11.type = int
  11.desc = Interactions used on the undistort approximation = ~<name>/distorted_input
  12.default = true
  12.type = bool
  12.desc = Defines if the input image is distorted or not. = ~<name>/pose_estimation_mode
  13.default = "rpp"
  13.type = string
  13.desc = Defines the algorithm used to estimate a markers pose. Options are "normal", "cont" and "rpp" = ~<name>/use_multi_marker_lite_detection
  14.default = true
  14.type = bool
  14.desc = Only for multi marker mode, on true it uses a faster detection algorithm to find markers before the pattern pose is computed. This value should be set to true if one, next to the pattern, also wants to use the detected marker which is not part of an pattern. = ~<name>/pattern_frame
  14.default = pattern
  14.type = string
  14.desc = name of the pattern tf related to a multi marker

Wiki: v4r_artoolkitplus (last edited 2014-11-03 12:30:10 by TonBadal)