Commit graph

248 commits

Author SHA1 Message Date
Jakob Bornecrantz c195608602 a/tracing: Do more tracing in PSMV tracking code 2022-11-25 16:44:24 +00:00
Jakob Bornecrantz f552aacb87 a/tracking: Fix data waiting logic in PSMV tracking 2022-11-25 16:44:24 +00:00
Jakob Bornecrantz c4a734e546 a/tracking: Do not push empty frames to debug sink 2022-11-02 17:55:58 +00:00
Jakob Bornecrantz 0f17fa0f5f a/tracking: Fix data waiting logic in PSVR tracking 2022-11-02 17:55:58 +00:00
Mateo de Mayo bf66a9595c build: Fix undefined reference to u_sink_create_queue
When XRT_FEATURE_SLAM is on, t_euroc_recorder.cpp is linked.
This depends on u_sink_queue.c.
2022-10-30 11:34:57 -03:00
Mateo de Mayo 80fdf7317f t/slam: Add SLAM_UI option to enable the external system UI 2022-10-17 21:33:17 +00:00
Moses Turner d2e2c3a988 cmake: Run cmake-format.sh 2022-09-19 21:57:37 +01:00
Moses Turner 17acb376f9 xrt: Fix some typos that codespell caught 2022-09-11 23:32:28 -05:00
Mateo de Mayo dabf592d59 t/euroc: Add lock for IMU recording queue 2022-08-10 14:28:59 +00:00
Mateo de Mayo c181909b0d t/slam: Add debug sinks 2022-07-22 16:19:49 +00:00
Mateo de Mayo f55ac05578 t/slam: Implement feature count metric UI and recording 2022-07-12 12:47:05 +00:00
Mateo de Mayo c2009b6acc t/slam: Allow timing extension to be toggled on runtime 2022-07-12 12:47:05 +00:00
Mateo de Mayo 536001e2ad external/slam: Update header to 4.0.0
1. Add feature info pose extension
2. Make pose extensions toggleable on runtime
3. Add timestats helper for external system to keep track of info for pose extensions
2022-07-12 12:47:05 +00:00
Mateo de Mayo 6bc551d004 t/slam: Prioritize SLAM_CONFIG over driver calibration if set 2022-06-02 15:47:57 +00:00
Jakob Bornecrantz fc469e7d5f a/tracking: Document and fix cond var loop in psvr 2022-05-31 13:38:56 +00:00
Jakob Bornecrantz d2a2005212 a/tracking: Document and fix cond var loop in psmv 2022-05-31 13:38:56 +00:00
Mateo de Mayo 29aefe2ba8 misc: Use pretty printers and remove stale matrix print functions
Use u_pp_matrix_* instead.
2022-05-26 18:35:39 +00:00
Mateo de Mayo 8adbdc27e5 t/slam: Allow drivers to send calibration info to SLAM tracker
There were a couple of properties that didn't fit well in our current
calibration structs and so I created t_slam_calib_extras struct to store them.
2022-05-26 18:35:39 +00:00
Mateo de Mayo 02abc49313 t/calib: Add IMU intrinsics struct 2022-05-26 18:35:39 +00:00
Mateo de Mayo 2cf07dedf2 t/euroc: Fix crash when recording euroc dataset by providing UI button
Previously, a crash occurred in some situations when the second sample was
written before the first sample was able to create the necessary CSV files.
2022-05-23 17:51:11 -03:00
Jakob Bornecrantz a4983fa5b1 auxiliary: Break apart CMakeLists.txt file 2022-05-23 09:12:54 -05:00
Ryan Pavlik ea4c14c3aa a/os: Rename os_thread_helper_stop to os_thread_helper_stop_and_wait 2022-05-20 18:46:37 +01:00
Ryan Pavlik 276f24c9ad a/tracking: Improve word choice/clarity 2022-05-17 17:39:52 -05:00
Moses Turner e25ee4058d xrt: Remove xrt_tracked_hand 2022-05-10 18:53:58 +01:00
Jakob Bornecrantz 4ba23faa6b auxiliary: Deal with clang-format-14 fallout (NFC) 2022-05-04 15:58:01 +01:00
Ryan Pavlik f9b4af04e4 a/tracking: Fix conversion warnings 2022-05-03 22:44:37 +01:00
Ryan Pavlik a55a5a54b3 a/math: Normalize argument order of one euro filter initializing functions. 2022-04-13 09:40:40 -05: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
Mateo de Mayo 4c85e3fbb3 t/slam: Refactor tracker to accept a config struct on creation 2022-04-06 11:50:17 -03:00
Mateo de Mayo 2a4a9aa210 t/slam: Add configuration options to tracker
Specifically:
- SLAM_PREDICTION_TYPE
- SLAM_CSV_PATH
2022-04-06 11:50:17 -03:00
Jakob Bornecrantz 716ba4db60 tracking: Predeclare struct instead of including cJSON in header 2022-04-06 15:38:44 +01:00
Moses Turner 9417fe8d7f a/tracking: Support different numbers of calib parameters 2022-03-23 20:56:15 +00:00
Mateo de Mayo 2bb0c5cda5 t/slam: Implement CSV writers for trajectories and timing info
This CSV files can be used for offline analysis.
2022-03-14 23:42:13 +00:00
Mateo de Mayo c9f7184d64 t/slam: Implement timing and trajectory error UI graphs 2022-03-14 23:42:13 +00:00
Mateo de Mayo af2dde11c3 misc: Fix some release build warnings and minor changes
- Add CMakeUserPresets.json to .gitignore
- Fix DASSERTs warning for release builds
- Do not use one euro filter with invalid poses
- Other NFC style changes
2022-03-14 23:42:13 +00:00
Mateo de Mayo 1dbda3d8c8 t/euroc: Tie CSV file opening to recorder lifecycle
This is a better way of handling writing small but high frequency data
like IMU samples so as to avoid continuous opening and closing of a file.
2022-03-14 23:42:13 +00:00
Jakob Bornecrantz 0ebb1c3be9 t/psmv: Make TrackerPSMV be standard layout 2022-03-07 16:48:28 +00:00
Mateo de Mayo a0021dc7d0 t/euroc: Fix memory leak in euroc recorder
This was the reason the recorder was eating so much RAM.
SSD write speeds should be enough for common use cases to keep RAM stable.
2022-02-22 22:56:07 +00:00
Ryan Pavlik a0e2df4cf0 tracking/math: Move the generic low pass filters to a/math 2022-02-22 16:42:53 -06:00
Ryan Pavlik 4156cabedf a/tracking: Add an integer version of the low-pass filter. 2022-02-22 09:58:19 -06:00
Mateo de Mayo 4b94d83c11 a/math: Fix one euro implementations not dividing by dt
The dy name was kept. It can now be thought of as "[d]erivative of [y]"
instead of the previous "change of y". Also, the beta parameters of the
one-euro users were adjusted by approximately multiplying them by 0.016
to compensate.
2022-02-22 13:34:45 +00:00
Mateo de Mayo 17dee2bb68 t/slam: Cache tracked pose timestamp
This is mainly to avoid problems with filters that calculate
their dt from previous calls. In particular the one euro filter fix
that gets implemented in the next commit would crash because of dt=0.
2022-02-22 13:34:45 +00:00
Mateo de Mayo 83fceec521 t/slam: Add filtering methods to the tracker
Adds three toggleable filters:
- Moving average
- Exponential smoothing
- One euro filter
2022-02-14 10:22:05 -03:00
Mateo de Mayo b90d60a9ce t/slam: Add prediction types that integrate gyro and accel samples 2022-02-14 10:22:05 -03:00
Moses Turner 7b3378b28a aux/tracking; st/gui: save/load calibration gui state to file 2022-01-18 17:18:43 +00:00
Moses Turner 17034f0283 aux/tracking: assert on fisheye mat size for fisheye path 2022-01-04 18:19:17 +00:00
Mateo de Mayo 70576c2f02 t/slam: Implement basic prediction from last tracked poses 2021-12-21 11:43:17 +00:00
Mateo de Mayo 090e465dda external: Add semver to slam_tracker (1.0.0) and pose timestamps 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
Christoph Haag 8bbaf2a05b a/tracking: Use #pragma message instead of #warning
Avoids warning
../src/xrt/auxiliary/tracking/t_tracker_slam.cpp:66:2: warning: #warning is a GCC extension
2021-12-14 13:51:16 +01:00