Just returned from Central Illinois Regional, and wanted to post something about camera issues we had on the field.
We have two Logitech C920 USB cameras on our robot, connected to a Raspberry Pi 2. We have two instances of mjpg_streamer running on the Pi, sending HTTP feeds to SmartDashboard on the DS for the driver to use. We're using
this SmartDashboard extension to display the feeds.
This worked great in the shop before CIR, and when tethered in the pits and practice field. When we hit the competition field the feeds didn't work.
After a lot of help from FTA Nick Luther, we set the RPi, Roborio and DS laptop to static IPs. This also seemed to work great off the field, but failed when connected to FMS.
One of our students went through the FMS whitepaper again and saw that the port range we were using for those feeds (5800 and 5801) are TCP/UDP only. He tried changing them to ports 80 and 443, which are dedicated to HTTP traffic. The very next match the feeds worked flawlessly on the field. The FTA was surprised to learn this, since HTTP just uses TCP under the hood anyway.
Trouble is, it only worked for that one match. The matches that followed the feeds refused to display in SmartDashboard again. We did not resolve this at CIR, so we plan to dig into it this week before MWR. One thing I did notice was SD has a "use mDNS" option that's on by default. That's one thing we can try next time we're on FMS. We're also going to try changing mjpg_streamer to use UDB instead of HTTP.
Just wanted to post this in case anyone had similar setup/experiences/advice to offer. It's frustrating not being able to reproduce issues like this off the field.