Software Subsystem

VR Integration

VR integration

System Diagram

Grey: Systems physically on and part of the VRCar.

Purple: Where user can view and interact with the VRCar.

VR System Plan

How 360 Camera Data went to VR

1

Use the 360 camera's (Insta360 Nano) iPhone app's custom output to rmtp:// link.

2

The RMTP server (which is what rtmp:// is referencing above) is run off an Olin laptop, to recieve the RTMP data from the 360 camera.

3

The Android Smartphone in the Google Cardboard runs HeadVR, a VLC-based app which can be used to view 360 data in the format used for Google Cardboard. The media source is linked to the rtmp:// link assigned by the 360 camera and accessed from the RTMP server.

RTMP Server on Ubuntu
Mentioning it a few times above, you might wonder what RTMP means. RTMP stands for Real-Time Messaging Protocol, and its a common communication protocol used for media such as video, which is just what we need!

Starting from a school computer that was earlier set to Dual-Boot with Ubuntu, the server was made.

Install nginx (a lightweight webserver) with the RTMP module, then build nginx, and add to the config file to make sure it uses the RTMP module, with commands as following the tutorial on the right.

Done! Starting and stopping the server is as follows:
$ sudo /usr/local/nginx/sbin/nginx -s stop
$ sudo /usr/local/nginx/sbin/nginx

To access this server, use the computer's local IP address.
(So, every part that has to access the server needs to do so over the same WIFI Network)

To check that this was working, we streamed to the server using  OBS (Open Broadcaster Software), and accessed it using VLC (VideoLAN)(explained further below).

Setting up the RTMP Server

Following THIS TUTORIAL
Sending 360 Camera Data to the Server
To use the Insta360 Nano (the 360 camera), download the Insta360 Nano App from the iPhone. For livestreaming, there is an extra option to stream to an rtmp​:// link, which is what we used! 

This is how that link was formatted:
rtmp://{server-ip-address}/live/360

Then, the iPhone and camera are good to stream!

Using the
360 Camera

Viewing the 360 Video
To view that 360 video in proper format, we used the open-source VLC on a computer, just to make sure everything was working! Just enter the earlier mentioned link into the media stream viewer.

On an Android phone, a VLC-based app called HeadVR was used. This allows the user to view the 360 camera data Google Cardboard. The same link as above was used to view it! Below is a screenrecording of the first test.

Using Google Cardboard

First VR Test!

(With visible latency, buffering set to avoid stuttering)

Sprint 2 Iteration

In Sprint 2, a Raspberry Pi and a PiCam were used to host fake stereoscopic (edited 2D PiCam video) data to be accessed by a smartphone (or any other device opening the link, but it is meant for smartphones). For more information on that sprint, view the GitHub link and view the README below:

GitHub Link