CAN Bus

We know telopPeriodic gets called over and over. But how frequently? It is documented at something like 50 times a second. That's means it should be called every 20ms.

Last year we did some quick timings and found that setting the jags along the CAN bus seemed to be quite time consuming (relatively speaking).  On our robot, 3 motors took something like 20ms to set.  We can't possibly be revisiting telopPeriodic every 20ms if we are consuming at least that much time setting Jag speeds. So this year, we did some simple tests to measure telopPeriodic time with varying numbers of CAN Jaguars in the loop.

Result: The CAN bus adds a significant delay time in between each run of teleop periodic, and it gets worse the more Jags you talk to.

Seconds between each run during tests:

Test Time
Empty Program  0.02
1 Jag (Top BMS)  0.021
2 Jag (Top BMS + Arm)  0.026
3 Jag (Top Middle BMS + Arm)  0.028
4 Jag (Only DriveTrain)  0.038
4 Jag (No DriveTrain)  0.04
5 Jag (DriveTrain + Arm)  0.04
6 Jag (DriveTrain + Arm + Top BMS)  0.042