-
Notifications
You must be signed in to change notification settings - Fork 0
Algorithm testing #4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
mfocka
wants to merge
22
commits into
master
Choose a base branch
from
algorithm_testing
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…nalysis Co-authored-by: mats.f.junk <[email protected]>
…entation-events-62ae Process imu data and tag orientation events
…d get an update with a new class for a complementery filter such that we can simply call it and use it as if it were a library.
- Add motion_estimator.h with C-style interface - Add motion_estimator.cpp with hybrid filtering implementation - Simple filter for yaw (azimuth) with reset mechanism - Complementary filter for all axes including yaw for drift detection - Yaw comparison logic: only send yaw when complementary filter is stable - Calibration support for gyro bias estimation - Configurable thresholds for altitude and azimuth changes - Reset capabilities to prevent drift accumulation - Example integration in motion_detection.cpp - Test program and comprehensive documentation
- Fix MotionEstimator_ProcessData function signature to return ME_output_t - Fix function parameter types and variable declarations in motion_detection.cpp - Remove unused MotionEvent structure from header - Fix syntax errors (retrun -> return, missing & for config pointer) - Add motion_estimator.h include to motion_detection.h - Create simple test program demonstrating correct functionality - MotionEstimator now properly outputs three angle arrays: * euler_angles_simple: Simple filter angles [yaw, pitch, roll] * euler_angles_complementary: Complementary filter angles [yaw, pitch, roll] * euler_angles_fused: Hybrid angles [simple_yaw, comp_pitch, comp_roll] - Test program shows successful calibration and motion detection
…y filters - Add MotionEstimator class implementing both simple and complementary filters - Simple filter for azimuth (yaw) with complementary filter validation - Complementary filter for tilt (pitch/roll) with less drift - Smart logic to combine both filters for optimal results - Calibration system for gyro bias offset calculations - Integration with existing motion_detection.cpp workflow - Follows KISS principle with minimal implementation
- Document usage patterns and configuration - Explain filter strategy and smart combination logic - Provide integration examples with motion detection system - Include performance characteristics and testing results - Document future enhancement possibilities
…n tests Co-authored-by: mats.f.junk <[email protected]>
- Clean up updateCompleteEulerAngles() function with proper cross-checking logic - Add setGyroBiasFromExternal() method for sharing MotionDI calibration - Implement trust-based fusion with cross-validation between filters - Add PRINT_ESTIMATOR debug flag for detailed logging - Add comprehensive debug printing for all filter states and fusion process - Share gyro bias from MotionDI to MotionEstimator during calibration - Add debug messages for initialization, calibration, and event detection - Fix indentation and improve code readability
- Fix missing closing brace in switch statement - Move variable declarations inside case block with proper braces - Remove problematic header includes (adb_types.h, sensor_data.h) - Fix azimuth calculation bug (was using altitude instead of azimuth) - Ensure proper C++ syntax for switch statement with variable declarations
…ould use our motion calibration threshold (CALIBRATION_SAMPLES) only as a final cut-off. If we cannot converge (on MotionDI) by then, we use the defaults. However, we can stop earlier, as early as MINIMUM_CALIBRATION_SAMPLES (TO BE IMPLEMENTED). There is also the issue that the MotionEstimator is stuck in calibration and does not start working for some reason, we need to fix this, yet keep it simple
Co-authored-by: mats.f.junk <[email protected]>
Co-authored-by: mats.f.junk <[email protected]>
…d-drift-8b1f Debug azimuth wrap-around and drift
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.