EKF & LQR for Mobile Robot Trajectory Tracking

Extended Kalman Filter (EKF) and Linear Quadratic Regulator (LQR) implementations on a mobile Robot for improved trajectory tracking.

For my final project in ME 439: Intro to Robotics, my classmate, Mohamed Safwat, and I improved a differential mobile robot’s wheel-based state estimation by integrating an MPU6050 IMU sensor and fusing it with wheel encoders using an Extended Kalman Filter (EKF). We also designed a Linear Quadratic Regulator (LQR) controller and compared it to the Proportional Integral Derivative (PID) controller designed in class. The project was written in Python and utilized ROS on the mobile robot’s Raspberry Pi for sensor and actuator communication. All computations were carried out on an external Linux-based laptop for real-time control using ROS networking. The LQR controller was implemented on both hardware and in simulation, however, simulating the IMU’s noise was beyond the scope of the project and so the EKF was only implemented on hardware. The hardware demonstration was done on ROS1 due to motor drivers being incompatible with ROS2. The simulation was done in ROS2 and gazebo.

You can find a video of the hardware demonstration here and the code here. You can find a video of the simulation here and the code here. A report of the project can be found here and the slides from the presentation can be found here.