From 4e68466448e613f6efa58ec196a5234eccce34a4 Mon Sep 17 00:00:00 2001
From: Sebastian Hahta <joseha@utu.fi>
Date: Fri, 21 Aug 2020 17:39:46 +0300
Subject: [PATCH] headset pose z-adjust (aruco)

---
 components/operators/src/aruco.cpp                 | 7 ++++---
 components/streams/src/renderers/openvr_render.cpp | 5 +++++
 2 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/components/operators/src/aruco.cpp b/components/operators/src/aruco.cpp
index b4f26183f..3c7f0a11f 100644
--- a/components/operators/src/aruco.cpp
+++ b/components/operators/src/aruco.cpp
@@ -47,9 +47,10 @@ ArUco::ArUco(ftl::operators::Graph *g, ftl::Configurable *cfg) : ftl::operators:
 	params_->cornerRefinementMinAccuracy = 0.01;
 	params_->cornerRefinementMaxIterations = 20;
 
-	params_->adaptiveThreshWinSizeMin = 7;
-	params_->adaptiveThreshWinSizeMax = 17;
-	params_->adaptiveThreshWinSizeStep = 10;
+	// default values 13, 23, 10, for speed just one thresholding window size
+	params_->adaptiveThreshWinSizeMin = 15;
+	params_->adaptiveThreshWinSizeMax = 15;
+	params_->adaptiveThreshWinSizeStep = 1;
 
 	channel_in_ = Channel::Colour;
 	channel_out_ = Channel::Shapes3D;
diff --git a/components/streams/src/renderers/openvr_render.cpp b/components/streams/src/renderers/openvr_render.cpp
index a448206e2..5c299083e 100644
--- a/components/streams/src/renderers/openvr_render.cpp
+++ b/components/streams/src/renderers/openvr_render.cpp
@@ -329,6 +329,11 @@ bool OpenVRRender::retrieve(ftl::data::Frame &frame_out) {
 
 				if (headset_origin.size() > 0) {
 					ftl::operators::Poser::get(headset_origin, horigin);
+					double headset_offset = host_->value("headset_offset_z", 0.0);
+					// move z-axis by offset
+					Eigen::Vector3d offset =
+						horigin.block<3, 3>(0, 0)*Eigen::Vector3d(0.0, 0.0, headset_offset);
+					horigin.block<3, 1>(0, 3) -= offset;
 				}
 				Eigen::Matrix4d new_pose = horigin*viewPose.inverse();
 
-- 
GitLab