mirror of
https://gitlab.com/lvra/lvra.gitlab.io.git
synced 2024-12-25 15:20:26 +01:00
feat: update wmr-steamvr page for using with tracker instructions; remove unnecessary info
This commit is contained in:
parent
433120409b
commit
6f5d03f12d
1 changed files with 35 additions and 19 deletions
|
@ -7,9 +7,9 @@ weight: 9000
|
||||||
|
|
||||||
This is a guide on how to use WMR as a display source and lighthouse as tracking system for WMR on Linux to use with SteamVR.
|
This is a guide on how to use WMR as a display source and lighthouse as tracking system for WMR on Linux to use with SteamVR.
|
||||||
|
|
||||||
It will not utilise space calibration techniques as at the moment of writing, Basalt on WMR is drifting, and will crash the second it looses tracking (which it might do frequently if left unattended).
|
It will not utilise space calibration between basalt tracking and lighthouse systems as at the moment of writing, Basalt on WMR is drifting, and will crash at any point with poor tracking quality (which it might do frequently if left unattended).
|
||||||
|
|
||||||
Instead, it will override head/camera in steamvr to be used from tracker.
|
Instead, in this guide we will override head/camera in steamvr so that tracker will be used as one.
|
||||||
|
|
||||||
## Why?
|
## Why?
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@ Otherwise, it's just fun to see how far you can stretch definition of *jank vr s
|
||||||
1. Working Monado with WMR (this guide is aimed towards using [Envision](/docs/fossvr/envision/) for that)
|
1. Working Monado with WMR (this guide is aimed towards using [Envision](/docs/fossvr/envision/) for that)
|
||||||
2. Working SteamVR lighthouse system
|
2. Working SteamVR lighthouse system
|
||||||
- For head tracker, you can use any lighthouse equipment you have, it doesn't matter, but preferably it would be a small tracker, like a tundra one, so you can use it for more comfortable experience
|
- For head tracker, you can use any lighthouse equipment you have, it doesn't matter, but preferably it would be a small tracker, like a tundra one, so you can use it for more comfortable experience
|
||||||
- You need to connect your tracker at leas once into SteamVR to be recognized in next steps for serial number
|
- You need to connect your tracker at least once into SteamVR to be recognized in next steps for serial number
|
||||||
3. Getting serial number of your desired head tracker
|
3. Getting serial number of your desired head tracker
|
||||||
- You can get it from `~/.steam/steam/config/lighthouse/lighthousedb.json`. Inside it there would be `known_objects` section which contains all lighthouse devices. Find one that looks like correct device and copy it's `serialNumber`
|
- You can get it from `~/.steam/steam/config/lighthouse/lighthousedb.json`. Inside it there would be `known_objects` section which contains all lighthouse devices. Find one that looks like correct device and copy it's `serialNumber`
|
||||||
|
|
||||||
|
@ -37,18 +37,23 @@ It's preferrable to create a separate WMR profile in Envision with the following
|
||||||
|
|
||||||
## Monado
|
## Monado
|
||||||
|
|
||||||
You would need to make sure that WMR headset is the only one being initialised in Monado. In my case it wasn't, because i used my Vive as dongles for my knuckles, so i had to comment out vive driver from Monado completely (there's probably a better way to do this rather than editing the Monado source directly, if you the reader found one, make sure to contribute it here).
|
You would need to make sure that WMR headset is the only one being initialised in Monado. In my case it wasn't, because i used my Vive as dongles for my knuckles, so i had to comment out vive driver from Monado completely.
|
||||||
|
|
||||||
|
If using envision, unset Basalt toggle in profile settings to prevent it from being built.
|
||||||
|
|
||||||
|
**If you're using steamvr dongles for knuckles and tracker, you don't need to do next steps bellow for monado. Also steps might be inaccurate as monado changes code around lighthouse builders.**
|
||||||
|
|
||||||
|
There's probably a better way to do this rather than editing the Monado source directly (if you as the reader know a better way, make sure to contribute it here).
|
||||||
|
|
||||||
For that (assuming default locations, adjust if necessary), navigate to your Monado source directory your Envision profile uses, the default would be: `~/.local/share/envision/monado`. Open CMakeLists.txt and:
|
For that (assuming default locations, adjust if necessary), navigate to your Monado source directory your Envision profile uses, the default would be: `~/.local/share/envision/monado`. Open CMakeLists.txt and:
|
||||||
|
|
||||||
1. Comment line starting with `option_with_deps(XRT_HAVE_BASALT...` (it will look like `#option_with_deps(XRT_HAVE_BASALT...` )
|
Comment (with `#`) 3 lines in final list of compiled drivers:
|
||||||
2. Comment (with `#`) 3 lines in final list of compiled drivers:
|
|
||||||
1. `"SURVIVE"`
|
|
||||||
2. `"VIVE"`
|
|
||||||
3. `"STEAMVR_LIGHTHOUSE"`
|
|
||||||
3. `git add . && git commit -m "wmr_lh comments"`
|
|
||||||
|
|
||||||
And rebuild Monado, either manually or by using Envision.
|
1. `"SURVIVE"`
|
||||||
|
2. `"VIVE"`
|
||||||
|
3. `"STEAMVR_LIGHTHOUSE"`
|
||||||
|
|
||||||
|
And rebuild Monado, either manually or by using Envision with clean build.
|
||||||
|
|
||||||
## SteamVR
|
## SteamVR
|
||||||
|
|
||||||
|
@ -60,18 +65,29 @@ Now we need to override the head to be assigned to our tracker
|
||||||
|
|
||||||
If you're using Vive as dongles for other controllers as I did, SteamVR will certainly try to load it first instead of Monado. This might also happen even when using separate dongles, so I would follow these next steps regardless.
|
If you're using Vive as dongles for other controllers as I did, SteamVR will certainly try to load it first instead of Monado. This might also happen even when using separate dongles, so I would follow these next steps regardless.
|
||||||
|
|
||||||
Open `~/.steam/steam/config/steamvr.vrsettings` and add this:
|
Open `~/.steam/steam/config/steamvr.vrsettings` and add this
|
||||||
|
|
||||||
```
|
For vive tracker:
|
||||||
|
|
||||||
|
```json
|
||||||
"TrackingOverrides" : {
|
"TrackingOverrides" : {
|
||||||
"/devices/htc/vive_trackerLHR-SERIAL" : "/user/head"
|
"/devices/htc/vive_trackerLHR-SERIAL" : "/user/head"
|
||||||
},
|
},
|
||||||
"steamvr" : {
|
"steamvr" : {
|
||||||
"activateMultipleDrivers" : true,
|
"activateMultipleDrivers" : true,
|
||||||
"forcedDriver" : "monado"
|
"forcedDriver" : "monado"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
For tundra tracker:
|
||||||
|
|
||||||
|
```json
|
||||||
|
"TrackingOverrides" : {
|
||||||
|
"/devices/lighthouse/LHR-SERIAL" : "/user/head"
|
||||||
},
|
},
|
||||||
"trackers" : {
|
"steamvr" : {
|
||||||
"/devices/htc/vive_trackerLHR-SERIAL" : "TrackerRole_Camera"
|
"activateMultipleDrivers" : true,
|
||||||
|
"forcedDriver" : "monado"
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -81,11 +97,13 @@ In which you replace `LHR-SERIAL` with your own serial number that you got from
|
||||||
|
|
||||||
Be careful with commas in JSON: trailing commas are not allowed but commas are required between entries. If your JSON is invalid, SteamVR will reset it. It's also a good idea to keep backups.
|
Be careful with commas in JSON: trailing commas are not allowed but commas are required between entries. If your JSON is invalid, SteamVR will reset it. It's also a good idea to keep backups.
|
||||||
|
|
||||||
|
In SteamVR commandline options, set `STEAMVR_EMULATE_INDEX_CONTROLLER=1 %command%` to emulate index controllers instead of empty monado KHR controllers.
|
||||||
|
|
||||||
## Post-process
|
## Post-process
|
||||||
|
|
||||||
Launch SteamVR as usual, and go along with room setup while both headset and tracker are on the ground and visible by base stations. This should recenter them and place onto ground as usual.
|
Launch SteamVR as usual, and go along with room setup while both headset and tracker are on the ground and visible by base stations. This should recenter them and place onto ground as usual.
|
||||||
|
|
||||||
It might be possible also that games will try to use default monado controller for games, which might also break games in some ways sometimes, so be wary that this guide *might* not work for some games. Any additional help to resolve that is appreciated (I did not try to emulate Index knuckles from SteamVR Monado driver yet).
|
Unfortunately the only way to calibrate tracker to hmd in this case is to use [openvr space calibrator](https://github.com/galister/OpenVR-SpaceCalibrator), but there is no documentation on how to do it for 3dof headset being used as display with tracker attached as camera. But you can try editing profile manually, even though it's going to be fairly complicated to calibrate both translation and rotation by yourself. Feel free to add any points on how to do it better or possibly allow this to be done automatically from spacecal app.
|
||||||
|
|
||||||
Otherwise, it should work now and track the headset using the position data from the tracker.
|
Otherwise, it should work now and track the headset using the position data from the tracker.
|
||||||
|
|
||||||
|
@ -93,11 +111,9 @@ Otherwise, it should work now and track the headset using the position data from
|
||||||
|
|
||||||
At the time of writing this I tested it only with a Vive wand as tracker (see [Turning Vive Wands into Vive Trackers for FULL BODY VR - YouTube](https://www.youtube.com/watch?v=JZrDIvls1ms)), unfortunately requires Windows for flashing devices but it's most likely that you can do it through a virtual machine using USB passthrough (KVM/QEMU or libvirt virtual machines are preferrable for this, VirtualBox can cause irreparable issues when flashing devices via USB passthrough).
|
At the time of writing this I tested it only with a Vive wand as tracker (see [Turning Vive Wands into Vive Trackers for FULL BODY VR - YouTube](https://www.youtube.com/watch?v=JZrDIvls1ms)), unfortunately requires Windows for flashing devices but it's most likely that you can do it through a virtual machine using USB passthrough (KVM/QEMU or libvirt virtual machines are preferrable for this, VirtualBox can cause irreparable issues when flashing devices via USB passthrough).
|
||||||
|
|
||||||
While it didn't work great (obviously, loosely strapping vive wand as head tracker on any headset isn't the most pleasant experience), it proved to be a viable way to experience native PCVR on WMR.
|
|
||||||
|
|
||||||
What most impressed me in this is colours on that wmr. On Windows, WMR looked very dull and unsaturated to the point i didn't want to use it at all, while there it looks quite vibrant and pretty nice, i actually want to use it now there.
|
What most impressed me in this is colours on that wmr. On Windows, WMR looked very dull and unsaturated to the point i didn't want to use it at all, while there it looks quite vibrant and pretty nice, i actually want to use it now there.
|
||||||
|
|
||||||
**Used hardware**: Dell Visor VRP 100, Vive as dongles for Index knuckles, 1.0 base station
|
**Used hardware**: Dell Visor VRP 100, Tundra Tracker, 3 steamvr dongles, 2 index knuckle controllers, 2 - 1.0 base stations.
|
||||||
|
|
||||||
## Additional links
|
## Additional links
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue