I’ve always been interested in Virtual Reality. I remember the mini series Wild Palms in the 90s which was set in a then future 2007. It was about the rise of a company Mimecon which was run by an authoritarian oligarchy that begun controlling society through virtual reality.
Gradually the technology gets better and by use of a drug mimozene people actually feel and experience that which is seen through VR.
Anyway while browsing for something on the Raspberry Pi I came across this article by the very talented Patrick Catanzariti which gives instructions on how to stream Virtual Reality from the Raspberry Pi camera using the SBS technique. This is done by splitting the image into two images side by side and then adjusting the angle and shadows slightly to give the illusion of depth.
That was enough to get me buying a VR headset of the Google Cardboard type but plastic as well as a new expensive phone one that had an accelerometer and supported canvas, web3gl and device orientation. The idea was to use the device orientation to send commands to the Pan and Tilt camera of the robocat seen in previous posts, which would then stream back to the phone fitted to the headset. I would still control the movement of the robocat through the Wii Mario cart.
One of the main issues with this was to get the central angle correct as the pan tilt would often suddenly wizz back to zero after passing a certain point. The code can be found at bitbucket. Hope you enjoy the videos I made.
One of the strangest things that happened was when our real cat Afal came up to the robocat and sniffed at the camera while wearing the headset. Her nose just lit up in red due to the light on the camera. It also shows the difficulty of controlling the robocat as it is at the moment.
I more ideas to follow on with this project. There are endless possibilities of augmented reality. For example you could have a real game of blocks on one side of your living room or get animated sprites to come out through doorways or a ball bouncing down your stairs. The way I imagine this would be done would be by measuring distance and surfaces either by ultrasound or by laser beam and angles.