Skip to project

Robotics · 2025

VictorIA

A robot arm that plays Connect 4 on a real board.

View repository Watch demo
VictorIA robot arm beside the physical Connect 4 board
A webcam reads the board; the arm picks up and places the robot’s discs.

One turn

Reading the board and choosing a move

Calibration locates the board before play. The repeated work on each turn uses a smaller cell classifier.

  1. Find the boardSAM 2 segments it from a few clicked points. A perspective warp converts the camera view into a flat grid.
  2. Read the moveA cell classifier assembles the 6 × 7 board state, checking where a new disc could have landed.
  3. Choose a columnMinimax searches five plies with alpha-beta pruning to select the next move.
  4. Place the discThe selected column is sent over HTTP to the arm's ROS machine, which picks up a disc and drops it into place.

The prototype

A full match against VictorIA

Watch on YouTube ↗

Hardware & software

Vision on the Mac, movement on ROS

On the Mac
Board calibration, cell recognition, game state, and move selection.
On the arm's machine
ROS control, disc pickup, column positioning, and travel poses.
Between them
An HTTP move endpoint carries the chosen column.
VictorIA physical rig during a player move
A player adds a disc while the camera observes the board.
VictorIA arm positioned above the Connect 4 board
The arm aligns with the selected column.
View source All projects