Camera problems on FMS

Our Axis M1013 ethernet camera cuts out during matches, but only when it’s connected to the FMS. The drivers say it’s fine during auto, but then cuts out during teleop until the end. Does anyone have any advice? Both attempts at getting CSAs to look at the issue have solved it.

  • Firewall is disabled
  • Camera is 800x600 at 15 fps
  • It also broke on full practice fields
  • Camera is on 5v 2A on the VRM

What is the bandwidth used? 800x600 seems high. Does it change during the match, which might explain why it works earlier and fails later.

Ask the field staff to/watch your bandwidth during the match to see if it’s pegging above 7 Mbps.

The bandwidth varies greatly depending on what the camera is pointing at and the compressibility of the image based on the complexity of the image.

You can watch bandwidth yourself using Task Manager as well.

I was sitting at the scoring table. A lot of teams were at 6 and 7 Mbps usage level prior to the start of the match (cameras eating up a lot of the bandwidth).

My team was too, and we had the camera dialed back.

800x600 is 480,000 pixels
15 fps at 480,000 pixels is 7,200,000 pixels per second.

your limit is 7Mbps (7 million bits per second), and you are already at that limit

Note: That assumes 1 bit per pixel (white/black). Add color, and you are at a multiple of the limit.

Cutout is probably due to dropped pixels. Once you start dropping pixels, the software can’t re-sync with the sporadic data stream (like when you get a pixelated picture on your TV). It needs a continuous clean data stream for a few seconds to resync.

I’m guessing that during setup and autonomous, as long as there is no conflict, FMS doesn’t throttle bandwidth usage between the robot and Driver Station. Once teleop starts, the data usage increases dramatically, and the 7Mbps limit is then enforced - resulting in dropped pixels, and loss of picture on your DS.

You can’t estimate bandwidth that way… Not even 0% compression is that inefficient

That’s saying a 1080p video thats an hour long is 1.46x10^16 bits large

Given, the point is still valid, 800x600 is too large for FRC use

The estimate can be used as an upper bound, but unless you have written your own video server using BMPs, your bandwidth will not be anywhere near the estimated value.

Also, bandwidth limits are imposed at all times, disabled, auto, and tele. And teleOp doesn’t inherently use more bandwidth than auto. The protocol is pretty much fixed rate. Even in disabled, most robots are using the field networking similar to how they’ll use it in a match. This acts as a predictive test of the networking conditions before the match starts.

Greg McKaskle

Here’s the place in Resource Monitor to look at bandwidth usage.

Note that the field limit is in Mbps (megabits per second), but the small circled values are in Bytes/second.

A good target would be camera settings that consistently keep you below 6mbps.





Wireshark is a good way for measuring bandwidth usage. You can also use the estimation thats in the default dashboard.

Here are directions for using both Wireshark and Win Performance Monitor:

http://wpilib.screenstepslive.com/s/4485/m/24193/l/144992-measuring-bandwidth-usage

I’d suggest shooting for max bandwidth in the pit or at home of under 5 or 4 Mbps (my team shoots for under 2Mbps to give them the option of adding a third camera should they ever feel it’s necessary.
On the playing field the measured bandwidth regularly jumps 2 Mbps or so during matches depending on what the camera happens to be pointed at.
Always ask the field staff to help you monitor the real field conditions - drive teams have other things to watch during a match…

Get everything operating in that range and you can always increase it later on the real playing field when you see what the real performance turns out to be.