Goal
The purpose of this project was to localize a heated block on a square grid. The grid had a thermocouple placed at each of the 4 corners. There were 4 IR sensors of different ranges (2 short, 1 medium, 1 long) that were to be placed at a chosen distance from the grid. These sensors were to be fused to find the block position.
Additionally, a moving object was to be tracked using dynamic state estimation with IR sensors alone.
Method
The first step in the project was to perform a Gaussian noise analysis and fit exponential voltage-distance models to the IR sensors. Histogram analysis was used to quantify the measurement noise. Sensor fusion was then tested using inverse-variance weighted averaging to estimate distance from multiple IR sensors and evaluate accuracy. The robustness of each IR sensor model was assessed under different surface angles and materials to examine generalizability. Multiple noise filtering methods (e.g. moving average, low-pass filters) were compared to select the best approach for real-time distance smoothing.
Next, the thermocouples were added to help improve the localization. Models were built for the thermocouples using similar techniques.
To build a probabilistic localization model, each measurement was modeled as a noisy probabilistic Gaussian distribution centered at its distance estimate. For each sensor type, all 4 sensor distributions were multiplied together. This resulted in 2 probabilistic likelihood maps; one for each sensor type. Finally, these 2 maps were combined and a posterior probability surface was created.
A more robust method would implement Bayesian fusion, comparing new readings to empirically learned sensor behavior across the grid — leading to more accurate and data-adaptive localization. Training data was collected for a potential Bayesian implementation, but the method was not pursued.
Finally to implement real time tracking of the object’s position, velocity, and acceleration, an Extended Kalman Filter was implemented. Based on the fits developed earlier, a nonlinear sensor model was built. Time-differencing was used to generate pseudo- measurements for velocity and acceleration. The Jacobian matrix was found to linearize the measurement model. The motion model was built using a constant acceleration assumption. The filter was tuned and validated using simulated trajectories of linear, nonlinear, and random motion. Initial state guesses were varied and the process and noise covariance matrices were tuned through testing. The EKF was also tested on real data, including with a tilted surface.
This project was done using Matlab, Simulink, and Python.
Results
- Achieved 4.4% distance average error with inverse variance weighted average compared to 5.3%, 6.3%, and 12.5% for individual sensors.
- Achieved reasonable accuracy using probabilistic localization with sensor fusion.
- EKF estimated final position on real data with error < 5 cm.
- See images for project setup, EKF simulation, curve fits, and probabilistic maps.