In robotics, we provide robots with certain inputs and expect them to produce specific outputs. To achieve this reliably, we use what’s called a control system. As the name suggests, a control system is designed to deliver a desired output by carefully managing inputs. In its simplest form, the concept can be visualized as:
Let’s consider a computer mouse as an example. When you move the mouse, it detects motion through a sensor—typically a small camera. The control system inside the mouse calculates how far and in which direction the mouse moved. Based on that, it updates the position of the cursor on your screen.
This process involves a chain of operations handled by your computer’s kernel (the core part of the operating system), using mathematical methods such as coordinate geometry, calculus, and Fourier transforms—topics we’ll explore in detail later.

Now, control systems can be classified in various ways. Most importantly, not all of them rely on both input and output to function. For instance, in the case of the computer mouse, the system reacts purely to the input (your movement) without any feedback from the output (the cursor position). This type of system is known as an open-loop control system.
Types of Control Systems
If we picture a control system as a “black box,” we can classify it in three different ways, each with two sub-types:
1. Based on the Number of Inputs and Outputs
- SISO control system (Single Input Single Output).
- MIMO control system (Multiple Input Multiple Output).

2. Based on Time Behavior
- Continuous Time Control Systems: The output values are continuous over time. For example, when you accelerate using the pedal in your car, the control system continuously updates the speed state. There’s no sudden jump between values—because if there were, physics has another answer for that!
- Discrete Time Control Systems: The output values are not continuous but instead occur at specific time intervals. For example, if your system gives digital signals (0s and 1s), this is considered discrete because the control system jumps between ones and zeros.

3. Based on Dependency on the Output
Feedforward Control Systems
Or what we call an open-loop control system, this system does not depend on any of its outputs. As shown earlier with the example of the computer mouse, it only relies on the input received from its camera. It then lets the rest of the system calculate and update the cursor position on the screen.
It’s important to note that this type of control system can actually depend on multiple inputs—as long as none of them are affected by the output. For example, there could be a user input and disturbances (external noise). This still counts as a feedforward control system.
Most predictive control systems often fall into this category. Sometimes, open-loop systems are also used to generate setpoints for feedback control systems—which brings us to the next type.
Feedback Control Systems
Also called closed-loop control systems, these are systems where the input depends on the output—or at least on an element of it. This is the most widely used type in robotics projects, especially for control methods like PID or for state estimation.
To achieve the desired behavior, we manually (or through a controlled process) provide a setpoint—a target condition the control system should achieve. The difference between the actual output and the setpoint is called the error, and it’s calculated by an error detector.

For example, imagine we want to build an air conditioner with a remote controller. The user selects a desired temperature (within thermodynamic and safety limits)—this is the setpoint.
The air conditioner has:
- A cooling controller to regulate temperature.
- A sensor to read the current room temperature.
The sensor reading is known as the feedback signal, which is sent to the error detector to compare it against the setpoint. The result is the error signal, which goes back into the controller to adjust the cooling. This process keeps repeating. If the error signal = 0, the controller takes no further action.
I know it might sound a bit complex—so here’s an illustration to help clarify everything:

To wrap up, I highly recommend Brian Douglas’s excellent video on control-system design—it’s a clear, engaging companion to the concepts we’ve covered here.
1 comment