Skip to content

onurcalisir27/MPC-Project

Repository files navigation

MPC-Project

MATLAB Simulation and Implementation of an MPC-ISM Controller for a 3 DOF Robot Manipulator

Traditional MPC struggles with complex robotic systems due to complex nonlinear dynamics, modelling uncertainties and computational cost. This solution suggests a heirarchical form of control utilising Inverse Dynamics, Integral Sliding Modes, and traditional MPC. The paper suggests that the usage of ISM helps better handle the uncertainties, and our implementation of the algorithm proves the same. This algorithm leads to a simplified MPC optimization, and significantly reduces computational complexity.

This implementation was developed by Onur Calisir and Swapneel Bhatt as part of the final project at Columbia University for the course ELEN6907 Model Predictive Control instructed by Dr. Navid Rahbariasr.

Joint Error Plot with the Heirarchical Algorithm

Tracking Error

Uncertainty Compensation

Uncertainty Compensation

Features

  • Robot Model: 3-link manipulator with forward kinematics, Jacobian, and animation support (Robot).
  • Controllers:
    • MPC: Discrete-time linear MPC with state and input constraints (MPController).
    • ISM: Integral Sliding Mode controller for robust uncertainty compensation (ISMController).
    • Inverse Dynamics: Computes required torques considering robot dynamics and uncertainties (InverseDynamicsController).
    • Combined MPC-ISM: Hierarchical controller integrating MPC, ISM, and inverse dynamics (InverseDynamicsISMMPCController).
  • Simulation: Batch simulation and visualization of controller performance (RobotSimulator).
  • Trajectory Generation: Smooth cubic polynomial interpolation for joint trajectories.
  • Visualization: Plots for joint tracking, control effort, tracking errors, and 3D animation of the robot.

File Structure

Getting Started

Prerequisites

  • MATLAB R2018b or newer (tested)
  • Optimization Toolbox (for quadprog)

Running the Simulation

  1. Clone this repository.

  2. Open MATLAB and set the working directory to the project folder.

  3. Run the main script:

    driver.m

About

MATLAB Simulation and Implementation of an MPC-ISM Controller for a 3 DOF Robot Manipulator

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages