# AprilTags do not work in voxl-vision-px4

Source: https://forum.modalai.com/topic/20/apriltags-do-not-work-in-voxl-vision-px4
Category: VOXL SDK and Software (https://forum.modalai.com/category/47/voxl-sdk-and-software)
Posted: 2020-10-08 12:36:52 UTC by rapit
Replies: 4 · Views: 1800

## rapit · 2020-10-08 12:36:52 UTC

Hi,
I tried the inbuild AprilTag feature today but I can't get it to work and I have no idea what is going wrong. I strictly followed the [instructions](https://docs.modalai.com/voxl-vision-px4-apriltag-relocalization/) from the walkthrough video / text. 

The related config is very basic:
```
    "en_apriltag_fixed_frame": true,
    "fixed_apriltags": [
        {
            "tag_id": 1,
            "R_tag_to_fixed": [
                [0, -1, 0],
                [1, 0, 0],
                [0, 0, 1]
            ],
            "T_tag_wrt_fixed": [0, 0, 0]
        }
    ],
    "en_transform_mavlink_pos_setpoints_from_fixed_frame": true,
    "en_fixed_frame_pipe": false,

```
I set the `tag-size` to `0.16`, as each square of the 8x8 tag grid is 2cm. A change of this parameter never had an effect to the detected tag position from `voxl-vision-px4`, which I find very strange. 

When I run `voxl-vision-px4 -p` for debug odometry in fixed frame I get lots of out of bounds warnings. A "first-detection" with a followed position "reset" of fixed frame does not happen. 
```
T_body_wrt_fixed: -0.00  0.00 -0.20  RPY:  0.00  0.00 -0.00
T_body_wrt_fixed: -0.00  0.00 -0.20  RPY:  0.00  0.00  0.00
WARNING, apriltag roll/pitch out of bounds
```

Sometimes, the tag is detected and the position is set to the fixed frame which is way off. This causes voxl-vision-px4 to diverge within a few seconds, even if the drone does not move at all. It crashes in the end of that process and resets the frame.

When I run `voxl-test-vision-lib -a` it prints 
 ```
ID:  1 hamming: 0 margin:89.98 XYZ:  0.67  0.06  1.85 RPY: -0.51  0.25  0.25 hz: 13.6
```
which seams reasonable, even if there is a rotation offset (btw. This is in the frame of the camera right? The z-axis point 45 deg downwards away from the drone)

I recalibrated the tracking camera and reset the config multiple times. Any idea what else could be wrong here? Here is a picture of the setup, it is very similar to your walkthrough video, the voxl is about 1 meter away in y and z directions.

![IMG_20201008_142734546.jpg](https://forum.modalai.com/assets/uploads/files/1602160196421-img_20201008_142734546-resized.jpg) 

Any suggestions would be greatly appreciated!

## Reply by James Strawson (ModalAI staff) · 2020-10-08 19:32:33 UTC

Thank you for the very detailed report, that is extremely helpful. You were right to notice the translation did not update when you change the tag size. I found the documentation incorrectly listed the config file in which this parameter exists, it should be set in '/etc/modalai/vio_apriltag_app.xml' instead.

Sorry for the confusion, I've updated the documentation.

https://docs.modalai.com/voxl-vision-px4-apriltag-relocalization/

As a heads up, we will soon have a standalone apriltag detection service which will consolidate the tag-size parameter along with the ids, translations, and rotations into its own config file. This should make the setup process less confusing.

## Reply by rapit · 2020-10-09 09:13:57 UTC

Thank you, with the correct config file for the tag size, the detected tag positions and rotations in `voxl-test-vision-lib -a` look quite accurate now!

Unfortunately, this had no impact on the vio, it is still not detecting any April tag correct and I get lots of:
```
...
WARNING, apriltag roll/pitch out of bounds
WARNING, apriltag roll/pitch out of bounds
```
But maybe this is not AprilTag related, as vio is reporting very high velocities, sometimes without any AprilTag visible:
```
...
T_body_wrt_local: 1738.20 882.29 453.10  RPY:  0.11 -0.09 -0.38  velocity: 39.93 42.38  3.43
VIO in failed state, restarting
```
Most of the time, all values are increasing without any movement until it is in failed state.

One more thing that comes to my mind, when I stream from the tracking camera (e.g. via the `voxl_cam_ros` node) it always streams an overexposed image:
![screenshot-2020.10.09-10.52.48.png](https://forum.modalai.com/assets/uploads/files/1602233731943-screenshot-2020.10.09-10.52.48.png) 

I have to set the exposure parameter down to 0.05 to get a "normal" image. Maybe your vio uses the overexposed images as well leading to strange results.

## Reply by rapit · 2020-10-09 09:42:22 UTC

Never mind, I updated all packages and reset all configs and it appears to work great. Maybe a misconfiguration somewhere else.

Thank you!

## Reply by James Strawson (ModalAI staff) · 2020-10-09 18:16:27 UTC

Glad you got it working, let me know if you have any more questions. Apriltag relocalization is still a fairly new feature with only me and a few other customers really using it extensively so any feedback is appreciated. Thank you!
