Hello everyone, I’d like to make a thread to gain feedback on how to build zones for my ZEBRA Data Parser in 2020. If you are unfamiliar with my data parser, take a look at my TBA Blog posts on it.
This is a very new way to analyze FRC data, and as such there exist no established standards on how to build these zones. For 2019, I just threw together some zones in order to more quickly move to other analyses, and since it was a proof of concept, did not spend as much time on it. However, for 2020, since we will have dozens of events worth of data, I want to make sure to build these zones as best as I can from the getgo.
My general feeling for zones is that they should be between 1 and 4 robots in size. Making them smaller than a single robot generally seems silly, as at that point there will be little distinction between zones, and the differing position of the ZEBRA trackers on two robots will cause different zone designations even if the robots are sitting in the exact same field position. On the flipside, a zone greater than 4 robots in size is likely too large, and should be broken up into one or more smaller zones so that we don’t limit ourselves to zone use cases that we don’t think of right away.
Another current restriction that we have is that zones must be triangles or concave quadrilaterals. I have trouble imagining a case where a convex polygon would make a useful zone. The fact that we cannot use pentagons though seems to unnecessarily restrict us for 2020 though, primarily in the weird area near the trench and the nearest shield generator support beam. I am tentatively planning to add concave pentagon and concave hexagon zone support in my next data parser update, as I can’t find a good way to make zones in this area without pentagons.
With all that out of the way, here is my first pass at what I believe would be a good zone splitting for 2020. Note that I’ve only marked a half field, the other half would be symmetrical to this.
Let me explain the colors and their meanings:
Level 1 (Green): Green is for the very obvious field markings and structures. This includes the edges of the field, target zone markings, loading zone markings, initiation line, trench run markings, and shield generator boundaries
Level 2 (Yellow): Yellow is for the effective areas associated with penalties and/or zone-specific scoring. Since G10 applies to any robot who’s bumpers even cross the target zone, trench run, or loading zone, I made yellow lines to bound those areas. Since G3 says a robot may not have it’s bumpers break the plane of it’s own sector, I put a yellow line on the side of the initiation line near to the field center. Since G9 says robots must break the plane of it’s own sector, I added a yellow line on the side of the initiation line away from field center. These lines together will also be useful for tracking auto mobility points off of the initiation line. I also put yellow lines on both sides of the control panel (these could have been green as well).
Level 3 (White): White zones are for connecting corners of green/yellow lines to each other. This is where things start to become more artistic and less formally defined. Green and yellow lines arise from pretty clear principles, but there are many ways to connect corners. I have a strong personal preference for rectangular zones that are parallel to field walls when possible, so I used the white lines to build these, with the exception of the connection between the trench run corners and the yellow lines surrounding the trench run.
Level 4 (Pink): Pink zones are used to split zones that would be too large without additional splits. These are the lines that are most up to personal preference, and as such I am most interested in feedback on these, as I think there can be good arguments for many options. I chose to split the zones near the initiation line into 7 parts each, in line with the zones near the alliance wall. A reasonable alternative would have been to split these zones into 5 parts each, in line with the zones near the center of the field. I opted for more zones because I believe this area will be a common shooting area, and as such tracking which zone a robot is in with higher granularity will be important. I also chose to split the quadrants of the shield generator in half perpendicular to the switches. I think this is a more natural split than to go parallel to the switches as robots will swing some while hanging. I could have split each quadrant into 3 zones instead of 2, but that was starting to get small. I can see an argument for 3 though as it would better mark endgame locations for robots. I also split the long side of the trench run and adjacent penalty effective area into 3 zones. This comfortably puts one ball in each zone for potential auto tracking, and makes each zone around the same size as the other trench run zone on the far side of the trench. I could see splitting this area into 2 or 4 zones though.
Let me know what you think of any of my guiding principles or zone designations! Particularly if you have ideas for use cases of these zones that I haven’t thought of.