Information about the FMS protocol

Hey! #9611 Development Lead here, we’re working on a solution that requires deep knowledge about how the FMS would work, but I couldn’t find any information of the protocol itself. The whitepaper doesn’t mention how the communication is made, and how I could replicate on a lab environment.

I also know about solutions such as CheesyArena, but their implementation is in the middle of a mass of code, if I could have a wiki or something similar would be better.

TL;DR: Where/How can I learn more about the protocol used by FIRST?

Thanks!

1 Like

What are your goals? In general, implementing the FMS protocol is only necessary if you want to do something like CheesyArena and actually run scrimmages (or similar) where it is required to have multiple robots starting at the same time under field control (with separate safety mechanisms). This is almost never needed, and can be quite unsafe to do, in a lab environment. The robot never talks to the FMS, so replicating that functionality is not necessary for typical robot testing.

3 Likes

My goals is making the multi-robot management, similar to the cheesyarena, but with some major adjustments on game dynamics which should justify for a remake not a fork. However I need first to replicate the FMS protocol on a single robot to start testing.

I know you mentioned looking at the code, but I do think this one file in Cheesy Arena Lite captures the FMS-DS packet formats and ports in about a concise a way as any document might.

3 Likes

Probably I will need to go by looking at this code and remaking it, but thanks you!

1 Like

Although it’s somewhat old at this point, https://frcture.readthedocs.io has a lot of info

4 Likes

this is pretty much what I need, unfortunately it’s 5 year-old, but I think I can work with that, thanks!

1 Like

Just to re-emphasize this- a DS under full FMS control (as implemented in cheesy arena) is unable to be disabled manually in the DS software. On the field, this is fine- when the station or field e-stops are pressed, the FMS commands the DS state to disabled.
In a lab environment running custom “FMS” software without estops or a field perimeter, this means you are relying on your software to disable the DS.

9 Likes