The primary goal of our project was to control a drone using Oculus Rift virtual reality glasses and a fixed camera system mounted under the drone. To enhance the usability of virtual reality, we reimagined the project to allow the cameras the same range of motion as the Oculus Rift. This design provides the drone operator with a first-person view, similar to a video game, making the control task more intuitive.

Evolving Technology and Cost Challenges

Oculus Rift Project

While this technology is rapidly evolving, it remains expensive. Our aim was to design an embedded system for a drone capable of reconstructing two video streams from different cameras to create a stereoscopic image usable by the Oculus Rift.

We needed to capture two video streams from cameras mounted under the drone. These cameras had to mirror the movements of the Oculus Rift on the user’s head, with minimal delay to enhance the user experience. The data transmission had to be wireless to eliminate any cable constraints.

To achieve this, we implemented a system with two cameras controlled by servomotors that allow movement in front of the drone. This system is managed by a Linux-based circuit board enabling network communication. Our design had to include all components within specific constraints, ensuring compatibility with the Oculus Rift’s sensor data via USB.

VR Jam Competition: Hardware and Strategy

For this project, we used a Raspberry Pi 2, a single-board computer with an ARM processor running Linux. Its advantages include easy programmability, compact size, multiple USB ports, Wi-Fi connectivity, and various contact points for component control. We also needed two servomotors with low power requirements due to the Raspberry Pi 2’s current limit of 2 amperes, and two cameras.

The Oculus Rift (DK1) resolution is 800×600 pixels per eye, so exceeding this resolution was unnecessary. To make the system autonomous, we used an external smartphone-type battery compatible with the Raspberry Pi 2’s power needs. Detailed component descriptions are provided in the appendix. We used tools like a 3D printer and a laser cutter to shape various parts.

The project development involved designing the camera system around the Raspberry Pi, integrating Oculus Rift control, and constructing the plastic support.

Camera System Design

The Oculus Rift S

We created a two-camera system capable of producing a stereoscopic image for the VR headset, which also replicates the user’s head movements via the Oculus Rift. This section focuses on servomotor control and image retrieval.

The structure design was quick, involving one or two sessions, resulting in two prototypes since the first was too fragile. It consisted of four lightweight, easily processed wooden pieces. We chose SG90 micro servos to drive the cameras, as they require minimal torque and energy, helping conserve the external battery. These servos need specific PWM signals to move to desired positions, which we controlled directly through Raspberry Pi contacts without needing an extension board.

Using the WiringPi library, originally for Arduino, we generated various PWM signals on the Raspberry Pi’s pins. We then connected accelerometer values to corresponding PWM signals for servomotor positions.

This project demonstrates the potential of integrating virtual reality with drone technology, creating a more immersive and intuitive control experience. By leveraging the Oculus Rift and innovative camera systems, we paved the way for more advanced and user-friendly drone operations.