Master's thesis · 2026 Multimodal imitation learning

Learning Contact from Motor Current

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

Vertical peg-in-hole demonstration. One human-reviewed demonstration from approach to release, shown in synchronized wrist and side views. Left: wrist camera (policy input). Right: side camera (inspection only).

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.

6 servo current channels
100 teleoperated demonstrations
4 matched hardware comparisons
240 confirmatory robot trials
The question

Same image, different contact state

Contact-rich insertion needs information that a camera and joint positions may not carry at the moment of contact.

Three-stage study design: signal suitability, representation, and evaluation, with shared task and demonstrations and matched inputs within each policy pair
The study separates three claims that are easy to conflate: the signal carries information, the model uses it, and using it helps.
  1. 1

    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.

  2. 2

    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.

  3. 3

    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.

  4. 4

    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.

RQ1 · Signal

Does motor current contain task-relevant information?

Register availability at the policy rate and repeatable variation under contact beyond quiet-state noise.

RQ2 · Model

Do trained policies respond to current?

Replace current with its training mean while image and position stay fixed, and measure the action change.

RQ3 · Robot

Does adding current improve closed-loop performance?

Matched vision-only and current-aware policies in repeated physical peg-in-hole trials, with failure phases.

Platform

Low-cost hardware, nothing added

No force-torque cell, no tactile skin, no simulator. The only new observation is a register the servo firmware already exposes.

SO-101 follower arm with wrist camera above a white table, with the black peg fixture in front of it
The follower workspace. SO-101 with the wrist camera and the peg fixture at a fixed marked position about 7 cm from the hole.

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.

Robot
SO-101 leader and follower · 6× STS3215 bus servos
Leader–follower teleoperation at 30 Hz, one-to-one joint mapping. The one-way mapping does not reflect follower current back to the operator.
Effort register
Motor current · 6.5 mA per count
Diagnostic read loop 55.3 Hz (18.1 ms cycle) against the 33.3 ms policy period. Observed task range 0–77 counts.
Cameras
Wrist RGB 640×480 (policy input) · side camera
The side view is used only for inspection and phase annotation. Principal policies see the wrist view alone.
Task
Vertical peg-in-hole · 0.35 mm clearance
16.45 mm PLA peg, 16.8 mm bore, no chamfer, grasped from the side. Clearance-to-diameter ratio 0.021.
Data flow
leader joints -> action (6)
follower positions -> observation.state[0:6]
follower currents -> observation.state[6:12]
wrist RGB -> observation.images.top
Temperatures are logged in state[12:18] for diagnostics only. Everything is synchronised at 30 Hz in an extended LeRobot schema.
30 Hzpolicy and recording rate
0.35 mmdiametral clearance, no chamfer
0 €added sensing hardware
01 · Signal characterisation

Informative, but not a force sensor

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.

Box plot of per-trial maximum gripper current for closing on air versus closing on a pen, a stiff pen, and a soft towel; all object conditions sit far above the miss condition
Gripper contact is easy to see. Per-trial maximum gripper current across four scripted close conditions, 15 trials each. Closing on air stays near 27 counts; every object condition exceeds it by more than three standard deviations.
d = 3.4grasp vs miss, rigid object
d = 13.5grasp vs miss, soft object
d = 1.89episode max with vs without object, natural teleoperation
10–77elbow peak counts during rim sliding or hard contact
Close conditionMean max I₆Stdd95% CI
Miss (air)27.30.9
Success (pen)91.526.73.40[2.3, 4.5]
Stiff (pen)89.124.73.54[2.4, 4.7]
Soft (towel)96.17.213.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.

Episode 30, hard contact: elbow current rises to 21 counts after the annotated rim-contact frame while wrist and gripper currents stay flat
Episode 30, hard contact. Elbow current (red) climbs to 21 counts after the video-annotated rim contact (vertical line). Wrist (green) and scaled gripper (dashed) stay flat.
Episode 35, direct entry: elbow current stays below five counts throughout the insertion window
Episode 35, direct entry. The same window for a clean insertion reaches only five counts. Contact leaves a mark; its absence does too.
Interpretation

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.

What was kept and what was dropped
  • Kept: all six current channels as a 12-dimensional state with the joint positions, [q₁…₆, I₁…₆]. Camera input unchanged.
  • Dropped: the gripper load register (d = 1.27–19.52 but coarsely quantised, saturates at 500 counts, ρ = 0.88 with current over 51,474 samples).
  • Dropped: speed, voltage, and temperature, retained for diagnostics only.
  • Timing: contact rises last 100–300 ms, three to nine samples at 30 Hz, so a generic low-pass filter would erase the events it should protect.
02 · Dataset

A synchronised multimodal record

One operator, leader–follower teleoperation, and an extended LeRobot schema that logs follower current next to every image and action.

Wrist and side camera frames for the approach, grasp, transport, insertion, and release phases of one demonstration
Five phases in one reviewed demonstration. Approach, grasp, transport, insertion, release. Phase boundaries were annotated by a human reviewer for calibration only and never used as training labels.
100demonstrations
99,831synchronised frames
30 Hzschema rate
2camera streams
4recording sessions
6 + 6positions + currents in state
DatasetEpisodesFramesClearanceDifficultyRole
peg-insertion-flat5050,2631.40 mmEasy, chamferedPilot
peg-tight-flat5047,1590.35 mmHard, no chamferDifficulty ablation
peg-tight-vertical5051,0570.35 mmHard, verticalPrimary batch
peg-tight-vertical-ext5048,7740.35 mmHard, verticalExtension batch
peg-tight-vertical-10010099,8310.35 mmHard, verticalTraining 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.

Controlled data views

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.

Why normalisation is not optional

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.

03 · Policies

Matched pairs, one changed input

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.

ACT · raw
Vision and position

ACT-V

Wrist image and six joint positions. ResNet-18, chunk 50 executed open loop (1.67 s).

Current-aware

ACT-M direct

Six raw current counts appended to the state vector. Historical concatenation without winsorisation.

ACT · normalised
Vision and position

ACT-V

Unchanged checkpoint, re-evaluated in the same session under a shared phase-adaptive controller.

Current-aware

ACT-M-norm

Same concatenation, but current is winsorised at the training q99.5 before scaling.

ACT · learned temporal
Vision and position

ACT-V

Unchanged checkpoint, re-evaluated in the temporal session.

Current-aware

ACT-M-norm-jointCNN-contact

Per-joint current histories through a shared 1D CNN into six joint tokens with mean, max, and latest pooling.

Diffusion Policy
Vision and position

DP-V

Warm-started from the recovered DP-V checkpoint and fine-tuned end to end for 40,000 updates at 10 Hz.

Current-aware

DP-M jointCNN dual-FiLM

Frozen DP-V base plus a learned per-joint temporal current route feeding bounded residual FiLM into every U-Net block.

Evaluation protocol
30
trials per policy, 60 per pair
5 × 6
interleaved, cyclically rotated blocks
45 s
rollout timeout, 15 s reset
≤ 50 °C
every servo before each block starts
Wilson
95% interval on each proportion
Fisher
two-sided exact test per pair
10 pt
predeclared practical threshold
1000
single training seed for all policies

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.

Physical rollouts

What the policies did

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.

Vertical peg-in-hole demonstration Human demonstration
One human-reviewed demonstration from approach to release, shown in synchronized wrist and side views. Human-reviewed vertical demonstration, episode 35, wrist and side views

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.

04 · Closed-loop evaluation

Four matched comparisons, no demonstrated benefit

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.

Success rate per arm, Wilson 95% intervals

Flush seating before the 45 s limit · n = 30 per arm · one row per session

0 10 20 30 40 50 60 70 80 90 Successful trials (%) Raw ACT 19/30 8/30 Normalised ACT 17/30 15/30 Temporal ACT 7/30 12/30 Diffusion Policy 9/30 12/30

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.

Data table
SessionVision and positionSuccessesCurrent-awareSuccessesFisher pCurrent route
Raw direct ACT
actv-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 ACT
act-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 ACT
act-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 Policy
dp-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

Difference in success, current-aware minus baseline

Percentage points with Newcombe 95% intervals · trial-level, no block dependence modelled

-60 -40 -20 0 +20 +40 favours vision only favours current-aware Percentage points Raw ACT -36.7 Normalised ACT -6.7 Temporal ACT +16.7 Diffusion Policy +10.0

Filled marker: interval excludes zero. Only the raw ACT row does, in the harmful direction. Nothing here establishes equivalence either.

Both Diffusion Policy arms decline across blocks

Successes per interleaved block of six trials · final DP session

0/6 2/6 4/6 6/6 12345 Interleaved evaluation block DP-V block 1: 3/6DP-V block 2: 4/6DP-V block 3: 2/6DP-V block 4: 0/6DP-V block 5: 0/6 DP-M block 1: 5/6DP-M block 2: 2/6DP-M block 3: 2/6DP-M block 4: 2/6DP-M block 5: 1/6 DP-V 0/6 DP-M 1/6

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.

Where the normalised ACT pair failed

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.

Where the temporal ACT pair failed

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.

Where the Diffusion Policy pair failed

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.

05 · Model response

Does current reach the output?

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.

Counterfactual action sensitivity, zcurr

Mean relative L2 change of the predicted action when current is mean-imputed · deployment-path checkpoints

ACT-M direct concatenation
0.080
ACT-M-CNN (historical)
0.079
ACT-M-FiLM (historical)
0.324
DP-M (direct)
0.065

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.

Mean relative action change per task phase for the normalised direct ACT-M and the final learned DP-M under current imputation, on a log axis
Per-phase view, exploratory. The historical direct-concatenation checkpoint is least sensitive during grasp. The phase table mixes heuristic, human-reviewed, and gold rows, so these values cannot establish which phase benefits from current.
ApproachGraspTransportInsertionRelease
0.1030.0350.1000.0850.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.

Findings

Three claims, kept apart

RQ1 · Signal

Yes, on this platform and task

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.

RQ2 · Model

Yes, for the sampled observations

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.

RQ3 · Robot

No demonstrated benefit

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.

Takeaway

Availability and utilisation are necessary, not sufficient

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.

Read with these limits
  • One SO-101, one STS3215 firmware, one peg-in-hole setup, one operator, one training seed. Findings are stated as "on STS3215 in this setup".
  • Thirty trials per confirmatory row give wide intervals; interleaved blocks reduce thermal and order effects but do not eliminate them.
  • Whether a learned temporal encoder beats direct concatenation stays unresolved: that contrast would need a new same-session comparison.
  • Current does not identify object slip. A 30 Hz effort stream may not separate slip from free motion; this is a sensing gap, not a fusion problem.
  • Demonstrations are success-only, so the data does not cover failed grasps, dropped pegs, or rim-search recoveries.
Reproduction record

Every number traces to a retained file

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.

Citation

Cite this work

@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/}
}