ROBOT LEARNING / FORCE SENSING / COMPLIANT MANIPULATION
Learning Compliance with Diffusion Policies
Learning motion, stiffness and damping for contact-rich manipulation on an industrial arm.
Work in progress · Unpublished research
This project explores diffusion policies that learn how to move and how to yield during contact. Demonstrations include compliance commands alongside motion, while an external force/torque sensor closes a variable-admittance loop on a robot that exposes a velocity interface rather than joint-torque control.

Why learn compliance?
Contact-rich tasks require more than a geometric trajectory. A robot may need to stay stiff during a pull, yield as a part engages, or soften when a constraint changes. Choosing one fixed stiffness for an entire task can miss these different phases.
The goal is to make compliance part of the demonstrated action, so a policy can learn a task-dependent schedule instead of relying only on manually tuned gains. A shared control interface keeps demonstration and deployment on the same underlying robot dynamics.
From demonstration to deployment

Demonstrate
Record motion and compliance together
A teleoperator commands motion while compliance is authored through operator-selected phases or a force- and velocity-based fuzzy scheduler. RGB, robot state, wrist wrench, hand state, stiffness and damping ratio are recorded together.
Learn
Predict action chunks with diffusion
A diffusion policy learns incremental Cartesian motion together with stiffness and damping ratio, plus an optional hand command. Force-conditioned variants include the measured wrench in the observation alongside vision and robot state.
Deploy
Use the same compliant control path
The policy replaces the demonstration producer on a shared command bus. A separate variable-admittance loop uses the external wrist wrench and converts the commanded motion and compliance into Cartesian velocity commands.
Experimental setup
- Platform
- 6-DoF industrial arm with Cartesian velocity commands; no joint-torque command interface
- Sensing
- External six-axis wrist force/torque sensor · one or two RGB cameras · robot and hand state
- Software
- ROS 2 · shared motion and compliance command bus
- Learned actions
- Incremental Cartesian pose · stiffness · damping ratio · optional hand command
- Policy observations
- Vision and robot state, with and without wrist wrench in the compared variants
- Control loop
- Variable admittance at a nominal 100 Hz; recording and command publication target 50 Hz
- Diffusion rollout
- Two observation frames · eight predicted actions · four executed before replanning · DDPM denoising
- Tasks explored
- Door opening · sustained sliding contact · insertion
The rates above are nominal targets. Diffusion inference introduces chunk-boundary delays, so the policy publication rate should not be read as a sustained 50 Hz guarantee. The independent admittance loop continues running between policy updates.
Evaluation in progress
The current investigation compares learned schedules with and without wrench observations, an online fuzzy scheduler, and fixed-stiffness baselines. Contact impulse, peak force and task success are used to study the trade-offs.
Preliminary sliding-contact experiments do not show a learned policy consistently outperforming the tuned baselines. They also do not establish a benefit from adding force to the policy observation in this repeatable-contact setting. The force sensor remains necessary for the underlying admittance controller in both variants.
Door opening and insertion broaden the task examples, but the detailed audit currently covers one sliding-contact task with small trial counts. Behaviour under unexpected contact and generalisation beyond these conditions remain open questions.
Current status
This is ongoing, unpublished work. The experimental setup, policy variants and evaluation are still being refined; this overview describes the current direction rather than a final paper or release.
Further work includes inference and action-publication timing, stale-command handling, and measuring the effort of collecting demonstrations against tuning a task-specific controller. Current experiments are supervised laboratory trials.