Project
| # | Title | Team Members | TA | Documents | Sponsor |
|---|---|---|---|---|---|
| 45 | PulseGuard: Hardware Encoder Integrity Monitor |
Chinmay Naveen Sanjiv Kondin |
Alex Lee | ||
| * Sanjiv Kondin (skond32) * Chinmay Naveen (cnaveen2) *third student Problem Wheel encoders are commonly used by robots to measure how fast their wheels are turning and how far the robot has moved. If an encoder signal becomes corrupted, such as from missing pulses, extra pulses, or a disconnected signal, the robot may continue using incorrect measurements without knowing there is a problem. We propose PulseGuard, a system that checks whether the encoder measurements are reliable by comparing them with an independent measurement from an IMU. The system will intentionally create encoder faults during testing and determine whether PulseGuard can detect the difference between the encoder and IMU measurements. Solution We will design and build a system that connects two wheel encoders, an IMU, and a microcontroller. The microcontroller will read the encoder signals and calculate the robot's turning speed. It will then compare this value with the turning speed measured by the IMU. If the difference between the two measurements becomes larger than a selected threshold for a certain amount of time, the system will report that the encoder may have a fault. The system will also include a simple fault-injection circuit that allows us to create different encoder problems during testing. This will allow us to test whether PulseGuard can detect real encoder faults in a controlled and repeatable way. The design breaks down into four subsystems: encoder interface, fault injection, IMU sensing, and firmware. Solution Components Encoder Interface The system will connect two wheel encoders to the microcontroller. The encoders will provide signals that show how fast each wheel is turning. The encoder signals will be cleaned up using a Schmitt-trigger circuit before being sent to the microcontroller. This will help make sure the microcontroller receives clear digital signals. Both encoder channels will be used so that the system can determine wheel movement and direction. Part numbers (subject to change): 74HC14 Schmitt-trigger inverter Resistors Capacitors Encoder connectors Fault Injection The system will include a simple circuit that allows us to intentionally change one encoder signal during testing. Three types of faults will be tested: Missing pulses Extra pulses Interrupted signal A switch will be used to choose between the normal encoder signal and the modified signal. The microcontroller will control when the fault is added so that the exact time of the fault can be recorded. Part numbers (subject to change): 74HC4053 analog switch 74HC14 Schmitt-trigger inverter Resistors Capacitors IMU and Fault Detection A BNO085 IMU will be used to measure the robot's turning speed using its gyroscope. The microcontroller will calculate the turning speed using the two encoder measurements and compare it with the turning speed measured by the IMU. If the two measurements are different by more than a selected amount, the system will consider the encoder measurement unreliable. A small delay will be used before reporting a fault so that normal sensor noise does not cause false alarms. Part numbers (subject to change): BNO085 IMU I2C connections Supporting capacitors Firmware and Data Logging The microcontroller will handle the encoder signals, IMU data, fault injection, and fault detection. During testing, the system will record: Encoder measurements IMU measurements Fault type Fault injection time Fault detection time Fault status The data will be sent to a computer through USB serial so that the results can be reviewed after testing. Criterion For Success High-level goals Detect at least 90% of the encoder faults that are intentionally created. Detect an encoder fault within 500 ms. Keep the false-positive rate below 5% during normal operation. Detect all three tested fault types: Missing encoder pulses Extra encoder pulses Interrupted encoder signal Correctly compare encoder and IMU measurements. Record the time when a fault is created and detected. Successfully send test data to a computer. Testing/Demo The system will first be tested without any faults to make sure the encoder and IMU measurements agree during normal operation. The encoder signals will then be tested using an oscilloscope to make sure the system is receiving clean signals. Each of the three fault types will be injected separately. At least 10 tests will be performed for each fault type. During testing, the system will record the encoder measurement, IMU measurement, fault type, and detection time. The system will also be tested during different types of motion, including: Straight-line motion Turning Stopping and starting The detection time will be calculated by comparing the time the fault was created with the time PulseGuard detected it. Normal operation without injected faults will also be tested to determine the false-positive rate. For the final demonstration, the robot will operate normally while PulseGuard monitors the encoder measurements. A controlled encoder fault will then be introduced. PulseGuard should detect the disagreement between the encoder and IMU and report an encoder fault. The final results will demonstrate the system's ability to detect encoder faults, measure detection time, and avoid reporting faults during normal operation. |
|||||