Commit graph

780 commits

Author SHA1 Message Date
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