Constraint-Decomposed Impedance Control from Generative Policy for Articulated Object Manipulation
Organizations: Seoul National University · Department of Mechanical Engineering, KAIST
Abstract
Articulated object manipulation tasks such as opening doors, tightening bolts, and pulling drawers impose kinematic constraints on a robot end-effector's motion that neural policies may fail to satisfy. Unlike hybrid force-position control that strictly separates force and position control into orthogonal subspaces, impedance control modulates a mechanical impedance system in the form of a virtual inertia, damping, and stiffness. However, selecting task-appropriate impedance gains remains challenging for robot policies. In this paper, we address this problem for the case of manipulating articulated objects. Our constraint-decomposed impedance control method uses the sampling diversity of a generative policy to estimate the feasible motion directions in twist space. The key idea is to infer the feasible and constrained subspaces of twists from an ensemble of trajectories generated by the policy from the same observation. Principal component analysis (PCA) of the end-effector twists determines the feasible twist subspace, which is then used to form 6x6 impedance gain matrices. For many common articulated objects, the feasible twist subspace is independent of the object configuration, so the subspace and resulting gains are estimated once and held fixed during manipulation, minimizing computational overhead. For less common cases where this independence does not hold, we instead estimate a configuration-independent twist subspace of higher dimension that contains the local feasible subspaces, allowing the same fixed-gain strategy to be used. Experiments across simulated and real-world single- and multi-DoF objects show that the proposed method consistently reduces constraint-violating contact loads relative to isotropic impedance control while maintaining task execution.
Figures & tables
| Task | SR (%) | SE (°) | ICF (N s) | PCF (N) | ICM (N m s) | PCM (N m) |
|---|---|---|---|---|---|---|
| Revolute | 0 99 / 0 99 / 0 99 | 1.64 | 7.18 / 2.62 / 2.13 | 3.38 / 1.56 / 1.48 | .29 / .22 / .22 | .19 / .18 / .17 |
| Cylindrical | 0 99 / 100 / 100 | 1.73 | 5.31 / 0.83 / 0.53 | 1.96 / 0.36 / 0.31 | .32 / .22 / .21 | .16 / .14 / .14 |
| Planar | 0 99 / 0 99 / 0 99 | 2.78 | 15.3 / 1.93 / 2.20 | 4.03 / 1.18 / 1.16 | .74 / .48 / .34 | .29 / .23 / .21 |
| Universal | 100 / 100 / 100 | 4.36 | 2.18 / 0.46 / 0.34 | 1.25 / 0.23 / 0.19 | – / – / – | – / – / – |
| Task | SE (°) | ICF (N s) | PCF (N) | ICM (N m s) | PCM (N m) |
|---|---|---|---|---|---|
| Revolute | 13.01 | 46.6 / 25.2 (0.54) | 8.54 / 3.62 (0.42) | 5.00 / 3.34 (0.67) | 0.93 / 0.37 (0.40) |
| Prismatic | 0 4.74 | 12.3 / 8.79 (0.72) | 4.63 / 3.51 (0.76) | 1.84 / 1.46 (0.80) † | 0.61 / 0.55 (0.90) † |
| Helical | 0 2.89 | 6.96 / 6.50 (0.93) | 4.56 / 4.40 (0.96) | 1.82 / 0.60 (0.33) | 1.08 / 0.45 (0.41) |
| Cylindrical | 0 5.76 | 8.35 / 4.42 (0.53) | 3.37 / 2.20 (0.65) | 1.09 / 0.82 (0.75) | 0.45 / 0.37 (0.81) |
| Crank | 0 5.70 | 20.8 / 23.6 (1.14) | 4.62 / 4.28 (0.93) | 4.99 / 4.15 (0.83) | 1.12 / 0.82 (0.74) |
Appendix figures & tables14 assets
Supplementary material from the paper’s appendix.
Appendix
| Primitive | DoF | Generators | Structure |
|---|---|---|---|
| Revolute (R) | Abelian | ||
| Prismatic (P) | Abelian (any dim) | ||
| Helical (H) | Abelian | ||
| Cylindrical (C) | Abelian | ||
| Spherical (S) | |||
| Planar (E) |
| Mechanism | Excitation for full | ||||
|---|---|---|---|---|---|
| U-joint (intersecting 2R) | excited, phases | ||||
| Parallel-offset crank (parallel 2R) | phases ( redundant) | ||||
| Door hinge lever (off-axis orthogonal 2R) | excited, phases |
| Group | Symbol | Value |
| Estimation | Ensemble size | (simulation); (real) |
| Trajectory horizon | ||
| Absolute threshold | mm/s (simulation); mm/s (real). | |
| Relative threshold | (simulation); for revolute, prismatic, helical, and cylindrical objects and for the crank (real). | |
| Sampler at grasp closure | DDIM, steps (simulation); DDPM, steps (real). | |
| Characteristic-length clip |
| Platform | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Flying gripper (sim) | ||||||||||
| FR3 (real) |
| Setting | Value |
|---|---|
| Backbone | Diffusion Policy [ 21 ] |
| Observation history | step |
| Predicted / executed action horizon | / steps |
| Policy sampling period | s ( Hz) |
| Observation | wrist RGB, end-effector pose (position -D rotation), and gripper opening ( ) |
| Action | Per-step relative pose chunk in the current EE frame: pose ( ) and gripper command ( ) |
| Item | Value |
|---|---|
| Demonstrations | scripted rollouts per object |
| Object placement | Uniform , , m, yaw |
| Gripper start | Fixed at m before approach and grasp |
| Waypoint generation | Object progress mapped to handle poses by analytic forward kinematics, interpolated on |
| Task | |||||
|---|---|---|---|---|---|
| Single-task policies | |||||
| Revolute | 0 99 | .26 / .12 / .10 | .245 / .177 / .181 | .75 / .92 / .95 | .86 / .96 / .96 |
| Cylindrical | 0 99 | .15 / .03 / .02 | .122 / .086 / .084 | .85 / .98 / .98 | .94 / .98 / .98 |
| Planar | 0 99 | .68 / .21 / .24 | .114 / .077 / .057 | .32 / .81 / .78 | .90 / .95 / .98 |
| Universal | 100 | .31 / .14 / .11 | .000 / .000 / .000 | .69 / .87 / .91 | 1.00 / 1.00 / 1.00 |
| Multi-task policy | |||||
| Task | SR (%) | SE (°) | ICF (N s) | PCF (N) | ICM (N m s) | PCM (N m) |
|---|---|---|---|---|---|---|
| Revolute | 0 99 / 0 99 / 0 99 | 1.71 | 7.75 / 2.87 / 2.55 | 3.55 / 1.76 / 1.81 | .31 / .26 / .26 | .21 / .22 / .22 |
| Cylindrical | 0 96 / 0 97 / 0 96 | 2.39 | 4.61 / 1.36 / 0.64 | 1.74 / 0.67 / 0.51 | .31 / .20 / .21 | .15 / .13 / .15 |
| Planar | 100 / 100 / 100 | 2.76 | 14.4 / 2.02 / 2.21 | 3.85 / 1.13 / 1.13 | .73 / .49 / .34 | .29 / .24 / .22 |
| Universal | 0 99 / 100 / 100 | 3.83 | 1.98 / 0.45 / 0.33 | 1.17 / 0.23 / 0.19 | – / – / – | – / – / – |
| SE, 95th percentile (°) | Correct dimension (%) | |
| Statistic | Selection | |||||||
|---|---|---|---|---|---|---|---|---|
| Mean of per-object | DTW-max | |||||||
| median SE (°) | DTW-min | |||||||
| Grasps with | DTW-max | |||||||
| SE (%) | DTW-min |
| Noise | Direct | Trained | Ratio |
|---|---|---|---|
| None | – | ||
| Position mm | |||
| Orientation |
| Task | ||||
|---|---|---|---|---|
| Revolute | .766 / .672 (.88) | .734 / .522 (.71) | .738 / .843 (1.14) | .717 / .848 (1.18) |
| Prismatic | .362 / .321 (.89) | 1.000 / 1.000 (1.00) | .848 / .918 (1.08) | .000 / .000 (–) |
| Helical | .412 / .424 (1.03) | .724 / .569 (.79) | .187 / .332 (1.78) | .751 / .890 (1.18) |
| Cylindrical | .244 / .126 (.52) | .536 / .421 (.79) | .708 / .894 (1.26) | .572 / .680 (1.19) |
| Crank | .425 / .469 (1.10) | .926 / .850 (.92) | .841 / .892 (1.06) | .261 / .550 (2.11) |
Impedance Control
Impedance control lets robots adjust their stiffness and damping to manage forces during contact with people and objects.
See all 43 papers