Welcome to Synthiam!

The easiest way to program the most powerful robots. Use technologies by leading industry experts. ARC is a free-to-use robot programming software that makes servo automation, computer vision, autonomous navigation, and artificial intelligence easy.

Get Started

How To Extract VR Goggle Data That Is Used To Move JD Humanoid Head?

Currently, I'm able to use an HTC Vive VR goggle to control and move JD humanoid's head. The tutorial was really helpful and it is super easy. However, I need to see the data from HTC vice goggle, which is used by ARC to control and move JD humanoid's head.
Is this possible to do by using a piece of Javascript code?

Related Hardware JD Humanoid
Related Control Virtual Reality Robot


Upgrade to ARC Pro

Harnessing the power of ARC Pro, your robot can be more than just a simple automated machine.

Sorry - what do you mean? What data are you looking for? I'm having difficulty understanding the question. If you can provide information of what you wish to achieve, that might be easier than answering a question about "data". There is no JavaScript code for the VR robot skill.
Oh sorry... by 'data' I meant coordinates or some kind of motion detection information, based on which ARC software determines to move the horizontal and vertical servos at some particular angles to mimic the human head's position.
That’s calculated in the app and converted into servo positions. The servo positions are transmitted. We have a new version of the app in development that will be released in July, per user feedback 

if you wish to use the servo positions to perform your own calculations and manipulation, assign the servos to Vx (virtual servos). That way you can use those positions to move which ever you wish
Oh I see... then I'll wait for the upcoming version of the app. Thank you. I can use the servo data only but, that won't be sufficient for my work. Actually, I need to see the VR goggle data from the control side and the corresponding head movement effects to understand the correlation.
The raw vr goggle head movements in Unity are merely X and Y angle values that are between -1 and +1. The servo positions are scaled to reflect the value in a range of degrees. They are both the same thing - so there’s no real difference. 

if you were able to describe what you’re attempting to do, then it would be easier to assist. Asking for the raw rotation data and having the skill return Rotation degrees means ARC is already giving you that info:)
User-inserted image

To bring more clarity, I have created this above block diagram (as per my current understanding; please correct me if I'm wrong). The signals received over the interface (a) is the raw HTC Vive goggle head movement data. If we can't retrieve this data, it is still fine. However, I need to collect the data over the (b) and (c) interfaces. Currently, I can collect the data over the (c) interface (feedback path) by using a Javascript code but, I also want to collect the data over path (b), which is the control path. This will allow me to create histograms of inter-arrival timestamps over both path (b) and (c). Also, what set of values in the control path makes the servo motors (horizontal and vertical movement servos) at certain angular positions.
1) There is no C. The JD hunanoid does not return any data to ARC

2) B is the servo position based on the respective X or Y rotation data from the headset. The rotation data is between -1 and +1. The servo position is generally between 1 and 180 (unless altered in ARC). If the servo range in the Virtual Reality robot skill is set to min (1) and max (180), that means the 1 degree in ARC is -1 from the headset. 180 degrees in ARC is +1 from the headset. 90 degrees in ARC is 0 from the headset. All the Virtual Reality robot skill is doing is mapping -1 to +1 to 1 and 180, respectively. 

If you require the -1 to +1 data, simply map the servo position back to -1 and +1.