overseer - a take on surveillance

project overseer is a small robotic art piece inspired by George Orwell and his novel 1984. the idea was to build something that literally watches back, to make the abstract threat of surveillance a bit more tangible.

Conceptual design drafts for the enclosure.

the robot tracks human faces in real time. the software runs a simple loop to keep the arm pointed at the closest face.

software driver

the control program does this over and over.

  1. capture a frame from the camera.
  2. detect all faces in the frame.
  3. pick the closest face.
  4. calculate the movement and update the arm position.

setbacks

the tricky part was figuring out the servo rotation from a target’s coordinates. at first the software only knew how much the camera needed to turn, which is not enough to command the motors directly.

Initial sketches of servo motor motion and arm movement calculations.

the problem was geometric. with only one known angle and one known side of the triangle formed by the camera, target, and joint, the math is underdetermined.

we fixed it mechanically by aligning the motor axis with the camera’s rotation axis so they intersect at the lens. that made the calculations work, but it also made the hardware a lot more complicated.

Initial drafts of the casing design.

as the build went on we added adjustable target tolerance, rectangles drawn around detected faces, and an auto-centering routine that runs after the arm sits idle for a while.

Final concept with dimension calculations and assembly planning.

CPU compatibility

the original plan was to run everything on a Raspberry Pi Zero W, small enough to hide inside the main enclosure. but we used OpenCV4 (v4.3.0) for face detection, and that needs an ARMv7+ processor. so we had to switch to the Raspberry Pi 3B+ with its ARMv8 CPU.

the bigger board meant adding a second enclosure to the assembly, and we lost the original idea of a self-contained wall-mounted unit.

assembly

Hand-cutting particleboard and cardboard for the arms and casing.

we built the frame from lightweight particleboard so the motors could move the arm quickly. the wood turned out weaker than expected, so we had to reinforce a few spots.

the electrical housings are cardboard, and thin laminated boards form the main technical enclosures. we kept the colors muted so the message would do the talking.

Assembling the main components of the arm.

cable management was a pain. loose wires kept snagging in the arms and joints, so we zip-tied them along the frame.

The completed Overseer assembly.

testing and refinement

in the final stretch we tuned parameters, lowered the frame rate and image quality to keep processing smooth, and added a fan to keep the CPU from overheating during long runs.

The completed Overseer project.

the finished piece does exactly what we set out to do. it tracks faces, moves the arm, and hopefully makes people think twice about being watched.

components used

2x Servo Motors Waveshare MG996R

Raspberry Pi 3 Model B+

Raspberry Pi Camera V2

Raspberry Pi Fan with 30cm Cable

Power Supply 5.1V⎓3A