SteamVR Developer Hardware

SteamVR Developer Hardware

Balderick 2017년 9월 28일 오전 7시 07분
How To Set Vive Tracker As Head Tracker?
What The Plan Is.
Set Vive Tracker as head tracker like what is being shown in https://www.roadtovr.com/intel-steamvr-game-streaming-to-smartphone-portal-ridge-vrdc/
and https://uploadvr.com/vive-tracker-google-daydream-room-scale/ so that any headset can be steamvr tracked. i.e. OSVR HDK 1.4 headset or nvidia shield tablet mounted in a durovis 7 headmount.

It would be great if head tracking in non vr apps without a vr headset could be achieved as well.

Possible Paths To Resolving
  1. Add display and optic information for headset to vive tracker device config file. ref:
  2. Get a working project in Unity or UE4 where steamvr plugin can be used to assign steamvr camera rig to replace original scene camera and then get that working in steamvr directly

What The Problem Is
The vive tracker seems locked to generic tracker device class with its firmware and device config file appearing to restrict it to be used as tracker and/or controller only.

http://steamcommunity.com/sharedfiles/filedetails/?id=1150649533


I would like to use a usb cable so that tracking data is sent over usb and not wirelessly but the Vive Tracker does not behave like other steamvr tracked devices regarding this. I used triad_openvr python wrapper to prove that tracker data is being sent and received through usb when connected to pc when no watchman dongle was available for vive tracker to use.

Openvr is using vive tracker as a tracker when connected by usb through usb cable its just that steamvr is not using the tracking data because no hmd is connected ....
C:\Users\Tron\triad_openvr-master>python tracker_test.py Found 2 Tracking References tracking_reference_1 (LHB-8583D660, Mode B, HTC V2-XC) tracking_reference_2 (LHB-1C765E64, Mode C, HTC V2-XC) Found 0 Controllers Found 1 Tracker tracker_1 (LHR-0DC2AC5D, ) Found 0 HMDs -0.8043 -0.6205 -2.9178 -0.7828 24.6783 -88.4817
... which means the tracker is not detceted or usable in steamvr compositor, steamvr room setup or any steam vr apps including steamvr home.

All this means steamvr keeps crashing when trying to take path 2 and unity never detects tracker reliably.

My thinking is i want/need to assign vive tracker as hmd in engine scene before i try to add optic and display info for headset as it saves mucking about with multiple drivers but this is my first time using unity and am struggling to work it out.

Have found this tutorial useful for setting up unity and setting trackers for tracking https://www.youtube.com/watch?v=k8YLYHm4CCY but can't get my head around setting tracker for tracking the non-vive hmd without a vive hmd being connected bit.





How to?
Balderick 님이 마지막으로 수정; 2017년 9월 28일 오후 11시 01분
< >
6개 댓글 중 1-6개 표시
matzman 2017년 9월 30일 오전 7시 23분 
According to my experience with developing OpenVR drivers you need to set activateMultipleDrivers to true in the SteamVR config file, otherwise all devices from drivers that don't report a connected HMD are ignored. Without these setting SteamVR only uses the devices from the first driver that reports a connected HMD and ignores all other drivers.
Balderick 2017년 9월 30일 오전 10시 25분 
I thought i had steamvr.settings using
requireHMD : false
as well as
enableMultipleDrivers : true
but found that after checking steamvr.vrsettings with just a Vive Tracker connected by usb after making sure there are no available watchman dongles available steamvr is starting up for me like what is illustrated above in op the steamvr.vrsettings looks like
{ "driver_lighthouse" : { "enableBluetooth" : true }, "steamvr" : { "basestationPowerManagement" : true, "mirrorViewGeometry" : "0 0 1080 600", "showMirrorView" : true }, "userinterface" : { "MinimizeToTray" : true } }

I thought i was using something more like
{ "power" : { "autoLaunchSteamVROnButtonPress" : false, "powerOffOnExit" : false }, "steamvr" : { "requireHmd" : false; "activateMultipleDrivers" : true, "forcedDriver" : "lighthouse", "allowAsyncReprojection" : false, "allowInterleavedReprojection" : false, "allowSupersampleFiltering" : false, "enableHomeApp" : false, "mirrorViewGeometry" : "1507 592 2331 1310", "showMirrorView" : true } }
and am amzesd steamvr is not needing
requireHmd : false
to give any green lights at all.

Very odd.

The first steamvr tracked device that is configured for a hmd through its openvr driver and device config (THE json) is ALLWAYS assigned as openvr device 0

This has nothing to do with multipledrivers as i am using purely lighthouse htc drivers to try and work out what is needed to get openvr to assign Vive Tracker as tracker for HMD. Enabling multiple drivers allows multiple drivers be loaded from the drivers found in steamvr driver dir which are alphabetically checked each time steamvr is started up for connected devices.

My thinking is once vive tracker can be assigned to openvr device 0 i can then add display and optic information to the Vive Trackers config file

Once i have display and optic info for the headset i want to steamvr track with vive tracker means i do not load anything but lighthouse htc drivers.

This is what the device config looks like for vive tracker
{ "acc_bias": [ 0.09097, 0.1188, -0.3113 ], "acc_scale": [ 1.001, 0.9989, 0.9929 ], "device_class": "generic_tracker", "device_pid": 8226, "device_serial_number": "LHR-0DC2AC5D", "device_vid": 10462, "gyro_bias": [ -0.0239, 0.01872, -0.01441 ], "gyro_scale": [ 1.0, 1.0, 1.0 ], "htcComposeTime": "2017-07-01 10:20:00.359000", "lighthouse_config": { "channelMap": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21 ], "modelNormals": [ [ 0.6824991703033447, 0.6131781339645386, 0.3977530896663666 ], [ -0.8931733965873718, 0.44771620631217957, -0.04232601821422577 ], [ 0.7094064354896545, -0.4095762372016907, 0.5735763311386108 ], [ -0.4586949348449707, -0.8359968662261963, 0.301177978515625 ], [ -0.81607586145401, 0.3477179706096649, -0.46164095401763916 ], [ -0.5825632810592651, 0.6942723393440247, -0.42261821031570435 ], [ -0.784885823726654, -0.4531538784503937, -0.42261791229248047 ], [ 0.2071249932050705, 0.030079999938607216, 0.9778519868850708 ], [ -0.3099759519100189, -0.8516508340835571, -0.42261791229248047 ], [ -0.827340304851532, 0.435027152299881, 0.35533010959625244 ], [ 0, 0.9063078761100769, -0.42261794209480286 ], [ 0, -0.8386707305908203, 0.5446388125419617 ], [ 0.827340304851532, 0.435027152299881, 0.35533010959625244 ], [ 0.3099750280380249, -0.851651132106781, -0.4226180613040924 ], [ -0.2071249932050705, 0.030079999938607216, 0.9778519868850708 ], [ 0.7848854660987854, -0.4531542658805847, -0.42261824011802673 ], [ 0.5825632810592651, 0.6942723393440247, -0.42261821031570435 ], [ 0.81607586145401, 0.3477179706096649, -0.46164095401763916 ], [ 0.4586949348449707, -0.8359968662261963, 0.301177978515625 ], [ -0.7094060182571411, -0.4095759987831116, 0.5735769867897034 ], [ 0.8931733965873718, 0.44771620631217957, -0.04232601821422577 ], [ -0.6824991703033447, 0.6131781339645386, 0.3977530896663666 ] ], "modelPoints": [ [ -0.026821423321962357, 0.07028847932815552, 0.08680203557014465 ], [ -0.04050913453102112, 0.06309086829423904, 0.0871049165725708 ], [ -0.029162071645259857, 0.05623094365000725, 0.08832064270973206 ], [ -0.0415254570543766, 0.05098016560077667, 0.08829903602600098 ], [ -0.039086222648620605, 0.04682924225926399, 0.06299526989459991 ], [ -0.026199329644441605, 0.068057119846344, 0.059343982487916946 ], [ -0.032444290816783905, 0.02084808051586151, 0.05848129838705063 ], [ -0.025123873725533485, 0.025428354740142822, 0.06863056868314743 ], [ -0.008248647674918175, -0.0031906014773994684, 0.07440567761659622 ], [ -0.01265814621001482, 1.9414195776334964e-05, 0.08603276312351227 ], [ 0.00021496553381439298, 0.07780130207538605, 0.06064086779952049 ], [ -0.00019220412650611252, -0.006843763403594494, 0.08797936141490936 ], [ 0.012662628665566444, 6.95710041327402e-05, 0.08593574166297913 ], [ 0.008142645470798016, -0.0030796455685049295, 0.0743924081325531 ], [ 0.02524062991142273, 0.025503885000944138, 0.06854470074176788 ], [ 0.03228703513741493, 0.02084723673760891, 0.058551061898469925 ], [ 0.02619554102420807, 0.06806828826665878, 0.05930515006184578 ], [ 0.03914174064993858, 0.046869173645973206, 0.063093401491642 ], [ 0.0416303426027298, 0.05112307518720627, 0.08822684735059738 ], [ 0.029272617772221565, 0.056411441415548325, 0.08827539533376694 ], [ 0.04027855023741722, 0.06324502825737, 0.0871371328830719 ], [ 0.026893367990851402, 0.07029754668474197, 0.08672315627336502 ] ] }, "manufacturer": "HTC", "mb_serial_number": "42VK176903960", "model_name": "Vive Tracker PVT", "render_model": "vr_tracker_vive_1_0", "revision": 1, "tracked_controller_role": "", "trackref_from_head": [ -1, 0, 0, 0, 0, 0.039768997579813004, 0.051509737968444824 ], "trackref_from_imu": [ 0, 0, 0, 1, 0.008990850299596786, 0.01930335909128189, 0.06395523250102997 ], "type": "Lighthouse_HMD" }

Balderick 님이 마지막으로 수정; 2017년 9월 30일 오전 10시 39분
Balderick 2017년 9월 30일 오전 10시 39분 
whereas the vive controller allready has display and optic info for the display and optics found in the vive headset in its device config. It looks like
{ "acc_bias": [ -0.0544, 0.1649, -0.3866 ], "acc_scale": [ 1, 0.9986, 0.9933 ], "device": { "eye_target_height_in_pixels": 1200, "eye_target_width_in_pixels": 1080, "first_eye": "eEYE_LEFT", "last_eye": "eEYE_RIGHT", "num_windows": 1, "persistence": 0.0111109996214509, "physical_aspect_x_over_y": 0.8999999761581421 }, "device_class": "controller", "device_pid": 8210, "device_serial_number": "LHR-FFFBF944", "device_vid": 10462, "display_edid": [ "", "" ], "display_gc": { "black_clamp": 0.0117647061124444 }, "gyro_bias": [ -0.01997, 0.01071, 0.03069 ], "gyro_scale": [ 1.0, 1.0, 1.0 ], "htcComposeTime": "2016-01-07 08:23:10.723000", "lens_separation": 0.06230000033974648, "lighthouse_config": { "channelMap": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23 ], "modelCad": "", "modelNormals": [ [ -0.5913480520248413, 0.3187170326709747, -0.7407610416412354 ], [ -0.7573763728141785, 0.4692562520503998, -0.4540702104568481 ], [ -0.777337908744812, 0.5316529273986816, -0.3362899720668793 ], [ -0.4884379506111145, 0.8437519073486328, 0.22251096367836 ], [ 0.7505170106887817, 0.5302649736404419, -0.3943899869918823 ], [ -0.7505170106887817, 0.5302649736404419, -0.3943899869918823 ], [ 0.0, 0.9245688915252686, 0.3810149431228638 ], [ 0.4884379506111145, 0.8437519073486328, 0.22251096367836 ], [ 0.777337908744812, 0.5316529273986816, -0.3362899720668793 ], [ 0.7573763728141785, 0.4692562520503998, -0.4540702104568481 ], [ 0.5913480520248413, 0.3187170326709747, -0.7407610416412354 ], [ -0.5849689841270447, -0.8044440150260925, 0.1033499985933304 ], [ 0.01920900121331215, -0.6634160876274109, -0.7480040788650513 ], [ -0.6286242008209229, -0.6735491752624512, 0.3887970745563507 ], [ 0.09504295885562897, 0.4070657789707184, 0.9084405899047852 ], [ -0.4120441973209381, -0.5367212295532227, 0.7363083362579346 ], [ 0.6496122479438782, -0.5894832611083984, -0.4801181852817535 ], [ 0.0, -0.4897621273994446, 0.871856153011322 ], [ -0.6496122479438782, -0.5894832611083984, -0.4801181852817535 ], [ 0.4120441973209381, -0.5367212295532227, 0.7363083362579346 ], [ -0.09504295885562897, 0.4070657789707184, 0.9084405899047852 ], [ 0.6286242008209229, -0.6735491752624512, 0.3887970745563507 ], [ -0.01920900121331215, -0.6634160876274109, -0.7480040788650513 ], [ 0.5849689841270447, -0.8044440150260925, 0.1033499985933304 ] ], "modelPoints": [ [ -0.03385426849126816, 0.0714038535952568, -0.0219049546867609 ], [ -0.036265067756176, 0.0896918997168541, -0.008113069459795952 ], [ -0.05280913040041924, 0.07578127831220627, 0.007988330908119678 ], [ -0.02735096774995327, 0.1027701571583748, 0.03217821195721626 ], [ -0.0293818786740303, 0.09456002712249756, 0.0007963099051266909 ], [ 0.02942962571978569, 0.09476283192634583, 0.0007320553413592279 ], [ 0.0001638765970710665, 0.1108926013112068, 0.0315050296485424 ], [ 0.02719386108219624, 0.1026200652122498, 0.03227578103542328 ], [ 0.05271610245108604, 0.07580924779176712, 0.007953272201120853 ], [ 0.03633885458111763, 0.08948054909706116, -0.008083618246018887 ], [ 0.03378156572580338, 0.07125376909971237, -0.02200034819543362 ], [ -0.03123190999031067, 0.06519797444343567, -0.01644414663314819 ], [ -0.04549480229616165, 0.0646711215376854, -0.003090665210038424 ], [ -0.05181857571005821, 0.06742343306541443, 0.01533894892781973 ], [ -0.04591791704297066, 0.07718858867883682, 0.01970642618834972 ], [ -0.03058934770524502, 0.0931691974401474, 0.03074165806174278 ], [ -0.01512444578111172, 0.08398914337158203, 0.02251707203686237 ], [ 8.518285903846845e-05, 0.05559547990560532, -0.01404127478599548 ], [ 0.01533372327685356, 0.08426900953054428, 0.02216145768761635 ], [ 0.03081155009567738, 0.09305135905742645, 0.03049836494028568 ], [ 0.04578523337841034, 0.07732517272233963, 0.0195477306842804 ], [ 0.05190564692020416, 0.06748922169208527, 0.01540731079876423 ], [ 0.045441884547472, 0.06458421796560287, -0.002949176821857691 ], [ 0.03100864961743355, 0.0650290846824646, -0.01665192469954491 ] ] }, "manufacturer": "HTC", "mb_serial_number": "42FM55CN07828", "model_number": "Vive Controller DVT", "render_model": "vr_controller_vive_1_5", "revision": 1, "tracking_to_eye_transform": [ { "distortion": { "center_x": 0.08432229941705874, "center_y": -0.002652904878356434, "coeffs": [ -0.2081929086044266, -0.05266900253382837, -0.01751078914688062, 0.0, 0.0, 0.0, 0.0, 0.0 ], "type": "DISTORT_DPOLY3" }, "distortion_blue": { "center_x": 0.08432229941705874, "center_y": -0.002652904878356434, "coeffs": [ -0.2462323745247373, 0.003810820635972017, -0.04749137915282755, 0.0, 0.0, 0.0, 0.0, 0.0 ], "type": "DISTORT_DPOLY3" }, "distortion_red": { "center_x": 0.08432229941705874, "center_y": -0.002652904878356434, "coeffs": [ -0.1814054580820877, -0.08677258082173751, -0.001590786886175001, 0.0, 0.0, 0.0, 0.0, 0.0 ], "type": "DISTORT_DPOLY3" }, "extrinsics": [ [ 1.0, 0.0, 0.0, 0.03109734132885933 ], [ 0.0, 1.0, 0.0, -2.235174179077148e-08 ], [ 0.0, 0.0, 1.0, -7.450580596923828e-09 ] ], "grow_for_undistort": 0.8999999761581421, "intrinsics": [ [ 1.200349688529968, 0.0, -0.08432229608297348 ], [ 0.0, 1.079784393310547, -0.002387614455074072 ], [ 0.0, 0.0, -1.0 ] ], "undistort_r2_cutoff": 1.216166496276856 }, { "distortion": { "center_x": -0.08432229941705874, "center_y": -0.002652904878356434, "coeffs": [ -0.2081929086044266, -0.05266900253382837, -0.01751078914688062, 0.0, 0.0, 0.0, 0.0, 0.0 ], "type": "DISTORT_DPOLY3" }, "distortion_blue": { "center_x": -0.08432229941705874, "center_y": -0.002652904878356434, "coeffs": [ -0.2462323745247373, 0.003810820635972017, -0.04749137915282755, 0.0, 0.0, 0.0, 0.0, 0.0 ], "type": "DISTORT_DPOLY3" }, "distortion_red": { "center_x": -0.08432229941705874, "center_y": -0.002652904878356434, "coeffs": [ -0.1806043318937158, -0.08896547624404053, -0.0003023231235836492, 0.0, 0.0, 0.0, 0.0, 0.0 ], "type": "DISTORT_DPOLY3" }, "extrinsics": [ [ 1.0, 0.0, 0.0, -0.03109734132885933 ], [ 0.0, 1.0, 0.0, -2.235174179077148e-08 ], [ 0.0, 0.0, 1.0, -7.450580596923828e-09 ] ], "grow_for_undistort": 0.8999999761581421, "intrinsics": [ [ 1.200349688529968, 0.0, 0.08432229608297348 ], [ 0.0, 1.079784393310547, -0.002387614455074072 ], [ 0.0, 0.0, -1.0 ] ], "undistort_r2_cutoff": 1.216166496276856 } ], "trackref_from_head": [ 0.0, 0.7253744006156921, -0.6883545517921448, 0.0, 0.0, 0.07100000232458115, -0.03099999949336052 ], "trackref_from_imu": [ 0.0, 0.0, 0.0, 1.0, -0.006630099844187498, -0.05046970024704933, -0.02362501993775368 ], "type": "Lighthouse_HMD" }
Balderick 님이 마지막으로 수정; 2017년 9월 30일 오전 10시 41분
Balderick 2017년 9월 30일 오전 10시 47분 
Steamvr report listed steamvr tracked devices as
<Devices> Device 2 - LHR-0DC2AC5D Tracker HTC Firmware: 1494487385 htcvrsoftware@firmware-win32 2017-05-11 FPGA 1.6/0/0 Hardware Revision: product 132 rev 1.0.4 lot 2000/0/0 0 Hardware Id: 0x84010004 Watchman Firmware: 1494487385 / 0 (2017-05-11) Watchman FPGA: 51 / 262 (0.51) (Update necessary) VRC Version: 1494487384 / 1494487384 (2017-05-11) Attached Device ID: Supported Buttons: 12884901895 Axis 0 Type: 1 Axis 1 Type: 3 Axis 2 Type: 0 Axis 3 Type: 0 Axis 3 Type: 0 Connected Dongle: Version: Unknown Version Device 3 - LHB-8583D660 Base HTC V2-XC HTC Firmware: 244 Hardware Revision: 0x09000006 Hardware Id: 0x09000006 Firmware Version: 244 / 244 Bluetooth Firmware: No data available. FOV Left: 60 FOV Right: 60 FOV Top: 60 FOV Bottom: 60 Range Minimum (m): 1 Range Maximum (m): 5 Device 4 - LHB-1C765E64 Base HTC V2-XC HTC Firmware: 244 Hardware Revision: 0x09000006 Hardware Id: 0x09000006 Firmware Version: 244 / 244 Bluetooth Firmware: No data available. FOV Left: 60 FOV Right: 60 FOV Top: 60 FOV Bottom: 60 Range Minimum (m): 1 Range Maximum (m): 5

How to set vive tracker as device 0 for head tracker?
Balderick 2017년 9월 30일 오후 9시 50분 
i found requireHmd is set to false in C:\Program Files (x86)\Steam\steamapps\common\SteamVR\resources\settings\default.vrsettings ...

:steamfacepalm:

I just enabled multipledrivers there too even though for now i am just trying to set vive tracker as tracker for head tracker (but without headset) similar too what is decribed at https://www.youtube.com/watch?v=k8YLYHm4CCY

though this still does not allow vive tracker to be set as openvr device 0


I can not find any info on setting the vive controller as hmd, even though its device config clearly shows that it can. Seems to be configured to track vive headset or at least the same display and optics as used in vive headset.
Balderick 님이 마지막으로 수정; 2017년 9월 30일 오후 10시 03분
SUDO 2021년 3월 24일 오전 6시 33분 
Did you manage to figure this out?
< >
6개 댓글 중 1-6개 표시
페이지당 표시 개수: 1530 50