Limelight apriltag artifacting

Hey everyone, we’ve been trying to do pose estimation for the limelight and im pretty sure we have sufficiemt code to utilize the data but the limelight itself keeps recognizing random artifacts in the image as official tags which screws with the pose estiamtion.

In the image you can see the small pose thats being created out of nothing there. We have also tried tuning all the recommended settings as well as reducing the camera to look for only tage 1 and 2 yet the issue keeps happening. We are also using limelight 2+ for reference. Any recommendations?

@Brandon_Hjelstrom What do you have error bits and decision margin set to on the back end? We found 0 and 30-35 to work the best to avoid these “fake targets”.

Im sorry, im a bit unfamiliar with what you mean by error bits and decision margin, is this something that is done within VS code. If you would be able to elaborate that would be amazing. Thanks!

Sorry forgot to actually help, my comment was more directed at something inside of Limelight’s source code (not user editable).

Try using a higher resolution or play around with different levels of downscaling to get less artifacts.

Tried both of these without any luck :frowning:

Still catching a similar artifact which is throwing off our pose estimation and generally giving us a bad time! Are there any other settings in our control that we can manipulate to eliminate the artifacts?

Any help would be greatly appreciated.

If I recall correctly, you can still use size/shape filters on apriltag targets - you might try that? Also, exposure settings make a big difference. The image you attached looks very underexposed to me, that’s probably why you’re having this issue. I believe you want it to be bright enough that the white around the tag is almost clipping - the background doesn’t matter as long as you maximize the contrast of the tag itself.


I recommend using size filters or checking the size of a target before accepting it. At all resolutions and setting I got a lot of spurious tags on LL OS. If you use Photonvision you can get significantly less by adjusting the decision margin, but you’ll probably still want to do it to reject a stray fake every minute or two.


This is not really accurate. You want to keep exposure low so shutter time is fast to reduce motion blur. You also want to decrease brightness and contrast so the image can be processed more quickly.

Take a look at the limelight docs

  • Reducing exposure will always improve motion-blur resilience. This is actually really easy to observe. This may reduce range.
  • Reducing the brightness and contrast of the image will generally improve pipeline framerate and reduce range.
1 Like

that is true, but note the “reduce range” part - it’s a tradeoff between tracking accuracy and blur resilience. also, there are multiple controls to increase exposure - increasing brightness with gain could help accuracy without adding blur (even though it might increase latency)

1 Like

Gain does add blurring, just maybe not quite as much as brightness. I found a gain of 30 to work well without adding too much grain. If you don’t need range over ~15ft, the exposure can be set quite low as well.


I think your best bet, unless Limelight release an update, is to adjust the Area (% of image) to filter out the small blips. Unlike retroreflective pipelines, the targets still show up in the stream but they’re filtered out for pose estimation.

You could also use the ID Filters since only tags 1-8 are on the field, but I don’t think this would affect pose estimation anyway.

1 Like

@Ryan_Swanson @Isaac1 Limelight 2023.3 - Improvements and Bugfixes

New defaults in 2023.3 will probably fix it. ID Filters will help as well

1 Like

Bit of a late response, but yeah, the update solved the issue. Thanks!

1 Like