Learning Forward & Reverse Skills from a Single Unfinished Demonstration for Constrained Manipulation Tasks
Abstract
Learning from demonstration (LfD) enables robots to learn manipulation skills directly from expert demonstrations but remains challenging for contact-rich tasks involving geometric constraints and force interaction. Existing approaches typically require multiple complete demonstrations and do not support reverse skill execution. In this paper, we present a unified one-shot framework for constrained manipulation that learns both forward and reverse execution from a single, possibly unfinished demonstration. Our method decomposes demonstrations into non-contact and contact phases, with non-contact motion encoded with dynamic movement primitives (DMP), and contact motion represented as a sequence of screw motion primitives segmented by our proposed geometry-driven twist-direction segmentation algorithm. During execution, screw primitives are executed sequentially under admittance-guided pose correction and speed regulation, enabling task completion beyond the demonstrated trajectory length as well as reverse skill execution without additional learning data. Experiments on peg insertion, battery insertion, lock opening, and screw driving tasks demonstrate improved success rates and robustness over segmentation and one-shot trajectory learning baselines.
Overview
Overview of the proposed framework. A single forward demonstration is first encoded with a DMP. During execution, the DMP reproduces free-space motion until contact is detected. The contact phase is segmented using the proposed twist-direction method, and each segment is modeled as a screw primitive. Screw primitives are executed sequentially with 6D admittance-based pose correction and 1D admittance-based speed regulation. Reverse execution reuses the learned primitives with edited parameters and reversed order, followed by reversed DMP reproduction after contact release.
Tasks
Peg Insertion
Battery Insertion
Lock Opening
Screw Driving
Human Demonstrations
Experiments
Generalization to Novel Objects
Implementation Details
Unless otherwise stated, learning, segmentation, and admittance parameters were shared across all four tasks. Only the wrench safety limits and scalar load weights were task-dependent to account for different contact and material properties.
Segmentation
| Component | Parameter | Value |
|---|---|---|
| Block segmentation | Block length | 300 samples (0.3 s) |
| Boundary detection | Rotation / translation cosine thresholds | 0.9 / 0.9 |
| Boundary refinement weights | Rotation / translation weights | 1.0 / 1.0 |
| Small-motion block | Translation / rotation thresholds | 0.2 mm / 0.2° |
| Global refinement | Translation hysteresis min/max | 2 mm / 5 mm |
| Global refinement | Rotation hysteresis min/max | 5° / 10° |
| Dwell cleanup | Translation / rotation thresholds | 5 mm / 10° |
Spiral Search Alignment
| Component | Parameter | Value |
|---|---|---|
| Control | Timestep | 1 ms |
| Spiral search | Rate / maximum radius | 2 Hz / 15 mm |
| Spiral search | Angular / radial rate | 0.5 rad/s / 0.125 mm/s |
| Spiral termination | Force / stable samples | 4 N / 5 samples |
Screw Fitting and Execution under Admittance
| Component | Parameter | Value |
|---|---|---|
| Screw fitting weights | Rotation / translation weights | 1.0 / 1.0 |
| Control | Timestep | 1 ms |
| 6D admittance | M diagonal | [0.2, 0.2, 0.2, 0.05, 0.05, 0.05] |
| 6D admittance | B diagonal | [40, 40, 40, 3, 3, 3] |
| 6D admittance | K diagonal | [1000, 1000, 1000, 4, 4, 4] |
| 1D admittance | Bθ | 10 / |nominal progress speed| |
| 1D admittance | Mθ | 0.05 Bθ |
| Pose correction | Translation / rotation limits | 4 mm / 0.1 rad per axis |
| Primitive termination | Speed / duration | 10% of nominal speed / 0.3 s |
| Contact detection | Force | 2.5 N |
Task-Dependent Wrench Parameters
| Task / Phase | kF∥ | kT∥ | kF⊥ | kT⊥ | Force Limit | Torque Limit | Tz Limit |
|---|---|---|---|---|---|---|---|
| Peg | 1.0 | 5.0 | 0.1 | 0.1 | 25 N | 2 Nm | 10 Nm |
| Battery | 1.5 | 10.0 | 1.0 | 1.0 | 25 N | 3 Nm | 10 Nm |
| Lock insertion | 0.5 | 1.0 | 0.1 | 0.1 | 25 N | 2 Nm | 0.6 Nm |
| Lock rotation | 1.0 | 30.0 | 0.1 | 0.1 | 25 N | 2 Nm | 0.6 Nm |
| Screw driving | 1.0 | 30.0 | 0.1 | 0.1 | 25 N | 3 Nm | 10 Nm |
BibTeX
@misc{hu2026learningforwardreverse,
title={Learning Forward & Reverse Skills from a Single Unfinished Demonstration for Constrained Manipulation Tasks},
author={Yexin Hu and Haoyi Zheng and Johannes Heidersberger and Dongheui Lee},
year={2026},
eprint={2607.13882},
archivePrefix={arXiv},
primaryClass={cs.RO},
url={https://arxiv.org/abs/2607.13882},
}