OSVR / OSVR-Core

The core libraries, applications, and plugins of the OSVR software platform.
Apache License 2.0
327 stars 123 forks source link

OSVR Could not resolve source for com_osvr_Multiserver & com_osvr_VideoBasedHMDTracker #336

Closed agirault closed 8 years ago

agirault commented 8 years ago

I am working on Linux, with the HDK 1.3. I successfully installed OSVR Core and the tracker-viewer.

I can not seem to detect the headset :

1. When running ./osvr-core by default like shown in here, I get :

[OSVR Server] Using default config file - pass a filename on the command line to use a different one.
[OSVR Server] Using config file 'osvr_server_config.json'
[OSVR Server] Could not open config file!

So I look for the HDK1.3 config file...

2. When running ./osvr_server ../share/osvrcore/sample-configs/osvr_server_config.HDK13ExtendedLandscape.sample I get :

[OSVR Server] Using config file '../share/osvrcore/sample-configs/osvr_server_config.HDK13ExtendedLandscape.sample.json'
[OSVR Server] Constructing server as configured...
[OSVR Server] Loading auto-loadable plugins...
[OSVR Server] Loading plugins...
[OSVR Server] 
[OSVR Server] Instantiating configured drivers...
[OSVR] Added device: org_osvr_filter_videoimufusion/HeadFusion
[OSVR] Client context initialized for org.osvr.analysisplugin
[OSVR] Interface initialized for /com_osvr_Multiserver/OSVRHackerDevKitPrediction0/semantic/hmd
[OSVR] Could not resolve source for /com_osvr_Multiserver/OSVRHackerDevKitPrediction0/semantic/hmd
[OSVR] Interface initialized for /com_osvr_VideoBasedHMDTracker/TrackedCamera0_0/semantic/hmd/front
[OSVR] Could not resolve source for /com_osvr_VideoBasedHMDTracker/TrackedCamera0_0/semantic/hmd/front
[OSVR Server] Successes:
[OSVR Server]  - com_osvr_VideoBasedHMDTracker/VideoBasedHMDTracker
[OSVR Server]  - org_osvr_filter_videoimufusion/VideoIMUFusion
[OSVR Server] 
[OSVR Server] 
[OSVR Server] Aliases found and parsed from config file.
[OSVR] ERROR: Could not load an object or display descriptor file specified by: 
/*
    This configuration supports video (so-called "positional") and IMU fusion tracking,
    in addition to orientation-only tracking, with the OSVR HDK.
    It is configured for RenderManager applications in
    non-direct extended-display landscape mode on HDK 1.3 optics.
    */
"displays/OSVR_HDK_1_3.json"

[OSVR Server] Using OSVR HDK for display configuration. Did not find an alternate valid 'display' object in config file.
[OSVR] ERROR: Could not load an object or render manager config file specified by: "sample-configs/renderManager.extended.landscape.json"

[OSVR Server] Triggering automatic hardware detection...
[OSVR Server] Registering shutdown handler...
[OSVR Server] Starting server mainloop: OSVR Server is ready to go!
[OSVR] Performing hardware auto-detection.
Opening camera 0
[OSVR] Added device: com_osvr_VideoBasedHMDTracker/TrackedCamera0_0
Video-based tracker: NOTE: Beacon calibration filename videotrackerCombinedCalibrationFile13.json was specified, but not found or could not be loaded.
[OSVR] Path tree updated or connection detected
[OSVR] Sending path tree to clients.
[OSVR] Got updated path tree, processing
[OSVR] Could not resolve source for /com_osvr_Multiserver/OSVRHackerDevKitPrediction0/semantic/hmd
[OSVR] Constructed a TrackerHandler for com_osvr_VideoBasedHMDTracker/TrackedCamera0_0@localhost sensor 0
[OSVR] Successfully produced handler for /com_osvr_VideoBasedHMDTracker/TrackedCamera0_0/semantic/hmd/front
[OSVR] Connected 1 of 2 unconnected paths successfully
[OSVR] Performing hardware auto-detection.
[OSVR] Path tree updated or connection detected
[OSVR] Sending path tree to clients.

=> I realize the "ERROR: Could not load display descriptor & Render Manager" was due to the relative path expected for those files...

3. From share/osvrcore I run ../../bin/osvr_server sample-configs/osvr_server_config.HDK13ExtendedLandscape.sample.json and I get :

[OSVR Server] Using config file 'sample-configs/osvr_server_config.HDK13ExtendedLandscape.sample.json'
[OSVR Server] Constructing server as configured...
[OSVR Server] Loading auto-loadable plugins...
[OSVR Server] Loading plugins...
[OSVR Server] 
[OSVR Server] Instantiating configured drivers...
[OSVR] Added device: org_osvr_filter_videoimufusion/HeadFusion
[OSVR] Client context initialized for org.osvr.analysisplugin
[OSVR] Interface initialized for /com_osvr_Multiserver/OSVRHackerDevKitPrediction0/semantic/hmd
[OSVR] Could not resolve source for /com_osvr_Multiserver/OSVRHackerDevKitPrediction0/semantic/hmd
[OSVR] Interface initialized for /com_osvr_VideoBasedHMDTracker/TrackedCamera0_0/semantic/hmd/front
[OSVR] Could not resolve source for /com_osvr_VideoBasedHMDTracker/TrackedCamera0_0/semantic/hmd/front
[OSVR Server] Successes:
[OSVR Server]  - com_osvr_VideoBasedHMDTracker/VideoBasedHMDTracker
[OSVR Server]  - org_osvr_filter_videoimufusion/VideoIMUFusion
[OSVR Server] 
[OSVR Server] 
[OSVR Server] Aliases found and parsed from config file.
[OSVR Server] Display descriptor found and parsed from config file.
[OSVR Server] RenderManager config found and parsed from the config file.
[OSVR Server] Triggering automatic hardware detection...
[OSVR Server] Registering shutdown handler...
[OSVR Server] Starting server mainloop: OSVR Server is ready to go!
[OSVR] Performing hardware auto-detection.
Opening camera 0
[OSVR] Added device: com_osvr_VideoBasedHMDTracker/TrackedCamera0_0
Video-based tracker: NOTE: Beacon calibration filename videotrackerCombinedCalibrationFile13.json was specified, but not found or could not be loaded.
[OSVR] Path tree updated or connection detected
[OSVR] Sending path tree to clients.
[OSVR] Got updated path tree, processing
[OSVR] Could not resolve source for /com_osvr_Multiserver/OSVRHackerDevKitPrediction0/semantic/hmd
[OSVR] Constructed a TrackerHandler for com_osvr_VideoBasedHMDTracker/TrackedCamera0_0@localhost sensor 0
[OSVR] Successfully produced handler for /com_osvr_VideoBasedHMDTracker/TrackedCamera0_0/semantic/hmd/front
[OSVR] Connected 1 of 2 unconnected paths successfully
[OSVR] Performing hardware auto-detection.
[OSVR] Path tree updated or connection detected
[OSVR] Sending path tree to clients.

And when launching the TrackerViewer :

[OSVR] Connecting to default (local) host
[OSVR] Client context initialized for org.osvr.trackerview
[OSVR] Got connection to main OSVR server
[OSVR] Got updated path tree, processing
[OSVR] Connected 0 of 0 unconnected paths successfully
[OSVR] Connection process took 150ms: have connection to server, have path tree
[OSVR] Interface initialized for /me/head
[OSVR] Constructed a TrackerHandler for org_osvr_filter_videoimufusion/HeadFusion@localhost sensor 0
[OSVR] Successfully produced handler for /me/head

=> This did fix the issue with the display descriptor and the rendermanager config, but only the camera seems to be recognized, not the HMD, and even though the trackerviewer ouput does not show any errors, nothing is happening in the rendering window.

That's it... I still haven't been able to track anything yet, with or without camera. Can I get some inputs on this? Is is supposed to require that many steps to make it work? If so, I'd be happy to use this issue as a way to help improving the documentation which seems like a huge need.

Thank you

d235j commented 8 years ago

This may be related to the outdated version of hidapi that's included with VRPN. Any chance you can update that to latest upstream and try again?

agirault commented 8 years ago

I'll check that. I'd be suprised since I started installing all my dependencies on a new computer last Friday. Also, I hit the same issues on MacOSX.

agirault commented 8 years ago

@d235j Thank you but this did not change anything. I still get :

[OSVR] Interface initialized for /com_osvr_Multiserver/OSVRHackerDevKitPrediction0/semantic/hmd
[OSVR] Could not resolve source for /com_osvr_Multiserver/OSVRHackerDevKitPrediction0/semantic/hmd
[OSVR] Interface initialized for /com_osvr_VideoBasedHMDTracker/TrackedCamera0_0/semantic/hmd/front
[OSVR] Could not resolve source for /com_osvr_VideoBasedHMDTracker/TrackedCamera0_0/semantic/hmd/front
d235j commented 8 years ago

hidapi is a bundled library, not a dependency. @agirault what happens when you provide the empty config file at ../share/osvrcore/osvr_server_config.json? This shoulde allow it to detect the HMD for rotational tracking.

agirault commented 8 years ago

osvrcore :

[OSVR Server] Using config file 'osvr_server_config.json'
[OSVR Server] Constructing server as configured...
[OSVR Server] Loading auto-loadable plugins...
[OSVR Server] Loading plugins...
[OSVR Server] 
[OSVR Server] Instantiating configured drivers...
[OSVR Server] 
[OSVR Server] Using OSVR HDK for display configuration. Did not find an alternate valid 'display' object in config file.
[OSVR Server] Triggering automatic hardware detection...
[OSVR Server] Registering shutdown handler...
[OSVR Server] Starting server mainloop: OSVR Server is ready to go!
[OSVR] Performing hardware auto-detection.

tracker:

[OSVR] Connecting to default (local) host
[OSVR] Client context initialized for org.osvr.trackerview
[OSVR] Got connection to main OSVR server
[OSVR] Connection process took 1000ms: have connection to server, don't have path tree
[OSVR] Interface initialized for /me/head
[OSVR] Could not resolve source for /me/head
[OSVR] Got updated path tree, processing
[OSVR] Could not resolve source for /me/head
[OSVR] Connected 0 of 1 unconnected paths successfully
agirault commented 8 years ago

I'll look into this and keep you up to date :

ok, so two things for using the HDK: permissions for the USB access (either run as root or install this udev file: OSVR/OSVR-Core#330 ), and you'll need to build OSVR-Core, with the vendor/vrpn submodule instead set to vrpn/vrpn#130 - @rpavlik

agirault commented 8 years ago

I checked out d235j-update-hidapi in the vendor/vprn submodule, rebuilt Core and TrackerViewer , and still no luck: same outputs than above. edit: looks like I forgot to run git submodule update

agirault commented 8 years ago

Temporary solution documented here : https://github.com/OSVR/OSVR-Core/issues/338 git clone --recursive https://github.com/OSVR/OSVR-Core.git --branch non-windows-workaround builds Core with the updated hidapi and vrpn. I'll be working on documenting this efficiently.

agirault commented 8 years ago

@godbyk I documented this in the Linux Build instructions as well as a short comment about it in the Get the OSVR server doc.