Hi. I’m the main programmer for our team and am considering the best way to do our vision this year. Our original plan was to use PhotonVision for identifying the reflective tape, and a separate PixyCam for identifying balls. However, preliminary testing and research has shown that the Pixy just isn’t advanced enough this year, due to the many similar colors on the field.
Therefore, I want to try using a USB camera for ball search in addition to the PiCam for tape on the Pi 3. My main concern is framerate. We need the maximum possible framerate for fast targeting and ball chasing. However, in our design we will never need to look for the target and look for balls at the same time. I want to be able to completely turn off the processing for one of the cameras to dedicate processing to the other one.
Looking at the doc, it doesn’t look like there is any way to do that. It would be great to have something like “setting the pipeline to 99 will turn it off”. Or would setting “Driver mode” accomplish this? The docs do not have much information on this at all. All I can find is
You can use the
setDriverMode()
/SetDriverMode()
(Java and C++ respectively) to toggle driver mode from your robot program. Driver mode is an unfiltered / normal view of the camera to be used while driving the robot.
Some more info on processing impact etc would be nice there. Similarly, is there any info on if scaling is applied to the frames for DS streaming purposes? We don’t need that so a way to turn that part off would be great.
I previously used OpenCV and python for vision processing, which would make it super easy to do what I am talking about. Just don’t enter the processing block for that camera, and you’re good.
Is there any way to temporarily disable all processing on one camera in PhotonVision so another one can run at max speed?