Skip to content

Latest commit

 

History

History
56 lines (41 loc) · 3.78 KB

README.md

File metadata and controls

56 lines (41 loc) · 3.78 KB

Overview

This repository is about using iterative learning control (ILC) for robot reference trajectory tracking problem with the situation of model mismatch. Model Predictive Control (MPC) is also used for comparison. It is initiated by the final project of MECHENG 599 - Data Driven Methods for Control Systems (2024 Winter) at University of Michigan - Ann Arbor.

Disclaimer: This is NOT a research project. Some part might not be rigorous and suggestions are welcomed.

ILC and MPC Overview

Image 1 Image 2

ILC Initial Iteration and MPC Result

Image 1 Image 2

ILC-QP (Example)

Image 1 Image 2

Run Locally

Clone the project

  git clone https://github.com/lihanlian/trajectory-tracking-ilc

Go to the project directory

  • run get_reference_trajectory.m to generate mat file that stores vector of reference trajectories (reference_trajectory.mat)
  • run get_initial_control_input.m to generate mat file that stores vector of initial control input solved by direct collocation, which will then be used for ILC iteration. (initial_control_input.mat)
  • run get_ilc_matrix.m to generate mat file that stores necessary matrices within ILC iteration loop. (ilc_matrix_nominal.mat and ilc_matrix_actual.mat)
  • run controller_mpc.m to check the tracking performance using MPC controller.
  • run controller_ilc*.m to check the tracking performance using different ILC algorithms.

Acknowledgements

The author would like to appreciate the course instructor Professor Uduak Inyang-Udoh for his help throughout the semester and discussion during office hours. The author would also like to thank Professor Zachary Manchester and Professor Pranav Bhounsule for the open course CMU 16-745 and open course on Robotics. Below are some good resources might be helpful on related topics.

License

MIT