Documentation Status

Cannot load information on name: ar_pose, distro: electric, which means that it is not yet in our index. Please see this page for information on how to submit your repository to our index.
ar_tools: ar_pose | artoolkit

Package Summary

Documented

Augmented Reality Marker Pose Estimation using ARToolkit

ar_tools: ar_pose | artoolkit

Package Summary

Documented

Augmented Reality Marker Pose Estimation using ARToolkit

Cannot load information on name: ar_pose, distro: indigo, which means that it is not yet in our index. Please see this page for information on how to submit your repository to our index.

arsingle.jpg armulti.jpg

Overview

This package is an ROS wrapper for ARToolkit.

ar_pose provides has two nodes you can run. The program ar_single provides a transform between the camera and a single AR Marker. The program ar_multi provides an array of transforms for multiple markers.

Calibration Requirements

Currently the ar_pose package requires calibration information from a camera_info topic. If there is no camera_info topic the marker pose estimation will not start.

Examples

You can run ar_pose on a live video from a camera, or on a pre-recorded bag file that comes with the package. First, make sure you have ccny_vision stack downloaded and installed and built by following the instructions here.

Prerecorded Demo: Tracking a single marker

This demo uses ar_single to track the location of an AR Marker relative to the location of a fixed camera. The position of the camera in the world frame is published by static_tf_publisher as a static transform. The tracking process is visualized in rviz.

Download Warning The setup_single.sh script currently downloads a 350MB file.

First, make sure you have built the additional packages necessary for the demo:

   1 rosmake rviz rosbag

Next, download the example image data and run the demo.

   1 roscd ar_pose/demo
   2 ./setup_single.sh
   3 roslaunch ar_pose demo_single.launch

You should then see something similar to the video below:

Prerecorded Demo: Tracking the camera position

This demo uses ar_single to track the position of the camera relative to the location of an AR Marker. The position of the marker in the world frame is published by static_tf_publisher as a static transform. The tracking process is visualized in rviz.

Download Warning The setup_reverse.sh script currently downloads a 177MB file.

First, make sure you have built the additional packages necessary for the demo:

   1 rosmake rviz rosbag

Next, download the example image data and run the demo.

   1 roscd ar_pose/demo
   2 ./setup_reverse.sh
   3 roslaunch ar_pose demo_reverse.launch

You should then see something similar to the video below:

Prerecorded Demo: Tracking multiple markers

This demo uses ar_multi to track the location of multiple AR Markers relative to the location of a fixed camera. The position of the camera in the world frame is published by static_tf_publisher as a static transform. The tracking process is visualized in rviz.

Download Warning The setup_multi.sh script currently downloads a 177MB file.

First, make sure you have built the additional packages necessary for the demo:

   1 rosmake rviz rosbag

Next, download the example image data and run the demo.

   1 roscd ar_pose/demo
   2 ./setup_multi.sh
   3 roslaunch ar_pose demo_multi.launch

Live video examples

Two examples are provided that are configured and calibrated for use with a Logitech C600 webcam and the usb_cam driver.

The single-marker example that is provided uses the patt.hiro marker. A .pdf of this marker can be found in ~/ros/stacks/ccny-ros-pkg/ccny_vision/artoolkit/build/artoolkit-svn/patterns/pattHiro.pdf

   1 roslaunch ar_pose ar_pose_single.launch

A multi-marker configuration can be started as well. The Markers used in this example are found in ~/ros/stacks/ccny-ros-pkg/ccny_vision/data/4x4/4x4_ps.tar.gz The 4x4 patterns were created with patternMaker which was developed by David Johnson, Christopher Berthiaume and Bryan Witkowski. These patterns are distributed with this software under the GPL with permission.

   1 roslaunch ar_pose ar_pose_single.launch

Nodes

ar_single

This node tracks a single AR Maker in an image and displays its relative pose.

Subscribed Topics

/usb_cam/image_raw (sensor_msgs/Image)
  • The image topic. Images from this topic are passed to ARToolKit for analysis.
/usb_cam/camera_info (sensor_msgs/CameraInfo)
  • The camera info topic. This contains the calibration information that is passed to ARToolKit.

Published Topics

ar_pose_marker (ar_pose/ARMarker)
  • The current pose of the marker relative to the camera.
visualization_marker (visualization_msgs/Marker)
  • Visualization marker for rviz

Parameters

marker_pattern (string, default: "data/patt.hiro")
  • ARToolKit format pattern file
marker_width (double, default: 80.0)
  • The width of the marker in mm.
marker_center_x (double, default: 0.0)
  • The offset of the physical center of the Marker
marker_center_y (double, default: 0.0)
  • The offset of the physical center of the Marker
threshold (double, default: 100)
  • Threshold passed to ARToolKit
use_history (bool, default: true)
  • Option to use the previous estimate of the markers position to improve the current estimate.
publish_visual_markers (bool, default: true)
  • Option to enable publishing visual markers for rviz
publish_tf (bool, default: true)
  • Enable broadcasting transforms
marker_frame (string, default: "ar_marker")
  • The frame attached to the AR Marker
reverse_transform (bool, default: false)
  • When true, publishes a marker -> camera tf instead of camera -> marker

Provided tf Transforms

camera_frame_idmarker_frame
  • Default: the pose of the marker relative to the camera frame
marker_framecamera_frame_id
  • Reversed: the pose of the camera frame relative to the marker

ar_multi

This node tracks multiple AR Maker in an image and displays theirs relative pose.

Subscribed Topics

/camera/image_raw (sensor_msgs/Image)
  • The image topic. Images from this topic are passed to ARToolKit for analysis.
/camera/camera_info (sensor_msgs/CameraInfo)
  • The camera info topic. This contains the calibration information that is passed to ARToolKit.

Published Topics

ar_pose_marker (ar_pose/ARMarkers)
  • An array of markers, each marker describe the current pose relative to the camera.
visualization_marker (visualization_msgs/Marker)
  • Visualization marker for rviz

Parameters

marker_pattern_list (string, default: "data/object_4x4")
  • ARToolKit file describing each pattern.
threshold (double, default: 100)
  • Threshold passed to ARToolKit
publish_visual_markers (bool, default: true)
  • Option to enable publishing visual markers for rviz
publish_tf (bool, default: true)
  • Enable broadcasting transforms

Provided tf Transforms

camera_frame_idmarker_frames
  • the pose of markers relative to the camera frame

Troubleshooting

Ubuntu 11.10

A workaround for undefined references in libARgsub.a with Ubuntu 11.10:

  • delete #include <AR/gsub.h> on line 29 in ar_multi.h

  • remove "argCleanup();" on line 159 in ar_multi.cpp

Bug Reports & Feature Requests

We appreciate the time and effort spent submitting bug reports.

Please use our Trac to report bugs or request features.

Wiki: ar_pose (last edited 2014-01-23 19:38:27 by DanLazewatsky)