Learning contactfrom motor current
The servos in a cheap robot arm report how much current they draw. This thesis asks whether that number can tell a learned policy when the peg it holds has touched the hole.
Put a peg near a hole and look through the wrist camera. The picture hardly changes whether the peg is lined up, resting on the rim, or beginning to jam. A force sensor would settle the matter, but the arm used here has none. It does have six servos, and each one reports its own motor current for nothing. The thesis asks three plain questions of that number. Does it carry any information about contact? Does a trained policy take notice of it? And with the number in hand, does the policy put the peg in more often?
Why the camera is not enough
To push a peg into a tight hole you need to know when it touches. The camera and the joint angles do not always tell you.
- 1
The picture barely changes. Seen from the wrist, a peg that is lined up with the hole, one that rests on the rim, and one that has started to jam all look much alike. Each calls for a different move.
- 2
Touch sensors cost money and trouble. A force sensor or a tactile skin would tell the cases apart. Both have to be bought, fitted, wired, and calibrated.
- 3
The servos already measure current. Each of the six servos keeps a register of the current it draws. The register can be read with every camera frame, thirty times a second.
- 4
It is a crude number. About half the readings are exactly zero. The value depends on how the arm is posed as much as on what it touches, and nothing turns it into a force.
Does a trained policy take notice when the current changes?
Does a policy that sees the current put the peg in more often?
The arm and the task
The whole study runs on a hobby arm. The one thing added to what it normally observes is a register that its servos keep anyway.

What the current tells us
Before any policy was trained, the register was put to the simplest test there is. Does it change when the arm touches something?
Closing on any of the three objects sends the current well above closing on air. The smallest of the three differences is 3.4 standard deviations. Before the test, 0.8 had been set as the least that would count.
The middle value is 18.5 counts and the largest is 77. The last ten seconds stand in for the moment of insertion; no one marked the frames one by one.
The current does move when the arm touches something. Read it with the joint angles and the picture, and do not mistake it for a force.
The demonstrations
One person taught the task by moving the leader arm a hundred times. Every frame keeps the wrist picture, the six joint angles, the six currents, and where the leader arm was.
The boundaries were marked by hand from the films. They served to check the analysis. The policies never saw them.
The policies with and without current learn from the same frames, the same pictures, and the same actions. All that differs is the list of numbers describing the arm: six joint angles, or six joint angles and six currents.
Nearly half the readings are zero, and the rest trail off into a long tail. Scale them the usual way and a rare spike lands tens of standard deviations out. So the later policies cut each channel off at the value that 99.5 per cent of the training readings fall below, and scale it after that.
The policies
Each comparison takes two policies trained on the same demonstrations and runs them on the same day, turn and turn about. The only thing that differs is how the current gets into the network.
| Comparison | Without current | With current |
|---|---|---|
| ACT, raw current | The wrist picture and the six joint angles. | The six currents added to the list of numbers, just as the servos report them. |
| ACT, cleaned current | The same network as before, run again on the same day. | The currents cut off and scaled with figures from the training data before they go in. |
| ACT, learned encoder | The same network again, run a third time. | A short history of current for each joint, boiled down by a small network into six extra tokens. |
| Diffusion Policy, learned route | Trained end to end without current. | The same network, frozen, with a learned path that lets the current nudge each of its blocks a little. |
A trial counts only if the peg ends up all the way in before time runs out. Every success rate comes with a 95 per cent confidence interval. Every pair is put to Fisher's exact test. And before the trials began, ten percentage points was fixed as the smallest gain worth having.
The policies at work
For each policy, one attempt that went in and one that did not, filmed from the side. They are single trials, picked to show what the two outcomes look like. The counts come next.
Sees the wrist picture and the joint angles, nothing more.
How often the peg went in
Thirty trials for each policy, the two policies of a pair taking turns on the same day. One pair is never set against another, and for good reason: the same network, without current, put the peg in 17 times out of 30 on one day and 7 times on another.
A trial counts when the peg is all the way in within 45 seconds
Only in the first pair do the two intervals come apart, and there the policy with current did worse (p = 0.0089). In the other three the difference may well be nothing. The learned encoder came out 16.7 points ahead, more than the ten set as worth having, but no more than chance can produce in thirty trials (p = 0.267). Rest the pointer on a marker to see the figures.
Data table
| Comparison | Without current | Successes | With current | Successes | Fisher p |
|---|---|---|---|---|---|
| ACT, raw current | Vision only | 19/30 (63.3%) [45.5, 78.1] | With raw current | 8/30 (26.7%) [14.2, 44.4] | 0.0089 |
| ACT, normalised current | Vision only | 17/30 (56.7%) [39.2, 72.6] | With normalised current | 15/30 (50.0%) [33.2, 66.8] | 0.796 |
| ACT, learned encoder | Vision only | 7/30 (23.3%) [11.8, 40.9] | With a learned current encoder | 12/30 (40.0%) [24.6, 57.7] | 0.267 |
| Diffusion Policy | Vision only | 9/30 (30.0%) [16.7, 47.9] | With a learned current route | 12/30 (40.0%) [24.6, 57.7] | 0.589 |
Percentage points with 95 % confidence intervals
A filled marker means the interval leaves out zero. Only the raw current manages that, and in the wrong direction. None of the intervals is tight enough to say the two policies of a pair are as good as each other.
When the policies with current failed, they mostly failed at the hole. They dropped the peg or missed the opening; they seldom fumbled the grasp. The two learned encoders lean the way one would hope, but thirty trials cannot tell that lean from luck.
Do the policies use the current?
A policy might carry the current along and never act on it. To find out, the current is swapped for its average over the training data while the picture and the joint angles stay put. How far the chosen action moves is the measure.
All four policies change their actions when the current is taken away, so none of them ignores it. The one that changes most is the one that never got the peg in at all. Taking notice of a number and profiting from it are two different things.
The policies use the current. Using it did not help them.
What was learned
Yes. The current carries information about contact.
Close the gripper on an object and its current climbs far above what it draws closing on air. Let the peg meet the rim and the elbow current climbs as well. The number is noisy, often zero, and changes with the pose of the arm. It says the motor is working hard. It does not say how hard the peg is pressing.
Yes. The policies take notice of it.
Take the current away from any policy trained with it and its actions shift. Whether they shift for the better is another matter, and this test cannot settle it.
No. The peg went in no more often.
Given the raw current, ACT did worse. Given the cleaned current, it did neither better nor worse that anyone could measure. The two learned encoders came out ten to seventeen points ahead of their baselines, and thirty trials cannot tell that from luck.
A signal can be real and still be no use.
The number held the information and the network took it up, and still the robot put the peg in no more often. Before trusting a sensor like this one, measure the signal, check that the policy responds to it, and then count successes on the real robot. Nothing short of the last step will do.
- One arm, one task, one operator, one training seed, and thirty trials for each policy.
- Whether the learned encoder beats simply appending the current is still open. The two were never run on the same day.
- The current does not show the peg slipping in the gripper. At thirty readings a second it may not tell a slip from ordinary movement.
Where the numbers come from
Every figure on this page is worked out afresh from the recordings, the trial logs, and the trained networks kept with the thesis. The confidence intervals and the tests are computed from the raw counts each time the page is built.
The demonstrations, the calibration of both arms, and the phase marks made by hand, each with a checksum that has not changed.
The exact command that trained each policy, and the weights that were run on the robot.
Every trial in the order it was run, with its outcome and the phase in which it went wrong. Trials from different days are never added together.
The archive stays with the thesis and is not public. The docs page gives the protocol, the settings of each network, and the full tables of results.
Citing the thesis
@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://contact-from-current.pages.dev/}
}