|7||First Person Virtual Reality Interface with RC Car
Sang Baek Han
|**Project Members:** Deniz Yıldırım (dy2), Erik Jacobson (erikj2), Sang Baek Han (shan67)
**Title:** First Person Virtual Reality Interface with RC Car
We will use a VR set and the camera module that can display in 180 degrees to give players the perception that they are a small person inside a remote car, making the experience more immersive and fun. People controlling the car would never lose sense of where the car is as they would feel like they are inside the car and would be able to see their surroundings by looking around. A steering wheel and hands could be rendered on top of the video feed to let players control the car by holding the virtual steering wheel with their VR controllers. While there are some remote cars with cameras in the market, they fail at being immersive because they keep using traditional remote controllers and often do not give users the ability to see the car’s surroundings.
Remote Control Subsystem
- We will design [H bridge and PWM circuits](https://www.acmesystems.it/pcb_pwm) to control the speed of DC motors of RC car. H bridge and PWM circuits are connected to the microprocessor [ATmega328](http://ww1.microchip.com/downloads/en/DeviceDoc/ATmega48A-PA-88A-PA-168A-PA-328-P-DS-DS40002061A.pdf), which receives the control input from the controller through Bluetooth. [HC-05](https://www.amazon.com/dp/B00INWZRNC) Bluetooth module is connected to the microprocessor.
- The smartphone app will be used to control the RC car. The smartphone will connect to the RC car through Bluetooth connection. This will work as a prototyping tool until we can merge with VR gear. We will use VR controller on the final stage.
Video Transmission using Wi-Fi Subsystem
- We will use [Raspberry Pi 3 Model A+](https://www.raspberrypi.org/products/raspberry-pi-3-model-a-plus/) to receive the image data from the camera and send the image data to VR gear through WiFi. This Raspberry Pi has Broadcom VideoCore IV MP2 400 MHz GPU and 2.4GHz and 5GHz IEEE 802.11ac Wi-Fi, which can help to reduce the delay of wireless transmission of video.
- We will use [USB Camera with a 180 degree angle fisheye lens](https://www.amazon.com/dp/B00LQ854AG/) for the camera module to provide a 180 degree view. Since we are using a fisheye lens, the raw image data is curvilinear. The curvilinear image will be converted to the rectilinear image using [Fisheye camera model OpenCV](https://docs.opencv.org/master/db/d58/group__calib3d__fisheye.html).
VR Headgear Facing Direction Subsystem
- We will use [Oculus](https://www.oculus.com/?locale=en_US) VR gear for this project. We are most likely to borrow a VR gear from CS498 or [UGL](https://www.library.illinois.edu/mc/lt/emergingtech/). If not, we might buy the used product to work with. We will program with Oculus [SDK](https://developer.oculus.com/).
- VR gear will receive the image data from Raspberry Pi through Wi-Fi transmission and display the video in real-time to the user. VR gear will continuously receive the entire 180 degree view image data from Raspberry Pi. The facing direction of the user will determine which section of the 180 degree view to display to the user.
- We will use 6V Li Battery for all the power source. H bridge and PWM circuits and DC motor will use 6V. 5V Voltage Regulator will be used to provide 5V for the rest of the parts.
- VR Headgear will be connected to PC to turn on.
**Criterion for Success:**
- Display the camera input of high resolution in real-time with less than 1s delay.
- The real-time image from camera can be displayed through VR headgear.
- The camera can display in 180 degrees with the user input.
- The direction of where VR headgear is facing to serve as the user input to rotate the display in 180 degrees.