As I am sure a lot of your teams have discussed, our team is deciding if we should utilize two cameras or just one. With the new bandwidth limit of 4Mb/s, do you think it is feasible to run two LifeCams streaming over to the driver station? An example for an application of this would be one camera on the arm for upper alignment, and one camera mounted low for maneuvering.
If you use something like a Raspberry Pi, you could theoretically make an interface such that you have as many cameras as you want (up to what the pi can realistically handle) and then only stream the one you are currently interested in looking at. You could have some sort of controller or drive-station type system that sends a signal to the pi telling it to switch inputs. That way you are only ever streaming one feed and can be a lot more confident about not capping bandwidth. Unless you are planning on carrying around multiple monitors as a part of your drive system, there’s a limit to how much you can see on your laptop’s screen anyways.
We used two LifeCams in 2017 on the roboRIO with CameraServer. One was for vision alignment, set to 640x480, 7 fps, manual exposure set to 1 so it was a dark image that compressed very well. The other was for the driver set to 160x120, 30fps, manual exposure set to 50. I think the total bandwidth was around 3 mbps.
A few other tips:
- Cameras don’t support every combination of resolution, fps, and video modes. If you connect to the CameraServer webpage you can see all the modes the camera supports. See here for more details on the Camera Server webpage: USB Camera - Super Exposed
- Sometimes the two cameras will get swapped. You can work around this by specifying the path to the camera using the /dev/v4l/by-path/ See this thread for some more details. Multiple USB Cameras and USB port assignments
One new CameraServer feature this year is that the alternate device paths are displayed on the webpage, so they’re easy to copy and paste into your code.
There is a camera server image for Raspberry pi that does just that. We have a Microsoft Lifecam + a 170 Deg Fisheye camera hooked up to the Pi. The driver station sees the cameras and you can chose to display one or both of them, or even more (The Pi has 4 USB ports).
Here is the documentation on using the pi.
http://wpilib.screenstepslive.com/s/currentCS/m/85074/l/1027798-the-raspberry-pi-frc-console
Here is our dual display: