I am trying to get AprilTag localization working on the Starling 2 drone but I cannot get the fixed coordinate system to change based on the apriltag. I am able to detect it correctly, but relocalization does not work.
Here are relevant configuration files, I mainly followed the example link.
voxl-tag-detector.conf
/**
* This file contains configuration parameters for voxl-tag-detector.
* You can specify up to 3 cameras to do detection on simultaneously.
* For the stereo camera pair, only the left camera is used.
*/
{
"detector_0": {
"enable": true,
"input_pipe": "tracking_front",
"en_fast_mode": true,
"n_threads": 1,
"en_undistortion": true,
"undistort_scale": 0.600000023841858,
"overlay_name": "tracking_tag_overlay",
"lens_cal_file": "/data/modalai/opencv_tracking_front_intrinsics.yml",
"skip_n_frames": 5
}
}
tag_locations.conf
{
"locations": [{
"id": 0,
"name": "landing-pad",
"loc_type": "fixed",
"size_m": 0.17145,
"T_tag_wrt_fixed": [0, 0, 0],
"R_tag_to_fixed": [[0, -1, 0], [1, 0, 0], [0, 0, 1]]
}],
"default_size_m": 0.17145 // 0.40000000596046448
}
in voxl-vision-hub.conf I have
"en_tag_fixed_frame": true,
"en_transform_mavlink_pos_setpoints_from_fixed_frame": true
When I run
voxl-vision-hub -l
I am able to see the tags position update as it moves.
When I run
voxl-vision-hub -p
I can see the local_wrt_fixed change when the drone moves, but not when the tag moves. I would expect the local_wrt_fixed to also change with the tag moving since it is set to be [0,0,0].
I also often get a "WARNING, apriltag roll/pitch out of bounds", which appears to be a common issue.
Is there a configuration error I am missing or some way I can get the relocalization system to work?