Reva Poddar’s Status Report for 12/7

Progress Update:

This week, I fine-tuned the data processing algorithms, focusing on enhancing noise reduction and optimizing pitch-based thresholding for footstrike detection. The refined algorithms were integrated into the main application and tested using simulated datasets. These tests demonstrated that metrics like footstep detection are functioning well overall, but using this data to calculate stride length has proven more challenging due to variations in user gait and step patterns. The app’s existing visualization was instrumental in verifying real-time data flow and detection accuracy.

Challenges Faced:

  1. Stride Length Calculation: Developing a reliable method to compute stride length from footstep detection data, accounting for individual variations in stride dynamics.
  2. Real-Time Integration: Ensuring the processing algorithms operate efficiently within the app without impacting performance.
  3. Edge Cases: Simulated datasets highlighted specific scenarios, such as abrupt movement changes, that require further refinement in the detection algorithms.

Next Steps:

  1. Test the app with live data collected from real-world runs to validate the algorithms under dynamic conditions and gather insights for stride length calculation.
  2. Refine the detection algorithms to improve robustness in handling edge cases and variability in user gaits.
  3. Seek feedback from initial users to identify pain points and guide further optimization of both detection and stride length computation.

Reva Poddar’s Status Report for 11/30

Progress Update:

This week, I focused on refining and implementing the data processing algorithms, including smoothing, moving averages, and pitch-based thresholding for footstrike detection. These algorithms are now functioning within the development environment, but further fine-tuning is needed to ensure they handle diverse gait patterns effectively. Initial testing highlighted areas for optimization in both noise reduction and threshold calibration.

Challenges Faced:

  1. Noise Filtering: Balancing the smoothing algorithms to reduce noise without removing key features necessary for accurate footstrike detection.
  2. Threshold Calibration: Determining the appropriate pitch threshold values to reliably identify footstrikes across different running styles and conditions.
  3. Integration: Ensuring the algorithms operate efficiently in the development environment without significant lag.

Next Steps:

  1. Complete fine-tuning of the data processing algorithms to improve accuracy and reliability.
  2. Test the system under varied gait patterns and terrains to identify additional areas for optimization.
  3. Begin integrating the refined algorithms into the main application for further testing and visualization development.

Team Status Report for 11/16

Progress Update

  1. Algorithm Development:
    • Implemented smoothing algorithms and moving averages to reduce noise in the incoming data, making it more suitable for analysis.
    • Developed a thresholding algorithm that uses pitch changes from the device to detect footstrikes. By analyzing variations in pitch, the system can more accurately identify footstrikes.
  2. Hardware and System Updates:
    • Successfully developed an MVP (Minimum Viable Product) for one shoe, demonstrating key functionalities for motion sensing.
    • Integrated the Yost IMU into the system using HSPI, enabling accurate motion data capture.
    • Deployed FreeRTOS on the ESP32 to achieve efficient multitasking and real-time performance.
    • Operationalized an SD card module using SPI (VSPI) on the ESP32 for secure data storage of recorded motion metrics.

Challenges Faced

  1. Algorithm Optimization:
    • Balancing the smoothing and moving average algorithms to ensure noise reduction without distorting essential data features needed for footstrike detection.
  2. Threshold Calibration:
    • Determining the optimal threshold values for pitch changes to reliably detect footstrikes while minimizing false positives or missed detections.
  3. MVP Testing:
    • Ensuring the integrated hardware and algorithms perform seamlessly during real-world demos.

Key Achievements

  • Algorithm Implementation: Smoothing and thresholding algorithms are operational and ready for validation.
  • FreeRTOS Integration: ESP32 now runs FreeRTOS, enabling real-time multitasking for improved system performance.
  • Hardware Integration: Successfully incorporated the Yost IMU and an SD card module for motion data capture and storage.
  • MVP Development: A functional demonstration unit for one shoe is ready for testing and evaluation.

Next Steps

  1. Algorithm Validation:
    • Test smoothing and thresholding algorithms with a larger dataset to ensure accuracy and reliability.
    • Collect feedback from initial tests to refine the algorithms further.
  2. Integration into Application:
    • Incorporate the footstrike detection feature into the main application to provide real-time insights to users.
  3. MVP Testing:
    • Conduct extensive testing of the MVP under real-world conditions to validate system stability and data reliability.
  4. User Feedback:
    • Gather user feedback during demos to identify areas for improvement in both hardware and software components.

Conclusion

The project has achieved a significant milestone with the development of a fully functional MVP and the integration of advanced data processing algorithms. While challenges in algorithm optimization and threshold calibration remain, the team is on track to refine and enhance the system for real-world application. Upcoming efforts will focus on validation, user feedback, and system integration to further improve accuracy, reliability, and user experience.

Reva Poddar’s Status Report for 11/16

Progress Update:

This week, I focused on implementing smoothing algorithms and moving averages to process the incoming data. These techniques help in reducing noise and making the data more suitable for analysis. I also worked on a thresholding algorithm that uses the pitch of the device as a means of detecting footstrikes. By analyzing the changes in pitch, we can more accurately determine when a footstrike occurs.

Challenges Faced:

  • Algorithm Optimization: Ensuring the smoothing and moving average algorithms do not distort the essential features of the data needed for accurate footstrike detection.
  • Threshold Calibration: Determining the optimal threshold values for pitch changes to reliably detect footstrikes without false positives.

Next Steps:

  • Validate the smoothing and thresholding algorithms with a larger dataset.
  • Integrate the footstrike detection feature into the main application.
  • Collect feedback from initial tests to further refine the algorithms.

Team Status Report for 11/9

Progress Update

  1. Buffer System and Data Handling:
    • Implemented a buffer system to manage incoming data, which is flushed into a local data structure in Dart for real-time processing.
    • Buffered data is being saved into a CSV file for further analysis and visualization.
    • Began developing algorithms to parse through the data structure and CSV file to detect footstrikes, a critical metric for the project.
  2. Integration of New Hardware:
    • Received the new Yost sensor and started preparation for integration into the existing system.
    • The Bosch IMU has been successfully configured to communicate motion data to the ESP32, allowing for accurate data capture and processing.
  3. Data Logging and Transfer:
    • Set up a pipeline to log motion data onto an SD card for structured analysis.
    • Implemented BLE functionality to transfer the data as a .txt file from the SD card directly to the mobile app, enhancing accessibility and user interaction.

Challenges Faced

  1. Data Visualization:
    • Developing intuitive and informative visual representations of buffered and logged data remains a challenge.
  2. Footstrike Detection Algorithm:
    • Parsing complex datasets to accurately detect footstrikes requires fine-tuning and validation against real-world motion scenarios.
  3. Hardware Integration:
    • The soldering and handling of the Yost sensor require precision to ensure stable connectivity and functionality.

Key Achievements

  • Data Capture: Successfully configured the Bosch IMU for seamless communication with the ESP32.
  • Data Logging: Created a robust pipeline for logging motion data onto an SD card.
  • BLE Transfer: Enabled BLE functionality to transfer .txt files directly to the app, improving user interaction.
  • Buffer System: Established a reliable buffer system for efficient data management and storage.

Next Steps

  1. Hardware Integration:
    • Proceed with soldering the Yost sensor and test its compatibility with the current system.
  2. Footstrike Detection:
    • Continue developing and validating the footstrike detection algorithm using collected data.
  3. Data Visualization:
    • Refine visualization tools within the app to better represent trends and patterns in the motion data.
  4. Performance Testing:
    • Test system performance under various conditions to ensure stable data transfer and app connectivity via BLE.
  5. Optimization:
    • Enhance the buffer system for improved performance and reliability.

Conclusion

The project is progressing well, with significant milestones achieved in data capture, logging, and BLE transfer. Integration of the new Yost sensor will expand the system’s capabilities, while ongoing improvements in data visualization and footstrike detection algorithms will provide actionable insights. The team remains focused on refining the system for enhanced accuracy, reliability, and user experience.

Reva Poddar’s Status Report for 11/9

Progress Update:

We have implemented a buffer system to flush incoming data into a local data structure in Dart. This buffered data is also being saved into a CSV file for further analysis. We are currently working on visualizing this data to better understand the patterns and trends. Additionally, we are developing algorithms to parse through the data structure and the CSV file to detect footstrikes, which is a critical component of our project.

Challenges Faced:

  • Data Visualization: Creating intuitive and informative visual representations of the buffered data.
  • Footstrike Detection Algorithm: Parsing complex data to accurately detect footstrikes requires fine-tuning and validation against real-world scenarios.

Next Steps:

  • Continue refining the data visualization tools within the app.
  • Test and improve the footstrike detection algorithm using the collected data.
  • Optimize the buffer system for better performance and reliability.

Team Status Report for 11/2

Progress Update

This week, the team made significant progress on multiple fronts:

  1. Bluetooth Connection:
    • Successfully established a robust Bluetooth connection between the ESP32 device and the mobile application.
    • Developed a protocol to send structured data (using structs) to the app, improving the efficiency and reliability of data transmission.
    • Implemented a transfer status ID to indicate the end of data transmission, ensuring the app can detect when a complete data packet has been received.
  2. Data Acquisition and Processing:
    • Acquired raw linear acceleration data along the X-axis from the BNO055 IMU in NDOF mode.
    • Applied exponential smoothing to reduce high-frequency noise, stabilizing the acceleration signal for further analysis.
    • Corrected sensor bias by recording a stationary baseline and subtracting the offset from subsequent readings.
    • Calculated velocity (through first integration) and displacement (through second integration) based on the smoothed acceleration data, using a fixed time interval determined by the IMU’s sampling rate.
  3. Data Transmission:
    • Configured the ESP32 as a BLE server for transmitting processed IMU data to the app.
    • Formatted the data into strings for compatibility with the app’s parsing requirements.
  4. UI Improvements:
    • Added a user interface section to input height and weight, which will be used in future analytics.
    • Enhanced the visualization of data, focusing on graphs and trends to provide more intuitive insights for users.

Challenges Faced

  1. Data Transmission Timing Issues:
    • The asynchronous nature of Bluetooth communication led to timing discrepancies, with data packets occasionally being received out of order.
  2. Noise and Drift in Displacement Calculation:
    • Residual noise in acceleration data caused drift in velocity and displacement estimates, even after smoothing.
  3. Temperature and Environmental Sensitivity:
    • Minor variations in IMU data were observed under different temperature conditions, highlighting the need for temperature-based calibration.
  4. ESP32 Power Management:
    • To prevent overheating and optimize power usage, delays were implemented between transmissions. Additionally, Wi-Fi settings were optimized to minimize power consumption during idle periods.

Results

  1. Processed Data:
    • Successfully transmitted smoothed acceleration, velocity, and displacement data from the ESP32 to the app.
    • Users can now monitor these values through the mobile app.
  2. Key Outputs:
    • Velocity (X-axis): Estimated velocity over time.
    • Displacement (X-axis): Estimated displacement via double integration of acceleration data.

Next Steps

  1. Data Transmission Improvements:
    • Investigate and resolve timing issues to ensure data packets are received in the correct order.
    • Implement error-checking mechanisms to handle unordered data reception.
    • Conduct extensive testing under different conditions to identify and mitigate bottlenecks.
  2. Advanced Filtering:
    • Explore the use of a Kalman filter to reduce drift and improve accuracy in displacement and velocity calculations.
  3. App Enhancements:
    • Add data visualization features, such as graphs and trendlines, to improve user insights into acceleration, velocity, and displacement trends.
  4. Temperature Calibration:
    • Investigate temperature sensitivity of the IMU and incorporate calibration techniques to minimize its impact.

Conclusion

The team has made significant progress in both hardware communication and data processing. The establishment of Bluetooth communication and successful implementation of data acquisition and smoothing techniques lay the groundwork for further improvements. Challenges such as timing discrepancies, noise-induced drift, and environmental sensitivities have been identified and are being addressed. Upcoming efforts will focus on advanced filtering techniques, enhanced data visualization, and continued system optimization to ensure reliability and usability for end-users.

Reva Poddar’s Status Report for 11/2

Progress Update:

This week, we successfully solidified the Bluetooth connection between our ESP32 device and the mobile application. We developed a protocol to send structured data (using structs) to the app, which has improved the efficiency and reliability of our data transmission. Additionally, we implemented a transfer status ID to indicate the end of data transmission, ensuring that the app knows when a data packet is fully received.

Challenges Faced:

  • Timing Issues: We are experiencing problems with data not being received in order. The asynchronous nature of Bluetooth communication is causing timing discrepancies, leading to out-of-order data packets.

Next Steps:

  • Investigate and resolve the timing issues to ensure data packets are received in the correct order.
  • Implement error-checking mechanisms to handle any unordered data reception.
  • Begin initial testing of data transmission under different conditions to identify potential bottlenecks.

Team Status Report for 10/26

1. Progress This Week

  • Bluetooth Connection Setup: This week, the team focused on setting up the Bluetooth connection between the IMU device and the StrideSense mobile app in Flutter. We successfully integrated the Bluetooth package and detected the IMU device. However, an issue arose where the app struggled to retrieve consistent values from the IMU. Specifically, the connection intermittently dropped before the sensor data could be fully received.
  • Bosch IMU Configuration: Initial configuration adjustments were made on the Bosch IMU to achieve precise and reliable sensor readings tailored to the motion requirements of the insole. This involved testing different sampling rates and sensitivity levels, configuring power management settings to optimize battery usage, and fine-tuning data transmission protocols for smoother BLE connectivity.
  • Kalman Filter Design: We began developing a Kalman filter to process IMU data, aiming to improve accuracy by filtering out noise. The team studied filtering principles, ran initial simulations in MATLAB to experiment with filter parameters, and started defining state equations for position, velocity, and orientation.
  • Noise and Drift Reduction: Steps were taken to address drift and noise in the IMU, including applying high-pass and low-pass filtering techniques and complementary filtering to correct gyroscope drift. MATLAB was used for initial error analysis and to refine drift correction algorithms.

2. Schedule Status

  • Slightly Behind Schedule: The unexpected Bluetooth connectivity issue has delayed our initial goal of consistently retrieving sensor values in the app. Additional time is needed to stabilize the connection before moving forward with data handling and visualization in the app. Similarly, while progress was made in configuring the IMU and developing the Kalman filter, we still need further testing and tuning for both elements to reach the required accuracy and stability.

3. Plan to Catch Up

  • Bluetooth Connection Debugging: The team will focus on modifying Bluetooth settings within the app and researching solutions for the disconnection issue. The goal is to achieve a stable connection that reliably retrieves sensor values by next week.
  • IMU Configuration and Testing: Continue optimizing the Bosch IMU configuration, specifically sampling rates, power management, and data handling protocols. These refinements aim to support consistent data quality and stability in BLE transmission.
  • Kalman Filter Tuning and Implementation: Using sample data, we will iteratively tune the Kalman filter’s parameters and test the filter on the ESP32 once initial parameters are verified. MATLAB simulations will assist in evaluating and refining the filtering approach before real-world testing.

4. Goals for Next Week

  • Fix Bluetooth Connection Instability: Resolve the current connectivity issues to achieve consistent data retrieval from the IMU device.
  • Data Handling Implementation in App: Once the Bluetooth connection is stable, begin implementing basic data handling to display IMU values in the app interface.
  • IMU Calibration and Filtering Refinements: Continue refining the Kalman filter and drift correction techniques, testing high-pass and low-pass filters to reduce noise. Further MATLAB simulations will help adjust and validate the filtering approach.
  • Additional Testing Scenarios: Conduct tests to evaluate Bluetooth performance in various conditions (e.g., distance, interference) and monitor the IMU’s stability under real-world use cases to inform necessary adjustments.

Reva Poddar’s Status Report for 10/26

Progress This Week

  • This week, I focused on setting up the Bluetooth connection between the IMU device and the StrideSense mobile app in Flutter. I was able to integrate the Bluetooth package and detect the IMU device. However, I encountered an issue where the app struggled to retrieve consistent values from the IMU; specifically, the connection would intermittently drop before the sensor data could be fully received.

Schedule Status

  • Slightly Behind Schedule: The unexpected connectivity issue has delayed our initial goal of successfully retrieving sensor values in the app. This setback means I need additional time to stabilize the Bluetooth connection.
  • Plan to Catch Up: I will work on debugging the connection issue, focusing on modifying Bluetooth settings within the app and researching potential solutions for intermittent disconnections. My goal is to have a stable connection that can retrieve sensor values consistently by next week.

Goals for Next Week

  • Fix Bluetooth Connection Instability: Focus on resolving the connection issue to achieve reliable data retrieval from the IMU device.
  • Initial Data Handling in the App: Once values are consistently retrieved, begin implementing basic data handling to display these values in the app’s interface.
  • Conduct Further Testing: Run additional tests to troubleshoot connection stability across different distances and potential interference scenarios.