Recognizes arena boundaries and robot locations using apriltags and publishes them on a websocket.
flowchart TD
web["π Web Interface"] -->|uploads code| code-server[("πΎ Code Server\n(this)")]
code-server -->|highlight data| web
code-server -->|downloads code| bot-server["π» Bot Server"]
bot-server -->|highlight data| code-server
bot-server -->|motor instructions| robot["π€ Robot"]
robot -->|sensor data| bot-server
tag-server["π· Tag Server\n(this)"] -->|apriltag positions| bot-server
style tag-server stroke-width:2px,stroke-dasharray: 5 5,stroke:#3b82f6
click web "https://github.com/AutoSumo/web"
click code-server "https://github.com/AutoSumo/code-server"
click bot-server "https://github.com/AutoSumo/server"
click robot "https://github.com/AutoSumo/robot"
The arena uses apriltags to mark the corners of the arena. This means no calibration is necessary, regardless of perspective:
perspective.mp4
The tag server draws an ellipse constrained to the edges of the quadrilateral detected from the tags:
auto-adjust.mp4
It marks other tags as green/red depending on whether they are in/out of the arena: