Two USB Cameras Issue

Our team picked up one of the Kangaroo PCs this year to use for onboard vision. The plan is to put one USB camera to the roborio that will be streamed to the dashboard for the drive team and two USB cameras to the Kangaroo where we will run grip and use network tables to return the answers to the roborio.

Pieces of this solution work at any one time but not all at the same time. We are using logitech C615 cameras (1080p) and one to the roborio and one to the kangaroo works fine. The problem seems to occur when connecting a second camera. I don’t recall the exact message now but it seems that we are overloading the USB ports (or controller?) on the kangaroo. We have replaced the cameras with the microsoft lifecam 3000 and had the same issues. We see the same thing with both C615’s plugged into the roborio.

I know in java code we can set the FPS and resolution on the cameras. The programmers are under the impression that these settings only affect what is streamed from the cameraserver to the clients and not what the camera sends to the cameraserver. It seems to me that we need to dumb down what the camera sends through USB to the camera server. Does anyone know anything about this? I’m missing the old axis cameras where we could set it on the camera and forget it. But that’s $230 for the new ones compared to $30 for these.

To be clear, this does not seem to be a streaming issue to the dashboard at all. It is USB port related.

We had this last year using a raspberry pi, otherwise the same. I was not “inside” the problem, but the issue as reported was that each camera allocated in excess of 50% of the USB bandwidth. IIRC, the programmers had to limit the bandwidth of the first camera (or both?) when they declared it; they could not reduce the allocation after the fact.

We solved this problem by attaching one camera to a co-processor and the other to the RIO. This avoids the USB problems.

Yep. That’s where we’re at currently. We’d like one to the Rio for the driver station and two to the co-processor. One for gear and one for shooting. Unfortunately they are in opposite directions.