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.
- 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).
- MPC: Discrete-time linear MPC with state and input constraints (
- 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.
driver.m: Main script to set up the robot, controllers, run simulations, and visualize results.Robot.m: Robot manipulator model and kinematics.MPController.m: Model Predictive Controller implementation.ISMController.m: Integral Sliding Mode Controller.InverseDynamicsController.m: Inverse dynamics and uncertainty modeling.InverseDynamicsISMMPCController.m: Combined MPC-ISM controller.RobotSimulator.m: Simulation and result visualization.MPC for Robot Manipulators with integral Sliding Modes Generation: Presentation on the original paper and our implementation with its results- Images: Block diagrams and error plots.
- MATLAB R2018b or newer (tested)
- Optimization Toolbox (for
quadprog)
-
Clone this repository.
-
Open MATLAB and set the working directory to the project folder.
-
Run the main script:
driver.m
