Commit graph

233 commits

Author SHA1 Message Date
Ryan Pavlik 7314bd75b7 t_imu: Change C API to take timestamps instead of dt 2019-11-14 12:14:58 +00:00
Ryan Pavlik 1440c95f78 t/psmv: Angular rate limit. 2019-11-14 12:14:58 +00:00
Ryan Pavlik 83f652bda1 aux/tracking: Add low-pass IIR filter 2019-11-14 12:14:58 +00:00
Ryan Pavlik af0515232f t_imu_fusion: Fix initialization of orientation from accelerometer. 2019-11-11 18:14:44 -06:00
Ryan Pavlik 08903e67b3 u_var: Update comments/prototypes. 2019-11-11 18:14:14 -06:00
Ryan Pavlik 355476d6b7 aux/tracking: Remove accidentally-left-in parameters from t_imu 2019-11-11 17:57:40 -06:00
Ryan Pavlik 5eaced0e4d aux/tracking: Use define for standard gravity 2019-11-11 17:57:40 -06:00
Ryan Pavlik 8a0ab71c09 t_imu: Comments. 2019-11-11 17:57:40 -06:00
Jakob Bornecrantz c6e6ba7485 t/psmv: Expose ball last position to debug gui 2019-11-10 01:36:44 +00:00
Jakob Bornecrantz 47bc4de56d t/doc: Fallout from latest codespell version 2019-11-09 12:53:42 +00:00
Jakob Bornecrantz 072e9afb54 t/psvr: Counter tracking origin offset
At least until we have proper tracking for the PSVR.
2019-11-03 14:23:03 +00:00
Ryan Pavlik e8660a18bd build: Use CMAKE_POSITION_INDEPENDENT_CODE instead of target props.
Reduces repetitive code.
2019-11-01 16:51:54 -05:00
Jakob Bornecrantz 46b9d28e8d t/imu: No fancy new c++ syntax until clang-format-8 is used on CI
Go to your room clang-format and think about what you have done.
2019-10-29 20:08:59 +00:00
Jakob Bornecrantz ef6931b7f9 aux/util: Refactor mesh generation 2019-10-25 13:05:54 +00:00
Jakob Bornecrantz b403da22eb aux/util: Add distortion mesh generation 2019-10-25 13:05:54 +00:00
Jakob Bornecrantz b67d65b4a5 aux/util: Add function to free device and stuff hanging off it 2019-10-25 13:05:54 +00:00
Jakob Bornecrantz cdafcda626 math: Add some vec2 functions 2019-10-25 13:05:54 +00:00
Ryan Pavlik 6b0f18bf6e tracking: Build kalman things as a single TU 2019-10-24 18:51:21 +02:00
Ryan Pavlik 1ce0124d5c t/psmv: Simple two-state machine for tracking. 2019-10-24 15:45:41 +01:00
Ryan Pavlik af85f6af6b t/psmv: Reset filter if we get non-finite 2019-10-24 15:44:01 +01:00
Ryan Pavlik 28abcf7ce6 t/psmv: Filter the blobs selected 2019-10-24 15:44:01 +01:00
Ryan Pavlik c713ca61f2 t/psmv: Rotate IMU into something like camera space 2019-10-24 15:44:01 +01:00
Lubosz Sarnecki a1d729af8f os/hid: Add os_hid_get_feature_timeout. 2019-10-22 19:18:47 +02:00
Jakob Bornecrantz 24bc8135e0 t/hsv: Add a debug sink 2019-10-19 23:15:51 +01:00
Jakob Bornecrantz f38f631fe8 aux/util: Add special r8g8b8x8 or l8 converter 2019-10-19 23:15:48 +01:00
Ryan Pavlik f4f07da0c2 t/file: Comment matrix sizes since entirely generic matrix types used. 2019-10-15 20:50:32 +02:00
Ryan Pavlik bc081bee80 t/psmv: cleanup/comments 2019-10-15 20:50:32 +02:00
Jakob Bornecrantz f8ee9281f8 t/calibration: Move more data storage to C portion 2019-10-13 10:48:07 +01:00
Jakob Bornecrantz 43c366ad41 t/file: Save more calibration data 2019-10-12 22:07:49 +01:00
Jakob Bornecrantz 9ec1205f37 t/api: Add comments and put all files in tracking group 2019-10-12 12:24:19 +01:00
Jakob Bornecrantz a435817a6f t/file: Add comments and restyle (NFC) 2019-10-12 12:23:42 +01:00
Jakob Bornecrantz fece0458b6 t/psmv: Make it possible to get the tracked ball pose 2019-10-11 15:40:42 +01:00
Drew DeVault bca5899fcc meson: fix build with 0.52+ 2019-10-10 23:21:27 +00:00
Jakob Bornecrantz bffe802449 t/psmv: Adjust room position in prober instead 2019-10-10 23:47:51 +01:00
Ryan Pavlik 3630dae537 t/psmv: FindLowestScore template param renames
Less terse
2019-10-10 21:48:09 +00:00
Ryan Pavlik 430e27d084 t/psmv: Use new imu fusion in psmv positional tracking. 2019-10-10 21:48:09 +00:00
Ryan Pavlik 18f9760986 tracking: Add t_imu: simple IMU fusion for absolute orientation 2019-10-10 21:48:09 +00:00
Ryan Pavlik b00f5315c2 t/psmv: Initial Kalman filter.
Rotation a little out of control right now because still using bad fusion.
2019-10-10 21:48:09 +00:00
Ryan Pavlik 85b6c7222d tracking: Add t_fusion for Kalman filter added code. 2019-10-10 21:48:09 +00:00
pblack b351e8cd75 aux/util: Don't overwrite distortion info 2019-10-10 01:52:45 +01:00
Jakob Bornecrantz e327d56bf4 aux/ogl: Introduce a single small OpenGL library 2019-10-09 17:07:23 +01:00
Jakob Bornecrantz acd2c50470 aux/math: Rework offset transformation
This reverts commit 0d9aaae470, and changes it.
2019-10-08 11:19:14 +01:00
Jakob Bornecrantz 0d9aaae470 aux/math: Correct(?) transform 2019-10-08 01:04:46 +00:00
Ryan Pavlik 23e7f99a71 t/psmv: More algorithm simplification/optimization 2019-10-07 12:39:56 +00:00
Ryan Pavlik 7e358ea721 t/psmv: Simplify final stage of tracking. 2019-10-07 12:39:56 +00:00
Ryan Pavlik d7d12a69f8 aux/tracking: Remove unused functions.
Use cv::norm instead.
2019-10-07 12:39:56 +00:00
Ryan Pavlik 09f984258f t/psmv: Improve finding the nearest blob.
No more need to construct a vector every time.
2019-10-07 12:39:56 +00:00
Ryan Pavlik 76aa839f5b a/track: Simplify. 2019-10-07 12:39:56 +00:00
Ryan Pavlik 37d4eae37a a/track: Fix typo. 2019-10-07 12:39:56 +00:00
Jakob Bornecrantz f2fcfd98e1 aux/os: Return 'errno' on device open failure 2019-10-04 10:32:02 +01:00
Jakob Bornecrantz 51f3fac192 aux/tracking: Refactor calibration data handling 2019-09-29 15:43:54 +01:00
Jakob Bornecrantz 0987927343 aux/util: Code style, pointer star location 2019-09-29 11:45:23 +01:00
Jakob Bornecrantz 423da670fa aux/tracking: Code style, pointer star location 2019-09-29 11:45:23 +01:00
Jakob Bornecrantz b95e114160 aux/math: Code style, pointer star location 2019-09-29 11:45:23 +01:00
Jakob Bornecrantz 70f632be10 aux/tracking: Refactor PS Move tracking code 2019-09-28 18:06:05 +01:00
pblack 5d616cd077 aux/tracking: Port PS Move tracker 2019-09-28 18:04:19 +01:00
Jakob Bornecrantz bc26f68c74 aux/calibration: Do fast pass for checkerboard detection and tidy file 2019-09-28 15:17:48 +01:00
Jakob Bornecrantz b5eae545e7 aux/tracking: Fix build on new OpenCV versions 2019-09-28 02:55:37 +01:00
Jakob Bornecrantz 6dcf69df83 aux/tracking: Adjust checkerboard corners for subpixel accuracy 2019-09-28 02:47:42 +01:00
Jakob Bornecrantz ee3f54adb6 aux/tracking: Add parameters to calibration 2019-09-27 20:49:31 +01:00
Jakob Bornecrantz 8d0aa220c1 aux/tracking: Tidy calibration 2019-09-27 20:49:31 +01:00
Jakob Bornecrantz ea5203fbc0 aux/tracking: Fix position hack in PSVR 2019-09-27 20:28:04 +01:00
Jakob Bornecrantz cc2f456663 aux/tracking: Fix warnings 2019-09-27 20:28:04 +01:00
Jakob Bornecrantz b8205d77fe meson: Add all tracking files
PSVR and PSMV trackers are independant from the drivers, so build them all always.
2019-09-26 22:34:14 +01:00
Jakob Bornecrantz 6081b147fc cmake: Tidy auxiliary file 2019-09-26 22:34:14 +01:00
Drew DeVault 064aef3526 build: port to meson 2019-09-26 15:05:22 +00:00
Drew DeVault c6586cfd1e comp_compositor: use nanosleep instead of usleep
Improves portability
2019-09-26 15:05:22 +00:00
pblack 3d7ec1546b aux/tracking: Port calibration to new gui/node setup 2019-09-26 09:32:46 +01:00
Jakob Bornecrantz 4a0a95dab8 aux/tracking: Fix calibration code to work with new frame semantics 2019-09-23 11:43:23 +01:00
Jakob Bornecrantz 871b06cd72 aux/tracking: Add stub PSVR tracker 2019-09-22 11:50:34 +01:00
Jakob Bornecrantz 37590e7525 aux/tracking: Add stub PSMV tracker 2019-09-21 19:12:12 +01:00
Jakob Bornecrantz 387bc123f8 xrt: Expand tracking interface 2019-09-21 18:22:06 +01:00
Jakob Bornecrantz ba12a0aa0e aux/tracking: Track hsv filter sinks 2019-09-21 18:21:05 +01:00
Jakob Bornecrantz ef3074afa7 aux/util: Add sink as tracker variable 2019-09-21 18:21:05 +01:00
Ryan Pavlik 65cc62daf9 aux/util: Add quat support to variable tracker 2019-09-20 10:07:48 +01:00
Jakob Bornecrantz ad373c55b7 os: Include xrt_config.h in os_threading.h 2019-09-17 11:42:28 +01:00
Jakob Bornecrantz 1bcf537785 aux/math: Add standard gravity value 2019-09-16 16:36:47 +01:00
Jakob Bornecrantz 81213f119c os: Tidy threading 2019-09-15 15:43:57 +01:00
Jakob Bornecrantz 0d09d225dd os: Add wrappers for threading primitives 2019-09-13 22:11:02 +01:00
Jakob Bornecrantz 2abc98dbec aux/util: Add split sink 2019-09-07 14:34:20 +01:00
Jakob Bornecrantz 10d9fbcd9e aux/util: Add some gui annotations to variable tracking 2019-09-07 14:32:53 +01:00
Jakob Bornecrantz 9cf6108899 aux/util: Add more types to variable tracker 2019-09-06 18:12:15 +01:00
Jakob Bornecrantz a9e88f3f20 aux/util: Add variable tracking code 2019-09-06 14:37:42 +01:00
Jakob Bornecrantz 358183115f aux/track: Micro optimize hsv filter 2019-08-27 08:34:40 +01:00
Jakob Bornecrantz 1e93ba2461 xrt: Refactor frame interface 2019-08-27 08:17:21 +01:00
Ryan Pavlik a8ae7c432d aux/tracking: Fix class vs struct warnings in calibration and hsv debug code. 2019-08-21 14:29:37 -05:00
Jakob Bornecrantz 79402d0081 aux/track: Add stub calibration tracker 2019-08-20 13:07:42 +01:00
Jakob Bornecrantz a2ffb18852 aux/util: Add a special yuv or yuyv converter sink 2019-08-20 12:40:05 +01:00
Jakob Bornecrantz fc88d7d099 aux/util: Add more formats 2019-08-20 12:40:05 +01:00
Jakob Bornecrantz c8f16be641 xrt: Refactor out frame from frameserver 2019-08-20 12:35:55 +01:00
Jakob Bornecrantz a0fcaf9b6b aux/util: Disable use of conversion table for YUV to RGB for now 2019-08-17 10:34:40 +01:00
Ryan Pavlik 86d3d2b149 aux/util: clang-tidy 2019-08-16 17:12:53 -05:00
Ryan Pavlik 876bd5088f hid: Fix clang-tidy warnings. 2019-08-16 17:12:53 -05:00
Ryan Pavlik 11c5518aa0 aux/math: Simplify 2019-08-16 17:12:53 -05:00
Ryan Pavlik 1700be7022 aux/math: Fix typo 2019-08-16 17:12:53 -05:00
Ryan Pavlik ea0dec9898 a/util: Cast realloc results. 2019-08-16 10:45:26 -05:00
Jakob Bornecrantz 5fbebd2bd5 aux/util: Code style 2019-07-25 00:57:40 +01:00
Jakob Bornecrantz 5beaba9c0d aux/util: Fix warnings during release builds 2019-07-25 00:53:04 +01:00
Jakob Bornecrantz a544b4b56f aux/util: Add sink format converters 2019-07-23 17:41:34 +01:00
Jakob Bornecrantz 6a79f5878e aux/util: Add format helper functions 2019-07-23 17:41:34 +01:00
Jakob Bornecrantz 505d5cf5d6 aux/math: C export paranoia 2019-07-21 14:57:45 +00:00
Jakob Bornecrantz 776c46713f aux/math: Refactor math_pose_validate into two functions 2019-07-21 14:57:45 +00:00
Ryan Pavlik ccf26dcd4e os/hid: Add support for get/set feature reports. 2019-06-22 11:34:51 +01:00
Ryan Pavlik 2b006d5df7 aux/math: Add quaternion normalization 2019-06-22 11:34:51 +01:00
Ryan Pavlik 901254b9ac aux/util: Improve docs for calloc wrappers 2019-06-18 14:14:01 -05:00
Ryan Pavlik 15b61b5c4f util: Add U_ZERO and U_ZERO_ARRAY wrappers for memset.
Ensures the type is always correct.
2019-06-18 14:14:01 -05:00
Ryan Pavlik 9d57e158f9 aux/util: fix truncation warning 2019-06-18 18:43:20 +00:00
Ryan Pavlik 941a18e06a util/u_device: Use typed calloc wrapper 2019-06-18 18:41:57 +00:00
Ryan Pavlik 0f2635a6eb a/os: Add extern "C" to hid header 2019-06-18 13:31:32 -05:00
Ryan Pavlik 9635952165 aux/math: Codespell fix 2019-06-18 13:09:59 -05:00
Jakob Bornecrantz 89d8315b3b xrt: Add output interfaces 2019-06-10 14:47:19 +01:00
Jakob Bornecrantz 1f64f714f6 xrt: Add input, hmd_parts and tracking interface
This patch has been spun of the rather massive amount of work for adding input
devices into Monado. The interfaces feels somewhat stable now so could do
with another pair of eyes on them, before too much work is done on st/oxr.
2019-06-10 14:47:19 +01:00
Jakob Bornecrantz de6bf55116 aux/util: Add hashmap 2019-06-10 14:47:05 +01:00
Jakob Bornecrantz 2d6cb08c48 aux/util: Fix uninitialized errors 2019-06-10 14:15:53 +01:00
Jakob Bornecrantz c0008199ae aux/util: Remove meta prober 2019-05-16 20:41:35 +01:00
Jakob Bornecrantz e2bd986bc5 os: Add a minimal hidraw wrapper 2019-05-13 18:26:02 +01:00
Jakob Bornecrantz defc4f9eef build: Tidy auxiliary 2019-05-09 12:42:26 +01:00
Jakob Bornecrantz 83159a02c1 d/psvr: Add to meta prober and OpenXR target
Still hidden behind a env variable.
2019-05-06 16:46:10 +00:00
Jakob Bornecrantz e0adc25124 aux/util: Add a device helper function to setup the fields for a common HMD setup 2019-05-03 18:56:14 +01:00
Jakob Bornecrantz dc9ab44a5a xrt: Rename xrt_prober to xrt_auto_prober 2019-05-03 18:53:07 +01:00
Jakob Bornecrantz 9c05e853cc build: Refactor flags and definitions (and fix fallout)
Defines:
* XRT_HAVE_[name] is a external dep indicator.
* XRT_DRIVER_[name] if a internal driver is built.

CMake variables:
* BUILD_WITH_[name] is a external dep indicator.
* BUILD_DRIVER_[name] tells if we should build a specific driver.
2019-04-29 17:18:09 +01:00
Jakob Bornecrantz aa4a0eb9f7 aux/util: Add meta proper helper 2019-04-15 09:52:44 +01:00
Jakob Bornecrantz e4a779f19b aux/util: Add a size calloc helper 2019-04-12 10:47:13 +01:00
Jakob Bornecrantz a36565c5b7 aux/util: Add string hashset 2019-04-12 10:47:13 +01:00
Jakob Bornecrantz b8e4a5f8d1 aux/math: Add simple string hashing function 2019-04-12 10:47:13 +01:00
Jakob Bornecrantz 6fb8a216a3 aux/math: Group the files and structs in documentation 2019-04-06 13:05:35 +01:00
Jakob Bornecrantz d1b91e5451 aux/util: Group the files and structs in documentation 2019-04-06 13:04:13 +01:00
Ryan Pavlik 1a85fef0a9 u_misc: Add missing include. 2019-04-05 11:51:46 -05:00
Jakob Bornecrantz 5a7b5cf247 aux/math: Tidy whitespace 2019-03-27 13:34:58 +00:00
Ryan Pavlik d29dc04e05 aux/math: Add quat finite difference function 2019-03-25 12:28:54 -05:00
Ryan Pavlik 94cd1908db aux/util: Add time_ns_to_s and time_s_to_ns 2019-03-25 12:28:54 -05:00
Ryan Pavlik e57e858351 aux/util: Add U_TYPED_CALLOC macro to wrap calloc and casting. 2019-03-22 13:47:51 -05:00
Jakob Bornecrantz 15a97422ba xrt: Add all of Monado 2019-03-18 05:52:32 +00:00