Last weekend, at the Battleship Blast offseason event, I noticed a possibly dangerous anomaly in the FMS (FMS Lite, per @DylanB).
First of all, my team, 696, also entered our practice robot as team 9696. This caused some problems initially, since we did not correctly reconfigure all of the networked devices on our practice bot to the 10.96.96.x subnet (we statically address everything). Unsurprisingly, when team 9696 connects to the FMS, a roboRIO at 10.6.96.2 will not respond correctly. Furthermore, because of the small number of teams (16) at the event, at least one of our robots was very often on the field (this will become significant later).
The dramatic anomalies occurred when attempting to run one of the robots tethered in the pit. I unfortunately don’t remember which robot, but I believe it was the practice bot, for reasons that should become obvious. First of all, on several occasions, the driver station would display the “FMS Connected…” message rather than the normal control pane expected when tethering. Second, and much more worryingly, the robot enabled in the pit, despite no action on the driver station, and in fact despite the driver station laptop being physically disconnected from the robot.
I believe that our practice robot’s radio actually reconnected to the field when it was powered on in the pit, and further that whatever FMS software was in use did not segregate communications into separate VLANs. Here’s my analysis:
- Team 696, with a correctly-configured robot, is on the field
- Team 9696 is testing robot functionality in the pit
- The 9696 radio connects to the field when the robot is powered on
- While the 9696 radio’s configuration is correct, the 9696 RoboRIO is statically addressed at 10.6.96.2, rather than 10.96.96.2
- (The 9696 driver station may have also been incorrectly addressed in the 10.6.96 subnet, but I’m not sure)
- As a result, some or all of the packets from the 696 driver station, on the field, ended up reaching the 9696 robot in the pit, leading to spurious enables.
Both of the problems (the driver station believing it was connected to the FMS during pit tethering, and the spurious enables) were corrected by disconnecting the robot radios while in the pit.