|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
|
|
Thread Tools | Rate Thread | Display Modes |
|
|
|
#1
|
||||
|
||||
|
Re: FMS enabling sequence?
I suggest you view the FMS White Paper to better understand how the field works.
|
|
#2
|
|||
|
|||
|
Re: FMS enabling sequence?
Quote:
We have not measured exactly delay, but have anecdotal evidence of seeing some robots move before others. Field timing issues were pretty prevalent last year and it's unclear to me any of it has been fixed. Unfortunately, the delay from the FMS may decide Einstein. Last edited by Tom Bottiglieri : 23-03-2015 at 15:41. |
|
#3
|
||||
|
||||
|
Re: FMS enabling sequence?
Quote:
It might seem a silly question to ask if there is a significant delay between sending red and blue side commands, but hey, that's exactly what happened last year with the hot goal lights, which were +/- 4 seconds in terms of accuracy at times. These ethernet cables run to control cases (SCC's) under the DS shelf, where they plug into an ethernet switch. This ethernet switch is connected to an Allen Bradley Stratix 8000, which has three other ethernet ports that are dedicated to 1, 2, and 3 driver stations. What goes on here is unknown, but it's not unreasonable to expect that there could be delays here. The Allen Bradley box is doing something other than being a switch because it won't work if you plug the wrong team into the wrong ethernet cable. Quote:
The FMS software and DS are written in C# (or c++, I forget), and LabVIEW, both of which easily support event driven behavior, meaning the driver station may respond to an FMS command as soon as the network buffer reads in the message. Quote:
|
|
#4
|
||||
|
||||
|
Re: FMS enabling sequence?
Quote:
Quote:
Quote:
One of the questions I was taught to ask early on in Grad school is what scale of effect actually matters in a given experiment, and to focus only on those factors that have meaningful impact. If there are no systematic biases towards particular team stations, how much does a worst case 20ms delay due to polling actually affect a mechanism compared to all the other variables in play? |
|
#5
|
|||
|
|||
|
Re: FMS enabling sequence?
That is the part I am interested in learning more about.
|
|
#6
|
|||||
|
|||||
|
Re: FMS enabling sequence?
On a different note, I would love an update to the FMS Whitepaper that goes into much greater technical detail. Or maybe a 1 day recorded conference, where someone on FRC engineering can do a very detailed, technical walkthrough of how the field works (and maybe show some code snippets), including a Q&A.
I don't like how the field electronics are a 'black box' to most teams - I gained most of my knowledge about how the field works from volunteering and working with it regularly, something teams don't do. A greater understanding about how the competition field works will reduce the amount of anger and frustration often (mis)directed at FMS. Last edited by plnyyanks : 23-03-2015 at 18:11. Reason: Can't read... |
|
#7
|
||||
|
||||
|
Re: FMS enabling sequence?
If the serial enabling differences are cumulative, the first bot will move 0.1 second before the last one. That's more than the difference in speed between several of the can grabbers at the moment.
|
|
#8
|
||||
|
||||
|
Re: FMS enabling sequence?
Quote:
Now its entirely possible something else in code is delaying more, but I cant see how the FMS would take 60+ms to send enable packets. If so, we would visually see it. |
|
#9
|
||||
|
||||
|
Re: FMS enabling sequence?
Quote:
I expect the FMS timing is understood by the people involved in writing the programs. It just not public information. |
|
#10
|
||||
|
||||
|
Re: FMS enabling sequence?
So, since this doesn't seem resolved is there any way we can figure this out aside from FIRST publicly posting the FMS code? They only other way I can think is setting up two robots with known mechanism speeds and comparing them at each possible driver station combination. This would be pretty difficult to do though as you would need to reserve an entire field for only 2 teams for at least 30-60 mins, likely not possible with time constraints and demand for practice matches at most competitions.
|
|
#11
|
|||
|
|||
|
Re: FMS enabling sequence?
I have no knowledge of the internals of the FMS software, so these observations are based completely on the whitepaper and other public sources.
1. The minimum interpacket gap for 100mbps Ethernet is 0.96 µs. 2. The FMS code could take longer than 0.96 µs to send the "auto enable" command to each DS, depending on what the logic looks like in the FMS code. For example, there could be logging being written to disk between each initiate command. 3. The protocol between the FMS and the DS isn't documented in the whitepaper. 4. The FMS whitepaper says that robot <--> DS control packets are prioritized over video packets. I read that as saying that UDP 1130 and 1140 are prioritized over the other ports available for robot <--> DS communication. The whitepaper is silent about the relative priority of FMS <--> DS packets. A reasonable guess is that FMS <--> DS packets are at the same as robot <--> DS control packets. If this guess is true, it's unlikely that robot -> DS data on the open ports (e.g. camera packets) from the robot will interfere with the "auto enable" command from the FMS. 5. It is likely that one of these two statements is true: a. The "auto enable" command is sent to each DS in the same order in every match (e.g., Red 1/2/3, Blue 1/2/3) b. The "auto enable" command is sent to each DS in a purposely randomized order in every match Why are these likely? Because a) is the easiest to code, and b) would be the logical alternative if they made a specific design decision here. 6. The FMS developers are likely to be curious about a thread on CD entitled "FMS enabling sequence." |
|
#12
|
||||
|
||||
|
Re: FMS enabling sequence?
Caveat: I have had training on use of the FMS but do not know details of it's implementation. I'm engaging in this discussion because it is a interesting topic and educated speculation is fun!
Quote:
Just from a safety perspective the overall architecture should allow EStop commands to be acted on quickly, so I feel a 100ms scale of potential delay is very unlikely. I agree with Thad and other's suggestion that all DSs are likely sent an enable packet within a much smaller window - let's assume within 5ms. With that assumption, the critical issue is where the DS is in the polling cycle when it received the enable, and that's not under FMS control. Big picture: fewer than half of matches would have one or more teams receive the enable one polling period later. With the worst case design of fixed enable order, some specific stations would have a higher probability of getting the one period delay. So back to my earlier question: given all the other sources of variability, does a finite probability of a 20ms delay matter in the "real world"? I don't know how consistent the top teams are at can burgling, but my gut sense is that this order of potential delay is of secondary or tertiary concern. However I'm happy to be corrected by members of those inspirational teams. Hi guys! |
|
#13
|
||||
|
||||
|
Re: FMS enabling sequence?
Quote:
|
|
#14
|
|||
|
|||
|
Re: FMS enabling sequence?
20 ms matters a great deal. I expect in that much time some teams would be 1/4 of the way to the cans already.
A seperate question: why are we all guessing about how FMS works? Why isn't the code 100% available to everyone? Was it developed by an external company that doesn't want their IP shared? |
|
#15
|
|||
|
|||
|
Re: FMS enabling sequence?
We have some evidence of FMS enabling sequence timing issues. At msc, in playoffs, 548 and our partner 1711 ran very similar autonomous modes (i.e. cheesecake). We both run java, and used talons srx connected by can.
The troubling issue is that 548 consistently started moving 10-30 ms before 1711. 548 was always red 1, and 1711 was red 3. We are working with 1711 to look into DS logs to find out if there was some delay recorded there. Can anything be done about this? As far as specific details FMS is a black box to us teams. Hopefully there is a Snowden among the FMS developers that will spill the beans and let the community suggest improvements. |
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|