To use the Oculus Rift, we needed a development environment with the necessary tools for its programming. The SDK provided by the manufacturer is available only for Windows, so we had to find a suitable version for a UNIX system. Fortunately, Brad Davis initiated a project that allows manipulation of all the Oculus Rift’s sensors. This project includes all the necessary libraries and files for programming the VR headset, enabling us to retrieve accelerometer values needed for our project. We could now use these sensor measurements, send them to the camera system, and determine positions based on current sensor readings.
VR Headset: Communication with the System

We needed to establish a communication method between the Oculus Rift and our system. We modified a C++ program to retrieve accelerometer values from the Oculus. This program now writes these values to a file, inspired by the network bridge developed during our cryptography classes.
VR Video Games: Handling Accelerometer Data
The file (val.data) containing accelerometer values can be read by any compatible program. We encoded a C program to read these values, save them as “initial values,” and then send the differences between these and new values over the network. This helps establish a starting position and process movements from that point. The Raspberry Pi program retrieves these network values, adjusts the threshold, and converts them to control the servomotors.
Drone Integration: Structure and Equipment
To attach our modules to the drone, we created a structure to hold all our equipment. Initially, we developed a module to attach cameras to the drone, designed to be lightweight while housing electronics and supporting the camera system. This system centered the mass for stability, as it was mounted below the drone. However, we had to revise the structure since the initial camera bindings were stationary. We then designed compartments for the battery and the Raspberry Pi.
Challenges and Solutions

We faced several challenges, notably choosing C as the base language. Most available documentation was in higher-level languages (Python, JavaScript). Despite this, our familiarity with C justified its use, as it is closer to electronics and allows cleaner coding. Time management was another issue; some modules were either overestimated or underestimated in terms of time. This impacted progress, as we planned to measure each module’s power consumption and weight. Integrating modules under different OS generated errors, and programming the Oculus Rift proved difficult due to limited resources for beginners.
Project Outcome
Despite the challenges, we successfully addressed the initial problem. The significant effort went into “implementation” work. We aimed to develop simple, independent modules, though some require refinement. We achieved a stereoscopic 3D image of the drone sent to a web server and transcribed movement in our camera system using server/client data transmission. Finally, we observed 3D rendering by displaying our web page through the Oculus Rift, concluding the project on a positive note.