ArucoAttribute - Extended-Object-Detection-ROS/wiki_english GitHub Wiki

ArUco

An attribute that recognizes Aruko markers. The theory is available here.

Modes Accuracy assessment 3D-translation 3D-rotation Contour extraction Additional info
D - Marker quadrangle <Attribute_name>:marker_id

1. Modes

1.1. Detect

Defines the areas containing the aruko marker. If camera parameters and real size of the marker are provided, then localizes the marker in space.

1.2. Check

Not implemented

1.3. Extract

Not implemented

2. XML-description

2.1. Common parameters

  • Name (string, must be set) attribute unique name
  • Type (string, must be "Aruco") attribute type
  • Weight (double, default: 1) attribute weight
  • Probability (double, default: 0.75) not used in that attribute
  • Contour (bool, default: true) Returns the contour of the attribute if true.

2.2. Special parameters

  • Dict (int, default: 0) A value from 0 to 20 corresponding to the dictionary. See table below. If this parameter is outside the limits [0; 20] then it is considered equal to 0 (DICT_4X4_50).
  • Lenght (double, default: 0) The actual length of the marker side in meters. If the value is greater than zero, then 3D-localization of markers is performed. DEPRICATED, soon will be removed please use SquareObjectDistance instead.

2.3. Example

An example is shown below, indicating a specific marker and any of the vocabulary.

<AttributeLib>
    
    <Attribute Name="Aruco4" Type="Aruco" Dict="0"/>
  
    <Attribute Name="Aruco6" Type="Aruco" Dict="8"/>

    <Attribute Name="ID13" Type="ExtractedInfoID" field="Aruco4:marker_id" allowed="13"/>
    
    <Attribute Name="Len1" Type="SquareObjectDistance" length="0.082"/>
    
    <Attribute Name="Len2" Type="SquareObjectDistance" length="0.125"/>

</AttributeLib>

<SimpleObjectBase>    
    
    <SimpleObject Name="Aruco6" ID="41">              
        <Attribute Type="Detect">Aruco6</Attribute>            
        <Attribute Type="Extract">Len2</Attribute>
    </SimpleObject>  
   
    <SimpleObject Name="Aruco4-13" ID="40">              
        <Attribute Type="Detect">Aruco4-13</Attribute>   
        <Attribute Type="Check">ID13</Atribute>   
        <Attribute Type="Extract">Len1</Attribute>
    </SimpleObject>         

</SimpleObjectBase>

aruco example (Image was obtained with previous version of system) As you can see in the image above, only the marker with id 13 was recognized from the 4x4 dictionary. With the known real dimensions of the marker, the system is able to determine the distance to the object and its rotation.

2.4. Table of supported dictionaries

No Dictionary
0 DICT_4X4_50
1 DICT_4X4_100
2 DICT_4X4_250
3 DICT_4X4_1000
4 DICT_5X5_50
5 DICT_5X5_100
6 DICT_5X5_250
7 DICT_5X5_1000
8 DICT_6X6_50
9 DICT_6X6_100
10 DICT_6X6_250
11 DICT_6X6_1000
12 DICT_7X7_50
13 DICT_7X7_100
14 DICT_7X7_250
15 DICT_7X7_1000
16 DICT_ARUCO_ORIGINAL
17 DICT_APRILTAG_16h5
18 DICT_APRILTAG_25h9
19 DICT_APRILTAG_36h10
20 DICT_APRILTAG_36h11
⚠️ **GitHub.com Fallback** ⚠️