Commit graph

99 commits

Author SHA1 Message Date
Supreeeme 501d2c4fd5 Fix crash when no hand tracking or controllers 2022-07-31 17:09:19 -04: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 65d88f00aa t/common: Fix warning 2022-07-26 18:15:04 +00:00
danwillm 53bbe0a293 t/common: add opengloves fixer-upper to lighthouse builder 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 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 4f81967e8a t/common: Refactor lighthouse builder to prepare for more visual trackers
The idea here is to follow a similar approach to how we are doing it in the
WMR driver with the setup_visual_trackers() function.
2022-07-25 19:08:46 +00:00
Moses Turner e552ef6bf3 t/common: Better error-checking in lighthouse builder 2022-06-30 15:20:46 +01:00
Jakob Bornecrantz 202f37be63 t/common: Include config build for null compositor 2022-06-27 18:35:40 +01:00
Moses Turner 4aaa61350b t/common: Add lighthouse builder 2022-06-24 01:58:51 +01:00
Moses Turner adadf6a2c2 t/common: Remove (sur)vive from legacy builder 2022-06-24 01:54:45 +01:00
Moses Turner 6b63d473c6 t/common: Switch target_builder_legacy to u_system_devices_get_ht_device 2022-06-24 01:54:45 +01:00
Jakob Bornecrantz d0cc7e4082 d/remote: Use xrt_system_devices directly in the driver
And also make shutdown properly work.
2022-06-01 16:50:19 +01:00
Alex 642b36c5ad depthai : added missing target 2022-05-30 18:21:14 -07:00
Jakob Bornecrantz 7e45fc7dd9 t/common: Integrate null compositor 2022-05-28 17:30:19 +00:00
Moses Turner 5652ddd718 a/util: Fix function signature for u_builder_find_prober_device
Was this ever working?
2022-05-25 20:53:46 +00:00
Jakob Bornecrantz 03a6f079e0 t/common: Do not compile for builders when no driver is enabled 2022-05-19 15:51:06 +00:00
Ryan Pavlik e5b0840de3 t/common: Fix missing ifdef guard in target builder remote. 2022-05-18 10:37:04 -05:00
Jakob Bornecrantz 4c6b3b4609 t/common: Fix instance get_prober function 2022-05-18 15:39:17 +01:00
Jakob Bornecrantz b180605ebe t/common: List the simulated device 2022-05-18 11:02:12 +01:00
Ryan Pavlik 54be3b958b targets: Word choice/clarity 2022-05-17 17:40:58 -05:00
Ryan Pavlik 56a1c25378 d/simulated: Rename the simulated device driver. 2022-05-17 17:39:52 -05:00
Jakob Bornecrantz 61323c32d2 xrt: Use error messages in various instance and prober functions 2022-05-17 20:10:40 +01:00
Jakob Bornecrantz 3357cd4400 t/common: Add a few builders 2022-05-17 11:20:40 +01:00
Jakob Bornecrantz 850527adc5 xrt: Add system builders and update xrt_prober interface
Aka setter uppers.
2022-05-17 11:20:40 +01:00
Jakob Bornecrantz 116d1a9bf8 xrt: Typedefs have a _t suffix 2022-05-12 11:59:12 +00:00
Jakob Bornecrantz aafbaecbc9 xrt: Remove old unused instance functions 2022-05-11 10:49:15 +01:00
Jakob Bornecrantz 1b8cbfd226 t/common: Implement xrt_instance_create_system call 2022-05-11 10:15:18 +01:00
Moses Turner ec191bd9de targets: Add DepthAI head tracker 2022-05-10 23:47:30 +01:00
Jakob Bornecrantz 175ff58f10 build: Remove meson files 2022-04-28 21:36:25 +00:00
Ryan Pavlik 3e6ec47296 monado: Apply clang-tidy fixes to most of the codebase.
All at least visually inspected, some revised from the auto-fixit
2022-04-13 09:34:54 -05:00
Moses Turner 870a2ce704 d/ht: support DepthAI cameras and Mercury hand tracking 2022-03-23 18:30:02 -05: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
Jakob Bornecrantz 3e38ada9a5 build: s/rs/realsense/g 2021-12-07 11:26:20 +00:00
Jakob Bornecrantz 673ac5ee6c d/wmr: Add support for Samsung Odyssey controllers 2021-11-20 17:33:25 +00:00
Nima01 c4db3dfccc d/wmr: Add basic Reverb (G1, Bluetooth) motion controller support. 2021-11-18 17:19:07 +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 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
Mateo de Mayo 6de1ab8f8e d/euroc: Add euroc device 2021-09-15 19:03:55 +00:00
Moses Turner 8068912953 targets: Don't probe handtracking driver 2021-09-03 21:06:18 +00: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 aa3f071d2b u/trace_marker: Refactor init to fix bug 2021-06-14 19:12:14 +01: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
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
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
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