Thumbnail

Virtual Reality Robot

by Synthiam

View your robot’s camera using any SteamVR supported virtual reality headsets (Google Cardboard, Oculus Rift, Windows Mixed Reality, HTC Vive, etc)

Requires ARC v30 (Updated 4/15/2022)

How to add the Virtual Reality Robot robot skill

  1. Load the most recent release of ARC (Get ARC).
  2. Press the Project tab from the top menu bar in ARC.
  3. Press Add Robot Skill from the button ribbon bar in ARC.
  4. Choose the Virtual Reality category tab.
  5. Press the Virtual Reality Robot icon to add the robot skill to your project.

Don't have a robot yet?

Follow the Getting Started Guide to build a robot and use the Virtual Reality Robot robot skill.


How to use the Virtual Reality Robot robot skill

Use Virtual Reality with your robot to see what the robot sees, and control servos by moving your head. This plugin supports all virtual reality headsets through Steam VR (OpenVR), Google Play, and iOS, including Google Cardboard, Oculus, Windows Mixed Reality, and HTC Vive. The plugin does two things; it allows you to see what the robot sees and control the servos with the Pitch and Yaw of the headset. This means when you move your head, the robot head can also move, mimicking your movement.

This video was a test of the plugin on a Synthiam JD Humanoid. Sadly, he had no arms during the trial, so it's funny to see. Professor E from The Robot Program controlled the robot's head and viewed the robot's camera through the VR headset. In this example, we used OpenVR in STEAM with a Samsung Odyssey headset.

In this video below, we controlled a Synthiam Six Hexapod with a joystick and a VR headset. When we move the head from left to right, the legs of the hexapod will rotate the body so we can look around. This also applied to looking up and down; the legs would tilt the body so we could look up and down. In this example, we used an Android phone with Google Cardboard Glasses.

Here is another exciting example where we combined this VR Headset plugin with 2 Wiimotes to create custom animations. Each time a button was pressed on the WiiMote, a new FRAME was created with the current position of all servos and appended to an ACTION. DJ keeps pressing the button, and the FRAMES append to the ACTION until he stops. Once he squeezes the trigger on the WiiMote, the code instructs the ACTION to be played back. And thus, all FRAMES are played back because they are part of the action.

Here is a screenshot of the plugin running on an ARC workspace with a camera.

User-inserted image

What Hardware Does It Support? Two methods connect to the plugin, which opens a wide variety of hardware.

1. SteamVR (OpenVR) On PC, the supported headsets use Steam VR (OpenVR). This means any headset supporting Steam VR will work with this plugin, given the headset is directly connected to the PC. The most popular SteamVR headsets are Oculus, HTC Vive, and Windows Mixed Reality.

2. Google Cardboard (iOS and Android) The Google Cardboard is a product and standard that turns your mobile device into a virtual reality headset. This means you can either purchase the cardboard version from Google or shop online and purchase a more robust plastic/foam padded version from amazon.

Download the Android App here: https://play.google.com/store/apps/details?id=com.ezrobot.virtualrealityrobot

User-inserted image

Allow Firewall Access

User-inserted image

When the plugin is loaded, you may receive a message to allow firewall access. Be sure to check Private and Public networks. If you do not check both, you may end up in a situation in the future where you're connected to a public network and the plugin isn't working. In this case, it's because ARC doesn't have firewall permission. Also, if you do not see this message when the plugin loads, it could be because you've already answered this in the past. In which case, you should visit the firewall rules to see if ARC has correct access.

  1. Press the Windows button and type FIREWALL to search for Windows Defender Firewall

  2. Select "Allow an app or feature through windows defender firewall."

    User-inserted image

  3. Press CHANGE SETTINGS

    User-inserted image

  4. Ensure both PRIVATE and PUBLIC are checked for ARC and press OK

    User-inserted image

Attach/Detach Camera Button

User-inserted image

This plugin requires a camera, whether on your robot or a USB device. Add the camera device to your project and connect to the camera. Once you have a successful camera operational, press the Attach to Camera button on the plugin. This will connect the plugin to the camera device, sending the video stream to the VR headset.

Start/Close VR Client Button (SteamVR only)

User-inserted image

If you have a Steam VR-compatible headset connected to your PC, this button will allow you to use that headset. This button will start the VR client, connecting to the VR Headset. The client can be launched either full screen or in a window. By default, the setting is to launch in the plugin window. This setting can be altered for your project in the configuration dialog.

Google Cardboard Users Your device needs to be on the same network as the ARC PC for those using google cardboard (iOS or Android) compatible device and headset. This is because your mobile device will connect to the ARC plugin by typing in the PC's IP address. The IP Address for your ARC PC is displayed in the plugin. Load the Virtual Reality Robot mobile app on your device and enter the IP address of the ARC PC.

User-inserted image

4K Display Issues There is an issue with 4K displays and running the local client in the robot skill window. This is a known issue with Windows & Unity with 4k displays. If you have a 4k display and press the "Start Local Client" button, you will notice two things...

  1. The client is minimal
  2. The client is offset from the display window

There are two solutions...

  1. Change your screen resolution to 1080

  2. Set the client to run in full screen, configurable in this skill's configuration window.

    User-inserted image

Virtual Reality Caution Read the warnings on your device before using a virtual reality (VR) viewer with this plugin to reduce the risk of personal injury, discomfort, or property damage. Ensure you use this plugin with adequate space to avoid hurting yourself or others by walking into something. Nausea and motion sickness may be experienced and worse for some users. Do not use this plugin for extended periods to avoid experiencing nausea.:D


ARC Pro

Upgrade to ARC Pro

Become a Synthiam ARC Pro subscriber to unleash the power of easy and powerful robot programming

PRO
Synthiam
#33  

I assume for ces he’d be using a steam vr headset because it’s wired. A phone would last only a few minutes with battery life. And it would just get so hot it would shut down in the headset anyway.

I sure wouldn’t recommend a phone lol

PRO
USA
#34   — Edited

Looks like the Steam headset it is! lol.....I found an Acer Windows Mixed Reality head set on amazon...This particular model uses the HDMI port to connect to the graphics card, is that an issue?

PRO
USA
#35   — Edited

I finally got Stream VR installed and Windows mixed reality and the VR Robot plugs installed. I cannot get get steam and the plug in to talk. Steam sees the headset and it says using ezrobot.exe, but no data is exchanged when i hit connect to client

Last issue... the plug settings all to default positions to 90 when you activate, this puts my dynamixel positions not facing forward. IE the dynamixel plug has all my settings on those servos 1-4096 positions. 90 should be 2048 on the dynamixels. Some how its not doing the math to convert 1-180 positions?

If i can get both the headset and the plug in to talk i can grab a video to show dynamixel issue.

Is there a longer description of setting up the plug in?

PRO
Synthiam
#36  

Does the headset work with steam vr? Do you have supported hardware? Did you verify your computers requirements?

PRO
USA
#37  

Yes, yes, yes. Green check marks for everything. Headset came with windows mixed reality and it works great as stand alone.

PRO
Synthiam
#38   — Edited

Does STEAM VR work? Load STEAM VR from STEAM. Use the STEAM VR instructions to learn how to use your headset with STEAM VR. You have to install Windows Mixed Reality support into STEAM. You have to get your headset working with STEAM VR.

Have you read the comments in this plugin to learn from the effort i put into others for help? Do you have Windows Mixed Reality support added to STEAM VR?

  1. Ensure a Camera Device is loaded and connected to a camera in your project

  2. Press ATTACH TO CAMERA (any errors?)

  3. Press Start VR Client (Steam VR should automatically load, does it?)

  4. Press Robot View in the Steam VR Client window that loads

that's it

As for your servo settings - All servo controls are the same. Given the type of headset, the INVERT button may need to be used to invert the direction of the servos. If the servos work in any other control of ARC, they'll work in the plugin. Notice how they're all the same interface? Notice my comment on your other thread about asking about servos? They all use the exact same control which is the exact same code. It's all the same. Nothing is different - the entire servo interface in all of ARC is standardized to be identical.

PRO
USA
#39  

OK Just rebooted the system, got the camera to transfer data to the head set. But I cant click activate servos, it wont let me check mark it.

User-inserted image

PRO
Synthiam
#40   — Edited

What do you mean? You click on it and the checkbox doesn't change? Where are you clicking? On the words or on the checkbox?

Also, i notice you have the Config window open while trying to click on something in ARC? It doesn't work that way. You have to close teh config window because it's a dialog widow. ARC has always been like that, and so are all windows programs. When you open a dialog window in a windows porgram, you have to close it before using the real window.