Skip to content

labstreaminglayer/App-OpenVR

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LabStreamingLayer application for OpenVR

Build Instructions

Requirements:

  • CMake
  • Qt5
  • OpenVR
  • liblsl
  • Build environment
    • Tested with MSVC 2015 on Win10, Xcode on MacOS Sierra, and Qt Creator on Ubuntu 16.04

Instructions:

  1. Open a Command Prompt / Terminal and change into this directory.
  2. Make a build subdirectory: mkdir build && cd build
  3. Call cmake
    • `cmake -B build -S . -DCMAKE_INSTALL_PREFIX="build/install"
      • set OpenVR_ROOT_DIR to the directory where you downloaded openvr, or let it download for you.
      • -DQt5_DIR=path/to/qt/version/architecture/lib/cmake/Qt5
      • -DLSL_INSTALL_ROOT=path/to/lsl/install
    • cmake --build ./build -j --config Release --target install

Usage Instructions

Running the app

  1. Launch the app
  2. Click on "Scan Devices" to connect to OpenVR and scan for connected devices.
  3. Enter the sampling rate you would like to sample your poses at.
  4. Click on the individual device(s) you want to stream, or don't click to stream all.
  5. Click on "Stream Devices" to start the LSL Outlets.

Data format

  • One stream will be started for all devices' pose data. Each device gets 12 channels, corresponding to the 12 cells in a 3x4 transformation matrix.
    • The channel label prefix (#_) indicates the device ID.
    • The channel label suffix (_#) indicates the transformation matrix cell location.
00	01	02	X
10	11	12	Y
20	21	22	Z

Where X,Y,Z refer to the 3-D position.

Another stream will be started for each controller's button press events. This is a single int32 channel with each value having the following format XXYYYYYZZ

Known Issues

  • Cannot build debug app in Windows because it tries to link against non-debug liblsl64.lib, even though liblsl64-debug.lib is correctly specified in the project settings.
  • Sometimes an OpenVR controller will sleep/disconnect but it'll still be returned in the list of devices. Sleeping controllers will stream 0's for their pose data.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors