Team A3: BenchGuard
Carnegie Mellon ECE Capstone, Fall 2026
Harry Hu, Zhanming Liang, Alan Wang
In a busy gym, it is hard to tell at a glance which equipment is actually free. In a multi-floor gym, members have no way to know whether a treadmill is open until they walk upstairs to check. Around the squat racks and benches, gym etiquette says lifters should put their weights back when they are done, but many people forget and leave a loaded bar for the next person. Bags, towels, and water bottles left behind can also make a rack look taken long after its owner has finished. BenchGuard is a small edge computer with cameras that turns what it sees into a live display at the front of the gym. Gym-goers can glance at it on the way in to see which treadmills are open before walking upstairs, and staff can use it to check whether weights have been returned at the racks and benches, so they can go fix it if not.
BenchGuard runs on one NVIDIA Jetson board connected to a few cameras. Several vision checks share the same GPU.
- Treadmill availability (highest priority). Detect whether someone is standing on each treadmill and keep the count on the display current within about 5 seconds.
- Squat rack left unattended. Flag a rack that still has plates, bags, or bottles on it after nobody has been in that area for about 15 minutes.
- Bench weights not re-racked. Flag a bench where plates are still loaded on the bar after the lifter has walked away.
Our core contribution is the scheduler, not the vision models. The checks cost very different amounts of work. Seeing whether a person is on a treadmill or at a rack is a quick, lightweight check that needs to run often. Finding a water bottle on the floor or plates on a bar means searching high-resolution images piece by piece, which is far heavier. If every check is treated equally, the heavy searches can crowd out the quick ones. BenchGuard reserves time for the frequent checks and only starts heavy work when it will not delay them, letting the slow checks fall behind on purpose while the display stays fresh.
What makes this project interesting is that it is a real mixed-workload scheduling problem on actual hardware. We will run the same recorded overload scenario under our scheduler and several standard alternatives, including first-come-first-served, round-robin, uncoordinated execution, and a single unified model running every camera at one rate. We will measure how fresh each result stays and how many cameras one Jetson can support before it falls behind.
Design goals
- Keep the treadmill display current under heavy GPU load
- Only flag racks and benches once nobody has been there for a while, so lifters resting between sets are never flagged
- Run every check on one affordable edge device, the Jetson Orin Nano (8 GB)
- Use existing pretrained vision models, with fine-tuning only as a fallback
- Keep all video on the device and show only equipment status on the display
Scope boundaries: BenchGuard is an information display, not a safety device. It issues no alarms, does not identify anyone, sends no video off the device, and places no cameras in locker rooms or changing areas.
MVP: One camera watching a row of treadmills, a pretrained pose model on the Jetson, and a display showing which treadmills are free and how many seconds old that information is, with accuracy and update time measured. The full system adds the squat rack and bench checks under the same scheduler, plus the policy comparison and camera-capacity experiments.