
If you work in robotics long enough, this question always comes back:
Should I use PID or MPC?
It sounds simple, but in practice it is one of the most important control decisions you will make. It affects compute budget, tuning effort, safety, latency, robustness, and ultimately whether your robot feels precise or fragile.
The problem is that most articles on PID vs MPC fall into one of two traps:
They are either too mathematical to help a working engineer ship a robot, or so simplified that they become misleading.
This article takes a different route.
I will go deep enough for robotics and AI engineers who actually build systems, but I will keep the explanations practical. We will cover:
what PID and MPC really do
why PID is still everywhere
why MPC keeps expanding in modern robotics
when each one breaks down
which controller fits which kind of robot
what the 2025–2026 state of the art looks like
how AI is starting to reshape MPC rather than replace it
The core idea is this:
PID is still the default answer for many low-level loops. MPC is increasingly the right answer when constraints, preview, coupling, and optimization matter. Modern robots often use both, in layers, not one or the other. PX4, for example, still relies heavily on cascaded PID loops in its multicopter stack, while ROS navigation stacks increasingly expose MPPI, an MPC-family method, for local control.
1. The short intuition
A PID controller reacts to the error you have now and, depending on implementation, to how that error accumulated in the past and how fast it is changing.
An MPC controller predicts the future over a short horizon, simulates candidate actions against a model, and chooses the control sequence that best satisfies an objective while respecting constraints.
That difference is everything.
PID asks:
“How wrong am I right now, and how should I push back?”
MPC asks:
“What will happen over the next few steps if I do this, and which action sequence gives the best trade-off?”
If you remember only one thing, remember this:
PID is reactive. MPC is predictive.
That is why PID is usually simpler, cheaper, and easier to deploy, while MPC is usually better at dealing with multivariable systems, actuator limits, obstacle avoidance, coupled dynamics, and tasks where “what happens next” matters as much as “what is wrong now.”
2. What PID really is in robotics
A PID controller computes a command from three terms:

u(t)=Kpe(t)+Ki∫e(t)dt+Kdde(t)dt
The PID controller is a common feedback controller consisting of proportional, integral, and derivative terms—often referred to as proportional integral derivative or PID components.
Where:
P (proportional term) attempts to drive the position error to zero by contributing to the control signal proportionally to the current error. The current error, or error term, is the instantaneous difference between the desired setpoint and the measured output.
I (integral term) attempts to drive the total accumulated error to zero by contributing to the control signal proportionally to the sum of all past errors. This helps eliminate steady-state error by considering the integral of the error over time.
D (derivative term) attempts to drive the derivative of the error to zero by contributing to the control signal proportionally to the rate of change of the error (the derivative of the error). The derivative term helps dampen system response and stabilize the output.
The error is the difference between the reference (desired setpoint) and the measured output. The final controller output (also called control output) is the sum of the proportional, integral, and derivative terms.
PID control is a form of closed loop control that calculates its system input from proportional, integral, and derivative terms based on the measured output. It is inexpensive to implement due to its ubiquity in standard control hardware.
PID control is widely used in robotics and industry for providing more accurate motions of any moving parts on a robot, and is used in simple process applications where implementation and tuning are relatively easy. Its simplicity, versatility, and reliability make it a standard choice for industrial processes and automation systems.
In robotics, that usually means things like:
hold a wheel velocity
stabilize a motor shaft
regulate joint position
control body rate on a drone
keep a heading
maintain a temperature, force, or speed
This is not old-fashioned control that somehow survived by inertia. It survives because it is often the right engineering choice. PID remains a common controller in robotics education and production systems, and modern robotics stacks such as WPILib and PX4 still expose PID as a standard building block or component in a robot control system. PX4 explicitly documents inner-rate PID loops for roll, pitch, and yaw, plus PID-based velocity and position stabilization in its multicopter stack.
For a visual representation of how the PID controller and its components interact, consult a block diagram of a PID control system.
Why PID remains dominant
PID keeps winning low-level control problems because it has four huge advantages.
2.1 It is computationally cheap
A PID loop is tiny. On an MCU, a PID update is almost free. That matters when your robot has many actuators, high loop rates, or tight embedded constraints.
2.2 It is easy to reason about
If the response is too soft, increase proportional gain.
If there is residual bias, add integral action.
If it oscillates, derivative and filtering may help.
Reality is messier than that, but the mental model is simple enough that teams can debug it quickly.
2.3 It is robust to model uncertainty
PID does not require a good dynamics model. That is a big deal in messy physical ai systems where friction, cable routing, compliance, wear, payload changes, or contact conditions are hard to model accurately.
2.4 It fits hierarchical control naturally
A lot of robots are built from nested loops:
current loop
torque loop
velocity loop
position loop
PID or PI is often used in one or more of these layers. In particular, a pi controller is commonly implemented in layers where eliminating steady-state error is important, while a pd controller may be used in layers that require improved damping and faster response. Even when a robot uses high-level planning or trajectory optimization, the final actuator-facing loops are often still classical feedback loops. Using a block diagram is helpful for visualizing these layered control architectures and understanding how different controllers interact. PX4’s controller diagrams are a very visible example of this layered pattern.
3. Where PID starts to hurt
PID is excellent until the problem stops being “one variable tracks one setpoint reasonably well.”
It struggles when the system becomes:
strongly coupled
constraint-heavy
multi-input multi-output
future-dependent
safety-critical under saturation
nontrivial to tune across modes
3.1 Constraints are not native to PID
Yes, you can add clamping, anti-windup, slew-rate limiters, saturations, filters, feedforward, and logic around PID. In practice, many production systems do exactly that.
But this is precisely the point: once your controller needs many layers of “extra logic” just to behave under actuator limits, tilt bounds, collision margins, or contact constraints, you are already rebuilding part of what MPC formalizes directly.
PX4, for instance, documents anti-reset windup and saturations around its PID-based loops because practical robots hit these limits all the time.
3.2 Multivariable coupling gets ugly fast
Imagine a drone, a legged robot, or a mobile manipulator. Inputs interact. A command in one direction changes what is possible elsewhere. PID handles this poorly unless the system is carefully decoupled or linearized into simpler subsystems.
3.3 Preview matters in motion
If a robot must slow down before a turn, shift weight before a step, or trade short-term error for future feasibility, pure PID is blind. It reacts only after the error emerges.
That is fine for a motor speed loop.
It is not fine for dynamic whole-body locomotion.
4. What MPC really is in robotics
Model Predictive Control solves, at each control step, a finite-horizon optimization problem:
Predict future states using a model
Evaluate a cost over candidate trajectories
Enforce constraints
Apply only the first action
Repeat at the next step
Model Predictive Control (MPC) leverages a mathematical model (predictive model) of the system to predict future behavior (predictive nature) and make decisions about the control output (control output, controller output, control output based). MPC calculates the optimal control action by minimizing a cost function using an optimization algorithm, which is similar to minimizing the error in PID control. The optimization feature of MPC enables it to adapt to changes in system dynamics and operating conditions. MPC excels at handling complex, constrained, and interacting multivariable processes (system based, process, control strategy), and is highly effective for Multi-Input, Multi-Output (MIMO) systems. It is widely used in industrial applications, robotics, and autonomous vehicles due to its predictive capabilities. However, MPC requires significant computational power for real-time optimization. The continuous exchange between the process model and optimizer in MPC allows for real-time recalculation of optimal control actions. Unlike PID, which is reactive and operates on current error (feedback) using the measured output, MPC is proactive, using a mathematical model to predict future behavior and optimize the control output. When considering constraints and objectives, MPC allows the system to operate closer to limits while respecting constraints, ensuring the desired output and desired setpoint are achieved based on the measured output.
This is called a receding horizon strategy.
In simplified form, MPC solves something like:

subject to

and constraints such as:
actuator limits
joint limits
torque bounds
collision constraints
contact constraints
velocity, acceleration, jerk, or tilt bounds
That sounds heavier than PID because it is heavier.
But it gives you something PID does not:
a controller that can reason about trade-offs before they happen.
That is why MPC is so attractive in robotics navigation, autonomous driving, drones, manipulators, and especially legged locomotion. Modern open-source tooling such as acados exists specifically to make nonlinear MPC practical in real time, including on embedded systems, and ROS navigation stacks now include MPPI-based local control options.
5. Why MPC is growing now
MPC is not new. What changed is that robotics can now support it more often.
Three things pushed it forward.
5.1 Better real-time solvers
Libraries such as acados were built for fast nonlinear optimal control and embedded MPC use cases. That matters because for years, one of the main objections to MPC in robotics was simply: “great in theory, too slow in practice.” That objection is weaker than it used to be.
5.2 Better compute on robots
Edge GPUs, stronger CPUs, and more capable embedded platforms changed the feasibility frontier. Not every robot can run nonlinear MPC comfortably, but far more robots can than a decade ago.
5.3 Better integration with learning
A major 2025 trend is not “RL replaces MPC.” It is RL, diffusion, or learned models augment MPC:
learned warm-starts
learned dynamics corrections
learned sampling priors for MPPI
diffusion-generated candidate trajectories
RL tuning of gait or foothold parameters around an MPC backbone
Recent surveys and papers reflect this hybrid direction very clearly.
6. PID vs MPC: the practical comparison
Here is the real engineering comparison.
PID
Use PID when:
you control one variable or a nearly decoupled loop
dynamics are local and simple
compute is tight
you need very high loop rates
you want easy field tuning
failure modes must be transparent
hard constraints are not the main challenge
Typical examples:
motor velocity loop
wheel speed loop
joint servo loop
gimbal stabilization
drone body-rate stabilization
temperature or pressure regulation in robot subsystems
MPC
Use MPC when:
future behavior matters
constraints dominate the problem
variables are strongly coupled
actuator saturation changes the optimal action
you need smooth multi-step behavior
you want one objective to balance several goals
obstacle avoidance or contact feasibility is central
Typical examples:
local navigation in cluttered spaces
quadrotor aggressive trajectory tracking
autonomous parking and path tracking
dynamic walking and balancing
whole-body control for quadrupeds and humanoids
manipulation with collision and joint constraints
That is why asking “which is better?” is often the wrong question.
The better question is:
What layer of the robot are we controlling, and what kind of difficulty dominates that layer?
7. By robot type: what usually wins
This is where the discussion becomes useful.
7.1 Single actuator, joint, or wheel
For one motor, one encoder, one joint, or one wheel velocity loop:
PID usually wins.
Not because MPC cannot work. It can.
But because adding an optimizer to a simple servo problem is often unjustified. You usually care more about:
loop rate
stability
ease of tuning
embedded simplicity
predictable debugging
If your robot arm joint, conveyor axis, turret, or wheel module behaves mostly independently, PID is still the practical default.
Practical advice
Start with:
feedforward if available
PI or PID
anti-windup
output saturation
derivative filtering if needed
Do not jump to MPC unless the problem is genuinely constrained or coupled.
7.2 Differential-drive or omnidirectional mobile robot
For a simple hobby rover that follows a line or tracks a heading, PID is fine.
For a real indoor robot navigating dynamic, cluttered environments while respecting kinematic limits and avoiding oscillatory local behavior, MPC becomes attractive fast. In these scenarios, advanced motion control techniques are often needed for precise navigation and obstacle avoidance.
This is why MPPI has become a serious option in ROS navigation. The Nav2 MPPI controller samples perturbed control sequences, rolls them forward under the motion model, scores the trajectories, and outputs the best command in a receding-horizon manner. That is an MPC-family design built for practical local navigation.
Why MPC helps here
A mobile robot must often balance:
tracking the path
avoiding obstacles
respecting nonholonomic constraints
limiting sharp turns
staying smooth near humans or shelves
maintaining feasibility under actuation limits
You can emulate parts of this with classical planners plus PID tracking, but MPC unifies more of it into one controller.
Practical rule
Warehouse cart on predictable paths: PID or pure pursuit plus good motion profiling may be enough.
AMR in tight spaces with dynamic obstacles and constraints: MPC or MPPI is often the better fit.
Recent mobile-robot work in 2025 also keeps pushing robust MPC toward more realistic safety margins and cluttered navigation.
7.3 Quadrotors and drones
Drones are a perfect example of layered control.
A drone’s robotic system integrates the robot control system, which manages and optimizes various functions such as stabilization and navigation. This system relies on sensors—like cameras and lidar—to provide real-time feedback for environment mapping, obstacle avoidance, and precise flight control.
At the inner loop, PID is still dominant in many flight stacks. PX4 explicitly uses PID-based loops for multicopter rate, attitude, velocity, and position control, with autotuning and practical field-tuning guidance built around them.
At the higher-performance end, MPC becomes compelling for:
aggressive flight
time-delay compensation
trajectory optimization
obstacle-aware tracking
tight actuator and attitude constraints
This is not theoretical. acados showcases real-world nonlinear MPC examples including quadrotors, and open-source Crazyflie NMPC stacks explicitly use acados with real-time iteration schemes for flight control.
Practical pattern for drones
Stabilization layer: PID
High-level trajectory layer: MPC or trajectory optimization
Very aggressive or racing flight: increasingly MPC-family or hybrid model-based methods
So for aerial robotics, the answer is usually not PID or MPC.
It is:
PID inside, MPC outside.
7.4 Robotic manipulators
For many industrial arms, classical servo control remains the foundation. Joint-level loops are fast, local, and often handled with PID, PI, or vendor-specific variations.
But manipulation gets harder when you care about:
collision avoidance
joint and torque constraints
coordinated multi-joint behavior
dynamic reaching
interaction forces
cluttered environments
bimanual coordination
That is where MPC becomes more compelling, especially nonlinear MPC or sampling-based MPC variants. Recent work is also pushing MPC-like and optimization-based planning/control closer to real-time arm behavior, while GPU-accelerated stacks from NVIDIA reference MPC-style methods among their advanced robotics techniques.
Practical pattern for manipulators
Joint servoing: PID still standard
Cartesian motion in structured tasks: often trajectory generation + local servo
Reactive constraint-heavy manipulation: MPC becomes attractive
Again, layered architectures dominate.
7.5 Quadrupeds and humanoids
This is where MPC becomes much harder to ignore.
Legged robots are full of things PID does not naturally handle well:
contact switching
center-of-mass dynamics
balance constraints
friction cones
foothold timing
coupled whole-body motion
limited actuation margins
recovery after disturbance
Recent 2025–2026 work shows very strong momentum around whole-body MPC, iLQR-style receding horizon control, and hybrid model-learning controllers for legged systems. These advanced control methods are specifically designed to achieve the desired robot behavior, ensuring precise movement, balance, and task execution according to the reference trajectories and operational goals. A notable 2025 line of work demonstrated real-time whole-body MPC using MuJoCo dynamics with hardware validation on quadrupeds and humanoids. Other recent papers explore adaptive MPC for quadrupeds, dual-MPC footstep planning, and RL-augmented MPC for humanoids.
Does that mean PID disappears?
No.
Low-level actuator loops still exist. But at the locomotion and whole-body layer, MPC is far more natural because the robot must reason about balance and feasibility over a horizon, not just kill instantaneous error.
Practical rule
If your robot walks, balances dynamically, or performs loco-manipulation:
seriously consider MPC or an MPC-family method at the body level.
That is very close to the current state of the art.
8. Why AI engineers should care
This topic matters even more now because many AI engineers entering robotics assume that better models automatically remove the need for classical control.
They do not.
Perception, policy learning, world models, and foundation models change what the robot knows and how it chooses goals, but control still has to produce physically feasible motor commands under latency, noise, uncertainty, and safety constraints.
Selecting the right control method, such as PID or MPC, is essential for effective system performance. Developing an intuitive understanding of each control method is crucial for effectively integrating AI and classical control in robotics.
That is why the frontier is increasingly about integration, not replacement.
What AI is changing in control
Recent work shows several recurring patterns:
8.1 Learned models inside MPC
A learned model can improve prediction quality where first-principles modeling is too crude.
8.2 RL-augmented MPC
RL can tune gait timing, contact schedules, or priors, while MPC keeps hard structure and online optimization. Recent surveys explicitly classify and compare these synthesis patterns.
8.3 Sampling-based MPC and probabilistic formulations
MPPI and probabilistic-inference MPC have become especially relevant in robotics because they handle nonlinear, non-differentiable, or awkward cost structures more flexibly than classical gradient-based formulations. A 2025/2026 tutorial on probabilistic-inference MPC highlights exactly this direction.
8.4 Diffusion warm-starts and predictive control
A very modern pattern is to use diffusion models to generate feasible candidate trajectories or warm starts for receding-horizon control, then refine them with MPC-style optimization and constraints. This is one of the clearest signs that learning and optimal control are converging rather than competing.
For AI engineers, the practical lesson is simple:
Do not frame the problem as “classical control vs AI.”
Frame it as:
policy vs planner
learned model vs physics model
open-loop generation vs closed-loop correction
heuristic control vs constrained optimization
The best robotics systems increasingly mix them.
9. The tuning reality: PID is easier, MPC is cleaner at scale
There is a strange truth here.
PID is easier to start, harder to scale elegantly.MPC is harder to start, often cleaner once the problem is genuinely complex.
When tuning either PID or MPC controllers, control outputs or schedules often need to be adjusted based on real-time data or changing system requirements to maintain optimal performance and efficiency.
PID tuning pain
PID feels accessible because each loop is simple.
But when you have:
coupled loops
saturations
payload changes
many operating modes
trajectory-dependent behavior
safety envelopes
contact transitions
you end up with many gains, many heuristics, many conditionals, and many “special cases.”
This works more often than academics admit.
But it becomes brittle.
MPC setup pain
MPC asks for more upfront:
a model
a cost design
a solver
horizon selection
state estimation quality
compute budgeting
warm starting
validation around infeasibility
That is real engineering work.
But once those pieces are in place, many ugly ad hoc heuristics become explicit objectives and constraints instead.
This is why teams often stay with PID too long, then switch to MPC only when the heuristic scaffolding becomes unmanageable.
10. Common failure modes
PID failure modes
oscillation from aggressive gains
integral windup under saturation (windup occurs when error exists for an extended period, causing the integral term to accumulate excessively)
poor performance when the operating point changes
weak handling of delays
poor multivariable coordination
reactive behavior that comes too late
MPC failure modes
inaccurate model leads to bad predictions
solver too slow for real-time deadlines
infeasibility under bad constraints
too-short horizon causing shortsighted behavior
too-long horizon causing compute blowups
overfitting the cost function to demos rather than reality
trusting a beautiful optimizer with noisy state estimates
A practical engineer should fear both.
PID can fail loudly and obviously.
MPC can fail elegantly and expensively.
11. The architecture that usually wins: hybrid layering
In real robots, the most common winning pattern is neither pure PID nor pure MPC.
It is a layered stack such as:
Planner generates a route or motion intent
MPC / MPPI handles local feasibility, constraints, and short-horizon motion
PID / PI / torque loops stabilize actuators at high frequency
Feedforward and other systems can also be integrated with PID or MPC in these architectures to improve overall system response and stability. For example, feedforward control can provide an initial control effort based on input values, helping achieve closer setpoint tracking and reducing error, which is especially useful in robots and other automated processes.
That pattern appears in different forms across drones, mobile robots, and legged systems. PX4 shows the inner-loop PID side clearly; Nav2 MPPI shows the predictive local-control side; modern legged work shows whole-body MPC on top of lower-level actuation loops.
For most production robots, this hybrid approach is more realistic than choosing one ideology.
12. A decision framework you can actually use
Ask these questions in order.
1. Is the problem mostly single-loop and local?
If yes, start with PID.
2. Are constraints central to correctness, not just polish?
If yes, lean toward MPC.
3. Do several control variables interact strongly?
If yes, lean toward MPC.
4. Is your robot fast, unstable, dynamic, or contact-rich?
If yes, MPC becomes much more attractive.
5. Is compute extremely limited or loop frequency extremely high?
If yes, PID has a strong advantage.
6. Can you build and maintain a decent predictive model?
If no, PID may still be the safer engineering choice.
7. Are you already adding many patches around PID?
Things like:
anti-windup
feedforward
saturation handling
gain scheduling
mode-specific tuning
obstacle-aware velocity hacks
safety filters
motion shaping
contact logic
If that list keeps growing, you may be in “time to consider MPC” territory.
13. So which one should you choose?
Here is the blunt answer.
Choose PID when:
you need a fast, reliable, transparent low-level controller
the dynamics are mostly local
the control objective is simple
the loop must run on tiny hardware
you want something easy to tune and maintain
the robot is not fundamentally constrained by future planning
Choose MPC when:
the robot must optimize behavior over time
constraints are part of the physics or safety case
multiple variables are coupled
the robot must remain feasible, not just “close enough”
dynamic locomotion, aggressive motion, or cluttered navigation is involved
you can afford the modeling and solver complexity
Choose both when:
- you are building a serious robot
That last line may sound flippant, but it reflects reality surprisingly well.
14. What the state of the art says in 2026
The current frontier does not say “PID is obsolete.”
It says something more nuanced:
PID remains deeply embedded in practical robotics stacks, especially at actuator and stabilization layers.
MPC is increasingly mainstream for local navigation, aggressive flight, and whole-body control, helped by faster solvers and better embedded compute.
The fastest-moving research area is hybrid: MPC combined with RL, learned dynamics, probabilistic inference, MPPI, and diffusion-based warm starts.
In legged and humanoid robotics, whole-body MPC and MPC-like receding-horizon methods are still very central, even as learning-based locomotion improves.
That is the practical conclusion.
The future is not “PID or MPC.”
The future is:
classical low-level control + predictive optimization + learned components where they genuinely help.
15. Final thoughts
If you are an AI engineer moving into robotics, do not dismiss PID because it looks old.
And do not adopt MPC just because it looks advanced.
Control is not a branding exercise.
It is about choosing the simplest method that handles the real difficulty of the robot.
A wheel speed loop does not need a nonlinear optimizer to feel sophisticated.
A humanoid balancing through contact changes probably does.
The mature answer is to map the controller to the layer:
PID for local regulation
MPC for constrained predictive behavior
AI to improve models, priors, estimation, and planning interfaces
That is how many of the best modern robotic systems are converging.
