TYPE
Hardware · Classical vision
ROLE
Solo: perception to action loop
POLICY
Depth aware Minimax, optimal
Overview
- A complete perception action loop played on real paper: the robot draws the grid, detects it visually, interprets human moves, and responds, with every outcome written physically on the page.
- No fiducials and no manual calibration. The system self aligns to the grid the robot itself drew.
Design & Build
- Drawing: The arm draws the board from predefined physical coordinates; captured frames then define the region of interest boundaries.
- Perception: Canny edges and probabilistic Hough transforms find the grid, a homography rectifies it, and each cell is classified: HoughCircles for O, line pairs for X, ink density as fallback, with an N frame stabilization filter.
- Rules: Frame differencing validates each human turn: exactly one new symbol, nothing erased. Invalid moves get an E written beside the grid.
- Decision: Depth aware Minimax scores terminal states so the robot prefers faster wins, guaranteeing optimal play in the small search space.
Challenges
- Scan loop stalls during frame acquisition under CPU load.
- Paper reflections and camera tilt disturbing homography estimation.
- Race conditions between drawing motion and classification.
Result
- Grid drawing, camera calibration, symbol classification, move validation, and optimal decision making all demonstrated reliably under controlled conditions.
- Full uninterrupted games gated by scan loop stability; the report documents the failure analysis and the watchdog and debouncing fixes.
Skills & Tools
OpenCVHough TransformsHomographyMinimaxPythonpydobot