How do you give a small robot depth perception without bolting a laptop to it? Ryan Walker’s answer, covered by Hackster, is a stereo vision board that does the image math on its own and hands the results to your microcontroller.
What did Walker actually build?
The board centers on a Rockchip RV1103, a 1.1 GHz Cortex-A7 chip with 64 MB of DDR2 and a MIPI CSI-2 camera port. Two OV9281 global-shutter cameras sit a fixed distance apart, and the board runs a Buildroot Linux image. It acts as a peripheral: an Arduino-based rover asks for distances over a serial link and keeps its own loop free for motors and sensors.
How does it turn two pictures into distance?
Each camera sees an object at a slightly different horizontal position. Near objects shift a lot between the two frames, far ones barely move. The RV1103’s video engine includes a hardware sum of absolute differences (SAD) block that compares small patches from both images and finds the matching offset, so the Cortex-A7 does not have to grind through every pixel. The camera data arrives through Video4Linux2, and a USB-C port can be set up for Ethernet and SSH.
Walker was candid about the gotchas on this first four-layer PCB with controlled-impedance MIPI, USB, and Ethernet traces: lens mounting holes cut to the wrong size, LED resistors that were too small, and a power trace thinner than intended. The MIPI camera drivers also had to come from Rockchip’s vendor package, which is the tricky part for anyone rebuilding the software stack.
Can you try this yourself?
Yes, in a cheaper form. For a thesis robot or a school competition entry, mount two USB cameras 6 cm apart on a Raspberry Pi and run OpenCV’s StereoBM block matcher to get a disparity map, then send one distance number over UART to an Arduino at 115200 baud. That is the same idea in a different package. Walker is gauging interest in a run of 10 boards at about $110, so follow the build page at Hackster if you want one, and look up Arduino-compatible boards and Raspberry Pi kits at circuit.rocks to prototype the serial side first.
Frequently Asked Questions
What processor does this stereo vision board use?
A Rockchip RV1103 with a 1.1 GHz Arm Cortex-A7, 64 MB of DDR2 RAM, and a MIPI CSI-2 camera interface. Its video engine has a hardware SAD block for matching image patches.
How does the board talk to an Arduino robot?
It processes both camera images on its own and sends depth results over a serial connection, so the host microcontroller only reads distance data and keeps its loop free for motors and sensors.
What will I learn if I build this?
You will learn how stereo disparity turns two images into distance, how to design a four-layer PCB with high-speed traces, how Buildroot assembles a Linux image, and how to pass sensor data to a microcontroller over UART.