OSVR / SteamVR-OSVR

An OSVR plugin for SteamVR, providing SteamVR support for OSVR HMDs.
Apache License 2.0
138 stars 57 forks source link

[Totally And Utterly Resolved Non SteamVR-OSVR Issue] Steamvr Compositor Issue/s #75

Closed Balderick closed 8 years ago

Balderick commented 8 years ago

N.B. If You Have Been Directed Here Through OSVR Support Please read the comments from most recent backwards to try and track issues in reverse chronological order to best understand my most recent status regarding configuration being used etc.

CURRENTLY

No Headset Detected (108)

Main current issue seems to be usb device (ir camera) firmware issue with usb 3.0 female ports. steamvr does not detect device. running latest current steam client, steamvr, osvr control, osvr runtime 1204 and latest osvr drivers. Latest drivers firmware and everything else which meeans nvidia 368.81 drivers. Regardless of which osvr_server.config.json or sample file is used all that is shown in osvr server output is what is listed at https://github.com/OSVR/OSVR-Docs/issues/63

Before launching osvr server i check that all OSVR devices are showing as well and healthy in devices app, control panel device and printers as well as in device manager.

OSVR Control gives ` >#?v Version 1.92 Mar 24 2016

Tracker:1.8.4.415 `

SteamVR Compositor Is Not Available (400)

After receiving a HDK 1.4 kit on Thursday it took me till late on Friday to get drivers installed with no problem devices showing in device manager. It took another twelve hours + of applying workarounds, reinstalling drivers and searching the interweb to work out i had to try rolling back from 1197 to 1194 core and steamvr-osvr drivers to improve chances of a steamvr title to launch. My HDK display appeared to die on Saturday evening and spent most of Sunday to work out my hdk was stuck in direct mode and not dead. The furthest in set up process i have been is launching steamvr and being asked to switch to direct mode but steamvr compositor can not start when steamvr restarts in direct mode. Using 1197 runtime and steamvr-osvr drivers i managed to go through room setup before being asked to switch to direct mode.

Describe the issue you've encountered. What is the exepected and actual behavior? What steps have you tried to fix the problem? osvr audio device showing as problem device i.e. unusable, not started in device manager. windows devices and devices and printers showing no ssues with displays but nvidia control panel sees hdk display as using portrait. selecting landscape helps with steamvr issues/errors (400 and 109). To help with steamvr setup and osvr complaining about no beacon configuration done i used https://www.youtube.com/watch?v=MObPn_U4IYg but allthough the file appeared to save osvr could never use it. The other bugs still needing workarounds applied are described well in this video. https://www.youtube.com/watch?v=1ZaboSUUpcI I do not expect drivers to be an issue on modern operating systems. Killing hardware makes the drivers not fit for purpose.

Steps to reproduce the problem

How can the problem be reproduced? Plug in and power up HDK Launch OSVR client Start Steam Start SteamVR Switch to direct mode using steamvr ui Can not get passed "compositor is not running (400)" dialogue. Clicking the "launch compositor" button does nothing. If i start steamvr with hdk in extended mode after deleting steamvr.vrsettings the compositor (white meshed environment) is visible in hdk display. The compositor never loads after switching to direct mode.

The enable/disable direct mode switches that come with osvr runtime work as expected the majority of the time. Roughly 3 out of 10 times get unexpected behaviour ranging from appearing to do nothing and nothing. i.e. gets stuck in direct mode after steamvr switched from extended to direct mode. Getting osvr audio device not be shown as trouble device in device manager is an issue in its own right but steamvr not starting compositor is what is stopping any app to launch as expected in vr mode imo.

System configuration

Please specify any relevant system configuration information.

After finding 1.2.6 and 1.2.7 drivers installed at same time i suspect what caused this to happen is same thing that has caused hdk display to die. I double checked my downloads folder and am 100 per cent positive i did not install 1.2.6 drivers. The only currently available drivers from https://github.com/OSVR/OSVR-HDK-Windows-Drivers/releases are 1.2.7

OSVR audio device has issues with driver management. It is a problem device. I need to disconnect usb from i/o on pc and use device manger to show hidden devices. Only after deleting all disconnected devices and drivers allows the reinstall of driver for osvr audio device with no issue or problems.

Attached files

Please attach the following files:

N.B. Two HDK's and 100 + hours down and still not one steamvr app launched successfuly. :-(

Now that i have faceplate removed am currently working my way through https://www.youtube.com/watch?v=GLgxJxbsalM to try and get going again

Why isn't there a screwdriver for removing faceplate included with hdk? I used a 00 phillips screwdriver with care and still rounded off a screwhead probably due to the screws being overtightened on assembly imho.

HDK was stuck in direct mode but still can not get passed "compositor not available (400)".

Balderick commented 8 years ago

Made sure steamvr.vrsettings and system reports are deleted.

System report from latest build runtime and 255 build steamvr osvr drivers, enabling direct mode and then launching server with default .json - vrserver.txt vr monitor showed in top left corner of main display with the 108 error. No compositor in hmd.

godbyk commented 8 years ago

This log says, osvr: OSVRTrackedDevice::Activate(): Display startup timed out! Check to make sure you have the OSVR server running before you start SteamVR. (If it's been running for a bit, you might shut it down and restart it.)

Balderick commented 8 years ago

vrserver.txt

hmm used vr*.txt to search for and delete files. Getting unexpected behaviour. Vr Monitor gui is showing button actions and names. Missing translation files in system report etc

Let me get cleaned up and i'll get back to you later on today.

godbyk commented 8 years ago

Hmm.. we're still getting that message.

Balderick commented 8 years ago
  1. Using osvr central to print tree another command prompt window shows but disappears before i can read or copy text. Same result if i use the .exe directly. Does the info get saved to file somewhere?
  2. Tracker viewer does not show any reaction to hmd movement in front of camera (no rotational or positional tracking)
  3. Only windows firewall and windows defender are active. Never had any firewall app permission for osvr or any warnings
  4. osvr palace 6.9.1 only shows display 1 as available display with hdk in direct mode. palace gets rendered on main display

ahh i just noticed i forgot too unblock the 255 download before extracting drivers. Sorry my bad.

The rotational and positional tracking never started working again even after i got the camera working again. I suspect it was the 1.96 firmware upgrade that caused the camera to start working again; somehow.

godbyk commented 8 years ago

The firmware upgrade only impacts the HDK. It's not a camera firmware upgrade.

Try running the osvr_print_tree program from a command prompt:

  1. Hold down the Windows key and press R. Type cmd and press Enter.
  2. At the command prompt, change to the location where you installed OSVR. For example: cd "C:\Program Files\OSVR\Runtime\bin" or cd "C:\Program Files\OSVR\SDK\bin". Don't forget the quotation marks.
  3. Type osvr_print_tree.exe and press Enter.
  4. If you can see output from the program, you can save it to a file: osvr_print_tree.exe > osvr_print_tree.log. Then you can upload the osvr_print_tree.log file.
Balderick commented 8 years ago

osvr_print_tree.txt

Balderick commented 8 years ago

Here is another system report after unblocking the downloaded zip. Still have hard to decribe stuff goiing on but basically vr monitor gui

vrmonpng

is fubar.
vrserver.txt

I'll be back later on today

godbyk commented 8 years ago

Oh, weird! I've never seen the SteamVR monitor do that. You might right-click on SteamVR in the library and run an integrity check. Or just uninstall/delete it entirely and reinstall a fresh copy.

Also, let's delete the entries from steamvr.vrsettings that have to do with direct mode. Let's see if we can get it running in extended mode first.

Balderick commented 8 years ago

Found windows was using work group so set up home network. After installing the latest runtime i tried tracker viewer and video calibration utility.

Tracker viewer does not detect rotational or positional tracking. Camera does not get switched on. Command prompt output gives `C:\Program Files\OSVR\Runtime\bin>OSVRTrackerView.exe Aug 24 19:49:16.656 notice [OSVR]: Log file created in C:\Users\Tron\AppData\Local\OSVR\Logs Aug 24 19:49:16.656 notice [OSVR]: Log file name starts with "OSVRTrackerView" Aug 24 19:49:16.672 notice [OSVR]: Logging for C:\Program Files\OSVR\Runtime\bin\OSVRTrackerView.exe Aug 24 19:49:16.765 info [OSVR: org.osvr.trackerview]: OSVR client context initialized for org.osvr.trackerview

[TrackerViewer] No arguments passed: default is as if you passed the following: --pose /me/hands/left --pose /me/hands/right --pose /me/head You can specify --pose or --orientation then a path, as many times as you want. Pass the argument --help for more info.

Aug 24 19:49:18.028 info [OSVR]: Z:\j\workspace\OSVR-Core-Build-Win\BIT\64\TRACING\OFF\VS\12\host\windows\src\osvr\Common\ClientInterface.cpp:38: Interface initialized for /me/hands/left Aug 24 19:49:18.028 info [OSVR]: Z:\j\workspace\OSVR-Core-Build-Win\BIT\64\TRACING\OFF\VS\12\host\windows\src\osvr\Common\ClientInterface.cpp:38: Interface initialized for /me/hands/right Aug 24 19:49:18.028 info [OSVR]: Z:\j\workspace\OSVR-Core-Build-Win\BIT\64\TRACING\OFF\VS\12\host\windows\src\osvr\Common\ClientInterface.cpp:38: Interface initialized for /me/head Aug 24 19:49:17.982 notice [OSVR: org.osvr.trackerview]: Could not connect to OSVR server in the timeout period allotted of 200ms Aug 24 19:49:18.028 info [OSVR: org.osvr.trackerview]: Could not resolve source for /me/hands/left Aug 24 19:49:18.028 info [OSVR: org.osvr.trackerview]: Could not resolve source for /me/hands/right Aug 24 19:49:18.028 info [OSVR: org.osvr.trackerview]: Could not resolve source for /me/head vrpn_Endpoint::send_pending_reports(): No TCP connection vrpn_Connection_IP::send_pending_reports: Closing failed endpoint.

C:\Program Files\OSVR\Runtime\bin>`

Video tracking calibration utility does switch on camera and can see the leds on hdk hmd faceplate; again now. Tracking is very jittery though and then camera/video sync freezes . On initial locking of leds the numbers for beacons all appear where they are expected to (where the leds are) but then it is like they all get "sucked" into a small area and the camera can never tell them all apart again.

trackutil2
godbyk commented 8 years ago

This message from Tracker Viewer:

Aug 24 19:49:17.982 notice [OSVR: org.osvr.trackerview]: Could not connect to OSVR server in the timeout period allotted of 200ms

sounds like it can't connect to the OSVR server, which is the same sort of error we're seeing in the SteamVR-OSVR log files.

Either the server isn't running (which I don't think is the case, since we've double-checked that in the past), or there's some problem communicating with it. If we can't communicate with the server, it's because either the server isn't listening for incoming communication requests or because there's something preventing those requests from getting to the server (or responses from the server getting to the client).

When you ran Tracker Viewer, did the OSVR server log show a message about a new client being connected?

While the server is running, please run netstat -a at a command prompt and paste the output here. That will show us what services are listening on which ports. We'll see if the OSVR server is in that list.

Balderick commented 8 years ago

yes a new client is started if osvr server is running when tracker viewer is run.

Aug 24 22:12:16.123 notice [OSVR]: Log file created in C:\Users\Tron\AppData\Local\OSVR\Logs
Aug 24 22:12:16.123 notice [OSVR]: Log file name starts with "osvr_server"
Aug 24 22:12:16.123 notice [OSVR]: Logging for C:\Program Files\OSVR\Runtime\bin\osvr_server.exe
Aug 24 22:12:16.159 info [OSVR Server]: Using default config file - pass a filename on the command line to use a different one.
Aug 24 22:12:16.159 info [OSVR Server]: Using config file 'osvr_server_config.json'.
Aug 24 22:12:16.159 info [OSVR Server]: Constructing server as configured...
Aug 24 22:12:16.199 info [OSVR Server]: Loading auto-loadable plugins...
Aug 24 22:12:16.409 info [OSVR Server]: Loading plugins...
Aug 24 22:12:16.409 info [OSVR Server]: Instantiating configured drivers...
Aug 24 22:12:16.409 notice [OSVR Server]: Added device: org_osvr_filter_videoimufusion/HeadFusion
Aug 24 22:12:16.487 info [OSVR: org.osvr.analysisplugin]: OSVR client context initialized for org.osvr.analysisplugin
Aug 24 22:12:16.518 info [OSVR]: Z:\j\workspace\OSVR-Core-Build-Win\BIT\64\TRACING\OFF\VS\12\host\windows\src\osvr\Common\ClientInterface.cpp:38: Interface initialized for /com_osvr_Multiserver/OSVRHackerDevKitPrediction0/semantic/hmd
Aug 24 22:12:16.518 info [OSVR]: Z:\j\workspace\OSVR-Core-Build-Win\BIT\64\TRACING\OFF\VS\12\host\windows\src\osvr\Common\ClientInterface.cpp:38: Interface initialized for /com_osvr_VideoBasedHMDTracker/TrackedCamera0_0/semantic/hmd/front
Aug 24 22:12:16.518 info [OSVR Server]: Successes:
Aug 24 22:12:16.518 info [OSVR Server]:  - com_osvr_VideoBasedHMDTracker/VideoBasedHMDTracker
Aug 24 22:12:16.518 info [OSVR Server]:  - org_osvr_filter_videoimufusion/VideoIMUFusion
Aug 24 22:12:16.518 info [OSVR Server]: Aliases found and parsed from config file.
Aug 24 22:12:16.518 info [OSVR Server]: Display descriptor found and parsed from config file.
Aug 24 22:12:16.518 info [OSVR Server]: RenderManager config found and parsed from the config file.
Aug 24 22:12:16.518 info [OSVR Server]: Triggering automatic hardware detection...
Aug 24 22:12:16.518 info [OSVR Server]: Registering shutdown handler...
Aug 24 22:12:16.518 info [OSVR Server]: Starting server mainloop: OSVR Server is ready to go!
Aug 24 22:12:16.518 info [OSVR Server]: Performing hardware auto-detection.
directx_camera_server: Using capture device 'USB Video Device' at path '\\?\usb#vid_0bda&pid_57e8&mi_00#9&314fc184&4&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global'
Aug 24 22:12:16.659 notice [OSVR Server]: Added device: com_osvr_Multiserver/OSVRHackerDevKit0
Aug 24 22:12:16.659 notice [OSVR Server]: Added device: com_osvr_Multiserver/OSVRHackerDevKitPrediction0
Video-based tracker: Camera turned on!
Opening camera 0
Video-based tracker: NOTE: Beacon calibration filename videotrackerCombinedCalibrationFile13.json was specified, but not found or could not be loaded. This is not an error: This may just mean you have not yet run the optional beacon pre-calibration step.
Aug 24 22:12:17.066 info [OSVR]: Z:\j\workspace\OSVR-Core-Build-Win\BIT\64\TRACING\OFF\VS\12\host\windows\src\osvr\Client\AnalysisClientContext.cpp:76: Got updated path tree, processing
Aug 24 22:12:17.062 notice [OSVR Server]: Added device: com_osvr_VideoBasedHMDTracker/TrackedCamera0_0
vrpn: Connection request received from 127.0.0.1: 127.0.0.1 51847
Aug 24 22:12:18.068 info [OSVR Server]: Sent path tree to clients.
Aug 24 22:12:18.068 info [OSVR]: Z:\j\workspace\OSVR-Core-Build-Win\BIT\64\TRACING\OFF\VS\12\host\windows\src\osvr\Client\TrackerRemoteFactory.cpp:93: Constructed a TrackerHandler for com_osvr_Multiserver/OSVRHackerDevKitPrediction0@localhost:3883 sensor 0
Aug 24 22:12:18.071 info [OSVR Server]: Performing hardware auto-detection.
Aug 24 22:12:18.068 info [OSVR]: Z:\j\workspace\OSVR-Core-Build-Win\BIT\64\TRACING\OFF\VS\12\host\windows\src\osvr\Client\TrackerRemoteFactory.cpp:93: Constructed a TrackerHandler for com_osvr_VideoBasedHMDTracker/TrackedCamera0_0@localhost:3883 sensor 0
Aug 24 22:12:18.068 info [OSVR: org.osvr.analysisplugin]: Successfully produced handler for /com_osvr_Multiserver/OSVRHackerDevKitPrediction0/semantic/hmd
Aug 24 22:12:18.068 info [OSVR: org.osvr.analysisplugin]: Successfully produced handler for /com_osvr_VideoBasedHMDTracker/TrackedCamera0_0/semantic/hmd/front
Aug 24 22:12:18.068 info [OSVR: org.osvr.analysisplugin]: Connected 2 of 2 unconnected paths successfully
Aug 24 22:12:18.142 info [OSVR Server]: Sent path tree to clients.
vrpn: Connection request received from 127.0.0.1: 127.0.0.1 51846
Aug 24 22:12:20.271 info [OSVR Server]: Performing hardware auto-detection.
Aug 24 22:12:20.342 info [OSVR Server]: Sent path tree to clients.
vrpn: Connection request received from 127.0.0.1: 127.0.0.1 51850
Aug 24 22:12:29.098 info [OSVR Server]: Performing hardware auto-detection.
Aug 24 22:12:29.168 info [OSVR Server]: Sent path tree to clients.
vrpn: Connection request received from 127.0.0.1: 127.0.0.1 51852
Video-IMU fusion: Hold still, measuring camera pose.

NOTE: For best results, during tracker/server startup, hold your head/HMD still closer than 0.3 meters from the tracking camera for a few seconds, then rotate slowly in all directions.

Which gets rotational tracking working and shows that my hdk gyro is not dead!. :-)

And netstat.txt

godbyk commented 8 years ago
Proto  Local Address          Foreign Address        State
TCP    127.0.0.1:3883         DESKTOP-JV35IAK:0      LISTENING
UDP    127.0.0.1:3883         *:*

shows OSVR is listening on the usual ports.

These messages:

Video-based tracker: Camera turned on!
Opening camera 0
Aug 24 22:12:18.068 info [OSVR: org.osvr.analysisplugin]: Successfully produced handler for /com_osvr_Multiserver/OSVRHackerDevKitPrediction0/semantic/hmd
Aug 24 22:12:18.068 info [OSVR: org.osvr.analysisplugin]: Successfully produced handler for /com_osvr_VideoBasedHMDTracker/TrackedCamera0_0/semantic/hmd/front
Aug 24 22:12:18.068 info [OSVR: org.osvr.analysisplugin]: Connected 2 of 2 unconnected paths successfully
Video-IMU fusion: Hold still, measuring camera pose.
NOTE: For best results, during tracker/server startup, hold your head/HMD still closer than 0.3 meters from the tracking camera for a few seconds, then rotate slowly in all directions.

make it sound like the camera-based tracker is starting up properly. Does the light on the camera turn green now? If you hold the HDK up to the camera for a minute, it should establish a position and start tracking the position of the HDK using the camera.

Balderick commented 8 years ago

The camera light comes on when starting server. The camera detects hmd but can not establish position.
Looks good there. Hold it there ...

godbyk commented 8 years ago

Getting closer then. When it says that, hold it still for a minute. If it doesn't work, move the HMD around slightly to try to get it to lock on better. It can be a bit finicky sometimes.

It should establish the position and tell you what it is once it's locked on.

Balderick commented 8 years ago

It did used to work on 1.3 hdk !. Just seems to be getting intermittent info. The axis on tracker viewer display moves smooth and as expected considering positional tracking is not working.

Aug 24 23:15:31.057 info [OSVR Server]: Sent path tree to clients.
vrpn: Connection request received from 127.0.0.1: 127.0.0.1 52166
Video-IMU fusion: Hold still, measuring camera pose...

NOTE: For best results, during tracker/server startup, hold your head/HMD still closer than 0.3 meters from the tracking camera for a few seconds, then rotate slowly in all directions.

That distance looks good, hold it right there.
godbyk commented 8 years ago

Do the axes in Tracker Viewer change position or do they stay at the origin and just rotate?

The server should continue to print some more info after hold it right there. It'll show you the (x, y, z) coordinates of the HMD.

Balderick commented 8 years ago

It should. What i see is the hmd spinning on the z axis (green) at origin with blue and red offset about 45* clockwise to true and the positions are not found even after persevering for five mins.

Not sure what https://www.reddit.com/r/OSVR/comments/4ysv1v/windows_10_anniversary_update_fix/ fixes regarding camera and 1607 win 10. Worth applying that fix?

godbyk commented 8 years ago

I haven't tested it yet, but you're welcome to give ti a shot. Can't really hurt anything and it's easy to undo (just set it to 1 instead of 0).

Balderick commented 8 years ago

It works for me!.

Video-IMU fusion: Hold still, measuring camera pose..........

Video-IMU fusion: Camera pose acquired, entering normal run mode!
Camera is located in the room at roughly  0.0469146 -0.0189539   0.421734

Positional and rotational tracking working in tracker viewer now. :-)

Will go back to trying videotarackingcalibration utility and then steamvr

godbyk commented 8 years ago

Awesome!

If the tracking it working well enough as is, you don't need to run the calibration utility. I'd just give SteamVR a shot and see how it fares.

Balderick commented 8 years ago

Okay, i started osvr server using extended landscape json. Got green lights for camera and hmd so ran room setup in steamvr. vrserver.txt

I know steamvr needs this to get the info from hdk that it needs.

direct mode testing ... Steamvr crashes with hmm that should not have happened when using steamvr to switch to direct mode. vrserver2.txt

Balderick commented 8 years ago

Have been using this video tutorial for guidance/sanity check.

https://www.youtube.com/watch?v=TCA0CBXmS2Q

Which explains the 308 error being associated with vr server not dieing when quiting steamvr and/or steam.

Tried testing Elite Dangerous but could not find the launch in vr mode option.

My hdk 1.4 is behaving the best (most predictable) it ever has for sure. Windows 1607, nvidia 372.54, ver 7 camera firmware, 1.96 oled hdk firmware. Running latest runtime and steamvr-osvr drivers.

It would appear all the issues have been resolved and/or the recommended workarounds are at least applying/working. Happy days. :-)

godbyk commented 8 years ago

Excellent! I'm glad to hear it's (finally) working for you.

Balderick commented 8 years ago

Big thank you to you.

And apologies to you and everybody else.

Balderick commented 8 years ago

Been having a ball testing and just noticed there is 258 steamvr drivers and 1328-264 runtime to check out. Github seems to be out of sync, somehow.

So have had elite dangerous launch in both direct and extended modes. Still working on getting input for game and trying to use steam controller. So with 255 steamvr drivers and 1320-263 runtime here is directmode.txt and i can see directmode and

vrerror

if i select YES steam or steamvr crash and or hmd blackscrteens or display gets switched off. OSVR Control reports display switched off if left running and connected when running steamvr and osvr server.

If CANCEL is selected or if that warning is simply ignored elite dangerous launches as expected.

In extended mode steamvr compositor crashes but game still launches if all steamvr errors are ignored.
extndmode.txt Still get the steamvr disabled warning too.

In general the hdk is a behaving astronomicaly better. Seems far more solid and predictable. Tracking poses are being detected when hmd is 1.5 meters away from camera!. Tracking is spot on and slick with rotational vector enabled for elite dangerous using directmesh json.

Both osvr and steamvr seem to removing their install root directories at uninstall time which is a great timesaver.

Steamvr power saving for hmd is working as well as tutorial and room setup and other steamvr stuff but still not got dashboard working yet.

With each steamvr driver and runtime update my hdk is getting slicker and slicker. Awesome stuff guys. Thank you.

That vr server process issue is going to get reported to steamvr devs today.

Balderick commented 7 years ago

Just a quick update to confirm what has made my hdk into a vr content munching monster. https://www.reddit.com/r/OSVR/comments/4zrha0/osvr_screen_black/