Skip to content

License requirement

The functionality described requires a MANUS Bodypack or a MANUS license key with the OpenXR feature enabled.

Getting started with OpenXR on Linux

The MANUS Core OpenXR API Layer allows you to receive glove data from a Windows PC running MANUS Core. This guide delves into its setup and usage.

About

Using the API Layer on Linux requires a separate PC running MANUS Core on Windows. The gloves should be connected to this instance of Core. The API layer then connects to this instance of Core to get the glove data. The API Layer implements both the XR_EXT_hand_tracking extension and XR_FB_hand_tracking_aim extension.

Installation

First, make sure your Linux environment is set up for use with our SDK. See the following article: Getting started with Linux. Since the OpenXR API layer connects to a separate machine, ensure you follow the SDK Remote-specific setup steps.

Next, download the OpenXR for Linux package from our Resource Center.

Unzip the contents of the .zip file.

The API layer can be installed either implicitly or explicitly.

Running the installer will install the API layer implicitly. An implicit installation means that the API layer will be loaded automatically by all OpenXR applications. This can be done through the following command:

bash install_implicit.sh

Alternatively, the API layer can be installed explicitly. An explicit installation means that the API layer will need to be loaded manually by any OpenXR applications that want to use it. For more information on this distinction and information on how to set up API layers explicitly, see the relevant OpenXR documentation.

You have now installed the MANUS OpenXR API layer for Linux.

Setup

Currently, the MANUS OpenXR API layer only works using MANUS Core Remote. Core Integrated is not yet supported. This means that a separate instance of Core running on a Windows PC is required. The gloves are connected to this instance on Windows. The API layer then connects to this instance and receives the glove data. By default on Linux, the API layer connects to the first instance of MANUS Core it finds on the network.

In situations where more control over which instance of Core to connect is required, the xrConnectToRemoteMANUSCore function can be used. The pointer to this function can be obtained using xrGetInstanceProcAddr().

The xrConnectToRemoteMANUSCore function is defined as:

XrResult xrConnectToRemoteMANUSCore(std::string p_IP);

p_IP is the IP address of the Windows PC running MANUS Core.

A user with gloves and optionally trackers must also be set up in the MANUS Core Dashboard. For detailed instructions on setting up trackers in MANUS Core, please refer to our article.

Logging

The API layer attempts to log to /var/log/openxr/manus. Logging is only active when this directory exists and is writable by the current user. This can be done through the following command:

sudo mkdir /var/log/openxr && \
sudo mkdir -m 777 /var/log/openxr/manus

Uninstalling

If the install_implicit.sh script was used, the API layer can be uninstalled using the following command:

sudo rm /usr/share/openxr/1/api_layers/implicit.d/XR_APILAYER_MANUS_handtracking_Linux.json && \
sudo rm /usr/lib/openxr/libXR_APILAYER_MANUS_handtracking.so && \
sudo rm /usr/lib/openxr/libManusSDK.so