loading

Virtual Reality Teleconferencing Device with Google Cardboard

Created by John Choi | 2015

This project is a video teleconferencing device with two webcams for stereoscopic vision placed on top of a 3-axis motorized platform, controlled by a head-tracking head mounted display.

Note that virtual reality in general is still a technology in development, and there are many areas for improvement. Specifically, there is a noticable delay between head rotation and computer response, and sending video and angle information over a network only exacerbates this issue. Also, the servo motors used in this project occasionally "jitter," causing the device to rotate in small increments without input. Ultimately, the device demonstrated here is very finicky at best and should not be considered a completed product in terms of either reliability or usability.

In order to build and run this project, you will need rudimentary electronics skill, access to 3D printing, and the ability to use a personal computer (Windows 7 or above). Estimated time for construction is one week, and expected cost for this project is roughly 60 USD (variable depending on what parts you already have).

Step 1: Parts & Software

You will need the following parts for this project: (Sample links provided. Substitutes may be used.)

You will need the following software for this project:

<p>Hello, I Made this so it can run on any device, with better performance. (Mobile App that works on Android and Iphone, Stream App that works on all plateforms and guess what? The source code is free to hack :D ) Check this out : https://github.com/volkovmqx/VRS</p>
<p>your code can not work,mobile app miss some file.</p>
<p>i think you should install ionic, and do npm install &amp; bower install. if not i will be happy to answer you @ github. please fill an issue there. thanks !</p>
<p>Can I have some instructions on how to use this? hahaha im a noob</p>
https://github.com/volkovmqx/VRS have the documentation (search on how to use each technology : ionic, python etc)
<p>Thank you so much sir :)</p>
<p>Wow, this looks awesome, thanks for sharing! I'll be sure to check it out, and by the looks of it, your software seems far better than mine :D</p><p>May I include a link to your work as part of this Instructable?</p>
Thanks :D<br>Yes ! i will be happy that you will include this as a part of your instructables.
<p>The Instructable has been updated. See Step 8 for inclusion of your improved control software. Thanks again and have a wonderful day :)</p>
<p>Awesome ! Thanks.</p>
<p>hello , im trying to use this over the internet , the servo works completely fine on local area or within the router , but over the internet doesnt seem to work using public ip address any suggestion ?</p>
<p>Hm, I'm actually not sure on this one.</p><p>As you may have noticed, this is powered by the Open Sound Control protocol (which I did not write), and specifically the OSC library for Processing. From my understanding, if you got it to work within the local area network, it should also work over the internet as well if you got the correct IP address. Some more information on it is here: <a href="http://www.sojamo.de/libraries/oscP5/#features" rel="nofollow">http://www.sojamo.de/libraries/oscP5/#features</a></p><p>And here: <a href="https://github.com/sojamo/oscp5" rel="nofollow">https://github.com/sojamo/oscp5</a></p><p>If you are lucky, you may be able to contact the person that wrote the OSC library :)</p>
<p>hi, how can i see the webcam output from the receiver if i should focus on the sender.exe to move the servo motors . im using 2 computers</p>
<p>You can use a video chat program like Skype to send the video data from the receiver on the first computer to the second computer. You then use TrinusVR on the second computer to transmit the Skype window onto your Google Cardboard device. (I know is this somewhat convoluted, but it does sort of work.) </p>
<p>yeah , the video would be transmitted but does the servo would still work if i focused on skype window on the second computer with sender</p>
<p>Skype has a screenshare function that runs in the background, allowing you to focus on the sender application. </p>
<p>Umm I'm having trouble in selecting the servos...what servos are you using? there are turning point of (90) (180) (360 continuous rotation) ... I don't know what to choose...I'm about to buy TowerPro MG-995. Thanks in Advance</p>
<p>I'm using these: (180 degree)</p><p><a href="http://hobbyking.com/hobbyking/store/__3743__HXT_6_9kg_39_2g_16sec_Twin_bearing_Digital_Servo.html">http://hobbyking.com/hobbyking/store/__3743__HXT_6...</a></p>
<p>Hi, I Finally Have all materials needed. I followed all the instructions and it worked! .. I'm using only one computer. I have a problem. I could only control the servos when I'm with the &quot;VRTD Sender&quot; tab so to be able to see the visuals I have to switch with &quot;VRTD Receiver&quot; but when I'm in this tab I can't move the servos anymore.. I could only see &quot;Gray&quot; when I'm with the &quot;VRTD Sender&quot; tab Did I miss something?.. hehehe I suddenly get a burst of happy feeling when I got the servos to work lol</p>
<p>Great! Yes, that is correct - you have to be focused on the VRTD Sender tab for the servos to move. In an ideal situation, VRTD Sender and VRTD Receiver are on different computers, allowing you to see both screens at the same time while controlling the servos.</p>
<p>the VRTD receiver could control the servo through i update the xRot,yRot,zRot.but the VRTD receiver couldn't receive the x,y,z from VRTD sender.</p>
I am assuming you are using one computer to test both the VRTD receiver and sender simultaneously (this is fine). Try checking which window you have focused. You should have VRTD sender as the window up front and VRTD receiver in the background, otherwise VRTD sender will not register the mouse position.
<p>At the present, I could control the servo with mouse moving.</p><p>But, the driver of two different camera are the same when i bought them. Then I I amend one of them to other driver .The VRTD receive only can recognize one of them.</p><p>should i update the other different driver to camera or other setting?</p><p>Thanks for helping me to debug the device.</p>
<p>Yes, you need two different webcams for this to work, as Windows cannot differentiate between two of the same webcam.</p>
<p>At the present, I could control the servo with mouse moving.</p><p>But, the driver of two different camera are the same when i bought them. Then I I amend one of them to other driver .The VRTD receive only can recognize one of them.</p><p>should i update the other different driver to camera or other setting?</p><p>Thanks for helping me to debug the device.</p>
<p>now, I connect phone to computer through wifi.</p>
I have another possible fix in another reply.<br>(Also, if possible, please comment on the Instructables page so that everyone can see potential fixes.)
<p>now,i could run firmata_test.exe to test servo,the servo could run following i hoped.but when i run both the VRTD receiver and sender ,and set IP to 127.0.0.1.The servo couldn't rotate following mouse. </p><p>I set all the parameters that you set.Do I need to other Settings?</p>
I have another possible fix in another reply.<br>(Also, if possible, please comment on the Instructables page so that everyone can see potential fixes.)
<p>should i set IP or port?</p>
Since Trinus is able to control the mouse, that means it has been configured correctly. We just need to configure VRTD receiver and VRTD sender (addressed in another reply).
<p>I have a problem, when i run VRTD_sender or reciver, comes out an error pop up: C:\ProgramData\Oracle\Java\Javapath\javaw.exe</p>
<p>Hm, that's odd. What version of Windows and Processing are you using?</p>
<p>I solved that problem. I creat my own processing program and now it' s working.</p><p>but I have another question: how can i find the correct position of the two webcam? </p>
<p>Great! You learn a lot ore by doing it yourself :)</p><p>The best way to find the correct position of the webcam is to measure the distance between your eyes and space the webcams the same distance.</p><p>You can also put them roughly spaced at eye length and rotate them until they &quot;feel right&quot; through the VR headset.</p>
<p>ok, I will try.</p>
<p>&quot;Do. Or do not. There is no try.&quot; -Yoda</p>
<p>your code is full?</p>
<p>I open this code in processing</p>
<p>Have you installed the oscP5 library first? If not, try installing it, following this documentation: <a href="https://github.com/processing/processing/wiki/How-to-Install-a-Contributed-Library.">https://github.com/processing/processing/wiki/How-...</a></p><p>You can download the oscP5 library here: <a href="http://www.sojamo.de/libraries/oscP5/">http://www.sojamo.de/libraries/oscP5/</a></p>
<p>at current situation,I run VRTD_receiver.exe.but i can't see anything.this is the reason that i open the code in processing.</p>
<p>Problem fixed by using Processing version 2.2.1. Have a nice day :)</p>
<p>thanks for your replying,but i have a question for the code.The problem about oscP5 have been worked out. I don't know where i can find the Capture library.can you give me some sugguestion?(I am a newer.Thank you for your patience to answer my question)</p>
<p>Capture should be one of Processing's default libraries. See documentation here: https://processing.org/reference/libraries/video/Capture.html. Which version of Processing are you using?</p>
<p>how to install the library to processing.this library is downloaded by me on the internet. if i don't connect the camera,can the VRTD_receiver.exe run fine ?</p>
<p>The VRTD receiver is receiving the mouse data from the VRTD sender, so I believe it should still work without the webcam output.</p>
<p>that's a interesting application .but why i can't run VRTD_receiver.exe? do i require other setting?</p>
<p>Assuming you are using a Windows 7 computer, I think it should run just fine. What is the error you are receiving?</p>
<p>what exactly am I looking at?</p>
<p>Depends on what you see.</p><p>It is a virtual reality teleconferencing device so that you can immerse yourself in other locations without actually being there. That being said, I recognize the device looks a bit like a three-legged alien ;)</p>

About This Instructable

9,973views

153favorites

License:

Bio: Just a guy that likes building robots and videogames.
More by John Choi:Multipurpose Mobile Manipulator MkII Multipurpose Mobile Manipulator Mk 1 Virtual Reality Teleconferencing Device with Google Cardboard 
Add instructable to: