Over the next few weeks, I’ll be going through and updating PhotonVision’s documentation for the 2024 season. I have a few things in mind but am curious as to what people think needs to be documented better when it comes to using AprilTags with PhotonVision. Ideally, I’m looking for responses from a people who have no idea what an AprilTag is all the way to to people who would consider themselves “experts”. A few things already on my list:
What is important when it comes to hardware (balancing FPS, resolution, common setups)
A good networking diagram
Simulation documentation
3D Coordinate Systems
A proper getting started guide maybe? Not sure if this is something people would want.
Going from basic to advanced AprilTag strategies and how vision data fits into your code (we already have something like this but we’ve learned a lot over the last year)
What else would people like to see? Any common confusions you noticed? Any input is greatly appreciated. Additionally, if anyone has the time to help write / update documentation that would also be appreciated.
I realize that it’s kind of a big ask, but some way of estimating how performant different coprocessors would be. Is two fast cores better than four slower ones? ARM vs. x86? Is there a good benchmark to use?
I think some documentation on using multiple cameras and how to actually effectively use this on a robot. Maybe something about filtering bad results? I don’t have any experience with this nor have I actually done any research on it, it might be pretty easy, but I remember reading in a few teams’ technical binders that they used kalman filters or something. Someone correct if I’m wrong or if it already exists. Also, not sure if it’s documented anywhere, but I wasn’t able to get it working on a robot with a RIO 1.0, and I think they have problems with networktables. Not sure though.
What problem were you having with RoboRIO 1.0? I dont remember we ran into any issues during our development last year (we ended up didn’t use vision last year due to not having enough time to integrate everything else).
We were using PhotonVision on an Beeline Mini-PC though (it was an N40xx processor will have to go dig up which one). The PI4 was too laggy for us during benchtop testing alone.
Tuning pose est for swerve! This may just be a skill issue for me but more stuff about filters, the standard deviation stuff, etc would be super super appreciated as I’m still not entirely sure I understand lol
More work on the examples, I personally found them a bit lacking re: pose est in particular, especially for swerve and it would have been nice to see examples for tuning estimators
I think at least those two would be good, but docs for how to tune pose estimators should live in WPILib documentation (and are things I personally won’t have time/expertise to do).
The section on installing on Debian based systems says to the install scripts. It is not something I have played with but when the time comes instructions on how to use install scripts would be nice.
Recommendations for cameras, lenses, coprocessors and a quick pro and cons lists for all of those maybe would be nice for helping teams choose their setup.
Not sure if these things should live in the PhotonVision documentation, but while I was setting up PhotonVision last year, these were the 2 biggest things I would’ve liked to see more resources for:
Camera mounting suggestions. I’ve seen several different methods of mounting cameras (ex. 2 cameras pointing at the same tag from 2 different angles, 2 cameras pointing forward and backward, etc.) and I honestly have no clue where to start with mounting. Even just some broad suggestions would be helpful.
When to reject camera results. Maybe this leans too far into tuning pose estimators, but a short guide for how to decide your pose strategy or when/how to reject a camera result would be nice. I know some teams reject results during auto or when the pose is too far away from the tag; I would just like to know the ideology behind those decisions.
Overall, the documentation you guys have now is already really helpful. I had PhotonVision fully operational on our robot by week 2, but I never knew how to tune it to the point where we could use it. Keep up the good work
From your great suggestion specifically a list of resources would be very helpful to beginners that want to understand their selection of hardware.
A small example would be this M12 mount lens chart from ArduCam showing the Field Of View (fov) for different sensors (highlighted) and different focal lengths (higher up in the table).
How to read specs is a good skill to have and a tutorial on that would be helpful. What is the size of a sensor? What’s hFoV, VFoV, and FoV? Tutorial on how to read the specs would be helpful.
At least for point 3, using a Raspberry Pi should help with that. It’s just a matter of flashing the PhotonVision image onto a microSD card, putting it into a Pi, and turning it on.