# Wheel Slip Detection via a Novel Adaptive Kalman Filter on Michigan Racing’s Formula SAE Car ###### tags: `ROBOTICS`, `sensor fusion` This paper develops a novel velocity estimator using an Kalman Filter (KF). The proposed state estimator for automotive vehicles combines data from an inertial measurement unit (IMU), wheel encoders, and GPS to produce a velocity estimate that is robust against wheel slip events and point out the section of slipping. The algorithm is efficient and can be implemented to run in real-time to produce accurate velocity estimates for vehicle control systems. Open source software is available for download and reproducing the presented results. {%youtube jyrhxCQwX8k %} ## Getting Started To run the Python code, the following environment and dependencies are required: - Python == 3.6 - numpy == 1.20.3 - matplotlib == 3.4.3 - scipy == 1.7.1 ## Code organization . ├── config # reference ├── data # data from Michigan Racing’s Formula SAE │ ├── settings.yaml # setting for params and methods in python programming ├── doc # reference ├── results # Folder contains final results files(including txt and image) ├── src # Matlab and Python scripts │ ├── Matlab # Matlab scripts │ │ ├── ekf.m # Matlab script of velocity estimation with EKF. │ │ ├── Single_EKF.m # Matlab script of velocity estimation with Single_EKF. │ │ ├── Single_EKF_experimental.m # Matlab script of velocity estimation with Single_EKF_experimental. │ ├── Python # Python scripts │ │ ├── main.py # Python script of velocity estimation. │ │ ├── rob_run.py # the structure of velocity estimation. │ │ ├── rob_system.py # motion model, measurement model, noise covariance, and Jocabian matrix. │ │ ├── helper # Helper function │ │ │ ├── data_loader.py # Helper function: load data │ │ │ ├── make_plot.py # Helper function: make plot │ │ ├── filter # filter scripts │ │ │ ├── EKF.py │ │ │ ├── InEKF.py │ │ │ ├── KF.py │ │ │ ├── KF_separated_wheel.py │ │ │ ├── PF.py │ │ │ ├── UKP.py └── README.md ## Running the code To run the Python code, run `main.py` To run the Matlab code, run `main.m` ## Implementations * See the [report] (upcoming soon!) for detailed implementations. ## Results ![](https://i.imgur.com/zJ0Mj7R.png) The gray area is Slip phenomenon via slip detection ## Contributors * Yu-Ju(Leslie) Chiu: [Gitlab](https://gitlab.eecs.umich.edu/yujuchiu), [Homepage](https://hackmd.io/@lesliechiu), [Linkedin](https://www.linkedin.com/in/yu-ju-chiu-611515198/)