Stereo vision system built around a Raspberry Pi and two Camera Module 3 sensors, with depth estimation accelerated by a Hailo AI module.
- Raspberry Pi (with Hailo AI accelerator)
- 2x Raspberry Pi Camera Module 3 (4608x2592)
- CNC-machined POM-C stereo rig (~100 mm baseline)
- ChArUco / checkerboard calibration targets (A4, 11x8 squares, 24 mm)
Design files for the rig are in hw/.
Two calibration methods are provided, both outputting ROS-compatible YAML (left.yaml, right.yaml, stereo.yaml):
More robust to partial occlusion. Uses DICT_4X4 ArUco markers.
cd calib/charuco
python charuco.pyTraditional approach using a plain checkerboard pattern (10x7 inner corners).
cd calib/checker
python calib.pyOn the Raspberry Pi, use the capture script to grab synchronized image pairs:
bash calib/stereo_capture.shImages are saved as left_<timestamp>.jpg / right_<timestamp>.jpg. Place them in the corresponding uncommited/ folder before running calibration.
calib/checker/stereo_depth_view.py computes a disparity map (SGBM) and reprojects to a 3D PLY point cloud using the stereo calibration results.
Pre-compiled Hailo models (.hef) for real-time depth inference are in stereo/:
scdepthv3.hef— monocular depth (SCDepthV3)stereonet.hef— stereo depth (StereoNet)
opencv-python (with cv2.aruco)
numpy
pyyaml
On Raspberry Pi, also requires rpicam-apps for the capture script.
