Automation-Research-Team / OpenHRC

Open Human-Robot Collaboration/Cooperation Library
GNU Lesser General Public License v2.1
8 stars 1 forks source link

add XR device teleoperation #40

Closed itadera closed 1 year ago

itadera commented 1 year ago

use OpenXR

itadera commented 1 year ago

In current setup, I connect Meta Quest2 to Ubuntu PC using ALVR, which works like Oculus Air Link. I can get Quest2 state through Steam VR by calling OpenXR APIs. There are several options:

  1. Write an OpenXR-based native node. This is what I'm doing in ohrc_openxr package, and successfully get controller positions and button states. This way can be run on one Linux machine. But this is based on OpenGL and SSL2?, so I have to learn a lot to use them efficiently. For now, I somehow cannot project camera images onto the HMD display

  2. Use Unity with OpenXR plugin More common way to use VR devices is to implement using Unity. There are a lot of codes still maintained. Unity itself can be run on linux, but OpenXR plugin for SteamVR is only on Windows. That is, the user need both Windows machine for VR interface connection and Linux machine for controller.

  3. Develop Android app for Quest with Unity on Linux. This might be possible to build android app on linux and send it to Quest and run on the device.