Christoph Haag
87680c69d4
d/ohmd: Get rid of enum alias
...
The last enum index was used to determine the size of the inputs array.
The "clever" solution of aliasing enum values saved a minor amount of space
when allocating the xrt_device, while still allowing to dynamically assign
any input profile.
It also has drawbacks of being confusing and making it impossible to
validate that inputs from the correct xrt_input_name is requested.
Therefore just get rid of it, the minor space savings is not worth it.
fixes 2be4cbf4c3
2023-01-23 17:46:33 +01:00
Mario Kleiner
50f7b5ba5f
d/ohmd: Fix input from controls_mapping[0].
...
Use INPUT_INDICES_LAST instead of 0 for checking if control_mapping[i]
is unassigned for index i, ie. for skipping input.
As 0 is a valid mapping assignment defined in "enum input_indices", this
lead to dead input for SIMPLE_SELECT_CLICK and OCULUS_TOUCH_X_CLICK, both
assigned to 0.
This commit makes the Oculus Rift CV-1 left touch controllers X-Button
work in Monado OpenXR native and SteamVR via. Monado driver plugin.
Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
2023-01-23 16:30:27 +00:00
Christoph Haag
694baebd07
d/ohmd: Fix build
...
fixes 2be4cbf4c3
2023-01-22 22:04:47 +01:00
Christoph Haag
2be4cbf4c3
d/ohmd: Support generic trackers and clean up
2023-01-21 19:21:59 +00:00
Moses Turner
1ef49b92f2
d/dai: Control floodlight brightness with an env var
...
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
2023-01-15 09:54:54 -05:00
Christoph Haag
01dd02dc83
d/hdk: initialized thread helper
...
Fixes assert in debug mode.
2023-01-08 23:42:31 +01:00
Mateo de Mayo
6bd921b390
d/wmr: Fix unused corrected IMU timestamp
2023-01-02 16:21:08 -03:00
Jakob Bornecrantz
b87239e7d8
d/wmr: Increase display init sleep and also add debug variable to control it
2022-12-14 12:20:10 +00:00
Jakob Bornecrantz
ebb7c3cac2
d/wmr: Tidy prober code
2022-12-05 15:21:20 +00:00
Moses Turner
8c0735feec
d/rift_s: Link to hand tracking driver if necessary
2022-12-04 18:05:02 +00:00
Mateo de Mayo
dad7957fb2
a/math: Add clock_offset.h
...
For now it only has our simple exponential smoothing clock offset estimator.
But more advanced ones can go here too.
2022-12-02 16:10:09 +00:00
Moses Turner
f580271291
d/wmr: Guess camera orientation for Reverb G2 based on HT0 twist value
2022-11-23 13:02:35 -06:00
Jakob Bornecrantz
8efb55403c
d/psvr: Switch to reading sensors from its own thread
...
Tested-by: number-g <g@imagination.eu.org>
2022-11-22 17:58:07 +00:00
Jakob Bornecrantz
b1b63a9397
d/vive: Do more tracing during packet handling
2022-11-21 13:47:58 +00:00
Jakob Bornecrantz
c9bbeac70a
d/v4l2: Use U_TRACE_SET_THREAD_NAME
2022-11-20 14:36:37 +00:00
Jakob Bornecrantz
36d1734377
d/vive: Use U_TRACE_SET_THREAD_NAME
2022-11-20 14:36:37 +00:00
Jakob Bornecrantz
5142fa7e88
d/psmv: Use U_TRACE_SET_THREAD_NAME
2022-11-20 14:36:37 +00:00
Jakob Bornecrantz
0691ed9b89
d/wmr: Use U_TRACE_SET_THREAD_NAME
2022-11-20 14:36:37 +00:00
Jakob Bornecrantz
89aee1892b
d/remote: Update protocol to allow per view data
2022-11-14 16:07:15 +00:00
Ryan Pavlik
11bdba7e64
drivers: can not -> cannot
2022-11-09 14:52:03 -06:00
Mateo de Mayo
0ebc7e042f
d/vive: Improve readability of precompute_sensor_transforms (NFC)
2022-11-08 17:41:43 +00:00
Mateo de Mayo
9d6c29397f
misc: Fix multiple compile warnings in gcc and clang
2022-11-03 20:08:52 +00:00
Mateo de Mayo
8f14c572ee
d/vive: Apply IMU pose correction for SLAM tracking
...
The offset between IMU and middle-of-eyes for the Index is quite noticeable and
tracking felt very off before this.
2022-11-03 13:08:02 +00:00
Jakob Bornecrantz
ede2292690
d/psvr: Paranoia
2022-11-02 17:55:58 +00:00
Jakob Bornecrantz
200bbc9da0
d/psvr: Protect sensore reads with device_mutex
...
Fixes asserts by the fusion code where samples where pushed in the wrong
order to the fusion code.
2022-11-02 17:55:58 +00:00
Jakob Bornecrantz
fdac0b5137
d/psvr: Make sure to init the device_mutex before teardown can be called
2022-11-02 17:55:58 +00:00
Jakob Bornecrantz
637c49c1ea
a/os: Refactor out BLE functions into own library
2022-10-27 17:19:57 +00:00
Jakob Bornecrantz
8ca60f4304
a/util: Split out sink functions into own library
2022-10-27 17:19:57 +00:00
Christoph Haag
9054dc01ca
d/ht_ctrl_emu: Stub set_output
2022-10-24 17:20:59 +00:00
Jakob Bornecrantz
9077261ada
d/dai: Set fields after nullptr check
2022-10-10 22:39:38 +00:00
Jakob Bornecrantz
00c3cc4c2f
d/dai: With the latest depthai-core we can support color OV9782 sensors
2022-10-10 22:39:38 +00:00
Jakob Bornecrantz
4814f627c6
d/dai: Fix conversion warnings
2022-10-10 22:39:38 +00:00
Jakob Bornecrantz
504a2a288e
d/dai: Fix typo
2022-10-10 22:39:38 +00:00
Christoph Haag
74d82ff37f
d/ht_ctrl_emu: Set xdev serial
2022-10-03 19:23:24 +02:00
Jan Schmidt
e409264ba7
d/wmr: Fix Reverb G2 detection
...
196bf24276
broke Reverb G2
detection. Use the right PID to match the Reverb G2 headset
again.
2022-10-02 03:57:19 +11:00
Jakob Bornecrantz
13124f019e
d/opengloves: Fix left/right typos
2022-09-29 21:12:44 +00:00
Jakob Bornecrantz
2673787429
d/opengloves: Fix leak of config JSON
2022-09-29 21:12:44 +00:00
Jakob Bornecrantz
1e639fc2f3
d/opengloves: Fix leaks of udev objects
2022-09-29 21:12:44 +00:00
Moses Turner
034099211f
d/dai: Initialize mutex and thread helper
2022-09-28 18:37:49 -05:00
Jan Schmidt
3b7f95b39e
d/rift_s: Rework hw2mono clock tracking
...
Use the common hw2mono/a2b clock code from vive_source
2022-09-26 00:32:28 +10:00
Jan Schmidt
942df72c26
d/rift_s: Reduce camera frame delay to 2
2022-09-26 00:32:28 +10:00
Jan Schmidt
32cc6e05da
d/rift_s: Move builder to targets/common
...
Move the builder into the common area.
2022-09-26 00:32:28 +10:00
Jan Schmidt
5c573152a8
d/rift_s: Set camera orientation in calibration
...
Put the right rotation of the front cameras
into the camera calibration struct
2022-09-26 00:32:28 +10:00
Jan Schmidt
495eecb65f
d/rift_s: Add 6DOF SLAM tracking and hand tracking
...
Find and capture input from cameras, and split according to
frame type. Send long exposure tracking frames through
the AEG module, and SLAM and hand tracking trackers.
Add controller emulated hand devices.
The native "fisheye62" camera distortion model is
dynamically converted to OpenCV Kannala-Brandt
parameters using a TinyCeres solver.
2022-09-26 00:32:28 +10:00
Jan Schmidt
9fbe81e494
d/rift_s: Port OpenHMD Oculus Rift S driver
...
Port across the Oculus Rift S driver from OpenHMD as a native
Monado driver.
This is mostly the same as the OpenHMD 3DOF driver, with
slightly better HMD distortion correction, various small
fixes, some capsense touch detection support.
Controller poses are rotated 40° to match grip pose.
2022-09-25 02:17:44 +10:00
Moses Turner
6ec9b73e1e
d/wmr: Provide camera orientation to hand tracking
2022-09-21 23:11:58 -05:00
Jakob Bornecrantz
5c958d096d
d/vive: Make sure to free the source
2022-09-22 00:41:10 +01:00
Moses Turner
45e52dee8f
d/ns: Switch NS driver to builders
2022-09-21 07:57:03 -05:00
Moses Turner
6fdd790da0
d/dai: Update DepthAI driver
...
* Removed depthai_tracked_device - now you create a "SLAM" device, plug any frameserver into it and you're done
* Consolidated the grayscale frameservers into just one that gives you SLAM sinks
* Allows for different framerates and half-size for ov9282s
* Added debug frame sinks
* Added the ability to wait at startup for a number of frames for the streams to stabilize before submitting them to SLAM
2022-09-21 07:57:03 -05:00
Moses Turner
201708dee5
d/ht: Remove DepthAI hand tracking device
...
This was super crufty. Instead now you use a builder to create SLAM sinks with the DepthAI builder and plug them into a regular HT device
2022-09-21 07:57:03 -05:00
Moses Turner
074e18cac9
d/twrap: Add tracking wrapper driver
2022-09-21 07:57:03 -05:00
Moses Turner
ef767af2ad
cmake: Always build ht_ctrl_emu driver
2022-09-21 07:57:03 -05:00
Moses Turner
16dffc8d3b
cmake: Link drv_ht and drv_cemu in t/common instead of vive/survive
2022-09-21 07:57:03 -05:00
Moses Turner
5c18f83e8d
d/ulv2: Convert Ultraleap driver create function to helper
2022-09-21 01:54:40 +01:00
Moses Turner
a23bf9ab36
d/ns: Use math/m_mathinclude.h to fix Windows build
2022-09-21 01:45:24 +01:00
Moses Turner
956ee5ae9d
d/ns: Allow for freeing the 3D optical system
2022-09-21 01:45:24 +01:00
Daniel Willmott
c83c21ef90
d/opengloves: Clarify encoding constants
2022-09-19 22:08:28 +00:00
Daniel Willmott
f953ed7846
d/opengloves: Clarify input enums
2022-09-19 22:08:28 +00:00
Daniel Willmott
ddda9ec727
d/opengloves: Add force feedback extension support
2022-09-19 22:08:28 +00:00
Daniel Willmott
74f14f2414
d/opengloves: Communication api change
2022-09-19 22:08:28 +00:00
Moses Turner
d2e2c3a988
cmake: Run cmake-format.sh
2022-09-19 21:57:37 +01:00
Christoph Haag
196bf24276
d/wmr: Add HP VR1000 support
2022-09-19 18:16:21 +00:00
Moses Turner
bd265c611d
d/ns: update Moses's distortion method
2022-09-19 11:20:04 -05:00
Moses Turner
33226dd892
d/rs: Add PID/VIDs for T265
2022-09-19 11:17:34 -05:00
Moses Turner
34d158b299
d/dai: Use setXLinkChunkSize(0) to reduce latency
2022-09-19 11:17:34 -05:00
Moses Turner
bea3569016
d/dai: Enable IR floodlight code and allow the floodlight to be controlled with an env var
...
IR floodlight support has been merged into DepthAI core
2022-09-13 19:56:27 -05:00
Moses Turner
4c55364d95
d/vive: Always give a vive config
2022-09-13 22:10:58 +00:00
Moses Turner
9d6ca80af3
xrt: Add SimulaVR driver
2022-09-12 12:20:51 +00:00
Moses Turner
cc62600972
d/rs: Allow Realsense device to be created outside of normal target list
2022-09-12 12:20:51 +00:00
Jan Schmidt
1811951dd6
t/ht: Add support for camera orientation
...
Add a way to pass in extra information about camera views, this new
struct is merged with the old image boundary information struct.
Co-authored-by: Moses Turner <moses@collabora.com>
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
2022-09-06 18:36:53 +01:00
Jarvis Huang
7be4163b91
d/android: Fix errors while getting display metrics
2022-09-02 16:25:12 +00:00
Jakob Bornecrantz
ff4ce5f7e2
d/remote: Reset timout argument to select
...
Select can modify the argument, so need to reset it.
2022-08-24 14:36:56 +01:00
Ryan Pavlik
1b02783113
d/sample: Clean up, specify a blend mode
2022-08-18 16:45:45 -05:00
Jakob Bornecrantz
8e70290ec1
d/opengloves: Pass in identity pose to hand simulation
2022-08-14 16:16:27 +01:00
Jakob Bornecrantz
936733d4b7
d/vive: Pass in identity pose to hand simulation
2022-08-14 16:16:27 +01:00
Jakob Bornecrantz
d978a863c1
d/vive: Tidy
2022-08-14 16:16:27 +01:00
Jakob Bornecrantz
e6efcd7a02
u/hand: Take xrt_hand enum instead of bool
2022-08-14 16:16:27 +01:00
Jakob Bornecrantz
dc28c1f04a
d/remote: Fix hand tracking
2022-08-14 16:16:27 +01:00
Jakob Bornecrantz
f535135c13
d/survive: Fix warning and org code (NFC)
2022-08-14 13:19:00 +01:00
Moses Turner
e5466553a2
d/euroc: Allow zero timestamps
...
Negative timestamps are still not allowed, but artificially generated datasets might start at exactly zero
2022-08-10 15:09:53 +00:00
Jakob Bornecrantz
d6df203d03
d/opengloves: Fix warning (NFC)
2022-08-10 16:03:33 +01:00
Jakob Bornecrantz
39f80f2ef5
d/vive: Remove unsued variable
2022-08-10 14:18:45 +00:00
Jakob Bornecrantz
42f5cf4c9d
d/opengloves: Use correct argument when casting
2022-08-10 14:18:45 +00:00
Jan Schmidt
96fb9ce34a
wmr: Clean up camera debug last.
...
Make sure to stop the USB thread before destroying the debug sink
as cancelling the transfers is not sufficient to guarantee
there will be no final callback (or one in progress)
2022-08-08 17:31:53 +00:00
Christoph Haag
c24e482e5e
st/oxr: Make OpenXR timestamps relative to service startup
...
This solves a problem where OpenXR timestamps could become invalid
(negative) in certain circumstances:
The timestamps that the OpenXR state tracker returned were offset such
that they appeared to start at OpenXR application startup time.
However monado-service is a long running service using system timestamps.
Because of this, if monado-service started work using a system timestamp
acquired before an OpenXR application started, then this system timestamp
could not be converted into an OpenXR without becoming invalid.
With this change, the OpenXR timestamps for OpenXR applications are offset
such that they appear to start at monado-service startup time instead.
As a side effect, all OpenXR applications connected to the same
monado-service instance will receive timestamps from the same domain.
2022-08-08 15:52:18 +00:00
danwillm
76f96686d1
xrt/drivers: Convert hand tracking drivers to use hand simulation
...
Co-authored-by: Moses Turner <moses@collabora.com>
2022-08-01 17:33:40 +00:00
Moses Turner
2868348e8c
t/common: Make controllers work again with the Lighthouse builder
...
!1418 briefly broke controller setup.
2022-07-27 10:49:29 +00:00
Moses Turner
c0eed827c5
xrt: Remove t_hand_tracking_output_space
...
LEFT_CAMERA is the only one that remained useful
2022-07-27 10:49:29 +00:00
Jakob Bornecrantz
86ae6a5bb1
d/wmr: Fix warning
2022-07-26 18:15:04 +00:00
danwillm
fd61dd08b2
drivers: add all of opengloves driver
2022-07-25 23:57:45 +01:00
danwillm
0943ce10be
a/util, xrt: u_hand_tracking interface change
2022-07-25 23:57:45 +01:00
Mateo de Mayo
36ca9260cf
d/vive: Update tracking status to fix segfault
...
Co-authored-by: Moses Turner <moses@collabora.com>
2022-07-25 19:08:46 +00:00
Mateo de Mayo
6e16959098
d/vive: Add vive_source to convert v4l2 timestamps into monotonic clock
...
Use a sink in the middle of the stream to correct for v4l2 timestamps with
hardware timestamps to monotonic clock.
This sink, together with other utilities related to data streaming, lives in a
new vive_source entity, with similar functionality to wmr_source or rs_source.
The vive_source lifetime is managed by the builder xfctx, which prevents
deallocation dependencies between vive_device and the v4l2_fs to cause segfaults.
2022-07-25 19:08:46 +00:00
Mateo de Mayo
13d90bff77
d/vive: Implement 3DoF/SLAM switching button and pose offset
2022-07-25 19:08:46 +00:00
Mateo de Mayo
f0ceb40f6a
d/vive: Prepare data streaming and SLAM tracker
2022-07-25 19:08:46 +00:00
Mateo de Mayo
3cbb7f6b9f
d/vive: Pass status of visual tracking into the driver
2022-07-25 19:08:46 +00:00
Mateo de Mayo
8d929fe2fa
d/v4l2: Split some definitions into a new header
2022-07-25 19:08:46 +00:00
danwillm
de53e431ed
d/multi: fix untested codepath
2022-07-25 15:23:49 +01:00
Nova
0954bd0dd8
d/wmr: Clean up check_and_get_interface in wmr_prober.c
2022-07-25 12:19:48 +01:00
Nova
e141aa2d55
d/wmr: Add initial support for original Odyssey HMD
2022-07-25 12:19:48 +01:00