[Documentation] [TitleIndex] [WordIndex

Package Summary

This package contains a marker recognition system using the ArUco library. It can be used with a mono or stereo camera system but yields better results with the latter.

Package Summary

This package contains a marker recognition system using the ArUco library. It can be used with a mono or stereo camera system but yields better results with the latter.

Description

This package contains a recognition system for square, binary 2D-markers using either a mono or a stereo camera setup.

Examples of used (printed) markers: aruco_markers.jpg

Close-up of a marker with its orientation: aruco_marker_orientation_2.jpg

Functionality

Overview

The objects are detected in the image(s) using the ArUco-library. Depending on the used camera system (mono or stereo), the found markers are further processed. If a mono system is used, the found poses of the ArUco-library are published, if on the other hand a stereo system is used, the final marker pose is calculated based on the positions of the markers in the left and right image: If a marker with the same id was found in each of them, the 3D corner points are calculated using triangulation of the 2D corner points in each image. The final pose is then calculated using ICP and then published.

Marker images can be created by using the marker creator tool this package contains. They need to be printed and then they can be attached to corresponding objects in the scene. This correspondance can be specified by adding mesh-models to the asr_object_database and naming the object depending on the used marker id (compare already created objects in the database for more information).

Example

In this example 4 markers are in the scene, two of which have a corresponding object stored in the asr_object_database (monitor and mouse). The markers each have the size of 1.5x1.5mm and the used cameras have a resolution of 1292x964.

Camera image of the stereo setup: aruco_results_3.png

Resulting rviz-visualization of the found markers: aruco_results.png

Resulting 3D-rviz-visualization of the found markers (as two of the markers don't have a corresponding object only their marker orientation is shown): aruco_results_2.png

Usage

Needed packages

Needed hardware

A calibrated mono or stereo camera system.

Start system

Marker Recognition

Start the process with

roslaunch asr_aruco_marker_recognition aruco_marker_recognition.launch


To start the (paused) recognition call the following service:

rosservice call /asr_aruco_marker_recognition/get_recognizer

To pause the (running) recognition call:

rosservice call /asr_aruco_marker_recognition/release_recognizer

Marker Creator

First edit the parameters for the marker creator as you need them to be (see configuration) and then start the process with

roslaunch asr_aruco_marker_recognition marker_creator.launch

The created marker images can be found in the directory specified in the configuration-yaml-file.

ROS Nodes

Subscribed Topics

The image and camera information of the left camera (or the camera in a mono setup):

The topic names can be set in a .yaml file (see configuration). If a stereo setup is used, the topics above need to be available for both, the left and the right camera (by default the topic names are the same with right instead of left)

Published Topics

As the subscribed topics, the output topics can be defined in a .yaml file.

Parameters

The following parameters can be changed in the aruco_marker_recognition_params.yaml file in the param folder:

The marker creator has the following parameters specified in marker_creator_params.yaml in the param folder:

Needed Services

This package calls a service provided by the asr_object_database to get information about the objects corresponding to the used markers:

Provided Services


2019-10-12 12:27