Guide · matches
How to score a match with several robots
For VEX matches, or any game where several robots share one field. You get each robot’s path and a report for autonomous and driver control. You don’t get a game score: that depends on the opponents, and the referees already keep it.
In development. These tools are new, and the tracker still mixes robots up when they push each other. Read the match experiment to see how well it does today.
Before you film
Ask first. Matches have students in them and are often someone else’s footage. Get permission from the teams and the event before you film or use a recording. MotionBench publishes robot paths, never the video.
You’ll need: a camera that can see the whole field from above, and a computer with the free toolkit (install it, then pip install "motionbench[tracker]").
What makes a good video
- All four corners of the field in view, the whole match long.
- High up and looking down: a balcony, a tall tripod or pole, or the event’s overhead stream.
- The camera never moves or zooms once the match starts.
- Start filming a few seconds before the match, and note when it starts.
- 1080p at 30 frames a second is plenty.
Five steps
Film the match
As above. If it’s a broadcast, note the time where the overhead shot starts (intro shots come first) and where the match clock starts. Below we use 9 s and 12 s.
Show it where the field is
This makes a picture of the empty field and a small page you open in your browser. Tap the four inside corners of the field (far left, far right, near right, near left) and download
calib.json. The field’s size is filled in for you: 3.566 m inside the walls for VEX V5.motionbench calibrate match.mp4 --vex-field --width 1020 --start 9 -o calib.htmlNot a VEX V5 field? Use
--field WIDTH LENGTHin metres instead of--vex-field.Track the robots
The tracker follows every robot and writes where each one was, ten times a second, in metres on the field. Always watch
check.mp4: it draws the tracks on the video, so you can see where it got confused.motionbench match track match.mp4 --calib calib.json --start 9 --match-start 12 \ -o tracks.csv --overlay check.mp4Turn the tracks into a match
This joins up tracks that broke for a moment, names the robots by alliance, and writes one path per robot. Give the robots their team numbers if you like.
motionbench match from-tracks tracks.csv -o my-match/ --name red1=1234A --name blue1=5678BRead the report
For each robot, autonomous and driver control separately: distance, speed, time sitting still, time on each half and in the park zone, and contacts with other robots and the walls.
--pngdraws every path.motionbench match report my-match/ --png paths.png
Check the tracker before you trust it
Real footage has no answer key, so test on simulated matches that do. Make a few, film them from your own camera position, track them and score the tracker. If it’s accurate there, it’s a good sign for your real video.
motionbench match synth -o sim/ --seeds 1-3
motionbench match render sim/m0001 -o m0001.mp4
motionbench match track m0001.mp4 -o m0001-tracks.csv
motionbench match eval sim/m0001 m0001-tracks.csvTo render from your camera instead of ours, put the camera from your calib.json into the match’s match.json. Details in the match docs.
Write a better tracker
The benchmark is open: any tracker that writes a CSV of t_s, track_id, x_m, y_m, alliance can be scored against the simulated matches. Ours finds the robots well and keeps their identities badly, so there’s plenty of room.
Send us your numbers, or footage you have permission to share, through the get involved page. Uploading matches straight from the site is coming.