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.

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.

Team Status Report for 10/5

This week, we made substantial progress on both the hardware and software components of the motion-sensing shoe sole project. The hardware team focused on finalizing component selections, while the software team concentrated on developing a functional app prototype. The goal is to ensure that both the hardware and software align with our design specifications and operational requirements.

Progress Summary:

Hardware Component Finalization:

  1. Inertial Measurement Unit (IMU): We selected an IMU that includes both an accelerometer and gyroscope, crucial for real-time motion tracking.
  2. Pressure Pad: Chosen for accurate foot pressure detection to enhance user feedback.
  3. Bluetooth Low Energy (BLE) Module: We opted for a BLE module to ensure low-power wireless communication between the insole and external devices.
  4. Battery: After calculating the power requirements, we confirmed the use of a rechargeable LIPO battery. This will support extended use, and the calculations have been documented in the design report.
  5. ESP32 Microcontroller: Following a meeting with the CLIMB team (working on a similar project), we decided to use the ESP32 microcontroller for its low power consumption, integrated BLE, and ease of interfacing with sensors and the battery.

IMU Testing and Simulation:

  • We connected an Arduino to the Bosch IMU sensor and began collecting data.
  • A preliminary simulation in MATLAB helped us identify issues such as sensor drift and saturation, which will be addressed during future sensor calibration and firmware development.

Software Development (App Prototype):

  • We developed a functioning prototype of the mobile app with the three key sections outlined in our design presentation:
    • A main page showing real-time stats from the IMU.
    • A history and trends page displaying past performance.
    • A settings page allowing users to set customizable thresholds and receive alerts when metrics fall below specified limits.
  • We encountered issues with the iOS simulator due to dependency conflicts, which delayed testing. The app is now functional on iOS, but further testing on Android is needed to ensure smooth operation across both platforms.

Risks:

  1. Sensor Calibration: The IMU data may have issues with drift and saturation, identified through our simulation. We are working to address these issues through calibration in the next phase.
  2. Power Optimization: Battery life could be impacted by sensor performance, and optimizing the balance between power consumption and functionality remains a key focus.
  3. Cross-Platform Testing: Although the app runs on iOS, the Android version needs more attention to ensure functionality on both platforms.

Changes to the Design:

  • After discussions with the CLIMB team, we made the decision to use the ESP32 microcontroller. This change improves power efficiency and integration simplicity at the cost of some initial setup challenges, but we believe the benefits outweigh these costs.

Next Steps:

  1. Hardware:
    • Continue sensor calibration and integrate the IMU with the ESP32.
    • Finalize the communication protocol between the insole and external devices.
    • Refine the simulation model to reduce sensor drift.
  2. Software:
    • Collaborate with Vansh to receive IMU data via Bluetooth and integrate it into the app.
    • Work on presenting the IMU data graphically within the app.
    • Address remaining Android testing issues to ensure smooth cross-platform functionality.

Updated Schedule:

With the hardware components finalized and the app prototype functioning on iOS, we remain on schedule. The next major milestone will involve testing the integration of real-time IMU data with the app and addressing any power or sensor-related challenges.

Conclusion:

We are progressing well on both the hardware and software fronts. The finalized hardware components—Bosch IMU, ESP32, and BLE module—are ready for integration, and the software app is functioning on iOS with pending improvements for Android. The upcoming focus will be on sensor calibration, app refinement, and Bluetooth integration to complete the motion-sensing system.

Team Status Report for 9/21

This week, we focused on finalizing and presenting our project proposal for the motion-sensing shoe sole. The proposal presentation highlighted the feasibility and design considerations of the project, however as we had changed ideas after the abstract submission, we were not able to meet with professors to fully discuss the feasibility of the project. The presentation was successfully delivered, and feedback was received to guide the next phase of the project – including aspect reevaluating the use of pressure sensors in the shoe sole in regards to durability and data collection for our desired use case. We had an insightful meeting with Tamal to discuss the technical feasibility of our project. During the discussion, we discussed issues like bandwidth, selecting a suitable IMU, and perhaps pivoting away from using pressure pads. and decided to focus more on making the IMU work effectively to meet our data-processing requirements, as well as using it externally in the shoe rather than in the shoe sole which could hinder performance. The lack of pressure pad may lead to unexpected technical challenges in measuring certain foot metrics. However, this trade-off will simplify the design and reduce complexity. So we need to spend some time to make key decisions this weekend to further progress with our project. In regard to the upcoming week, we have decided to meet very early on to look look into our use case requirements in detail, and look at specific hardware components and current studies to revaluate our product and create a more detailed systems and UML design, in order to ensure our design is feasible.