From fd2540ce8fcbefff378b86a5d8cf61ec91f4b095 Mon Sep 17 00:00:00 2001 From: dsc Date: Wed, 1 Apr 2026 15:47:09 +0200 Subject: [PATCH] Add a check in marker driver class template to check for error between raw marker data and filtered marker data. --- Tools/AnyMocap/CreateMarkerDriverClass.any | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Tools/AnyMocap/CreateMarkerDriverClass.any b/Tools/AnyMocap/CreateMarkerDriverClass.any index b781da5af..72705b6fd 100644 --- a/Tools/AnyMocap/CreateMarkerDriverClass.any +++ b/Tools/AnyMocap/CreateMarkerDriverClass.any @@ -384,10 +384,20 @@ AnyMessage TestMarkerExist ={ Data = .LowPassFilter(.MarkerDataRef.Pos'); }; + AnyFloat PosDiff_Filt_NoFilt= FilteredPosInterpol.Data'-MarkerDataRef.Pos; + AnyFloat Norm_PosDiff_Filt_NoFilt= vnorm(PosDiff_Filt_NoFilt); + AnyFloat Max_Norm_PosDiff_Filt_NoFilt= max(Norm_PosDiff_Filt_NoFilt); + AnyInt Warn_Filt_Freq = warn(ltfun(Max_Norm_PosDiff_Filt_NoFilt,0.02),"Check filter cut-off frequency. It may be too low. Error between raw data and filtered data is "+strval(Max_Norm_PosDiff_Filt_NoFilt,"%.3f")); + #else AnyParamFun &InterpolRef = MarkerDataRef.PosInterpol; + AnyFloat PosDiff_Filt_NoFilt= InterpolRef.Data'-MarkerDataRef.Pos; + AnyFloat Norm_PosDiff_Filt_NoFilt= vnorm(PosDiff_Filt_NoFilt); + AnyFloat Max_Norm_PosDiff_Filt_NoFilt= max(Norm_PosDiff_Filt_NoFilt); + AnyInt Warn_Filt_Freq = warn(ltfun(Max_Norm_PosDiff_Filt_NoFilt,0.02),"Check filter cut-off frequency. It may be too low. Error between raw data and filtered data is "+strval(Max_Norm_PosDiff_Filt_NoFilt,"%.3f")); + #endif WeightFun={.MarkerWeightsPtr};