Part I : Gear Up Your Cam !

They are two main components in the system : the cameras and the gateway. The cameras are based CMUcam5 from Charmed Labs which is a position tracking camera which can output 2D coordinates.   Why this camera ? I have tested almost every alternatives, and the first prototypes were even based on Raspberry Pi camera, and the 2D position tracking was made using OpenCV image library on the Raspberry. I have also been working with the wiimote sensors and many standard HD webcam with FreeTrack. None of them did the job by a long shot ! You can order this camera on Amazon for 69$. What’s under the hood of a CMUcam5 ? Multi point tracking (great for multiple users) 640*480 @ 50FPS 1280*800 @ 30FPS Lens field-of-view: 75 degrees horizontal, 47 degrees vertical Voltage : 5 to 12V Power consumption : 140mA Open Source (hardware and firmware) Removable optics OK we found the camera, what do we “Gear Up” ? That camera is nice, but we have to add some stuff to make it great. Here is what we are going to do : 1. Get to know your camera 2. Remove infrared blocking to filter 3. Add infrared pass […]
Read More ›

Part II : Make the camera wireless with ESP8266

  Let’s sum up what we have done so far : we ordered a pair of color tracking cameras we modified them into Infrared tracking cameras we updated their firmware to track Infrared and tested them we built a small case to give them a nice look There is one last modification we have to bring to the cameras, and that modification is a game changer : we are going to make them wireless ! Of course we won’t send the video, but the coordinates of the points the camera is tracking. In this article we are going to connect an ESP8266 Wifi shield to the CmuCam to send coordinates over Wifi. Here is what we are going to do, step by step. All you need to know for this part is how to program an Arduino (I have seen 8 years old doing it so…I’ll give you a link just in case).   The basics Connect NodeMCU to CmuCam Program the ESP8266 The basics Here we’ll go through all you need to know to make it out of this tutorial alive. First if you don’t know what is Arduino, please read about it here : Arduino. We are not going […]
Read More ›

Part II : Build the Gateway and get your position ! (old)

  You have proudly assembled at least two wireless cameras and you finally want to test them. Good ! Because at the end of this post, your cameras will be talking with the Gateway, and we will get 3D coordinates from the two sets of 2D coordinates. The big step will be building the gateway, which is a Raspberry Pi 2, and installing all the software. Let’s have a look at the steps we are going to go through : 1. Prepare your Raspberry Pi 2. Make it talk with the cameras 3. Behind the curtains : calculating the 3D position by image resectionning 4. Send data back to the user with Websockets As you can see, we still have a lot on our plates. But once you have understood the concept, it gets easier. Prepare your Raspberry Pi We are going to use a Raspberry Pi 2 as a Gateway to receive 2D positions from the cameras, compute them into 3D positions with OpenCV and send them back to the user via WebSockets. Get a Raspberry Pi 2 and all the stuff necessary to go with (5V supply, Wifi dongle, SD card) and a Nrf24L01+ with long range antenna. Install Raspbian on your […]
Read More ›

Part III : Set Up Unity for a VR Experience

First, this isn’t going to be a long post showing you how to install and use Unity. In a few words, Unity is one of the most famous Game Engine. It allows you to develop games for PC, Android, iP Wii and almost every other platform. Unity is the most advanced Game Engine for VR (as opposed to Unreal Engine for example). Here I am just going to share some links and info to help you jumpstart your development of VR applications in unity.   The most important step is to integrate OpenCV in Unity. Then we need to communicate with the cameras using websockets. Finally we have to create a calibration sequence using OpenCV and add the tracking function. All of this had been done in the previous version using a Gateway, but I now have to translate all the code from python to C# and clean it of course. Get Unity Simply download and install the latest Unity Free version on your PC/Mac Communicate with the cameras (Websocket) The cameras communicates on your Wifi network using Websockets (each camera is a websocket server). To receive their 2D datas, your PC or phone has to be turned into a Websocket client. So we […]
Read More ›
Skip to toolbar