Residual Reinforcement Learning for Robot Control

TL;DR Add an RL policy on top of a hand-engineered feedback controller and train only that residual, directly on a real Sawyer arm. When the blocks in an insertion task are randomly tilted, residual RL succeeds in 15/20 trials versus 2/20 for the hand-engineered controller, after about three hours of real-world training.
What they do
Conventional feedback controllers struggle with contact-rich manufacturing tasks because contacts and friction are hard to model, so they need manual tuning. RL can handle contacts, but learning from scratch needs a lot of real-world interaction, which can be unsafe. Residual RL splits the job: a hand-designed controller handles the robot’s motion, and an RL policy learns an additive correction that handles contacts and the objects. They test it on block insertion with a Sawyer arm, both in MuJoCo and on hardware.
How it works
- Additive control. The command is u = π_H(s_m) + π_θ(s_m, s_o): a fixed hand-engineered controller acting on the robot state, plus a learned policy that also sees the object state. The reward splits the same way. One term rewards moving the gripper between the blocks; the other rewards keeping the standing blocks upright and in place.
- Learning. The residual policy is trained off-policy with TD3 (the rlkit implementation). Exploration noise is added only to the learned part.
- Real-world setup. A compliant joint-space impedance controller drives the arm. Block poses come from a camera-based tracking system, and the observation includes only the z-axis end-effector force.
- Sim-to-real variant. With the side blocks fixed in place, the base controller is a policy trained with deep RL in simulation, and residual RL refines it on the real robot.
Results
- In simulation and on hardware, residual RL learns faster than RL alone and reaches better final performance.
- When each block is randomly tilted ±20° at reset, residual RL succeeds in 15/20 trials and the hand-engineered controller in 2/20. With aligned blocks, both succeed in 20/20. Learning took about 8,000 samples, roughly three hours on the real robot.
- In simulation, the hand-engineered controller’s return falls as block rotation, control noise or control bias increases. Residual RL’s return stays roughly constant across all three.
- Initialized from the simulation policy, residual RL solves the fixed-block task in under 1,000 timesteps of real interaction.
Limitations
The real-world system needs a carefully crafted vision setup to estimate block positions and angles. This limits it to known scenes and can drop information the controller needs, such as precise edge locations. All experiments use a single block-insertion task.
Videos
Figures




Abstract
Conventional feedback control methods can solve various types of robot control problems very efficiently by capturing the structure with explicit models, such as rigid body equations of motion. However, many control problems in modern manufacturing deal with contacts and friction, which are difficult to capture with first-order physical modeling. Hence, applying control design methodologies to these kinds of problems often results in brittle and inaccurate controllers, which have to be manually tuned for deployment. Reinforcement learning (RL) methods have been demonstrated to be capable of learning continuous robot controllers from interactions with the environment, even for problems that include friction and contacts. In this paper, we study how we can solve difficult control problems in the real world by decomposing them into a part that is solved efficiently by conventional feedback control methods, and the residual which is solved with RL. The final control policy is a superposition of both control signals. We demonstrate our approach by training an agent to successfully perform a real-world block assembly task involving contacts and unstable objects.
Summaries are written automatically from each paper's text. Figures and videos come from the paper and its project page; all credit goes to the authors.
