Vansh Mantri’s Status Report for 11/2

Summary of Work Done

  1. Data Acquisition and Smoothing
    • Raw linear acceleration data along the X-axis was acquired from the BNO055 IMU in NDOF mode.
    • Initial analysis showed significant noise in the raw data even when the sensor was stationary. To address this, we applied exponential smoothing to reduce high-frequency noise and stabilize the signal for further processing. This step was essential to obtain a more accurate representation of linear acceleration.
  2. Bias Correction
    • A bias correction technique was implemented by recording a stationary baseline and calculating the mean of the initial readings to account for any offset. This average offset was then subtracted from all subsequent readings, ensuring that the data approached zero when the IMU was stationary.
  3. Velocity and Displacement Calculation
    • First Integration: The smoothed and bias-corrected acceleration data was integrated over time to estimate velocity.
    • Second Integration: The calculated velocity was further integrated over time to estimate displacement along the X-axis.
    • A fixed time interval (dt), based on the IMU’s sampling rate, was used to ensure consistent and accurate integration at each step.
  4. ESP32 Data Transmission to Mobile App
    • We used an ESP32 microcontroller to transmit the processed IMU data to a mobile app. Here’s how we set up this data transmission:
      • BLE Communication: The ESP32 was configured to create a BLE server, allowing it to communicate wirelessly with the mobile app.
      • Data Formatting: The processed data (smoothed acceleration, velocity, and displacement) was formatted into strings to ensure compatibility with the app’s data parsing requirements.
  5. Challenges Encountered in Transmission
    • Power Management on ESP32: To prevent overheating and optimize power usage, we implemented a delay between data transmissions. Additionally, we configured the ESP32’s Wi-Fi settings to minimize power consumption during idle periods.

Results

The processed data was successfully transmitted from the ESP32 to the mobile app, allowing users to monitor acceleration, velocity, and displacement values. Key outputs included:

  • Velocity (X-axis): An estimated velocity value over time.
  • Displacement (X-axis): An estimated displacement value based on double integration of acceleration data.

Challenges and Recommendations

  1. Noise and Drift in Displacement Calculation
    • Despite smoothing, residual noise in acceleration data caused drift in velocity and displacement estimates. For future improvements, advanced filters like the Kalman filter should be explored to address this drift.
  2. Temperature and Environmental Sensitivity
    • Observations showed minor variations in IMU data under different temperature conditions. Future work could involve temperature-based calibration to further improve accuracy.

Next Steps

  1. Implement Advanced Filtering (Kalman Filter): Integrating a Kalman filter could help reduce drift by combining the current estimate with previous estimates and error measurements, leading to more reliable displacement values.
  2. App Enhancement for Data Visualization: Adding a graphing feature in the app to display trends over time could provide users with better insights into changes in acceleration, velocity, and displacement.

Conclusion

This project successfully calculated and transmitted displacement data from an IMU via an ESP32 to a mobile app. While preliminary results are promising, further improvements in filtering and alternative communication methods could enhance both the accuracy of displacement estimation and the reliability of data transmission. Integrating advanced filtering and refining the app’s user interface for better visualization are recommended next steps.

Vansh Mantri’s Status Report for 10/26

Next Steps and Action Items:

  1. Bosch IMU Configuration
    • Goal: Achieve precise and reliable sensor readings by optimizing the Bosch IMU configuration to match the motion requirements of the insole.
    • Tasks:
      • Adjust Sampling Rates and Sensitivity: Experiment with different sampling rates to balance accuracy with response time. Set the accelerometer and gyroscope sensitivity levels based on anticipated user movements and required data precision.
      • Power Management Settings: Configure the Bosch IMU’s power-saving features to optimize battery usage without compromising data accuracy, essential for wearability and long-term use.
      • Data Transmission Protocol: Fine-tune data handling settings to ensure smooth transmission over BLE with minimal latency or packet loss.
  2. Kalman Filter Design and Implementation
    • Goal: Build a Kalman filter to process the insole’s IMU data, allowing more accurate measurement of position and orientation by filtering out unwanted noise and stabilizing output.
    • Tasks:
      • Understanding the Basics: Begin with a detailed study of Kalman filtering principles, including understanding state estimation, prediction, and update phases. Use MATLAB or Python for initial simulations to experiment with filter parameters.
      • Develop State Equations: Define equations for the insole system’s states (e.g., position, velocity, orientation) to establish the Kalman filter model.
      • Tuning Process: Test and adjust the Kalman filter’s parameters (e.g., process noise and measurement noise covariance matrices) using sample data. The tuning process will be iterative, aiming to achieve minimal deviation while avoiding excessive response lag.
      • Implementation in ESP32: After verification in simulation, implement the filter on the ESP32. Monitor real-time performance and compare results to simulated outputs.
  3. Minimizing Sensor Drift and Noise
    • Goal: Reduce drift and noise from the IMU, which can accumulate over time and lead to significant inaccuracies.
    • Tasks:
      • High-Pass and Low-Pass Filtering: Apply high-pass filters to isolate rapid motion changes (e.g., foot strikes) and low-pass filters to stabilize slow changes (e.g., orientation). Fine-tune cutoff frequencies based on motion characteristics.
      • Drift Correction Techniques: Use complementary filtering alongside the Kalman filter to continuously correct drift, especially for gyroscope readings.
      • Calibration and Testing: Regularly recalibrate the IMU, especially in varying environmental conditions, to account for temperature and magnetic interference.
      • MATLAB Simulations for Error Analysis: Use MATLAB to model common sensor errors and adjust filtering techniques accordingly. This will help in refining drift correction algorithms before implementation on the actual device.

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.

Reva Poddar’s Status Report for 10/21

Accomplishments This Week:
This week, I focused on setting up the Bluetooth communication framework and managing data transfer. I made progress in preparing the Bluetooth package for Flutter to detect nearby devices and started evaluating different data handling techniques to ensure smooth real-time data transmission. I also looked at flutters existing graphical representation libraries.

Progress Status:
I am currently a bit behind schedule, and anticipate that I will encounter issues with maintaining a stable connection and organizing the data flow within the app, so I am planning to dedicate more time throughout the upcoming weeks to catch up. The delay primarily involves establishing the initial Bluetooth connection and finalizing the file system structure. I am confident that with a concentrated effort, I can get back on track and complete the planned milestones.

Deliverables for Next Week:

  1. Complete the initial Bluetooth connection setup to receive data on the app.
  2. Finalize the file system design for managing Bluetooth-transmitted data from ESP32.
  3. Begin integrating the data visualization features using data from the Bluetooth connection.

Updated Schedule:

  • By End of the Week: Continue working on making the initial Bluetooth connection and refining the file system for Bluetooth communication.
  • Upcoming Weeks: Dedicate extra effort to finalize the Bluetooth integration with Vansh and start implementing the graphical representation components.

The focus will be on managing any remaining connectivity or data flow issues and ensuring that progress aligns with the project goals.

Team Status Report for 10/21

Accomplishments This Week:

  • System Architecture: Completed a detailed design for the insole, integrating the IMU, pressure pad, BLE module, and LIPO battery. Outlined data flow and real-time transmission via ESP32.
  • Data Collection and Processing: Documented data handling methods, including preprocessing and filtering using MATLAB to minimize noise.
  • Bluetooth: communication in Flutter, and explored graphical representation libraries.
  • Validation Plan: Developed a testing strategy to assess system accuracy, response time, and battery efficiency.

Progress Status:

  • Behind Schedule: Delays in Bluetooth connectivity and data flow organization. Additional effort planned to catch up.

Significant Risks:

  • Bluetooth Stability: Addressing communication issues with tests and alternative BLE options.
  • Data Handling: Optimizing real-time processing methods to avoid latency.

Updated Schedule:

  • This Week: Complete Bluetooth setup and file system design.
  • Upcoming Weeks: Finalize integration and start implementing data visualization.

Part A: Global Factors (Written by Reva Poddar)

The motion-tracking insole addresses a global need for improved gait analysis as well as injury prevention across various demographics. The solution caters to athletes and individuals undergoing physical therapy, as well as everyday users looking to monitor and enhance their movement patterns. With the rise in remote health monitoring and wearable technology adoption worldwide, the insole offers a universally accessible tool that supports different regions and user groups, even those who are not technologically inclined. The app’s compatibility with both iOS and Android devices ensures it can be used across diverse device ecosystems, making it suitable for a broad audience outside academic and local communities.

Part B: Cultural Factors (Written by Vansh Mantri)

Cultural considerations are crucial in designing the insole, as attitudes towards exercise, rehabilitation, and technology use vary widely. In communities that prioritize fitness and sports, the insole can be a tool for optimizing athletic performance. In cultures where traditional medicine or low-tech rehabilitation is preferred, the app’s user-friendly interface can help introduce the benefits of modern gait analysis without overwhelming users.

Part C: Environmental Factors (Written by Vansh mantri)

The insole is designed with sustainability in mind, promoting environmental considerations in multiple ways. By helping users prevent injuries, the need for prolonged physical therapy or medical treatments, which have environmental impacts due to resource and energy use, is reduced. The hardware components are selected for durability, minimizing electronic waste through fewer replacements.

 

Vansh Mantri’s Status Report for 10/20

The objective of the design report was to document the progress and detailed planning for the development of a motion-tracking insole. This report aimed to present the system architecture, data collection methodology, and validation strategy.

Tasks Completed:

  1. System Architecture Design:
    Created a comprehensive architecture diagram detailing the insole’s key components, including the IMU (Accelerometer + Gyroscope), Pressure Pad, BLE module, and rechargeable LIPO battery. Specified the data flow between these components, with an emphasis on integrating data collection and real-time transmission using the ESP32.
  2. Data Collection and Processing Methodology:
    Documented the methodology for data collection, including the specific configurations for the Bosch IMU. This section also included steps for data preprocessing, error correction, and signal filtering to minimize sensor drift and saturation using MATLAB simulations.
  3. Hardware Integration and Prototyping:
    Outlined the hardware integration process and included initial tests conducted using an Arduino prototype. Summarized findings from these tests to support the decision to transition to ESP32 for final implementation.
  4. Validation and Testing Approach:
    Described the validation strategy, which includes bench tests for individual components and integrated tests to assess the system’s overall performance. Focused on planned methods to evaluate accuracy, response time, and battery efficiency.
  5. Challenges and Risk Assessment:
    Highlighted technical challenges faced during prototyping, including sensor noise issues and BLE connectivity stability. Conducted a risk assessment to identify potential project bottlenecks and proposed contingency plans.
  6. Formatting and Presentation:
    Structured the report to ensure it meets professional standards, with sections including an executive summary, system specifications, diagrams, and tables for data presentation.

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.

Reva Poddar’s Status Report for 10/5

This week, I made significant progress by developing a functioning prototype of our app based on the design presentation specifications. The app now has three key sections:

  • A main page that displays real-time statistics collected from the IMU, providing users with immediate feedback on their movement data.
  • A history and trends page that shows past performance, allowing users to review historical data and track improvements over time.
  • A settings page, where users can set customizable thresholds for specific metrics (e.g., speed or stride efficiency) and receive alerts if they fall below the set limits.

I faced some challenges setting up the iOS simulator for testing, mainly due to issues with dependencies in my development environment, which delayed the testing by a few days. Despite these challenges, I was able to get the prototype working on an IOS simulator however android testing will require a little bit more time to ensure the app runs smoothly on both platforms.

Next Steps:

Going forward, my focus will shift toward data integration:

  1. I plan to work closely with Vansh to receive the IMU data values via Bluetooth. This will involve using Flutter’s Bluetooth package to establish the connection and ensure smooth data transmission from the IMU to the app.
  2. Once I receive the data, I will begin integrating it into the app, developing a system to analyse + present the information graphically to users in real-time.
  3. I will also continue addressing the iOS simulator issues and aim to get the app running on both iOS and Android devices for a more robust testing process.

Vansh Mantri’s Status Report for 10/5

1. Finalized Hardware Components:

  • Inertial Measurement Unit (IMU): Selected an IMU that includes both an accelerometer and gyroscope. This will be used for real-time motion tracking.
  • Pressure Pad: Chosen for accurate pressure detection and user feedback.
  • Bluetooth Low Energy (BLE) Module: Decided on a BLE module for low-power wireless communication between the insole and external devices.
  • Battery: Calculated power requirements for the system and confirmed the use of a rechargeable LIPO battery. These calculations have been documented and posted in the design report.
  • ESP32 Selection: After meeting with the CLIMB team (who are working on a similar project), we decided to use an ESP32 microcontroller for its low power consumption, integrated BLE, and ease of interfacing with the sensors and battery.

2. Collaboration with CLIMB Team:

  • Met with the CLIMB team to discuss design decisions, as they are using a similar framework. We shared insights into using the ESP32 microcontroller and discussed battery management with LIPO rechargeable batteries. This collaborative discussion helped solidify our design decisions regarding energy efficiency and sensor integration.

3. IMU Testing and Simulation:

  • Successfully connected an Arduino to the Bosch IMU sensor to begin collecting data.
  • Conducted a preliminary test and ran a simulation in MATLAB to analyze sensor drift and saturation. The simulation helped identify ways to minimize these issues, which will be addressed in future sensor calibration and firmware development.

Next Steps:

  • Continue sensor calibration and integration with the ESP32.
  • Finalize the communication protocol between the insole and external devices.
  • Work on refining the simulation model to better predict and reduce sensor drift.