TIL in Robotics

CMake Meta Build System

Common Algorithms from the STL Library in C++

Control Techniques for Robot Manipulators

Robot Operating System (ROS) - Command Line Tools

Sampling-based Motion Planners

Motion Planning in Robotics

Visual SLAM - An Introduction

Coverage Problem in Mobile Robotics


Control techniques in robotics can largely be classified as model-based and model-free. The most common control techniques include PID, gain-scheduling, cruise-control, adaptive control, robust control and reinforcemment learning-based control among others. Majority of the model-based control techniques have an upper-hand over the model-free techniques as the former estimate control signals with some information about the response expected from the plant.

The model-free techniques like PID or other ML and AI based techniques, need a lot of training to develop the same extent of fidelity as model-based techniques. However, model-based techniques are prone to modeling errors while system identification and modeling in itself is a very strenous process and model-free techniques do not have such requirements. Model-free techniques deriving the tuning parameters during the training procedure are essentially deriving a pseudo-plant model in the backend that helps them know the correct relationshop between the input and output.

Examples of Control Techniques


Model predictive control is an advanced control technique that manipulates the plant output while also satisfying the set of constraints and handling disturbances. MPC is an online technique which is essentially an optimization problem for the objective function defined for the desired plant output. MPC uses the plant model and predicts the control signals for a finite set of future timestamps corresponding to the desired output. However, it only implements/executes inputs only for a small fraction of the predicted timestamps and repeats the process at the next prediction timestamp.

MPC can handle the dynamics of the highly non-linear systems and the unanticipated disturbances as well. It can operate on MIMO (multi-input multi-output) systems with constraints on the system properties. As MPC can look into the future predictions, it can also handle unexpected disturbances. However, it is a computationally expensive method and with increasing system complexity, the compute power requirement can increase exponentially.

It is often known as receding horizon control or dynamical matrix controlor generalized predictive control.

MPC Flowchart


MPC is straightforward genralized control technique that can handle a lot of constraints, variations, disturbances and almost all system given the model, thus making it suitable control technique for a lot of applications from industry and products to academia and more.

Common applications of MPC include:

MPC Applications


MPC uses the model of the system and solves an optimization problem attempting to find the global minima for the defined objective function also called cost function. The optimization task is an interative process that finds the most favorable set of input signals that minimize the error in desired and predicted output while also satisyfing the set of constraints. The sequence of control inputs steer the system towards the desired setpoint response. At each timestep, the controller solves an open-loop optimization problem and after it applies the first control signal generated, the output is fedback as system state for optimization for the next timestep.

An MPC may not necessarily be optimal as the optimization solvers are prone to local-minimas but it ensures that the system converges to the best possible and feasible solution.

MPC has a few design parameters which need to be either selected carefully or learned by experience to obtain the best performance of the controller.


A typical multivariate control system using an MPC controller operates on the system model, usually non-linear, a cost function and an optimization algorithm. Usually, the problem is a convex optimization task and that should be optimized for prediction horizon.

State-Space Model of Control System

For a given discrete time state-space model like shown above, the typical cost function could be:

Sample Cost function for a common non-linear function

In the cost function above,

i is the current timestamp and n is the total prediction horizon
xdi is the desired output for the particular timestamp i while xi is the system current state
wxi is the weight of the desired/reference output at the particular timestemp i
wui is the weight of the rate of change of input at the particular timestemp i
Δui is the weight of the rate of change of input at the particular timestemp i

MPC Time Graph


MPC is largely dependent on the model of the system and while it may be easy to model simple automation systems, it gets extremely complicated to design dynamic systems like robots and their non-linearity is difficult to solve for the MPC. There are several complexities in systems as well, which tend to disturb the dynamics and expected responses from it. To accomodate such variations or adapt to changing operational evnironment or to ease the MPC implementation, different types of MPC are deployed.

Model Predictive Control is a very powerful tool for controling the system response and is widely used in robotics. It finds major applications in autonomous vehicle trajectory tracking and control. It has also been researched for, in manipulation and aerial navigation. Part II of this series explains the application of MPC in robotics with an implementation for the same, in C++. Stay tuned!


Copyright @Akshay Kumar | Last Updated on 05/25/2019