Ryan Pavlik
5b8c869b56
d/ht: Fix header and usages of helpers
2022-02-08 17:21:46 -06:00
Ryan Pavlik
8c7af28904
d/ht: Fix build issues against updated history structure.
2022-02-08 16:58:24 -06:00
Ryan Pavlik
65ef8d58f1
d/ht: Cleanup usage of history buffer.
...
May wish to reconsider whether all these usages are required: they appear to only use the back (latest) element.
2022-02-08 17:00:11 +00:00
Moses Turner
614e0e58ae
d/ht: use new HistoryBuf api
2022-02-08 17:00:11 +00:00
Ryan Pavlik
d05df584b2
d/ht: Some cleanups
2022-02-08 17:00:11 +00:00
nima01
45466e419b
d/wmr: Reverb G1 proximity sensor support
2022-02-02 02:27:55 +01:00
Christoph Haag
2ad634bd1e
d/wmr: print json config on debug log level
2022-01-21 20:32:35 +00:00
Christoph Haag
6e339014a5
d/wmr: Add Medion Erazer X1000
2022-01-21 20:32:35 +00:00
Christoph Haag
45adabe135
d/wmr: Clarify comment in headset_map assert
2022-01-21 20:32:35 +00:00
Christoph Haag
88d55c6e22
d/wmr: Sort HP G2 controller PID to the other HP devices
2022-01-21 20:32:35 +00:00
Christoph Haag
96c09e06e7
d/wmr: consolidate interface getters
...
Moving them into one function makes it simpler to add more HMDs.
2022-01-21 20:32:35 +00:00
Ryan Pavlik
c9889f776f
xrt: Rename xrt_space_graph to xrt_relation_chain.
...
Rename all functions and instances accordingly as well,
and add documentation for all methods.
2022-01-21 19:54:30 +00:00
Moses Turner
2188d8afc2
d/remote: expose hand active state to remote gui
2022-01-18 14:33:11 -06:00
Jarvis Huang
52cb2ef123
d/android: Stop thread function when device destoryed
2022-01-05 14:59:39 +00:00
Simon Zeni
8b1d432b79
d/ht_ctrl_emu: fix crash and truncation warning
2021-12-24 15:19:51 -05:00
Mateo de Mayo
88a3848b5a
d/wmr: Map wmr_source data to monotonic clock
2021-12-21 11:43:17 +00:00
Mateo de Mayo
74e149159b
t/slam: Add SLAM_SUBMIT_FROM_START envvar
...
Useful for setups that need some tuning to their sensors before sending
data to a SLAM system.
Removes the submit_frames property from wmr_camera as this replaces it.
2021-12-21 11:43:17 +00:00
Mateo de Mayo
1c7323f1c2
d/rs: Generalize laser emitter option setup to any rs option
2021-12-21 11:43:17 +00:00
Mateo de Mayo
fa431fc010
d/rs: Map all rs_hdev timestamps to monotonic clock
2021-12-21 11:43:17 +00:00
James Hogan
7ee8d1ac5d
xrt: Revert xrt_view::display::{w|h}_pixels changes
...
Commit 749723f0ba
("xrt: Remove xrt_view::display::{w|h}_meters")
accidentally removed some references to {w|h}_pixels as well as
{w|h}_meters. This resulted in recommended view image sizes of 0px*0px.
Revert those changes without reverting the rest of the commit.
Fixes: 749723f0ba
("xrt: Remove xrt_view::display::{w|h}_meters")
2021-12-20 23:00:40 +00:00
Simon Zeni
4e4e6708bc
Revert "d/survive: ajust timestamp from button event"
...
This reverts commit b396c200d0
.
The issue has been fixed in libsurvive [1]
[1]: https://github.com/cntools/libsurvive/pull/250
2021-12-17 13:40:53 -05:00
Moses Turner
a19f13171b
meson: use cjson_include with depthai driver
2021-12-14 14:12:42 +00:00
Christoph Haag
b7c8a6faa5
d/ht_ctrl_emu: work around truncation warning
...
../src/xrt/drivers/ht_ctrl_emu/ht_ctrl_emu.cpp: In function ‘int cemu_devices_create(xrt_device*, xrt_device*, xrt_device**)’:
../src/xrt/drivers/ht_ctrl_emu/ht_ctrl_emu.cpp:439:102: warning: ‘ Left Hand’ directive output may be truncated writing 10 bytes into a region of size between 1 and 256 [-Wformat-truncation=]
439 | int ret = snprintf(cemud[i]->base.str, XRT_DEVICE_NAME_LEN, i ? "%s Right Hand" : "%s Left Hand", hands->str);
| ^~~~~~~~~~
../src/xrt/drivers/ht_ctrl_emu/ht_ctrl_emu.cpp:439:35: note: ‘snprintf’ output between 11 and 266 bytes into a destination of size 256
439 | int ret = snprintf(cemud[i]->base.str, XRT_DEVICE_NAME_LEN, i ? "%s Right Hand" : "%s Left Hand", hands->str);
| ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/xrt/drivers/ht_ctrl_emu/ht_ctrl_emu.cpp:439:84: warning: ‘ Right Hand’ directive output may be truncated writing 11 bytes into a region of size between 1 and 256 [-Wformat-truncation=]
439 | int ret = snprintf(cemud[i]->base.str, XRT_DEVICE_NAME_LEN, i ? "%s Right Hand" : "%s Left Hand", hands->str);
| ^~~~~~~~~~~
../src/xrt/drivers/ht_ctrl_emu/ht_ctrl_emu.cpp:439:35: note: ‘snprintf’ output between 12 and 267 bytes into a destination of size 256
439 | int ret = snprintf(cemud[i]->base.str, XRT_DEVICE_NAME_LEN, i ? "%s Right Hand" : "%s Left Hand", hands->str);
| ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2021-12-14 14:58:33 +01:00
Christoph Haag
2b101e6ffa
d/wmr: don't print NULL value in error message
...
In file included from ../src/xrt/drivers/wmr/wmr_config.h:15,
from ../src/xrt/drivers/wmr/wmr_config.c:16:
In function ‘wmr_config_parse_camera_config’,
inlined from ‘wmr_config_parse_calibration’ at ../src/xrt/drivers/wmr/wmr_config.c:422:8,
inlined from ‘wmr_hmd_config_parse’ at ../src/xrt/drivers/wmr/wmr_config.c:477:13:
../src/xrt/auxiliary/util/u_logging.h:84:25: warning: ‘%s’ directive argument is null [-Wformat-overflow=]
84 | u_log(__FILE__, __LINE__, __func__, level, __VA_ARGS__); \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/xrt/auxiliary/util/u_logging.h:220:38: note: in expansion of macro ‘U_LOG_IFL’
220 | #define U_LOG_IFL_E(cond_level, ...) U_LOG_IFL(U_LOGGING_ERROR, cond_level, __VA_ARGS__)
| ^~~~~~~~~
../src/xrt/drivers/wmr/wmr_config.c:22:35: note: in expansion of macro ‘U_LOG_IFL_E’
22 | #define WMR_ERROR(log_level, ...) U_LOG_IFL_E(log_level, __VA_ARGS__)
| ^~~~~~~~~~~
../src/xrt/drivers/wmr/wmr_config.c:267:17: note: in expansion of macro ‘WMR_ERROR’
267 | WMR_ERROR(log_level, "Invalid camera calibration block %d - unknown camera purpose %s", c->n_cameras,
| ^~~~~~~~~
../src/xrt/drivers/wmr/wmr_config.c: In function ‘wmr_hmd_config_parse’:
../src/xrt/drivers/wmr/wmr_config.c:267:100: note: format string is defined here
267 | WMR_ERROR(log_level, "Invalid camera calibration block %d - unknown camera purpose %s", c->n_cameras,
| ^~
2021-12-14 14:54:47 +01:00
Christoph Haag
42ae21d412
d/hdk: Remove unused variable
2021-12-14 14:19:53 +01:00
Mateo de Mayo
74e79ff274
d/wmr: Add SLAM tracker
2021-12-13 10:41:55 +00:00
Mateo de Mayo
d3bde043bd
d/wmr: Forward IMU samples to wmr_source
2021-12-13 10:41:55 +00:00
Mateo de Mayo
41f42e0b3a
d/wmr: Add wmr_source with camera streams support
2021-12-13 10:41:55 +00:00
Mateo de Mayo
92c1e55c37
d/wmr: Prepare HMD for SLAM tracking
2021-12-13 10:41:55 +00:00
Mateo de Mayo
c1edfa95d7
d/wmr: Add Odyssey+ activation/deactivation functions
...
Co-authored-by: Jan Schmidt <jan@centricular.com>
2021-12-13 10:41:55 +00:00
Mateo de Mayo
7338aded9c
d/wmr: Add exposure setting
2021-12-13 10:41:55 +00:00
Mateo de Mayo
d9aaa4369f
d/wmr: Add ROI rect for WMR cameras
2021-12-13 10:41:55 +00:00
Jan Schmidt
3bb3197fec
d/wmr: Parse controller configuration
...
Extract LED and inertial sensor configuration from
controller JSON
2021-12-13 11:47:12 +11:00
Jan Schmidt
ea4836b081
d/wmr: Read controller firmware configuration blocks.
...
Implement reading and logging of controller firmware blocks.
The main JSON configuration is obfuscated. The raw block can
be dumped to disk by setting the WMR_CONFIG_DUMP env var
to point to a directory to receive controller configs
2021-12-13 11:47:12 +11:00
Jan Schmidt
4e24a1277e
d/wmr: Add pragma once to BT controller header
2021-12-13 11:47:12 +11:00
Jan Schmidt
1c67a1ff52
d/wmr: Add HP Reverb G2 controller PID
...
Recognise the HP Reverb G2 WMR controller if it is directly
connected via bluetooth (instead of tunnelled through the
headset like it normally would be).
2021-12-13 11:47:12 +11:00
Simon Zeni
b396c200d0
d/survive: ajust timestamp from button event
2021-12-12 23:07:14 +00:00
Nima01
b3e0f5bc6a
d/wmr: WMR Controller (BT): Don't waste CPU cycles when reading
2021-12-12 21:37:50 +01:00
Nima01
2d48a9bca2
d/wmr: WMR Controller (BT) 3DoF working, based on gyro and accel.
...
Tested on HP Reverb G1. Reading and applying device specific
config data is still pending.
2021-12-12 16:47:35 +00:00
Mateo de Mayo
fe4f6c6eb0
misc: Improve wmr and euroc docs, fix ht memory leak, stride for cv::Mats
2021-12-12 13:13:18 -03:00
Moses Turner
749723f0ba
xrt: Remove xrt_view::display::{w|h}_meters
...
It is not used anywhere.
2021-12-10 21:27:15 -06:00
Jakob Bornecrantz
59a09abf6a
d/dai: Document work around
2021-12-10 21:31:28 +00:00
Jakob Bornecrantz
775d82d728
d/dai: Work around issue in v2.13.3
2021-12-10 21:31:28 +00:00
Moses Turner
c66b29d117
d/wmr: use u_extents_2d_split_side_by_side instead of u_device_setup_split_side_by_side
2021-12-10 14:08:52 -06:00
nima01
d5d1695438
d/wmr: Hook up motion controller gyro and accel
...
Basic IMU setup with fusion. Reading and applying config callibration data from controller is still work in progress
2021-12-08 00:43:50 +00:00
Jakob Bornecrantz
aad9b04a92
d/wmr: Fix warning and tidy
2021-12-07 13:30:45 +00:00
Jakob Bornecrantz
eee143f401
d/rs: Use long name as documentation name
2021-12-07 11:26:20 +00:00
Jakob Bornecrantz
3e38ada9a5
build: s/rs/realsense/g
2021-12-07 11:26:20 +00:00
Jakob Bornecrantz
6ae52651c4
d/vive: Up max config z and json size, also tidy
2021-12-06 19:43:49 +00:00
Jan Schmidt
6cc92c369a
d/wmr: Fix accel <-> gyro mixup in previous change.
...
There was a typo in the calibration bias/correction
patch that messed up accel values by accidentally
reusing the gyro value.
2021-12-06 01:45:25 +11:00
Jan Schmidt
c06c3fa782
d/wmr: Make WMR to OpenXR coordinate transform explicit
...
Instead of negating Y and Z readings from the IMU when
parsing, parse the native values, then apply the rotation
using the centerline transform before fusion.
2021-12-05 00:09:25 +11:00
Jan Schmidt
c7549c8680
d/wmr: Apply HMD IMU correction from calibration.
...
Apply the mix_matrix and bias_offsets adjustments for
IMU readings.
2021-12-05 00:06:05 +11:00
Jan Schmidt
ee030ff0c8
d/wmr: Extend config reading to include bias/mix_matrix
...
Add extraction of bias offsets and mix_matrix (rotation)
correction for IMU accel, gyro and mag configuration entries.
2021-12-05 00:06:05 +11:00
Jan Schmidt
385a3bd33d
d/wmr: Split out inertial sensor configuration
...
Inertial sensor configuration blocks are common to
both HMD and controller calibration. Factor out a
shared structure to receive them.
2021-12-05 00:06:05 +11:00
Jan Schmidt
76c18bfdc7
d/wmr: Rename wmr_config_parse to wmr_hmd_config_parse()
2021-12-05 00:06:05 +11:00
Jakob Bornecrantz
971739627a
d/vive: Actually print error message to say what is going on
2021-12-03 21:13:57 +00:00
Moses Turner
8af3a47f5a
cmake: make DepthAI driver link to aux_tracking
2021-12-03 19:22:57 +00:00
Jakob Bornecrantz
efde7f185c
a/math: Put m_relation_history_get out argument last
2021-12-03 14:00:32 +00:00
Mateo de Mayo
e245f4e5a9
u/sink: Allow u_sink_queue to queue more than one frame
...
Passing max_size=1 gives a similar behaviour as before, although instead
of discarding the last enqueued frame, it just ignores the new frame.
2021-12-01 13:45:18 +00:00
Simon Zeni
ba7f9d9578
d/ht_cemu: enable build if XRT_BUILD_DRIVER_HANDTRACKING is enabled
2021-12-01 05:36:05 +00:00
Simon Zeni
749792f324
d/ht_cemu: enable meson build
2021-12-01 05:36:05 +00:00
Moses Turner
6b14cc3923
d/cemu: use proper number of inputs
2021-11-30 23:32:05 -06:00
Moses Turner
80840c4f4a
d/multi: propagate out_timestamp_ns
2021-11-30 05:56:57 -06:00
Moses Turner
f5bc81756e
d/survive: use controller emulation for hand-tracking
2021-11-30 05:56:57 -06:00
Moses Turner
0214937aa0
d/vive: use controller emulation for hand-tracking
2021-11-30 05:56:57 -06:00
Moses Turner
03359e2bfb
d/ht_ctrl_emu: Create the driver
2021-11-30 05:56:57 -06:00
Nima01
bdf96d6810
d/wmr: Decode and handle controller buttons, thumbstick and trackpad.
2021-11-27 04:31:13 +01:00
Jan Schmidt
ce03824824
d/wmr: Comment updates for wmr_protocol.h
...
Improve the descriptions of some pieces of the WMR
protocol
2021-11-25 23:33:55 +11:00
Jan Schmidt
7f392936c6
d/wmr: Report frame source_sequence and source_timestamp
...
Extract timestamp in source 100ns units and convert to
nanoseconds, then place them in the emitted xrt_frames.
Unwrap the 8-bit frame sequence counter to 64-bits, and
add that too.
Add some comments and debug for other fields in the
incoming data.
2021-11-25 23:33:55 +11:00
Jan Schmidt
0fab912c5c
d/wmr: Add debug gain control
...
Add a control to the debug UI for adjusting the
camera gain setting when testing.
2021-11-25 20:05:10 +11:00
Simon Zeni
a090655e16
d/ht: remove old ht_models API
2021-11-24 16:42:56 -05:00
Simon Zeni
ee45be6f7b
d/ht: use new ht_model API
2021-11-24 16:42:56 -05:00
Simon Zeni
0e53b3b87f
d/ht: introduce ht_model
2021-11-24 16:42:56 -05:00
Simon Zeni
e84d948fb4
d/ht: blackar takes const input
2021-11-24 16:42:56 -05:00
Simon Zeni
32330d467c
d/ht: planarize takes const input
2021-11-24 16:42:56 -05:00
Jakob Bornecrantz
63701511eb
d/wmr: Tidy
2021-11-24 17:12:19 +00:00
Christoph Haag
01c6e4ed28
d/wmr: make wmr_config_key static
...
OpenHMD has a global variable wmr_config_key too which is exported in some
build configurations, causing Monado to fail linking openhmd and the wmr
driver together.
2021-11-24 14:36:55 +00:00
Jakob Bornecrantz
3f98ea5595
xrt: Tidy s/ll/log_level/g
...
Also make sure all variable logging uses the right type for logging variables.
2021-11-22 14:29:10 -06:00
Christoph Haag
431857dd16
d/ohmd: use os_nanosleep for delay_after_initialization
2021-11-22 00:45:08 +01:00
Christoph Haag
8a4a09bb1b
d/ohmd: Remove duplicate delay_after_initialization code
2021-11-22 00:40:13 +01:00
Jakob Bornecrantz
839ada7115
d/wmr: Add more to the I/O
2021-11-20 18:54:16 +00:00
Jakob Bornecrantz
7fa3109e2a
d/wmr: Minimum to bind and return a pose
2021-11-20 17:44:34 +00:00
Jakob Bornecrantz
673ac5ee6c
d/wmr: Add support for Samsung Odyssey controllers
2021-11-20 17:33:25 +00:00
Jakob Bornecrantz
ea38309c86
d/wmr: Bracemaggedon
2021-11-20 15:37:15 +00:00
Jakob Bornecrantz
50e0e7783e
d/wmr: Shuffle and group things in camera file
2021-11-20 15:00:02 +00:00
Jakob Bornecrantz
85f79f935b
d/wmr: Tidy
2021-11-20 15:00:02 +00:00
Jakob Bornecrantz
1441453d5f
d/wmr: Add log level to variable tracking
2021-11-20 13:54:51 +00:00
Jakob Bornecrantz
4329b755a9
d/wmr: Document camera start and constify argument
2021-11-20 13:50:54 +00:00
Jakob Bornecrantz
16c75e7cc7
d/wmr: Tidy variable tracking
2021-11-20 13:29:24 +00:00
Jan Schmidt
733d463ec4
d/wmr: Use proximity sensor value in IPD message.
...
The first byte after the packet ID toggles when
the proximity sensor is activated.
2021-11-20 12:52:45 +00:00
Jan Schmidt
5efe0da713
d/wmr: Handle 0x17 packets
...
Add a debug report for 0x17 packets on Reverb G2 that
report controller statuses. The statuses seen so far
are 0x0 for unpaired, 0x1 for paired but offline, and
0x2 for online. Paired reports provide VID and PID for the
associated motion controller.
2021-11-20 12:52:45 +00:00
Jan Schmidt
7b95755f07
d/wmr: Implement bluetooth debug message handling
...
Handle the debug message packet from the bluetooth
interface on the HP G2. There might be other packet
types, but that's the only one I've seen so far.
2021-11-20 12:52:45 +00:00
Jan Schmidt
e0b5070f49
d/wmr: Rename controller related packets
...
Rename the controller and bluetooth related packets
according to their usage, and split out the
controller update handling function.
2021-11-20 12:52:45 +00:00
Jan Schmidt
e18288cc57
d/wmr: Ignore all other packets when reading config
...
Any other WMR packets can arrive while we're reading the
config block - ignore all of them, not just a few. Fixes
config reading failures.
2021-11-20 12:52:45 +00:00
Jan Schmidt
a14d6f1c2b
d/wmr: Parse and log HMD debug messages
2021-11-20 12:52:45 +00:00
Jan Schmidt
6bb2972443
d/wmr: Set default camera gain
...
Add API for gain control on headset cameras,
and use it to set a mid-range default exposure gain
2021-11-20 12:52:45 +00:00
Jan Schmidt
0da1bd74ce
d/wmr: Debug output for camera frames
...
Compute the frame size required for the cameras on a given
headset.
Copy the pixels out into an xrt_frame, then send it
to a debug sink - one for SLAM tracking exposures, and
1 for controller frames.
Based on a patch by Jakob Bornecrantz
2021-11-20 12:52:45 +00:00
Jan Schmidt
5fe935a5b0
d/wmr: Add camera reading loop
...
Calculate and configure USB transfers to read the
cameras on a WMR headset. Needs more work to
make use of the received frames.
2021-11-20 12:52:45 +00:00
Jan Schmidt
e422be89fa
d/wmr: Add camera configuration block parsing
...
Read camera configuration info from the HMD JSON
block
2021-11-20 12:52:45 +00:00
Jan Schmidt
7fb94889a8
d/wmr: Fix a small lock handling mistake
...
In the wmr handling thread, make sure lock
handling is symmetrical in all code paths.
2021-11-20 12:52:45 +00:00
Nima01
e536a02b33
d/wmr: Factor out parsing of controller messages and minor cleanup.
2021-11-18 17:19:07 +00:00
Nima01
c4db3dfccc
d/wmr: Add basic Reverb (G1, Bluetooth) motion controller support.
2021-11-18 17:19:07 +00:00
Nima01
acd8a0986e
d/wmr: Prepare for WMR motion controller driver - Change ambiguous names and traces.
2021-11-18 17:19:07 +00:00
Antonio Ospite
14cc4f1ba2
d/v4l2: fix building with older linux kernel like 4.15
...
Older linux kernels like 4.15 don't have V4L2_CID_DIGITAL_GAIN or
V4L2_CTRL_FLAG_MODIFY_LAYOUT, add conditional guards to build
successfully on systems with such kernels.
2021-11-13 13:48:00 +00:00
Jakob Bornecrantz
79ec1bd695
d/wmr: Add basic support for Samsung Odyssey+
...
Display start-up sequence still probably needed.
2021-11-13 12:36:25 +00:00
Ryan Pavlik
9a41a1a8be
d/ulv2: Improve source docs
2021-11-13 12:29:58 +00:00
Ryan Pavlik
0fa5876a5c
drivers: Add references to xrt_prober_found_function_t in all relevant docs
2021-11-13 12:29:58 +00:00
Ryan Pavlik
2e323add6f
drivers: Migrate num_ to _count
2021-11-13 12:04:38 +00:00
Ryan Pavlik
469b9d907d
st/oxr: Rename all num_ in the state tracker, too.
2021-11-13 12:04:38 +00:00
Ryan Pavlik
33c0287f8b
xrt: Rename all "num" parameters and fields to "count" (or "capacity" as appropriate)
...
This matches the OpenXR usage: the array is the plural of the element type,
and the count is the singular element type plus "count" (usually CountOutput
because of the two-call idiom)
Includes fixes to other code to match API changes.
2021-11-13 12:04:38 +00:00
Mateo de Mayo
87a1198b0a
misc: Address compilation warnings and fix u_json_get_bool
2021-11-12 15:33:06 -03:00
Ryan Pavlik
cc4007a69e
cmake: Substantial cleanups and simplifications
...
We now have a cmake-format config file.
We no longer use list variables for sources, instead using
target_sources when we need to add, in accordance with current
best practice. (This makes it a lot easier to edit too.) There's no more
include_directories(), add_definitions(), or other gently-deprecated
directory-scoped commands, nor any CMake scripts that include
a parent directory reference (named targets instead)
2021-11-12 09:48:37 -06:00
Moses Turner
c1d4314aad
d/ht: move DEBUG_GET_ONCE_LOG_OPTION to ht_driver.cpp (NFC)
...
Fixes an annoying warning.
2021-11-08 08:11:26 -06:00
Simon Zeni
49d2d81940
d/ht: split ht_algorithm into source and header
2021-11-08 13:56:37 +00:00
Simon Zeni
39bc129564
d/ht: split ht_models into source and header
2021-11-08 13:56:37 +00:00
Simon Zeni
7618a7e34d
d/ht: split ht_nms into source and header
2021-11-08 13:56:37 +00:00
Simon Zeni
83630efc3d
d/ht: split ht_image_math into source and header
2021-11-08 13:56:37 +00:00
Simon Zeni
44b46a28bf
d/ht: split ht_hand_math into source and header
2021-11-08 13:56:37 +00:00
Jakob Bornecrantz
2a536f17d1
cmake: Remove missed source array
2021-11-05 15:56:14 +00:00
Ryan Pavlik
9ab69a2c99
d/arduino/device: Fix it's vs its
2021-11-03 17:28:56 -05:00
Ryan Pavlik
ebde5344a1
cmake: Make compilation of the sample driver optional.
2021-11-03 17:04:05 -05:00
Ryan Pavlik
55d16046eb
doc: Update driver writing documentation
2021-11-03 17:04:02 -05:00
Ryan Pavlik
33e367ee42
drivers: Add a sample driver intended for use as a template.
2021-11-03 17:00:28 -05:00
Ryan Pavlik
e2c6fbdd9a
cmake: Inline lists of sources for drivers, per current best practice
2021-11-03 17:00:28 -05:00
Simon Zeni
c67587c066
d/ht: improve anchor data for hand detector
2021-11-01 17:54:26 -05:00
Jason McNew
fd065cca6e
d/wmr: Fix segfault if unsupported HoloLens Sensors device is present.
2021-10-31 17:07:55 +00:00
Mateo de Mayo
f84629ccbc
d/rs: Split SLAM source out of rs_hdev
...
(This temporarily disables the RealSense SLAM stream as there is
nothing starting it until the next commit)
2021-10-28 11:40:49 +00:00
Mateo de Mayo
0202cb9223
st/prober: Improve usage of SLAM tracking frameservers
...
Use a similar "hardcoded" idea as in p_factory_ensure_frameserver.
This fix usage of SLAM sources in other contexts like calibration, at the
cost of requiring a device to call create_tracked_slam at least once.
(again, similar to how psmv/psvr/hand tracking work already)
2021-10-28 11:40:49 +00:00
Mateo de Mayo
773eccad6c
docs: Move some driver entities into @addtogroup and other NFC
2021-10-28 11:40:49 +00:00
Ryan Pavlik
05ed361601
t/psvr: Fix some truncation warnings.
2021-10-19 16:49:13 -05:00
Ryan Pavlik
b62fb33e36
d/wmr: Fix some truncation warnings.
2021-10-19 16:11:34 -05:00
Mateo de Mayo
1095c3a2c1
d/rs: Add pose correction for Basalt
2021-10-16 17:03:02 -03:00
Moses Turner
d440a23888
d/dai: rename things to either 'monocular' or 'grayscale'
2021-10-13 16:26:26 -05:00
Jakob Bornecrantz
be9a91fd12
d/dai: Explicitly close queue to avoid use after free errors from asan
2021-10-12 20:44:32 +01:00
Jakob Bornecrantz
6f22d4d819
d/dai: Handle cameras without calibration data
2021-10-12 15:37:42 +01:00
Jakob Bornecrantz
c5b2c5827b
d/dai: Some tidy
2021-10-11 21:45:38 +01:00
Jakob Bornecrantz
a5fc2fa49e
d/dai: Expose function to get stereo calibration
2021-10-10 00:16:39 +01:00
Jakob Bornecrantz
3fd740e6e9
d/dai: Add support for a stereo pipeline via slam_stream_start
2021-10-09 22:28:11 +01:00
Jakob Bornecrantz
344b5d9755
d/dai: Refactor out create function
2021-10-09 22:28:11 +01:00
Jakob Bornecrantz
e1dd59f749
d/dai: Refactor out pipeline setup to helper function
2021-10-09 22:28:11 +01:00
Jakob Bornecrantz
b8e2cbd9ee
d/dai: Add code to extract calibration of gray stereo cameras
2021-10-09 22:28:11 +01:00
Jakob Bornecrantz
8c242c1bc1
d/dai: Work around RGB_OV_9782 not yet being supported on main
2021-10-09 22:28:11 +01:00
Jakob Bornecrantz
c2b00ebb18
d/dai: Switch default logging to info
2021-10-09 22:28:11 +01:00
Mateo de Mayo
7f247604e3
build: Use pkg-config for finding SLAM systems in CMake and other minor improvements
2021-10-07 14:33:10 -03:00
Mateo de Mayo
df3c36ba0c
d/rs: Improve how hdev handles IMU samples
...
- Prevent race conditions with a lock
- Check that timestamps "domains" are the same across samples
- Use faster sensor to push the IMU sample instead of always gyro
2021-10-06 16:41:18 -03:00
Mateo de Mayo
67a5946778
xrt: Add units to xrt_imu_sample fields
...
After using the structure a bit more, and realizing that while different components
sometimes use different units, it is easier to force them to send the imu_samples
in a standardized unit.
2021-10-06 16:41:18 -03:00
Moses Turner
5abd3b3570
d/ht: Switch to new get_hand_tracking signature and update tracking
2021-10-02 23:09:36 +01:00
Moses Turner
322d5b8f2d
d/remote: Switch to new get_hand_tracking signature
2021-10-02 23:09:25 +01:00
Moses Turner
621681ffb4
d/vive: Switch to new get_hand_tracking signature
2021-10-02 23:09:14 +01:00
Moses Turner
9f0de997d1
d/ulv2: Switch to new get_hand_tracking signature
2021-10-02 23:08:12 +01:00
Moses Turner
193dcc8776
d/survive: Switch to new get_hand_tracking signature
2021-10-02 23:08:09 +01:00
Moses Turner
bec03a09bc
d/multi: Switch to new get_hand_tracking signature
2021-10-02 23:08:06 +01:00
Moses Turner
b067d3b0c2
d/vf: Fix typo
2021-10-02 23:05:16 +01:00
Mateo de Mayo
a409ed6141
d/rs: Fix build errors and warnings when compiling without a SLAM dependency
2021-10-01 23:22:16 -03:00
Moses Turner
140a39f9c4
d/ns: move ns_hmd_create to ns_hmd.h
2021-10-01 13:54:19 -05:00
Simon Zeni
036eb19343
d/ht: fix stack overflow on hand detection
2021-09-30 14:30:22 -04:00
Jakob Bornecrantz
c8d57a4ff3
d/vive: Add some more tracing
2021-09-29 21:38:33 +00:00
Jakob Bornecrantz
98c1cb5358
d/vive: Add tracing support focusing on device message processing
2021-09-29 21:38:33 +00:00
Christoph Haag
d2e64d8b75
d/survive: Add SURVIVE_LH_GEN env var
...
On some systems libsurvive gets randomly confused and misdetects lh2 as lh1.
This causes the config to be pruned and is very annoying.
2021-09-29 23:03:20 +02:00
Mateo de Mayo
6f20b6d88f
d/rs: Add host-SLAM tracked device (hdev)
...
This device was tested on a D455 but should work on any other RealSense camera
that supports camera and IMU streams (even the T265), given that you properly
configure the external SLAM config file.
2021-09-28 16:11:42 -03:00
Mateo de Mayo
95e22ae7c8
d/rs: Implement new probing logic to choose between ddev and hdev creation
...
Also adds a rs_container to keep track of RealSense created objects that
are useful to have during execution.
2021-09-28 16:07:14 -03:00
Mateo de Mayo
961c7c8ed1
d/rs: Rename 6dof to ddev
...
This commit introduces the term `ddev` for a "Device-SLAM tracked device",
it will be useful to differentiate itself from the `hdev`
("Host-SLAM tracked device") that will be introduced in next commits.
Note that "config_realsense" json field was renamed to "config_realsense_device"
and the device's serial (used for tracking overrides) changed from
"Intel RealSense 6-DOF" to "Intel RealSense Device-SLAM".
2021-09-28 16:07:08 -03:00
Mateo de Mayo
f70752aeda
d/qwerty: Fix tracking overrides and correct multi typo
2021-09-28 16:07:03 -03:00
Mateo de Mayo
debdb11e02
t/slam: Miscelaneous NFC changes
...
- Use @todo instead of TODO for doxygen
- Improve the slam_tracker interface documentation
- Move euroc functions declared by macros into extern C
2021-09-28 12:49:36 +00:00
Mateo de Mayo
1a5af03111
t/slam: Move pose corrections into the tracked devices
...
This discards the pose correction logic used that was for the D455 not for
an euroc dataset. It will be reintroduced in a later commit with an
appropriate device.
2021-09-28 12:49:36 +00:00
Mateo de Mayo
0b7f3d92ef
d/euroc: Use new debug frame sinks
2021-09-20 14:59:18 +00:00
Jakob Bornecrantz
9bfabdf706
d/ht: Disable sink variable tracking
2021-09-17 13:39:50 +01:00
Jakob Bornecrantz
5d4adebbbe
d/euroc: Disable sink variable tracking
2021-09-17 13:39:50 +01:00
Jakob Bornecrantz
8ccd0c3dff
d/v4l2: Use u_sink_debug for debugging
2021-09-17 13:39:50 +01:00
Mateo de Mayo
6de1ab8f8e
d/euroc: Add euroc device
2021-09-15 19:03:55 +00:00
Mateo de Mayo
3c618ec20c
d/euroc: Improve euroc player
...
- Implement xrt_slam_source instead of xrt_fs
- Merge intermediate sink pointers into xrt_slam_sinks in_sinks
- Add out_sinks for downstream passage of data
- Make speed playback option a double (float was not precise enough)
- Add use_source_ts playback option to optionally use original dataset timestamps
- Fix colored datasets not working
2021-09-15 19:03:55 +00:00
Moses Turner
56f34d23b9
d/vive: Use m_relation history for HMD
2021-09-15 12:13:14 -05:00
Moses Turner
7f88583d37
d/survive: Use m_relation_history for HMD and controllers
2021-09-15 12:13:14 -05:00
Moses Turner
f9d540aee0
d/rs: Use m_relation_history for 6DOF
2021-09-15 12:13:14 -05:00
Moses Turner
7f69dc795f
d/ht; aux/util: Move ringbuffer implementation into aux/util
2021-09-15 12:13:00 -05:00
Moses Turner
ee429ac279
d/ht: make blackbar work with non-square inputs
2021-09-14 14:09:03 +01:00
Jakob Bornecrantz
5192e82948
d/ht: Tidy includes
2021-09-13 21:47:05 +01:00
Jakob Bornecrantz
4cdfadf3e0
d/ht: Tidy view creation
2021-09-13 21:47:04 +01:00
Christoph Haag
cc53994b4f
d/survive: Count ahead of time how many configs to wait for
...
On recent libsurvive versions, loading the config of the HMD takes quite
long when only a HMD is active without controllers.
Instead of adjusting the timeout value all the time, rework how we wait for
the device configs.
Previously we just waited for device configs to arrive until no new configs
arrive for a predefined timeout.
Now we count how many objects of interest libsurvive actually knows, and then
only wait until the configs for this many devices are loaded.
This should make initialization of the survive driver faster and more robust.
2021-09-04 02:35:59 +02:00
Moses Turner
d7fc516cfb
d/vive: Use hand tracking if VIVE_USE_HANDTRACKING is set
2021-09-03 21:06:18 +00:00
Moses Turner
db4a50410c
d/survive: Use hand tracking if there aren't any controllers
...
rebase-survive
2021-09-03 21:06:18 +00:00
Moses Turner
624a676f56
d/ht: Change everything
2021-09-03 21:06:18 +00:00
Moses Turner
efbc4cd9e5
d/survive: Allow users to set wait time through config_v0.json
...
Necessary for Moses - for some reason, with no controllers, his headset takes forever to probe
2021-09-03 21:06:18 +00:00
Moses Turner
815aa47ac2
d/vf: Add new format for stereo hand tracking
2021-09-03 21:06:18 +00:00
Jakob Bornecrantz
992642bdf8
d/vive: Tidy warning
2021-09-01 22:00:46 +01:00
Jakob Bornecrantz
407461fd4f
d/vive: Silence warnings from when the camera is running
2021-09-01 22:00:46 +01:00
Mateo de Mayo
97c59bd59f
d/euroc: Add EuRoC dataset reader driver.
...
A squash of the following commits.
d/euroc: Add Euroc driver initial boilerplate
d/euroc: Implement xrt_frame_node interface
d/euroc: Implement mainloop thread start flow
d/euroc: Parse samples from data.csv files
d/euroc: Determine dataset information at start
Also use that information to provide a xrt_fs mode and to know if
right camera images are available to use.
d/euroc: Produce frames for left and right sinks
d/euroc: Implement xrt_imu_sink
d/euroc: Implement playback properties
d/euroc: Implement pausing with UI state machine
d/euroc: Show IMU and progress data in UI
d/euroc: Make sure to give in nullptr or valid pointers to wrapL8
d/euroc: Unreference frames when done with them
d/euroc: Fix leaks with debug sinks, and work around free issue
d/euroc: Refactor playback to produce samples with current timestamps
d/euroc: Fix double free by separating debug sinks from downstream sinks
2021-08-27 18:38:40 +01:00
Jakob Bornecrantz
601a6832b8
d/vive: Use u_device_free to free distortion mesh data
2021-08-20 17:09:05 +01:00
Jakob Bornecrantz
df484c508d
d/vive: Tidy
2021-08-20 16:56:15 +01:00
Jakob Bornecrantz
d61cf5dc78
d/vive: Make sure to properly destroy controller
2021-08-20 16:56:15 +01:00
Jakob Bornecrantz
a89c8309c7
u/vive: Pass in logging level to parse function
2021-08-20 13:42:11 +01:00
Jakob Bornecrantz
00aca14832
u/vive: Add vive_config_teardown function to free any pointers that needs freeing.
2021-08-20 13:42:11 +01:00
Moses Turner
6dcf10a4fc
d/rs: clean up device list
2021-08-20 12:28:30 +01:00
Moses Turner
74c93f83f7
d/survive: Use u_device_free to free distortion mesh data
2021-08-20 12:28:22 +01:00
Moses Turner
e8907afeed
d/rs: Free JSON
2021-08-20 12:28:19 +01:00
Jakob Bornecrantz
003ade3006
d/ht: Don't leak when we can't create the hand-tracker tracker
2021-08-19 23:20:24 +01:00
Moses Turner
a1574312d2
d/v4l2: more paranoid logging
2021-08-18 13:17:17 -05:00
Jakob Bornecrantz
f27b50ff5a
d/dummy: Add option to rotate around up axis
2021-08-17 12:04:49 +01:00
Jakob Bornecrantz
a6bdf92fd0
d/vf: Remove debug message
2021-08-16 21:18:52 +01:00
Moses Turner
b2ef01af10
d/vf: Add trace marker
2021-08-16 21:18:46 +01:00
Jakob Bornecrantz
fb92a3f27f
d/vf: Add tracing support
2021-07-16 15:29:27 +00:00
Jakob Bornecrantz
a6a5b3dda6
d/vf: Refactor frame handling
2021-07-16 15:29:27 +00:00
Jakob Bornecrantz
f04a113693
d/vf: Tidy
2021-07-16 15:29:27 +00:00
Christoph Haag
be0b4f496a
d/ulv2: fix maybe uninitialized warning
...
../src/xrt/drivers/ultraleap_v2/ulv2_driver.cpp: In function 'void* leap_input_loop(void*)':
../src/xrt/drivers/ultraleap_v2/ulv2_driver.cpp:290:29: warning: 'hi' may be used uninitialized in this function [-Wmaybe-uninitialized]
290 | int hi; // hand index
| ^~
2021-07-15 01:35:49 +02:00
Christoph Haag
86e42858b7
d/qwerty: Add reasonable alternative code paths for asserts
...
In release builds asserts will be disabled, so we should try to handle the
assert cases reasonably.
This commit fixes several unused variable warnings when asserts are disabled.
2021-07-15 01:19:13 +02:00
Christoph Haag
2b94b2b165
d/ns: Fix may be used uninitialized warnings
2021-07-15 01:10:40 +02:00
Jakob Bornecrantz
94d029ed15
d/dai: Add tracing support
2021-07-09 20:23:49 -05:00
Jakob Bornecrantz
09513d73af
d/v4l2: Add tracing support
2021-07-09 21:43:21 +01:00
Jan Schmidt
8192e74f76
d/wmr: Compute visible region for render rectangle.
...
Use the distortion function to calculate the visible limits of the
display and then configure the rendered FoV angles accordingly.
2021-06-26 03:52:32 +10:00
Jan Schmidt
dfe932ffd7
d/wmr: Add an extensible headset map.
...
Add a mechanism for recognising known headsets and handling specific
init/deinit sequences for those that need it.
2021-06-26 03:52:29 +10:00
Dan Weatherford
6bb3577b1b
d/wmr: Implement Lenovo explorer support.
...
Recognise the Lenovo explorer device
2021-06-26 03:52:29 +10:00
Jan Schmidt
bad625965a
d/wmr: Extract JSON configuration from the firmware.
...
Pull in the WMR config obfuscation key and extract the JSON
calibration data.
Based on a patch from Dan Weatherford <sabretooth@gmail.com>
2021-06-26 03:52:26 +10:00
Dan Weatherford
3ca80e9607
d/wmr: Add functions to read raw config data
...
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
2021-06-26 03:52:26 +10:00
Jan Schmidt
0cf7b4a9b3
d/wmr: Add render distortion configuration
...
Take the parameters from the headset configuration and the existing
render FoV, and use them to instantiate a distortion mesh.
TODO: Reverse the distortion in order to calculate good FoV range
that covers the full view for each headset.
2021-06-26 03:52:23 +10:00
Jan Schmidt
f663727b07
d/wmr: Add some groundwork for config parsing.
...
Sketch out some groundwork for parsing WMR config blocks,
using some hard-coded values from my headset for now. Later,
this will be parsed from the headset JSON blob.
2021-06-26 03:52:16 +10:00
Moses Turner
7461c57043
cmake: make ulv2 build a little better
2021-06-23 23:40:43 +01:00
Jakob Bornecrantz
47470cc8e2
d/ns: Use fread when reading from config file
2021-06-21 12:29:31 -05:00
Moses Turner
3569e4f2ed
d/ns: Fix 3D distortion FOV calc
...
co-authored-by: Nico Zobernig <nico.zobernig@gmail.com>
2021-06-21 12:29:31 -05:00
Moses Turner
bcadbea3aa
d/ns: Clean utility_northstar a bit
2021-06-21 12:29:31 -05:00
Moses Turner
7e385aa810
d/ns: Big refactor
2021-06-21 12:29:31 -05:00
Christoph Haag
ccb9777a47
d/vive: Set hand tracking values to actives
...
fixes !716 which introduced the need for setting hand joint active status.
2021-06-16 23:17:07 +02:00
Moses Turner
6285223fd2
d/dai: Even more tidy
2021-06-11 18:49:50 +01:00
Jakob Bornecrantz
576593010f
d/dai: Add code so we can open mono cameras with compile time option
2021-06-11 16:48:30 +00:00
Jakob Bornecrantz
96248931cc
d/dai: Refactor a bit so we can at compile time support OAK-D
2021-06-11 16:48:30 +00:00
Moses Turner
37cbbb6660
d/dai: Add simple DepthAI driver
...
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
2021-06-10 14:32:07 -05:00
Jakob Bornecrantz
606b23b5c4
d/rs: Tidy code (NFC)
2021-05-18 03:48:50 +01:00
Moses Turner
5cb130cd08
d/rs: cleanup and initialize u_config_json with zero
2021-05-18 01:22:39 +00:00
Jae Lee
df9ebf261f
d/illixr: Update ILLIXR driver.
2021-05-16 22:59:32 +00:00
Moses Turner
302e72b2fe
d/rs: remove superfluous rs_update_offset; add config options
2021-05-13 17:57:34 -05:00
Jakob Bornecrantz
5c916fd77d
d/illixr: Use u_device_get_view_pose helper
2021-05-04 16:37:51 +00:00
Ryan Pavlik
348b7dff3a
d/wmr: fix doxygen warning
2021-05-04 11:21:46 -05:00
Ryan Pavlik
4ef5b65487
d/wmr: Fix typo
2021-04-30 17:57:50 -05:00
Ryan Pavlik
ad31345986
d/qwerty: Fix doxygen warnings.
...
Comments were a bit too clever to work across doxygen versions.
2021-04-30 17:34:21 -05:00
Ryan Pavlik
e82fafb186
cmake: Allow C++17 mode on all platforms, all modules.
...
Remove per-module C++17 settings.
2021-04-30 15:37:04 -05:00
Jakob Bornecrantz
daccde940e
d/wmr: Fix accel axis conversion
2021-04-28 23:26:09 +00:00
Moses Turner
f09e02c517
d/ns: fix resolution from 2880x1440 to 2880x1600
2021-04-28 18:07:07 -05:00
Ryan Pavlik
c6a3dec08e
doc: Rename sample NorthStar config for file extension reasons, and add schema
2021-04-28 21:13:34 +00:00
Jakob Bornecrantz
0c685cf7ba
d/qwerty: Use u_device_get_view_pose helper
2021-04-27 22:18:39 +00:00
Jakob Bornecrantz
b81d3138af
d/remote: Assert if st/oxr calls the wrong thing (NFC)
2021-04-27 17:34:28 +01:00
Jakob Bornecrantz
385af79e82
d/survive: Add comment and assert to get_view_pose (NFC)
2021-04-27 17:19:18 +01:00
Jakob Bornecrantz
a6b908f3ce
d/vive: Add comment and assert to get_view_pose (NFC)
2021-04-27 16:51:56 +01:00
Jakob Bornecrantz
8277df418d
xrt: Make eye_relation argument to xrt_device_get_view_pose const (NFC)
2021-04-27 01:44:13 +01:00
Ryan Pavlik
334b59f9fa
d/qwerty: Port to new unit-vector defines
2021-04-26 22:38:42 +00:00
Ryan Pavlik
48d043796c
d/vive: Port to using new zero/identity defines
2021-04-26 22:38:42 +00:00
Ryan Pavlik
c3ce7f33a0
d/ht: Port to using new zero/identity defines
2021-04-26 22:38:42 +00:00
Ryan Pavlik
06eab724ec
d/remote: Port to using new zero/identity defines
2021-04-26 22:38:42 +00:00
Ryan Pavlik
fde3e631cf
d/qwerty: Port to using new zero/identity defines
2021-04-26 22:38:42 +00:00
Ryan Pavlik
85ea0f8f78
d/oh: Port to using new zero/identity defines
2021-04-26 22:38:42 +00:00
Ryan Pavlik
71fabf50c5
d/north_star: Port to using new zero/identity defines
2021-04-26 22:38:42 +00:00
Ryan Pavlik
e44c6d56c7
d/wmr: Port to u_device_get_view_pose
2021-04-26 22:38:42 +00:00
Ryan Pavlik
3b0a6a558c
d/vive: Port to u_device_get_view_pose
2021-04-26 22:38:42 +00:00
Ryan Pavlik
2d47c496e6
d/survive: Port to u_device_get_view_pose
2021-04-26 22:38:42 +00:00
Ryan Pavlik
6682bb0291
d/hdk: Port to u_device_get_view_pose
2021-04-26 22:38:42 +00:00
Ryan Pavlik
52c00436c7
d/remote: Port to u_device_get_view_pose
2021-04-26 22:38:42 +00:00
Ryan Pavlik
89895be83b
d/psvr: Port to u_device_get_view_pose
2021-04-26 22:38:42 +00:00
Ryan Pavlik
7c5342efe2
d/oh: Port to u_device_get_view_pose
2021-04-26 22:38:42 +00:00
Ryan Pavlik
2774b3375f
d/north_star: Port to u_device_get_view_pose
2021-04-26 22:38:42 +00:00
Ryan Pavlik
d45e13642e
d/dummy: Port to u_device_get_view_pose
2021-04-26 22:38:42 +00:00
Ryan Pavlik
f4a1c5344b
d/android_sensors: Port to u_device_get_view_pose
2021-04-26 22:38:42 +00:00
Jakob Bornecrantz
1ef79820e6
d/wmr: Clarify struct layout (NFC)
2021-04-23 22:48:56 +01:00
Jakob Bornecrantz
0807ce6ddd
d/wmr: Only take the lock once per received packet
2021-04-23 22:47:40 +01:00
Jakob Bornecrantz
13d127035b
d/wmr: Remove raw_accel and raw_gyro fields (NFC)
2021-04-23 19:06:05 +01:00
Jakob Bornecrantz
1b4b180e61
d/wmr: Do prediction when returning poses
2021-04-23 18:24:13 +01:00
Jakob Bornecrantz
a41a869c71
d/wmr: Rename variables and tidy code (NFC)
2021-04-23 14:50:58 +01:00
Christoph Haag
2b70189b45
d/wmr: log at least one space in trace log
...
Fixes warnings
../src/xrt/drivers/wmr/wmr_hmd.c:83:16: warning: zero-length gnu_printf format string [-Wformat-zero-length]
83 | WMR_TRACE(wh, "");
| ^~
2021-04-22 02:41:48 +02:00
Jan Schmidt
bc4661aa48
wmr: Don't start reading thread until setup is complete.
...
Make sure the headset struct is fully configured before
starting the reading thread, otherwise we can get a crash if an
IMU update arrives for processing before the 3dof fusion is
ready.
2021-04-22 03:39:16 +10:00
Ryan Pavlik
4488699e55
d/ultraleap_v2: Add missing copyright/license header, reflow, and fix markdownlint warnings.
2021-04-21 11:14:49 -05:00
Christoph Haag
885a668a03
d/oh: Fix number of inputs for generic controller
...
fixes memory corruption
2021-04-20 12:43:56 +02:00
nima01
027ce21bd5
d/wmr: Initial 3DoF WinMR driver
...
Only supports HP Reverb G1 and G2 for now.
Squash of the following commits:
Initial boilerplate code for HP Reverb G1 driver implementation
Detect and open MS HoloLens Sensors interface
Power up HMD display when headset is detected, and som general code cleanup
Add Reverb G2 PID
reverb_g1: Fix defines
reverb_g1: Run clang format
wmr: Rename Reverb G1 driver to WMR driver
d/wmr: Code style
d/wmr: Flesh out driver a bit more
d/wmr: Code style
Add basic 3dof rotational tracking
d/wmr: Code style
d/wmr: More tidy
xrt: Remove XRT_DEVICE_REVERB_G1
d/wmr: Even more tidy
d/wmr: Changes for Reverb G2
d/wmr: Fixes since last commit
wmr: Fix the meson build and auto-enable the driver
d/wmr: Sleep for compositor to get modes
d/wmr: Use os_hid for control device
d/wmr: Remove hidapi as a dependancy
d/wmr: Move sensor reading to own thread and fix locking
d/wmr: Read from control device and handle more unknown messages
d/wmr: Decode IPD value from control device
d/wmr: Remove all left over dummy driver fields
Co-author: nima01 <nima_zero_one@protonmail.com>
Co-author: Jakob Bornecrantz <jakob@collabora.com>
Co-author: Jan Schmidt <jan@centricular.com>
2021-04-19 13:33:01 +00:00
Christoph Haag
26d93c52df
d/multi: Use supplied pose input name enum
2021-04-19 12:53:47 +02:00
Christoph Haag
598c1a3b56
d/ohmd: Only set output name if there is an output
...
This needs to be revisited after OpenHMD gets a proper API for haptic feedback.
closes #119
2021-04-16 16:41:44 +02:00
Jakob Bornecrantz
0e18e1f8b0
d/qwerty: Add SDL include dirs
2021-04-15 21:27:13 +00:00
Moses Turner
7cd2a33737
drivers: switch blend mode to array
2021-04-11 04:08:49 -05:00
Christoph Haag
08e39a1a0e
d/survive: Increase device detection timeout
...
With libsurvive 20127ef1bbb9206c9b429de47b891fc71d9df355 it can take a bit longer for devices to appear.
2021-04-08 19:37:09 +02:00
Jakob Bornecrantz
98f81734c8
d/vf: Add clock overlay to videotestsource
2021-04-03 03:07:21 +01:00
Jakob Bornecrantz
1155106dc1
d/v4l2: Be more tolorant for long pipelines
2021-04-03 03:07:21 +01:00
Christoph Haag
3a60df33aa
d/openhmd: Add support for rift CV1 controllers
2021-04-02 15:48:10 +00:00
Jakob Bornecrantz
9695e90d95
d/vive: Setup the variable tracking for imu fusion
2021-04-02 16:00:42 +01:00
Moses Turner
55b86fe815
d/ulv2: Create the driver.
...
Co-authored-by: Moses Turner <mosesturner@protonmail.com>
Co-authored-by: Christoph Haag <christoph.haag@collabora.com>
2021-04-01 02:10:33 +02:00
Moses Turner
b319371500
d/survive: for now always set xrt_hand_joint_set->is_active to true
2021-04-01 02:02:26 +02:00
Moses Turner
d54b653751
d/multi: correctly override hand pose for "attached" tracking
2021-04-01 02:02:26 +02:00
Christoph Haag
4061bf7707
d/multi: Add "attached" tracking override type
...
Example usage: Leap Motion attached to a Northstar headset.
2021-04-01 02:02:26 +02:00
Mateo de Mayo
5c6158cc8b
d/qwerty: Implement controller pose reset
2021-03-29 15:42:01 -03:00
Mateo de Mayo
5e6c4b63a5
d/qwerty: Implement controller parenting to HMD
...
Although, it only works for the qwerty HMD.
2021-03-29 15:42:01 -03:00
Mateo de Mayo
7f00ca3da2
d/qwerty: Improve selection of default controller
2021-03-29 15:41:59 -03:00
Mateo de Mayo
8b81afeb59
d/qwerty: Implement haptic output
2021-03-29 15:41:25 -03:00
Mateo de Mayo
4ea696bfdd
d/qwerty: Implement select and menu click inputs
2021-03-29 15:41:25 -03:00
Mateo de Mayo
582a287dd4
d/qwerty: Use u_logging.h with QWERTY_LOG env var
2021-03-29 15:41:25 -03:00
Mateo de Mayo
ef74e24abe
d/qwerty: Add variable tracking widget to UI
2021-03-29 15:41:25 -03:00
Mateo de Mayo
a1b70c746b
d/qwerty: Add qwerty_system for driver management
2021-03-29 15:41:25 -03:00
Mateo de Mayo
f8f14a1d9e
d/qwerty: Move left/right controllers with CTRL/ALT
...
In qwerty_sdl.c the u_device_assign_xdev_roles function is used for
knowing which devices are being used by the user. These could
be other physical devices. And as such the idea of a default focused
device is introduced and depends upon which devices the user already
has. With this change qwerty devices should be properly introduced
to fill any device the user may not have.
2021-03-29 15:41:25 -03:00
Mateo de Mayo
62e05f267a
d/qwerty: Add still qwerty controllers
...
By making an initial inheritance hierarchy, thus separating qwerty_hmd
from qwerty_controller, both inheriting from qwerty_device
2021-03-29 15:41:25 -03:00
Mateo de Mayo
e13a6fc2fd
d/qwerty: Add QWERTY_ENABLE environment variable
2021-03-29 15:41:25 -03:00
Mateo de Mayo
183ee4f4ee
d/qwerty: Implement mouse input and sprinting
2021-03-29 15:41:25 -03:00
Mateo de Mayo
ec340fabe2
d/qwerty: Implement WASDQE and arrow keys HMD movement
2021-03-29 15:41:25 -03:00
Mateo de Mayo
12d52193da
d/qwerty: Connect the debug UI to the Qwerty driver
...
It was necessary to add a list of xdevs to oxr_sdl2_hack_start and to
populate such list from its callees.
That includes sdl2_program.gui_program->xdevs which was not being filled
for the monado-service target.
2021-03-29 15:41:25 -03:00
Mateo de Mayo
e6db1fae74
d/qwerty: Implement still HMD creation
2021-03-29 15:41:25 -03:00
Mateo de Mayo
0340ae3cc8
d/qwerty: Add Qwerty driver initial boilerplate
...
The Qwerty driver will emulate an HMD and controllers through the use
of mouse and keyboard, and in particular, using the SDL key events
generated from the debug GUI.
2021-03-29 15:41:25 -03:00
Ryan Pavlik
98886d5317
d/multi: Fix contagious doxygen warning.
2021-03-26 17:10:53 -05:00
Christoph Haag
1f25acfa94
d/vive: remove duplicate range record error message
2021-03-24 18:45:00 +00:00
Christoph Haag
a2b49138e7
d/vive: change imu range report error->info
2021-03-24 18:45:00 +00:00
Christoph Haag
3ba9a9411a
d/vive: change config start report error->info
...
And clarify the message that it happens for example for powered off controllers.
2021-03-24 18:45:00 +00:00
Christoph Haag
f6210be44a
d/survive: Change event for unknown object error->info
2021-03-24 18:45:00 +00:00
Christoph Haag
f9c2ab7ed7
d/ht: Change hand tracking not set up error->debug
2021-03-24 18:45:00 +00:00
Jakob Bornecrantz
67339a4d7c
d/remote: Fix warning
2021-03-24 14:09:13 +00:00
Christoph Haag
857b831e30
d/illixr: Add driver name
2021-03-22 01:25:44 +01:00
Jakob Bornecrantz
c73146c6fd
d/psvr: Ensure that timestamps are always after each other
2021-03-17 01:10:02 +00:00
Christoph Haag
a887ddcc3c
d/hdk: Use a mutex for get_tracked_pose
2021-03-09 12:39:12 +00:00
Christoph Haag
5c014193f7
d/vive_controller: Use a mutex for get_tracked_pose and update_inputs
2021-03-09 12:39:12 +00:00
Christoph Haag
aa65480607
d/vive: Use a mutex for get_tracked_pose
2021-03-09 12:39:12 +00:00
Christoph Haag
484d63a4eb
d/survive: Use thread for processing events
...
Due to an oversight libsurvive events were only processed when inputs were updated.
If only triggering event processing when an event is needed, we would need to process
a random number of events, causing random overhead.
Rather, follow the model of other drivers and process events in a thread.
This required creating a local copy of the xrt_input arrays.
Fixes #113
Fixes !679
v2: Use a mutex for get_tracked_pose and update_inputs
2021-03-09 12:39:12 +00:00
Mateo de Mayo
75e908552f
doc: Fix missing entities from modules documentation
2021-03-06 20:34:35 -03:00
Christoph Haag
12ad9a6766
d/ns: Remove tracker logic in favor of tracking overrides
2021-03-02 19:43:19 +01:00
Christoph Haag
ff16eab9df
xrt: implement multi device wrappers for tracking overrides
...
Example config ~/.config/monado/config_v0.json
{
"active": "tracking",
"tracking": {
"version": 0,
"tracking_overrides": [
{
"target_device_serial": "LHR-E8CC625B",
"tracker_device_serial": "LHR-1D80A098",
"offset": {
"orientation": {
"x": 0,
"y": 0,
"z": 0,
"w": 1
},
"position": {
"x": 0,
"y": 0,
"z": 0
}
}
}
]
}
}
v2: Add multi device wrapper
2021-03-02 19:43:19 +01:00
Christoph Haag
13db11901c
d/rs: Add prober and create xrt_device for rs
2021-03-02 19:43:19 +01:00
Christoph Haag
6c6c70f700
d/rs: exit early if no realsense device is connected
...
Previously we only exited after rs2_pipeline_start_with_config timed out.
2021-03-02 19:27:36 +01:00
Christoph Haag
aa7b3978b7
d/rs: Initialize offset to identity
2021-03-02 19:27:36 +01:00
Christoph Haag
279520c302
d/survive: Use autoprober interface
2021-03-02 17:50:19 +00:00
Christoph Haag
6914bae78e
d/ns: Add autoprober name
2021-03-02 17:50:19 +00:00
Christoph Haag
9ea02ac032
d/vive: Give consistent name to HMD
2021-03-02 17:50:19 +00:00
Christoph Haag
6e852ec9a0
d/survive: Give consistent name to HMD
2021-03-02 17:50:19 +00:00
Christoph Haag
92d94ddcc7
d/psvr: Don't report created device if creation failed
2021-03-02 17:50:19 +00:00
Mateo de Mayo
116d77f52e
st/prober: Allow autoprobe function to create more than one device.
2021-02-28 15:27:52 +00:00
Ryan Pavlik
0644521da9
d/ht: Fix typo in docs
...
Fixes doxygen warning.
2021-02-22 16:50:00 -06:00
Christoph Haag
4d1b5f033a
d/vive: Add controller rotation pose prediction
2021-02-17 19:59:59 +01:00
Christoph Haag
ab70115a89
d/vive: Add HMD rotation pose prediction
2021-02-17 19:59:52 +01:00
Christoph Haag
b77630ba57
d/remote: define _BSD_SOURCE for SOL_TCP on musl
2021-02-15 22:04:38 +01:00
Jakob Bornecrantz
a6fe8e8b1e
st/prober: Clarify xrt_prober_get_string_descriptor
2021-02-15 16:13:06 +00:00
Christoph Haag
d56834f7a9
d/psmv: Use bluetooth mac as serial
2021-02-15 14:55:10 +01:00
Christoph Haag
d5e74b959a
d/vive: Improve naming scheme
2021-02-12 00:38:52 +01:00
Christoph Haag
c66aea3311
d/survive: Improve device naming scheme
2021-02-12 00:38:52 +01:00
Christoph Haag
c67a6ccd34
xrt: Add xrt_device::serial for uniquely identifying devices if possible
...
d: Make controller serials unique by appending number
For drivers that do not (yet) know a persistent unique id per device.
2021-02-12 00:38:51 +01:00
Christoph Haag
ea6d6bfb3f
d/rs: Use XRT_INPUT_GENERIC_TRACKER_POSE instead of XRT_INPUT_GENERIC_HEAD_POSE
2021-02-12 00:37:43 +01:00
Christoph Haag
9760f6d123
d/survive: Create devices for trackers
...
They can not be queried yet.
2021-02-12 00:37:43 +01:00
Christoph Haag
7e1408787a
d/survive: Update to new API and clean up
...
* Remove survive_device.{ctrl,hmd}::variant and use variant from config
* Use SurviveSimpleEventType_ConfigEvent to find connected devices
* Use SurviveSimpleEventType_PoseUpdateEvent for pose updates
2021-02-11 20:54:31 +01:00
Christoph Haag
3a02610e77
d/vive: Remove vive_controller_device::variant and use variant from config
2021-02-11 20:54:31 +01:00
Christoph Haag
f93209a1ed
d/vive: Remove vive_device::variant and use variant from config
2021-02-11 20:54:31 +01:00
Ryan Pavlik
d8aad83932
d/ht: Fix mistaken 2029 copyright date.
2021-02-11 09:28:12 -06:00
Jakob Bornecrantz
f8941fe5ee
d/vf: Declare dependency to avoid build issues
2021-02-02 13:53:48 +00:00
Jakob Bornecrantz
35da4a51ea
d/vf: Refactor code to add videotestsrc capability and break out gstreamer detection
2021-02-02 13:53:48 +00:00
Jakob Bornecrantz
5853103820
d/vive: Refactor out vive config code into auxiliary library
...
fix vive_config.h include for survive
2021-02-01 19:56:52 +01:00
Christoph Haag
b87c7d5e61
d/survive: Port to vive_config parsing
2021-02-01 15:23:19 +00:00
Christoph Haag
152587d728
build/cmake: Add vive_config include dir to survive
2021-02-01 15:23:19 +00:00
Christoph Haag
e8ac9ecee4
build/meson: Add vive_config include dir to survive
2021-02-01 15:23:19 +00:00
Christoph Haag
b2da8dfd07
build/cmake: make vive_config lib and link to vive, libsurvive
2021-02-01 15:23:19 +00:00
Christoph Haag
721b159312
build/meson: make vive_config lib and link to vive, libsurvive
2021-02-01 15:23:19 +00:00
Christoph Haag
a2e7e1c3d9
d/vive: Factor out controller config into separate struct
2021-02-01 15:23:19 +00:00
Christoph Haag
e4b0e6282d
d/vive: Factor out config into separate struct
2021-02-01 15:23:19 +00:00
Christoph Haag
232b8a7a49
d/ns: Fix informational message about example configs
...
v1 and v2 example configs are now in an exampleconfigs subdir.
2021-01-28 03:41:33 +01:00
Christoph Haag
be3c7dc480
d/ns: Pretty print json example config with jq
2021-01-28 03:36:18 +01:00
Jakob Bornecrantz
bfdd3a0a5b
d/v4l2: More buffers
2021-01-27 16:09:07 +00:00
Jakob Bornecrantz
bd257500b8
d/v4l2: Expose more information
2021-01-27 16:09:07 +00:00
Jakob Bornecrantz
17beaf8aa9
u/distortion: A stab in the dark to try and improve Index chromatic aberration
2021-01-25 00:12:03 +00:00
Jakob Bornecrantz
7d755427e3
u/distortion: Filp order of array access in distortion for Vive & Index
2021-01-25 00:12:03 +00:00
Jakob Bornecrantz
0c2d07808c
u/distortion: Make Vive & Index distortion center per channel
2021-01-25 00:12:03 +00:00
Dan Weatherford
bd381561d8
d/vive: Fix distortion center config parsing
2021-01-23 14:02:31 -06:00
Jakob Bornecrantz
360dbb63a7
d/ns: Work-around clang-format stuff
2021-01-15 16:38:54 +00:00
Jakob Bornecrantz
2b996f30c4
xrt: Reflow after column change
2021-01-15 13:50:32 +00:00
Christoph Haag
9c03f244b0
d/survive: Wait max 5 seconds for HMD and device configs
...
Sometimes the Index is in weird hardware states and doesn't respond properly.
In such cases, time out after 5 seconds and continue with no HMD present.
Previously we also relied on the controller configs to be already available
once the HMD config was available. In rare cases they were not - wait for
the controller configs with the same timeout.
2021-01-15 00:50:20 +01:00
Lubosz Sarnecki
fd58ccecc9
drv/android: Fill in xrt_device str.
2021-01-13 12:33:15 +01:00
Moses Turner
a1ed0b293c
d/rs: predict pose
...
d/rs: predict pose
2021-01-12 17:15:40 -06:00
Moses Turner
baf0e1acfb
d/rs: apply offset to t265 pose, d/ns: fix up some minor things, load realsense offset from json file
2021-01-12 15:28:18 -06:00
Moses Turner
fc47d0baad
d/ns: fix polynomial distortion math again, document nonsensical parts of polynomial math, update config files
2021-01-12 15:28:18 -06:00
Moses Turner
684daa3293
d/ns: possibly fix mesh calculation
...
also fix flipped tracking tracking
2021-01-12 13:01:37 -06:00
Moses Turner
365692e9ca
d/ns: Hopefully make v2 driver read ipd from baseline in v2 config files
2021-01-12 13:01:37 -06:00
Moses Turner
735d9654ec
d/ns: apply right eye fov correctly
2021-01-12 13:01:37 -06:00
Christoph Haag
637b5658da
d/survive: Predict poses for requested time
2021-01-11 23:50:01 +00:00
Jakob Bornecrantz
fdd87a0239
d/rs: Save a lot more data from the latest pose
2021-01-11 23:50:01 +00:00
Christoph Haag
679a1233ee
d/ht: Set up tracking origin with no offset
2021-01-06 13:29:36 +00:00
Christoph Haag
d85224e7c3
d/ht: Don't create hand tracking driver without successful init
...
Fixes a crash when no calibrated camera is found.
2021-01-06 13:29:36 +00:00
Christoph Haag
6d7dff360c
d/psmv: Scale rumble value on zcm1
...
The motor on my psmv controller does not rumble at amplitudes < 0.25.
2021-01-06 13:23:28 +00:00
Jae Lee
a71de192e0
illixr: Add initial integration.
2020-12-29 23:44:57 +00:00
Lubosz Sarnecki
853458ed37
xrt: Port commented printfs to u_logging.
2020-12-28 13:04:11 +00:00
Lubosz Sarnecki
0302a47e6f
d/realsense: Port to static u_logging.
2020-12-28 13:04:11 +00:00
Lubosz Sarnecki
8ce0f73585
d/vive/conteroller: Porting to static u_logging.
2020-12-28 13:04:11 +00:00
Lubosz Sarnecki
0708863e55
d/ohmd: Port to u_logging.
2020-12-28 13:04:11 +00:00
Lubosz Sarnecki
e0b2c4ad2e
d/ohmd: Make env variables consistent with driver name.
2020-12-28 13:04:11 +00:00
Lubosz Sarnecki
2dbb6a6bb8
d/daydream: Port to u_logging.
...
Port static printfs to u_logging.
2020-12-28 13:04:11 +00:00
Lubosz Sarnecki
1ba7d803a0
d/hydra: Port to u_logging.
...
Port printfs to static u_logging.
2020-12-28 13:04:11 +00:00
Lubosz Sarnecki
00b2778504
d/arduino: Port to u_logging.
2020-12-28 13:04:11 +00:00
Lubosz Sarnecki
6a2221115d
d/ns: Port to u_logging.
2020-12-28 13:04:11 +00:00
Lubosz Sarnecki
a9703f6b39
d/survive: Port to u_logging.
2020-12-28 13:04:11 +00:00
Lubosz Sarnecki
2be5e32b67
d/v4l2: Port to u_logging.
2020-12-28 13:04:11 +00:00
Lubosz Sarnecki
e6b2c1f2c7
d/vf: Port to u_logging.
2020-12-28 13:04:11 +00:00
Lubosz Sarnecki
1f85d1c2ba
d/hdk: Port to u_logging.
2020-12-28 13:04:11 +00:00
Lubosz Sarnecki
b1c700a500
d/survive: Ignore -Wignored-qualifiers in survive header.
2020-12-28 13:04:11 +00:00
Christoph Haag
d5183336b3
d/ohmd: Add display left rotation for Oculus Rift DK2
2020-12-23 11:51:51 +01:00
Lubosz Sarnecki
d55c2b016a
d/vf: Use static logging if no object is provided.
...
Found by clang11 warning.
2020-12-16 15:10:10 +01:00
Lubosz Sarnecki
c03decd4d9
d/ht: Remove unused variable. Fixes warning on gcc 10.
2020-12-16 15:02:46 +01:00
Christoph Haag
49202eda87
d/psvr: Make get_tracked_pose thread safe
2020-12-14 02:00:09 +01:00
Christoph Haag
f0d21c1dcc
d/vf: Add video file playback driver
2020-12-07 12:30:26 +00:00
Christoph Haag
e480352cee
t/hand: Add hand tracking module
2020-12-07 12:30:26 +00:00
Christoph Haag
717d3a27ef
d/ht: Add hand tracking driver code skeleton
2020-12-07 12:30:26 +00:00
Christoph Haag
f7a8e8810b
xrt: Split hand tracking input name into left/right
...
oxr_hand_tracker now stores which xdev and input name it tracks.
2020-12-07 11:43:51 +00:00
Lubosz Sarnecki
cf2fe0e2c3
d/android: Use XRT_DEVICE_GENERIC_HMD device name.
2020-12-01 18:05:32 +01:00
Lubosz Sarnecki
d493044e55
d/android: Use display metrics instead of hardcoded Pixel 3 values.
2020-12-01 17:36:15 +01:00
Christoph Haag
3168eb750d
d/remote: Only define __USE_MISC if not defined
2020-11-30 15:38:06 +00:00
Christoph Haag
006971ae7a
u/hand_tracking: Calculate joint velocities
...
And return them in the state tracker
2020-11-23 20:42:54 +00:00
Christoph Haag
f5ef3985ba
xrt: Add support for locating hand joints in action spaces
2020-11-23 20:42:54 +00:00
Christoph Haag
d3ccbce76c
build: meson: Add remote driver build
2020-11-20 16:14:02 +01:00
Jakob Bornecrantz
5ce0a0b3ab
d/remote: Add hand tracking support
2020-11-18 17:37:39 +00:00
Christoph Haag
a2b67ab3fe
d/ohmd: Rotate rift s display right, not left
2020-11-12 16:04:00 +01:00
Christoph Haag
7ef8d1231d
d/ohmd: Update display rotation code
2020-11-12 16:04:00 +01:00
Christoph Haag
9e788df463
xrt: Remove lens center from xrt_view
...
It's only used internally in drivers now.
2020-11-12 16:04:00 +01:00
Ryan Pavlik
a345b07308
d/psvr: Fix typo in config/debug macro
2020-11-10 03:09:07 +00:00
Jakob Bornecrantz
135c93288b
d/psvr: Rename some hid variables for better code
2020-11-09 23:42:15 +00:00
Ryan Pavlik
83b91ea4a9
d/ns: Some clang-tidy cleanups
2020-11-09 16:18:00 -06:00
Ryan Pavlik
97d711a9ef
d/hdk: Appease clang-tidy a little more.
2020-11-09 16:18:00 -06:00
Ryan Pavlik
4c0d71aa30
d/ns: const correctness cleanup for math.
2020-11-09 16:17:57 -06:00
Ryan Pavlik
d4011ed78a
d/ns: Fix memory leak in math
2020-11-09 16:06:14 -06:00
Christoph Haag
29820345c7
d/survive: Fix bindings declaration after rebase of MR 587
2020-11-06 16:36:09 +01:00
Christoph Haag
ffa7cc84c8
d/vive: Add device bindings
2020-11-05 14:44:04 +00:00
Christoph Haag
4b261219a2
d/survive: Add device bindings
2020-11-05 14:41:55 +00:00
Jakob Bornecrantz
12df35232a
d/psmv: Add device bindings
2020-11-05 14:41:55 +00:00
Jakob Bornecrantz
24a3886e85
d/daydream: Add device bindings
2020-11-05 14:41:55 +00:00
Jakob Bornecrantz
5997708634
d/arduino: Add device bindings
2020-11-05 14:41:55 +00:00
Jakob Bornecrantz
2a9a0100bc
d/psvr: Tidy code
2020-11-04 13:26:47 +00:00
Ryan Pavlik
f70b1abd88
d/android: Use not-deprecated API when possible.
2020-10-30 18:20:36 -05:00
Lubosz Sarnecki
ae1d4e9541
d/android: Enable cardboard distortion.
2020-10-30 18:20:36 -05:00
Lubosz Sarnecki
f4113ef15b
d/android: Add Android sensors driver.
2020-10-30 18:20:35 -05:00
Jakob Bornecrantz
09ba7fc1e3
d/remote: Fix warning when building with clang
2020-10-29 16:17:20 +00:00
Jakob Bornecrantz
d72776b82c
d/psvr: Switch to logging API
2020-10-26 22:41:49 +00:00
Jakob Bornecrantz
6fd1e7b36c
d/dummy: Add logging to variable tracking
2020-10-26 22:41:27 +00:00
Jakob Bornecrantz
02a3b47f7c
d/dummy: Switch to logging API
2020-10-26 22:17:15 +00:00
Jakob Bornecrantz
3611193feb
d/dummy: Tidy file
2020-10-26 22:14:05 +00:00
Christoph Haag
f910367014
d/oh: Add startup delay for Rift S and rotate left
2020-10-21 01:26:53 +02:00
Jakob Bornecrantz
3483a7286d
d/remote: Add remote driver
2020-10-15 21:07:40 +00:00
Christoph Haag
c0a5b3b76c
d/survive: Implement haptic feedback
2020-10-13 19:39:28 +02:00
Christoph Haag
0dcde4a597
d/vive: Actually Use defined values for default haptic frequency and min haptic duration
2020-10-13 19:39:28 +02:00
Christoph Haag
270a4143c7
d/vive: Use defines for minimum haptic frequency and unspecified haptic frequency
2020-10-13 19:39:25 +02:00
Christoph Haag
d959bea54a
d/vive: curl thumb when touching a button
2020-10-12 22:55:33 +02:00
Christoph Haag
05f65e0028
d/survive: curl thumb when touching a button
2020-10-12 22:55:33 +02:00
Christoph Haag
f8088c1fa4
d/survive: Add fingertracking and refactor
...
Get controller config at startup & determine variant.
2020-10-12 22:55:33 +02:00
Christoph Haag
5164488225
d/vive_controller: Add finger tracking
2020-10-12 22:55:33 +02:00
Christoph Haag
2a07c1034e
d/ns: Don't create rs tracker twice on v1
2020-10-12 16:06:25 +02:00
Jakob Bornecrantz
96046d1315
d/ohmd: Use new none distortion code
2020-10-07 23:45:45 +01:00
Jakob Bornecrantz
7baf90d3d8
d/hdk: Use new none distortion code
2020-10-07 23:45:43 +01:00
Jakob Bornecrantz
cd2ea960b9
d/dummy: Use new none distortion code
2020-10-07 23:45:41 +01:00
Christoph Haag
dc29c3f97e
build/meson: Build daydream and arduino driver when dbus is enabled
2020-10-05 16:05:02 +00:00
Jakob Bornecrantz
6ec6c2eac9
d/dummy: Make view rotate slightly with time
2020-10-01 23:49:12 +01:00
Jakob Bornecrantz
9f39410b64
d/dummy: Make the view move slightly with time
2020-10-01 15:50:51 +01:00
Jakob Bornecrantz
9a675cc7f3
xrt: Rename xrt_uv_triplet
2020-09-30 15:35:57 +01:00
Christoph Haag
bb56e5f3c5
d/openhmd: Make struct oh_device private and refactor
2020-09-30 02:08:03 +02:00
Christoph Haag
f6c3998d29
xrt: Use struct vive_values for u_compute_distortion_vive
2020-09-30 02:05:05 +02:00
Christoph Haag
29188d681c
xrt: Remove all but mesh distortion values from xrt_hmd_parts::distortion
...
Move vive values to struct u_vive_values in u_distortion_mesh.
Move openhmd values to private struct inside ohmd driver.
2020-09-30 02:05:05 +02:00
Christoph Haag
2e7451ca5e
comp: Support only mesh and no istortion, remove pano and vive shaders
...
Also changes hardcoded binding indices into variables to make following the code easier
e.g. when adding new UBOs.
2020-09-30 02:05:04 +02:00
Christoph Haag
fd883e26bf
d/openhmd: Fix distortion_k value ordering
...
Their order is opposite to the psvr panotools values.
2020-09-30 01:30:30 +02:00
Christoph Haag
fb71c71a8c
xrt: Replace mesh generator with xdev->compute_distortion()
...
Each HMD driver now has to implement compute_distortion() which will be called
by the compositor implementation to generate a mesh (usually).
u_distortion_mesh contains implementations for the defaults (panotools, OpenHMD, vive).
Also adds compute_distortion function for Vive distortion
There are differences between OpenHMD and Panotools values, main differences for now:
* psvr has 5 pano coefficients, ohmd has 3
* psvr uses viewport size and lens center in pixels for distortion calculation, ohmd in meter
* psvr uses different distortion scaling than ohmd
2020-09-28 17:04:15 +01:00
Christoph Haag
ee8fdb45fd
d/ns: remove useless assignments
2020-09-22 02:19:13 +02:00
Christoph Haag
3c0ae7e61e
d/dummy: reduce dummy HMD resolution to 720p
2020-09-21 20:37:28 +02:00