Does motor current contain task-relevant information?
Register availability at the policy rate and repeatable variation under contact beyond quiet-state noise.
Learning Contact Representations from Zero-Cost Proprioceptive Effort Signals for Contact-Rich Visuomotor Imitation Learning
Jaydeepkumar Ranpariya · Friedrich-Alexander-Universität Erlangen-Nürnberg · Fraunhofer IIS
Can the current registers a low-cost robot already exposes stand in for a contact sensor?
The signal is informative. The trained policies respond to it. Closed-loop success did not improve.
Contact-rich insertion needs information that a camera and joint positions may not carry at the moment of contact.
Vision is ambiguous at contact. A peg aligned with the hole, pressing on its rim, or beginning to jam can look alike from a wrist camera, yet each needs a different action.
Contact sensors cost hardware. Force-torque and tactile sensors expose these states, but they add parts, wiring, calibration, and integration work to a low-cost arm.
The servos already report current. Every STS3215 bus servo exposes a motor-current register (6.5 mA per count). Six channels arrive with the 30 Hz policy loop for free.
But it is a weak, uncalibrated signal. Between 35 and 54 percent of readings are exactly zero, the value is pose dependent (0.1 to 25.8 counts across poses), heavy tailed, and never converted to force.
Register availability at the policy rate and repeatable variation under contact beyond quiet-state noise.
Replace current with its training mean while image and position stay fixed, and measure the action change.
Matched vision-only and current-aware policies in repeated physical peg-in-hole trials, with failure phases.
No force-torque cell, no tactile skin, no simulator. The only new observation is a register the servo firmware already exposes.
Why this platform matters: the STS3215 current is exactly the kind of signal a hobby-grade arm gives away. If it works here, it works without a bill of materials. The thesis keeps the operating point at raw counts: no dynamics model, no torque calibration, no force reconstruction.
action (6)observation.state[0:6]observation.state[6:12]observation.images.top state[12:18] for diagnostics only. Everything is synchronised at 30 Hz in an extended LeRobot schema.All six current channels were characterised under static poses, known loads, scripted grasps, natural teleoperation, and video-annotated insertion phases before any policy saw them.
| Close condition | Mean max I₆ | Std | d | 95% CI |
|---|---|---|---|---|
| Miss (air) | 27.3 | 0.9 | — | — |
| Success (pen) | 91.5 | 26.7 | 3.40 | [2.3, 4.5] |
| Stiff (pen) | 89.1 | 24.7 | 3.54 | [2.4, 4.7] |
| Soft (towel) | 96.1 | 7.2 | 13.52 | [10.0, 17.0] |
Standardised mean difference against the miss condition, n = 15 per condition. The a-priori detectability threshold was d greater than 0.8 in at least one condition.
A contact-discriminative effort proxy, not a calibrated force measurement.
Gravity, motion, gearbox friction, grasp load, and contact all move the register. It is a joint-specific observation to combine with pose and vision, never a threshold.
One operator, leader–follower teleoperation, and an extended LeRobot schema that logs follower current next to every image and action.
| Dataset | Episodes | Frames | Clearance | Difficulty | Role |
|---|---|---|---|---|---|
peg-insertion-flat | 50 | 50,263 | 1.40 mm | Easy, chamfered | Pilot |
peg-tight-flat | 50 | 47,159 | 0.35 mm | Hard, no chamfer | Difficulty ablation |
peg-tight-vertical | 50 | 51,057 | 0.35 mm | Hard, vertical | Primary batch |
peg-tight-vertical-ext | 50 | 48,774 | 0.35 mm | Hard, vertical | Extension batch |
peg-tight-vertical-100 | 100 | 99,831 | 0.35 mm | Hard, vertical | Training set for all matched comparisons |
200 unique episodes and 197,253 frames in total; the 100-episode set merges the two vertical batches. All retained demonstrations are successful insertions.
ACT-V sees six joint positions. ACT-M sees the same six plus six currents. ACT-M-norm winsorises current at the per-joint training q99.5 before mean–std scaling. Episodes, frames, images, timestamps, and action targets are identical across views.
44.9 percent of all current samples are exactly zero. Shoulder-pan skewness is 11.3 with an excess kurtosis near 400, so plain mean–std maps rare maxima to more than 54 standard deviations. Caps and statistics are fitted on training demonstrations only.
Each comparison trains both arms on the same 100 demonstrations with the same seed and evaluates them in the same session. Only the current route differs.
Wrist image and six joint positions. ResNet-18, chunk 50 executed open loop (1.67 s).
Six raw current counts appended to the state vector. Historical concatenation without winsorisation.
Unchanged checkpoint, re-evaluated in the same session under a shared phase-adaptive controller.
Same concatenation, but current is winsorised at the training q99.5 before scaling.
Unchanged checkpoint, re-evaluated in the temporal session.
Per-joint current histories through a shared 1D CNN into six joint tokens with mean, max, and latest pooling.
Warm-started from the recovered DP-V checkpoint and fine-tuned end to end for 40,000 updates at 10 Hz.
Frozen DP-V base plus a learned per-joint temporal current route feeding bounded residual FiLM into every U-Net block.
Success means the policy grasps, transports, and seats the peg flush before the limit; partial insertion counts as failure. Hardware performance never selected among seeds, so repeated trials estimate deployment and session variability, not training variance.
Four short recordings: the task demonstration and three individual policy rollouts from retained evaluation rows. They illustrate the aggregate comparisons below and are not paired trials.
The ACT-V and ACT-M clips occupy the same rotated block and trial slot but are separate physical rollouts. Exact source files, trial identifiers, and encoding commands are listed in the media provenance record.
Thirty trials per policy, both arms interleaved in the same session. Sessions are never pooled: the unchanged ACT-V checkpoint scored 17/30 in one session and 7/30 in another.
Flush seating before the 45 s limit · n = 30 per arm · one row per session
Only the raw direct-concatenation row separates (Fisher p = 0.0089, against current). The other three rows are compatible with no effect. The temporal ACT trend of +16.7 points exceeds the 10-point practical threshold but is not statistically supported (p = 0.267). Hover a marker for details.
| Session | Vision and position | Successes | Current-aware | Successes | Fisher p | Current route |
|---|---|---|---|---|---|---|
Raw direct ACTactv-vs-actm-c50-640 | ACT-V | 19/30 (63.3%) [45.5, 78.1] | ACT-M direct | 8/30 (26.7%) [14.2, 44.4] | 0.0089 | direct concatenation, raw counts |
Normalised direct ACTact-test-actv-actmnorm-30-trials | ACT-V | 17/30 (56.7%) [39.2, 72.6] | ACT-M-norm | 15/30 (50.0%) [33.2, 66.8] | 0.796 | direct concatenation, winsorised |
Learned temporal ACTact-actv-vs-jointcnn-contact-30-trials | ACT-V | 7/30 (23.3%) [11.8, 40.9] | ACT-M-norm-jointCNN-contact | 12/30 (40.0%) [24.6, 57.7] | 0.267 | learned per-joint temporal tokens |
Diffusion Policydp-final-matched-30each-20260821 | DP-V | 9/30 (30.0%) [16.7, 47.9] | DP-M jointCNN dual-FiLM | 12/30 (40.0%) [24.6, 57.7] | 0.589 | learned temporal route, bounded residual FiLM |
Percentage points with Newcombe 95% intervals · trial-level, no block dependence modelled
Filled marker: interval excludes zero. Only the raw ACT row does, in the harmful direction. Nothing here establishes equivalence either.
Successes per interleaved block of six trials · final DP session
Combined successes fall from 8/12 in block one to 1/12 in block five. Session drift like this is why every comparison carries its own contemporaneous baseline.
No approach, grasp, or transport failure in the session. All 28 failures occur during insertion: ACT-V drops the peg 11 times, ACT-M-norm 7 times and misses 8.
ACT-V reaches insertion 29 times and drops the peg 11 times. The learned encoder reaches insertion 23 times and drops it 6 times, with 7 approach or grasp failures against 1. The unconditioned 7/30 versus 12/30 is the defensible result.
DP-M records fewer wrong approaches (1 versus 5) but more dropped pegs (5 versus 1). This pair is not a sensor-only contrast: DP-V fine-tunes the full network while DP-M trains a residual adapter on a frozen base.
Current is replaced by its training mean while image and joint position stay fixed. The relative change in the predicted action measures whether the checkpoint depends on the added modality at all.
Mean relative L2 change of the predicted action when current is mean-imputed · deployment-path checkpoints
Every deployed current-aware checkpoint changes its actions when current is removed, which rules out complete non-dependence. The defective FiLM artefact is the most sensitive and the least successful (0/30). Sensitivity is not benefit.
| Approach | Grasp | Transport | Insertion | Release |
|---|---|---|---|---|
| 0.103 | 0.035 | 0.100 | 0.085 | 0.079 |
The imputed input stays inside each normalised coordinate range but need not lie on the training manifold, so the diagnostic measures counterfactual sensitivity, not causal task importance. Under this offline criterion alone, the worst ACT checkpoint would have been selected.
Current changes distinguish gripper contact from a miss and expose short arm-contact events during insertion. The signal is still zero-inflated, heavy-tailed, pose-dependent, and sampled at only 30 Hz for policy input. It is a contact-discriminative effort proxy, not a calibrated force measurement.
Deployed current-aware ACT and DP checkpoints change their actions when current is mean-imputed (z_curr 0.065 to 0.324). That rules out complete non-dependence; it does not exclude partial or phase-specific under-use.
Raw concatenation is a clear negative result (19/30 vs 8/30, p = 0.0089). The normalised comparison shows neither improvement nor equivalence (17/30 vs 15/30). The learned temporal encoder (+16.7 points) and Diffusion Policy (+10 points) trends exceed the practical threshold but are not statistically supported.
The sensor contains contact information and the model uses it, yet closed-loop success did not improve. For low-cost robot learning: characterise the native signal, verify the policy uses it, and still rely on real closed-loop trials for utility.
Values derived from data are recomputed from retained CSV, Parquet, JSON, and annotation files. Configuration values are checked against policy code, resolved commands, checkpoint configuration, and evaluation manifests.
# Chapter 4: recompute the characterisation numbers from retained runs
python3 experiments/phase-1-characterisation/scripts/reproduce_chapter4_numbers.py
# Chapter 5: episode counts, frame counts, timestamps, schema, calibration digests
python3 research/writing/verify_chapter5_dataset.py
# Chapter 6: resolved commands, checkpoint configuration, evaluation manifests
python3 research/writing/verify_chapter6_method.py
# Chapter 7: every success count, interval, and test from the retained trial rows
python3 research/writing/verify_chapter7_evaluation.py
# Whole manuscript: citations, figures, and numeric claims against evidence
python3 research/writing/audit_final_manuscript.py The dataset, checkpoints, trial records, and verification scripts accompany the thesis in the project archive. Public release is not assumed; large recordings and checkpoint tensors are not embedded in this site.
@mastersthesis{ranpariya2026contact,
author = {Jaydeepkumar Ranpariya},
title = {Learning Contact Representations from Zero-Cost
Proprioceptive Effort Signals for Contact-Rich
Visuomotor Imitation Learning},
school = {Friedrich-Alexander-Universit{\"a}t Erlangen-N{\"u}rnberg},
year = {2026},
note = {In cooperation with Fraunhofer IIS},
url = {https://jdranpariya-so101-thesis.pages.dev/}
}