Commit Graph
8580 Commits
Author SHA1 Message Date
lbgos 43ebc19a06 Exercise installed Basalt defaults in the complete test suite 2026-10-12 00:23:31 +03:00
lbgos e373caa0b1 Record cold acquisition timing in native SteamVR logs 2026-10-12 00:19:09 +03:00
lbgos 2966b3eaf1 Keep Rift S controllers uninitialized before optical acquisition 2026-10-11 22:19:46 +03:00
lbgos e078018041 Find installed Basalt without a Steam launch override 2026-10-11 22:13:37 +03:00
lbgos 855ccd6a3c Use observed VIO history for room-map camera exposures 2026-10-11 21:54:35 +03:00
lbgos 1a779622d7 Document automatic SteamVR registration and ordinary Steam launch 2026-10-11 21:51:52 +03:00
lbgos b06c2a3f4d Keep the mirror GLX context on one thread and render settings on Wayland 2026-10-11 21:46:47 +03:00
lbgos 55e27157ee Sync the verified Rift S r25 runtime and tracking fixes 2026-10-11 21:45:52 +03:00
lbgos 8073a7f104 Register Rift S automatically in Steam user sessions 2026-10-11 21:43:22 +03:00
lbgos 8c13ac33e4 Render the native SteamVR compositor mirror in settings 2026-10-11 21:24:53 +03:00
lbgos b0dfabdc62 Open native SteamVR VR View from Rift S settings 2026-10-11 21:16:23 +03:00
lbgos a767bebba1 Add the Rift S settings app 2026-10-09 23:27:08 +03:00
lbgos dff6cab92c Rift S: SLAM guard, Touch controller tracking, native room setup and SteamVR integration
Squashed from the working branch. Adds the Basalt patches, constrained
constellation pose solver, Rift S optics, world anchor and boundary
persistence, SteamVR camera queue and room setup guard, and tests.
2026-10-09 22:49:57 +03:00
Christoph Haag b1c850a015 cmake: Support OpenCV 5
Signed-off-by: Christoph Haag <christoph.haag@collabora.com>
Part-of: <https://gitlab.freedesktop.org/monado/monado/-/merge_requests/2910>

Backported to dev-constellation-tracker branch
2026-09-12 09:45:38 +10:00
Jan Schmidt 882770528e d/rift_s: Ignore camera frames with repeated timestamps
Ignore frames with repeating incoming timestamps

This happened one time when the headset crashed, right
before it did a USB disconnect.
2026-03-25 17:50:34 +11:00
Jan Schmidt c3991f129e d/rift_s: Don't access controller struct from failed radio callbacks
Failed radio callbacks only happen on shutdown, and the controller
may have been destroyed by then and be an invalid pointer
2026-03-25 17:50:34 +11:00
Jan Schmidt 61d1c378dd d/rift_s: Shutdown sequence fixes
Make the driver shut down cleanly, by ensuring to
disable sending camera frames to the SLAM tracker
once the HMD device is destroyed (otherwise the camera
frame sending can block inside the VIT impl when queues
fill).

Fix refcounting of the Rift S system object, so it gets
freed once the controllers and HMD xrt_devices are destroyed.
2026-03-25 17:50:34 +11:00
Jan Schmidt 08b700bd67 d/wmr: Add controller debug var for observed LED brightess 2026-03-25 17:50:34 +11:00
hare_wareandJan Schmidt cd3e679904 d/wmr: Set exposure and gain for controller frames
Co-Authored-By: Jan Schmidt <jan@centricular.com>
2026-03-25 17:50:34 +11:00
Beyley Cardellio 5dbb1d1d8a t/constellation: Use RANSAC-PnP pose refinements 2026-03-25 17:50:34 +11:00
hare_ware 0345373ae5 d/wmr: Add Samsung Odyssey Motion Controller aim & grip pose offsets 2026-03-25 17:50:34 +11:00
hare_ware 15ad2815c5 d/wmr: Added support for setting aim pose offsets 2026-03-25 17:50:34 +11:00
Jan Schmidt 4498ad3c25 d/wmr: Fix the controller status request at startup
Send the correct status request commands for HP and Odyssey
BT radios.
2026-03-25 17:50:34 +11:00
Beyley Cardellio 9d85edbb3c t/constellation + d/wmr: Controller device masks for SLAM 2026-03-25 17:50:34 +11:00
Beyley Cardellio 32ace6776b a/tracking+xrt: Split SLAM hand masks into separate hand+controller masks 2026-03-25 17:50:34 +11:00
Beyley Cardellio f10443a21c t/constellation: Remove unneeded constant 2026-03-25 17:50:34 +11:00
Beyley Cardellio 1d67d4d633 d/wmr + t/constellation: Add brightness feedback loop 2026-03-25 17:50:34 +11:00
Beyley Cardellio d81bd34c59 d/wmr: Tweak some constellation tracking parameters
Seems to marginally improve things
2026-03-25 17:50:34 +11:00
Beyley CardellioandJan Schmidt 68428910be t/constellation + d/wmr: Add callback for checking LED visibility
This allows the constellation tracker to properly ignore LEDs
that are occluded, with the occlusion function being part of
the LED model.

Co-authored-by: Jan Schmidt <jan@centricular.com>
2026-03-25 17:50:34 +11:00
Beyley Cardellio e7dab88abd t/constellation: Bump max constellation devices to 4
precursor to "tracked object" support for the rift driver (a third touch controller, in conjunction with the headset and two main controllers)
2026-03-25 17:50:34 +11:00
Beyley Cardellio db2ce6237b t/constellation: More descriptive device types
Make the device description in the logs more useful by
recognising other tracked devices than just left/right controllers
2026-03-25 17:50:34 +11:00
Jan Schmidt 369b4c4f7c t/constellation: Apply LED model <-> device transforms 2026-03-25 17:50:34 +11:00
Jan Schmidt 810c5b3887 d/rift d/wmr: Add to LED model API change 2026-03-25 17:50:34 +11:00
Jan Schmidt 581ee2f4f8 t/led_models: add a device->model pose
Rift HMDs have their LED models facing the other way compared to
controllers, and the pose needs converting
2026-03-25 17:50:34 +11:00
Jan Schmidt 43e81bbca0 d/rift_s: Add IMU position to pose adjustments
Adjust LED model and reported poses to/from IMU-relative
as needed (even though the difference is small)

Adjust the grip pose back by 10cm
2026-03-25 17:50:34 +11:00
Jan Schmidt 58ddbddec8 d/rift_s: Fix mismatched lock/unlock. Update pose position
Fix use of os_mutex_unlock() instead of os_mutex_lock() in a
few places.

Update the ctrl->pose position when optical updates arrive,
so the debug UI shows the position changing
2026-03-25 17:50:34 +11:00
Jan Schmidt 524e6bc035 d/rift_s: Flip cam and controller models for the constellation tracker
Pass camera poses and controller models in OpenCV coords. Later this
should be reverse, and WMR should flip models and cameras, so the
constellation tracker doesn't have to
2026-03-25 17:50:34 +11:00
Jan Schmidt 9121993660 d/rift_s: Mark controllers as position tracked 2026-03-25 17:50:34 +11:00
Jan Schmidt 4bcc9df215 d/rift_s: Set realtime perms on the USB thread 2026-03-25 17:50:34 +11:00
Jan Schmidt 603d5c2142 rift_s: Assign a common tracking origin
Controllers are tracked using the same origin as the headset now
2026-03-25 17:50:34 +11:00
Jan Schmidt 24c46574b3 d/rift_s: Rearrange cameras in the constellation tracker
Rearrange the camera order so front cameras are first in the lineup,
to make it easier to debug things
2026-03-25 17:50:34 +11:00
Jan Schmidt a69e3a4e2b d/rift_s: Fix controllers reporting generic tracker pose
Allow the constellation tracker to retrieve the generic tracker
pose for it to match LEDs against
2026-03-25 17:50:34 +11:00
Jan Schmidt 70753635bd d/rift_s: Report tracked controller position if found 2026-03-25 17:50:34 +11:00
Jan Schmidt baac4192ee d/rift_s: Adjust LED blob brightness thresholds 2026-03-25 17:50:34 +11:00
Jan Schmidt bd7ca9fce4 d/rift_s: Register controllers with the constellation tracker 2026-03-25 17:50:34 +11:00
Jan Schmidt e2c6da6aa8 d/rift_s: Create a constellation tracker and feed video
Not yet connected to the controllers themselves
2026-03-25 17:50:34 +11:00
Jan Schmidt 140e540e0a d/rift_s: Fix clock-stabilisation at startup and enable SLAM 2026-03-25 17:50:34 +11:00
Jan Schmidt 594d11d0e0 t/constellation: Fix a silly typo 2026-03-25 17:50:34 +11:00
Jan Schmidt c9f14c1056 d/wmr: Adapt to new constellation tracker API 2026-03-25 17:50:34 +11:00
Jan Schmidt 2316392400 tracking: Make constellation tracker WMR independent
Remove all dependency on the WMR driver from the
constellation tracker
2026-03-25 17:50:34 +11:00