Project Overseer is a year-long initiative honoring George Orwell and his warning about the dangers of surveillance. Inspired by his book 1984, which describes a world under constant government watch, the project Overseer aims to highlight the threat of surveillance through a thought-provoking artwork.
In this project, we create a robot that tracks faces in real-time. To bring this to life, we needed software capable of efficiently planning and controlling the robot’s arm. This required several key functionalities.
Software driver
The program had to perform the following tasks:
- Capture a frame from the camera.
- Identify all faces within the frame.
- Select the closest face.
- Update the arm’s position accordingly.
Setbacks
One major challenge was determining the precise rotation needed for the servo motors based on the target’s coordinates. Initially, the software could only calculate the degrees of camera movement, which was insufficient for precise motor control.
This problem required synchronizing a triangle formed by the camera, the target, and the movable joint. With only one angle and one length, it was geometrically impossible to make accurate calculations.
To overcome this, we aligned the motor’s axis with the camera’s rotating axis, ensuring both intersected precisely at the camera’s lens. While this alignment resolved the calculation issue, it added complexity to the device’s construction.
As the project progressed, we added features like target tolerance adjustments, drawing rectangles around detected targets, and automated arm centering before and after periods of inactivity.
CPU compatibility
Everything was initially planned to run on a Raspberry Pi Zero W, which was supposed to fit inside the same enclosure as the camera. However, we decided to use OpenCV4 technology (v4.3.0) for facial recognition, which requires ARMv7+ processors. Therefore, we switched to the Raspberry Pi 3B+ with an ARMv8 CPU.
This choice had a downside since the Raspberry Pi 3B+ is much larger. We had to add another enclosure to the rear of the assembly, which also meant abandoning the original idea of mounting the camera as an arm on a board that could be hung on the wall.
Assembling
To build the Overseer robots, we used lightweight particleboard for the frames to prioritize fast algorithms for smooth operation. However, the wood proved weaker than expected, so we reinforced some parts.
For casings, we opted for cardboard to cover electrical components and thin, sturdy laminated boards for technical enclosures. We chose a subtle color scheme to convey our message discreetly.
We encountered challenges with cable management, leading to loose wires tangling in the arms and joints. We resolved this by securing the wires with plastic zip ties along the arms.
In the final phase of our project, we focused on testing and refining our robot’s configuration for optimal facial recognition. We adjusted parameters, optimized speed by lowering frame rates and image quality, and added a fan to manage processor temperature during testing.
Conclusion
In conclusion, our project has been a success. Inspired by George Orwell’s insights in 1984, we aimed to explore the theme of surveillance. Our creation operates effectively as intended.
Rather than aiming to disturb, our goal was to gently provoke thought and offer a glimpse into a different perspective on reality. We hope our project encourages reflection on the impacts of surveillance in today’s world.
Used components
2x Servo Motors Waveshare MG996R
torque: 9kg/cm (4.8V), 11kg/cm (6V), speed: 0.19s/60° (4.8V), 0.18s/60° (6V), rotation: 180°, voltage: 4.8V ~ 6V, weight: 55g, dimensions: 40.7 × 19.7 × 42.9mm
Raspberry Pi 3 Model B+
cpu: 1.4GHz 64-bit quad-core ARM Cortex-A53, cpu architecture: ARMv8-A (64/32-bit), gpu: Broadcom VideoCore IV @ 250MHz, sdram: 1GB, weight: 45g, dimensions: 85.60 × 56.5 × 17mm
Raspberry Pi Camera V2
video FPS: 1080p30, 720p60, sensor: 8MP Sony IMX219 CCD, connector: CSI, field of view: 62.2° x 48.8°, weight: 3g, dimensions: 25 × 20 × 9mm
Raspberry Pi Fan with 30cm Cable
consumption: 0.35W, power: 5V, reduced: 3V3, noise: 22dBA (5V), dimensions: 35 x 35 x 10mm
Power Supply 5.1V⎓3A
power: 15.3W, voltage: 5.1V, current: 3A