StereoPi

$89.00 $109.00

An open source stereoscopic camera based on Raspberry Pi

StereoPi is an open source stereoscopic camera based on Raspberry Pi. It can capture, save, livestream, and process real-time stereoscopic video and images. StereoPi opens up countless possibilities in robotics, AR/VR, computer vision, drone instrumentation, panoramic video, and more.

StereoPi is easy to use with other familiar tools.

We’ve already made many demos of StereoPi integrating with other tools, including:

Example Video & Photo

The above video was captured by running this simple command from a Raspbian terminal:

raspivid -3d sbs -w 1280 -h 480 -o 1.h264

Taking a stereoscopic image is just as easy using:

raspistill -3d sbs -w 1280 -h 480 -o 1.jpg

Stereo Pi for Raspberry Pi

Features & Specifications

Stereo Pi - Camera for Raspberry Pi

Stereo Pi - Camera for Raspberry Pi (Back View)

A. boot mode jumper H. dual USB Type-A connector
B. camera 1 CSI-2 connector I. HDMI out
C. micro USB (for firmware upload) J. USB port pin header
D. 5 VDC power connector K. camera 2 CSI-2 connector
E. power switch L. 40-pin RPi GPIO header
F. microSD slot M. RPi Compute SO-DIMM connector
G. RJ45 Ethernet jack


Raspberry Pi Inside

StereoPi is a carrier board for a Raspberry Pi Compute Module and is compatible with all compute module variants: CM1, CM3 (normal and Lite), and CM3+ (normal and Lite):

StereoPiStereoPiStereoPi

With Raspberry Pi at its core, StereoPi naturally makes use of standard Raspbian.

raspbian

Of course, Raspbian comes with Python, which means getting started developing with StereoPi is as easy as installing Picamera, a pure Python interface to the Raspberry Pi camera module that supports stereo capture. For example:

from picamera import PiCamera camera = PiCamera(stereo_mode='side-by-side', resolution=(1280,720)) camera.capture('foo.jpg')

Demo: 3D video livestream to YouTube

StereoPi is a perfect way to get to know how stereoscopic vision works “under the hood.” You’ll immediately see the effects on human perception of changing various camera calibrations and settings, such as stereobase (the distance between cameras).

With a StereoPi Starter Kit, a simple 3D-printed case, a 4G modem, and some simple code, we livestreamed this 3D video of an aquarium straight to YouTube:

To view this video in 3D, you can use any phone equipped with a 3D viewer like Google Cardboard. You also can view it with Oculus Go. Below is a photo of the actual set up used to capture the video:

StereoPi - Raspberry Pi - Oculus Go

Demo: 3rd-person view of real life using Oculus Go

StereoPi is small enough and flexible enough to quickly prototype new augmented and virtual reality (AR/VR) applications. It’s powerful enough for some real-time video processing right on the Raspberry Pi, and fast enough to stream video to a host computer for additional processing. Here’s what we did with Oculus Go:

We assembled this prototype over the course of a few days. The idea is to give the person wearing the Oculus Go a third-person view of themselves, as is often done in video games. Of course, real life is very different than a video game!

Demo: building a depth map with OpenCV

Autonomous cars, drones, and robots are coming! With StereoPi, you can seamlessly dive into this oncoming wave. Start with basics like camera undistortion and calibration, and then level-up to building depth maps. Combine this with neural networks and you’ll be ~~ready to fight the imminent SkyNet~~ an expert in unmanned vehicles. Here’s a depth map we made using OpenCV 3.0 running on StereoPi:

You can find our brief OpenCV Python depth map tutorial on our blog, and source code in our stereopi-opencv GitHub repository.

Demo: Robot Operating System (ROS) depth map

A critical task for many robots is understanding their physical environment. But, as a budding roboticist, you might not have thousands of dollars to shell out. StereoPi to the rescue! In this example, we used the Robot Operating System (ROS) image for Raspberry Pi from Ubiquiti Robotics and added some simple code to arrive at this depth map:

 

If you’ve experimented with ROS and Raspberry Pi, then you may already know the popular raspicam_node package for working with the Raspberry Pi camera. We asked this package author, Rohan Agrawal (@rohbotics), if it is possible to use it in stereoscopic mode. After a brief GitHub discussion and a few tests, it appears you can capture stereoscopic images out-of-the-box. Thanks to Rohan for adding camera selection support!

So, right now, you can use StereoPi for depth maps and SLAM in ROS. Our plan is to help create an ROS driver optimized for StereoPi with full stereoscopic support, like other ROS-supported stereoscopic cameras.

Demo: 360° panoramic photos and videos

Creating a 360° panoramic camera is as easy as stitching together the images from two wide-angle cameras to create a single spherical image. All you need is a mounting plate for the cameras and either on-board or off-board stitching software. Below is an example of what you can do with StereoPi and a panoramic stitcher like Hugin:

This is the actual setup with two 220° cameras: