2020.1 adds one of Limelight’s coolest features yet: 2x Hardware Zoom (not digital zoom) for long-range tracking. This feature is available for all Limelight variants.
Features
2x Hardware Zoom
This is not digital zoom.
Enable 2x Hardware zoom to achieve vastly improved tracking at long range, and stable tracking at full-court distances.
This feature comes with absolutely no latency or framerate cost - tracking continues to execute at 90fps with no additional overhead.
Zoom from the autonomous starting line (~127" away):
We have added the “Force Convex” option to use only the outermost points of a target - this is necessary in 2020 due to the thinness of the tape used for the hexagonal target.
The “bind target” option has been added. This feature binds “tx” and “ty” to the 3D target. This is required to guide robots to score using 3D targets.
Finally, we have added the “Goal Z-Offset” option to help offset desired target locations in 3D space on the Z-axis.
In Infinite Recharge, the “Goal Z-Offset” would be used to track the center of the small, circular goal behind the hexagonal goal.
SolvePnP is still an experimental feature! We believe there are creative ways to play this game without SolvePnP, but we will continue to improve this feature this season.
Color sensing with "tc"
Read the new “tc” array in Network Tables to obtain Red, Green, and Blue values at the crosshair’s location. Adjust “Blue Balance” and “Red Balance” on the input tab to achieve perfect color sensing.
Bugfixes
USB Camera functionality broken in 2020.0 is now fixed in 2020.1
SolvePnP functionality broken in 2020.0 is now fixed in 2020.1
SolvePnP properly uses the model center as the axis visualization center
I have a couple of questions about this new feature
Can you switch the zoom mode during a game?
Does it take time to switch zoom modes?
Whats the FOV of the camera when its zoomed in?
When zoomed in at the autonomous line the target looks very big, that means that it can easily get out of frame and disable your vision alignment capability. Is there a way to start with no zoom and then zoom in to get an even more accurate alignment?
This looks great for mid to long range vision processing, good job!
I’m not a camera expert, so this is probably a stupid question, but how does this work? From my understanding there are no moving parts in the Limelight’s lens, so I don’t see how the image could be magnified without cropping and zooming on the sensor digitally. Super curious as to how you guys pulled this off!
I love the fact that this will even be available on our now-“old” limelight 2. Backwards-compatibility for feature updates is not something that can be taken for granted in electronics nowadays, and I’m super excited to get zoom working. Thank you limelight!
I would suspect they’re referring to pixel binning at the hardware level - the camera sensor can combine 2x2 or 4x4 pixels into one. Since it is probably around a 5MP sensor, and the Limelight runs at a much lower resolution, it can “zoom” without reducing quality.
The Raspberry Pi Camera Board v2 is a high quality 8 megapixel Sony IMX219 image sensor custom designed add-on board for Raspberry Pi, featuring a fixed focus lens. It’s capable of 3280 x 2464 pixel static images, and also supports 1080p30, 720p60, and 640x480p90 video.
It is common knowledge that the Limelight 2 is running on a Pi Compute Module similar to this one..
Now we also know that if the Pi camera and the Limelight both can operate at 640x480 90fps, it is a fairly safe assumption that the camera module in the Limelight actually has a higher resolution than 640x480. Looking closely at the gif’s Brandon posted, you can see the resolution used was 320x240.
Thus it appears that your premise that it is using pixel binning is spot on!
We have tested out this image a couple days ago on our Limelight 2 and I have a feeling that the feature of red/blue balance is not doing it’s job - there were no visible changes when we moved the sliders. However, when we swotched back to 2020.0 image, the sliders began to change the red and blue balace again. Has anyone else experienced this issue?
@Isopod00@le_pantman
Currently, switching pipelines is the only way to change zoom levels. You may find that you want different pipeline settings at different zoom levels which is why we made this decision. The easiest way to do this would be to download your first pipeline, upload it to a new slot, and then change the video mode on the new pipeline.
I’m not opposed to making this a network tables option. Based on your testing would you rather use one pipeline with a networktables option?
@Brandon_Hjelstrom Okay, thanks for the quick reply! It makes sense that different zoom levels might work better with different tracking settings. I haven’t done any testing with switching between multiple pipelines in code yet, but I definitely will try that out. I don’t know which way would be better since I haven’t tested it yet, but if there are lots of other people asking for it maybe you could also make zoom a networktables option so people have a choice of which way they want to go about doing it.