OLD PS3 CAMERAS NOW GUIDE THESE DRONES

Four second-hand PlayStation Eye cameras, a piece of floppy disk and about 20 dollars give Joshua Bird millimetre-level tracking good enough to fly drones on their own indoors.

by Joshua Bird

FULL CAD BOM FIRMWARE DOCS

RoboticsOpen-hardware

Built withESP32ESP82663D printing

difficulty
●●●●○
time
not stated
license
MIT
repo
repo ACTIVE2,438 stars
1
Jump to section

COMPAREE VERDICT

Joshua Bird built a 20-dollar room-scale motion capture system with millimetre-level precision from Sony PlayStation Eye cameras, the PS3 camera released in October 2007, which films 640x480 at 60 Hz or 320x240 at 120 Hz. He bought 8 used cameras for 1 dollars each at CeX; 5 were the right type, and the system uses four. He cut out each camera's pink IR-cut filter and glued floppy disk film over the lens, which blocks visible light, so the cameras only see 3 mm infrared LED markers. He uses it to fly multiple drones autonomously indoors: two drones, each carrying three IR markers. Each drone costs about 50 dollars per his blog; the drone swarm videos he was inspired by used motion capture setups costing tens of thousands of dollars. Code and 3D files are MIT licensed. The hard parts are documented in his own words: converting the cameras is "quite difficult and finicky" with the original lens, the main branch needs OpenCV compiled from source with the SFM module, which the README calls "a bit of a pain", and calibration is only explained in one discussion post. Flight paths are set as waypoints in the web interface.

GOOD TO KNOW

  • —3D files in the repo: five STL parts for the camera case and swivel mount (arm, ball, top and bottom body, screw) plus STEP and a Fusion 360 file.
  • —Code in the repo: Python backend, web interface, and ESP32 sender and receiver sketches.
  • —Parts lists with prices for the camera and the drone are in the blog post, not in the repo.
  • —No step-by-step build guide: the README points to the YouTube video, the blog post and one discussion post for calibration.
  • —Licence: MIT.
  • —The main branch requires OpenCV compiled from source with the SFM module.

Parts to buy

7 items

From our check of the build. Exact quantities and part numbers are in the creator’s BOM.

  • Per the blogFind
  • For each camera: a used PlayStation Eye$1 at CeXFind
  • For each drone: F3 EVO brushed flight controller~$50Find
  • 95 mm brushed frame with motors and props$13Find
  • 18350 battery and holder$5Find
  • WEMOS D1 Mini ESP32 and 3 mm IR LEDs$4Find
  • Floppy disk film for the filtersFind

Can I build this?

Printthe camera case and swivel mount (5 STL files in the repo)
Buyper the blog, for each camera: a used PlayStation Eye ($1 at CeX), an IR ring floodlight ($0.9) and a 5 m active USB extension cable ($4); for each drone (~$50): F3 EVO brushed flight controller ($23), 95 mm brushed frame with motors and props ($13), 18350 battery ($5) and holder, WEMOS D1 Mini ESP32 ($4) and 3 mm IR LEDs; plus floppy disk film for the filters
Toolsa small sharp knife or soldering iron to cut out the IR-cut filter, coarse sandpaper or a file for the lens mount, a 3D printer, a computer with Python, npm and yarn, OpenCV compiled with SFM
Skillscomfortable with Python and building software from source, careful handwork on the camera lens, building a small drone
Timenot stated; removing the IR-cut filter took him about 30 minutes for the first camera
Cost$$: the camera system is about $20 and each drone about $50 per the creator
Safetysmall indoor drones with spinning props; he says his drones crashed over 100 times without breaking

Build at your own risk. Projects involve tools, electronics and sometimes mains voltage — follow the creator’s safety notes.

Videos

Open Source Motion Capture for Autonomous Drones

Joshua Bird's project video, linked from the README as the main source of information and demo.

More builds like this

All projects

Gallery

Start here

Navigation into the creator’s own docs — we don’t rewrite the guide, we route you to the source.

  1. 1.Watch the project video (The README says to watch it first for information and a demo.)
  2. 2.Read the blog post before buying cameras (Which PS Eye type works, how to remove the IR-cut filter, and the camera and drone parts lists.)
  3. 3.Install the pseyepy library (Listed as a dependency in the README.)
  4. 4.Compile OpenCV with the SFM module (The README calls this "a bit of a pain" and links this guide.)
  5. 5.Calibrate your cameras (The post by gumby0q linked in the README explains how camera_params.json is calculated.)

Resources

Documentation, files and community threads for this build — we link straight to the original sources and never rehost the creator’s files.

KNOWN ISSUES

  • Only the old PlayStation Eye type works with the original lens: curved front lens element, no white ring inside. You often cannot tell from listings; 5 of his 8 cameras were the right type.
  • Cut around the pink IR-cut filter and pry it out instead of shattering it. He says this took him about 30 minutes the first time.
  • Removing the IR-cut filter shifts the focus, so the lens mount has to be filed down a fraction of a millimetre, checking focus as you go. Skip it and the images are out of focus.
  • The main branch needs OpenCV compiled from source with the SFM module, which the README calls "a bit of a pain". The no-cv-sfm branch avoids it but is completely untested.
  • Calibration is not documented step by step; the README points to one discussion post about camera_params.json.
  • The 3 mm IR LEDs need their surface sanded so they emit light evenly instead of just upward (blog).

Can I use a different camera?

The project is built around the PlayStation Eye and the pseyepy library, which is made for that camera. Other cameras are not covered by the project.

Which PlayStation Eye do I need?

If you keep the original lens: only the old type, with a curved front lens element and no white ring inside the lens. Joshua Bird bought 8 used cameras for $1 each and 5 were the right type. His blog says that with a new night-vision style lens (no IR-cut filter) any PS Eye should work, but he did not try that himself.

Do I need to build the drones?

He built his own: a brushed micro drone with a Betaflight flight controller and an ESP32 that emulates an RC receiver, about $50 each per his blog. Because the ESP32 acts as a receiver, he says the system can be used with any drone and flight controller. The repo has the ESP32 sender and receiver code; the drone parts list is on the blog, not in the repo.

Is calibration documented?

Only partly. The README links one GitHub discussion post by gumby0q that explains how camera_params.json can be calculated for your cameras. The README itself says the documentation is lacking.

Is there an option without compiling OpenCV?

There is an experimental no-cv-sfm branch that removes the OpenCV SFM dependency, but the README says it is completely untested and recommends trying the main branch first.

Community builds

No community builds yet — be the first, we feature the best ones.

Discussion1

FROM THE COMPAREE TEAM

Four $1 PlayStation Eye cameras, millimetre-level precision and a $20 camera system. What would you track first: drones, or something else?

CompareeTEAM9d ago

We checked the repository, the README and the blog post. The repo was renamed from Mocap-Drones to Low-Cost-Mocap and old links still work. The most useful document is the blog post: it explains which PlayStation Eye type works and lists the camera and drone parts with prices. The author himself says the code is undocumented and that he would use a new lens instead of the original one if he did it again.

Joshua Bird

Joshua Bird built this because drone swarm videos all used motion capture setups costing tens of thousands of dollars, and he found little open source motion capture for robotics. His camera system costs about $20 and each of his drones about $50. Build, code and footage: Joshua Bird.

GitHub Web

Star the project on GitHub

DISCLAIMER

  • Comparee is not the author of the projects featured here. All rights to each project belong to its creator — every page links to the original source, and we never host creators’ files.
  • Information is provided without warranty and may become outdated as projects evolve. Prices are indicative bands only — always check the creator’s parts list for current costs.
  • Building and operating any project is at your own responsibility. Protective equipment, safe workshop practice and compliance with local regulations are the builder’s responsibility.