Skip to content

Results

We evaluate OpenTac across sensor fabrication, force estimation, adaptive acquisition, cross-sensor transfer, simulation, and robot control and policy learning. This page presents the paper's measurements alongside two additional tests: repeated pressing over 10 hours and mechanical durability.

Sensor response demonstrations

The clips below illustrate force response, heating and normal/shear readout under the demonstrated conditions.

Dynamic range. Applied forces from about 0.1 N to about 10 N, read at 10 kΩ feedback (the default gain). A lower gain, or a different piezoresistive layer, extends the measurable force range at the cost of sensitivity to smaller loads.
Heating demonstration. The sensor shows no apparent false contact response while exposed to the heat gun in this clip.
Normal and shear. A finger presses and twists a bump sensor. Colour is normal force; arrows are shear.

Fabrication and coverage

We generated and fabricated 31 boards using OpenTac-CAD. All passed the design-rule check and produced functional sensors. The five highlighted designs contain 153–467 taxels on 35–46 channels, with generation times of 0.7–2.6 s. Shape-aware packing covers 75–93% of each target region. On the tapered YUBI and LEAP regions, coverage exceeds the largest inscribed rectangular grid by 18 and 10 percentage points, respectively. Separately, all nine designs generated from one-sentence requests by a coding agent passed the design-rule check (Design with an AI agent).

Five robot surfaces and their generated flex PCBs; the sensor stack with one bump per 2 by 2 taxels and the tunable taxel geometry; sensorized area against the best rectangular grid and generation time for 31 boards.
(A) Selected surfaces (orange) on five robots and the generated flex PCBs. (B) The sensor stack, with one bump per 2×2 taxel group, and a generated taxel and routed corner; compiler inputs in orange. (C) Sensorized area against the largest inscribed rectangle, and generation time, for all 31 fabricated boards.
All 31 fabricated flex PCBs laid out flat, from small fingertip pads to a 1024-taxel square.
The 31 sensors fabricated from OpenTac-CAD layouts: up to 1,024 taxels each.

Material and spatial response

We measured force response against a load cell at 1 kΩ feedback resistance, varying one design parameter at a time. At 2.0 mm pitch and 0.2 mm electrode gap, LINQSTAT did not saturate through 60 N, whereas Chibitronics saturated earlier. Increasing taxel pitch increased the signal per taxel while reducing spatial resolution. The force response therefore depends on both the piezoresistive material and electrode geometry.

On a bumped 4×4 patch, the bump decoding (sum of the four taxels under a bump for normal force, their differences for shear) reaches an in-sample R² of 0.95, 0.93 and 0.96 for Fx, Fy and Fz, with RMSE of 0.11–0.16 N, against an OptoForce reference.

Per-taxel response curves against force for three films, five electrode gaps and three pitches, and three-axis force estimates against a reference sensor.
Per-taxel normal response against a load cell (median and interquartile range; diamonds mark the onset of saturation) for (a) three films, (b) electrode gaps of 0.1–0.5 mm and (c) pitches of 1.5–4.0 mm. (d) Three-axis calibration of a bumped 4×4 patch.

Repeated pressing over 10 hours

A UR5 repeatedly loaded one bump while an OptoForce sensor measured the applied force. The robot pressed at a fixed baseline force and, every 30 minutes, performed a measurement cycle at 3, 3.5, 4, 4.5 and 5 N. The test comprised 5,423 presses in 21 blocks over 10 hours. At each reference force, the tactile reading increased over approximately the first three hours before remaining nearly constant. The responses at the five forces remained separated throughout, despite the initial drift.

Repeated loading shown at 50× speed; 12 s of video corresponds to 10 minutes of the test.
Line plot of the tactile reading against time over 10 hours at five measured forces from 3 to 5 newtons: each line rises over the first three hours, then stays nearly level, and the five lines stay apart.
Tactile reading (summed counts) at each measured force, from a quadratic fit per ~30-minute block: 5,423 presses in 21 blocks over 10 h at 3–5 N. Readings rise over the first ~3 h, then hold nearly constant; the five forces stay separated throughout.

Durability

A connected sensor was touched lightly with a pen, a tape roll and a hand, struck hard with a hammer several times, and touched again. It was then unplugged, thrown on the floor, stomped and jumped on, and run over with an office chair. Plugged back in, it still responded to light touches and object contacts.

Shortened from 2 min 12 s, in order, with the original sound. Inset: the monitor's live map, enlarged; colour is normal force, arrows are shear.

Policy learning with shear

On an SO-101 arm, action-chunking-transformer (ACT) policies perform peg-in-hole and plug insertion with one of three sensors: FlexiTac, OpenTac-1D (normal force only) or OpenTac-3D (normal and shear). For each sensor, policies are trained on touch plus joint angles ("full") or joint angles alone ("pose"), each with 100 demonstrations, and evaluated over 50 trials, without vision.

  • OpenTac-3D-full has the highest observed success on both tasks: 82% on peg-in-hole and 62% on plug insertion.
  • On plug insertion, neither normal-only sensor improves on its pose-only baseline (FlexiTac 32% → 22%, OpenTac-1D 36% → 36%); OpenTac-3D improves from 36% to 62%.
  • In the illustrated insertion sequence, normal maps are similar before and during socket contact, while the shear maps distinguish these states.

Each sensor has its own pose-only baseline, and the bumps change contact mechanics as well as adding shear, so the differences cannot be attributed to shear alone.

Bar chart of success rates for peg-in-hole and plug insertion across FlexiTac, OpenTac-1D and OpenTac-3D with pose-only and full observations.
Success over 50 trials per condition, without vision. "Pose": joint angles only; "full": joint angles and touch. Conditions that share no letter differ significantly (>90% confidence).

The following clips compare individual rollouts of policies using proprioception with normal and shear readings (OpenTac-3D), proprioception with normal readings (OpenTac-1D), or proprioception alone. Each comparison begins from the same start configuration. In addition to SO-101 plug insertion, the clips show key-lock insertion with two YAM arms. For that task, only the left gripper, which holds the key, carries a tactile sensor on each finger; the right gripper holds the lock without tactile sensing.

SO-101 plug insertion from one start pose with the same plug: OpenTac-3D inserts the plug; OpenTac-1D and proprioception only fail.
YAM key-lock insertion: OpenTac-3D inserts the key; OpenTac-1D fails at the insertion; with proprioception only, the policy stalls there and does not open the gripper.
Peg insertion in simulation, with the deformable pads described under Simulation: the normal-and-shear policy inserts the peg, the normal-only policy does not.

Grasp control with shear feedback

A Dexmate Vega-1 Pro holds a paper cup between two OpenTac probes under proprioceptive, wrist force/torque, normal or shear feedback, with the same trajectories, gains and a 2.5 N nominal grip. The shear controller raises its grip target before the cup slips. Under impulsive loading, shear feedback holds the cup for 40 s in 16 of 20 trials, against 9 of 20 for force/torque and normal-only feedback, with half the slip.

Proprio Wrist F/T OpenTac-1D OpenTac-3D
No load Held (of 20) 3 20 20 20
Slip (cm) — 0.15 ± 0.08 0.2 ± 0.1 0.11 ± 0.06
Load Held (of 20) 0 9 9 16
Slip (cm) — 5.5 ± 1.3 5.8 ± 2.1 2.6 ± 1.2

Held: trials reaching 40 s. Slip: net displacement, mean ± standard deviation; —: dropped.

In the ball-rolling task, a UR5 carries a 32×32 skin on a square end effector and rolls a ball along its edges without observing the ball position. The shear controller steers toward a shear vector aligned with the intended edge. It returns from the borderline region to the valid region more reliably than the normal-force controller. In the clip, normal-force feedback produces faster, straighter motion but cuts across the sensor; shear feedback produces slower, oscillatory motion, particularly at corners, while maintaining the edge-following behaviour.

A separate demonstration uses a skin on a Dexmate forearm to provide contact feedback for compliant motion. The arm yields in the direction of an applied push and holds its resulting pose when contact ends.

Four panels: SO-101 plug insertion with normal and shear maps, bimanual YAM key insertion and fork picking, UR5 ball control along an edge, and Dexmate bimanual cup holding with and without load.
OpenTac on four robot platforms: SO-101 plug insertion, YAM bimanual manipulation, UR5 ball control and Dexmate bimanual cup holding.
UR5 ball rolling: the normal-force controller (top) and the shear-force controller (bottom), with their contact maps.
Dexmate Vega-1 Pro, bimanual cup holding: normal-only feedback (left) and normal-and-shear feedback (right).
Dexmate forearm skin and its live map: the arm yields to the push and holds its pose when it stops.

Sampling budget and fast contacts (Xampling)

OpenTac-Xampling selects taxels adaptively, using a coarse-to-fine search and expanding around detected contact. In the fixed-budget evaluation, each frame samples M of N taxels. On a 1024-taxel skin, raster scanning reaches 67 frames/s, while a budget of M = 16 reaches 1286 partial frames/s. The higher rate describes partial updates, not complete measurements of the array.

In 30 cm tennis-ball drops (contacts of about 3 ms, detection at 50% of ADC full scale), raster scanning detected two of six impacts; budgets of M = 16–256 detected all three impacts tested at each budget, and M = 512 two of three. Reading fewer taxels per frame raises the frame rate and catches brief contacts better, at the cost of spatial coverage within each frame. The number of trials is small, which limits conclusions about detection reliability.

Frame rate against samples per frame; frames per ball impact; an impact at M equals 128; sampling patterns on four skin shapes.
(a) Frame rate against budget M on a 32×32 skin. (b) Frames capturing a 30 cm tennis-ball drop; dashed: frames spanned by a 3 ms contact. (c) An impact at M = 128. (d) Sampling patterns at M = 64 on four skin shapes (blue: not sampled).
Two 30 cm drops at 128× slow motion: raster scanning misses the impact; Xampling at M = 32 catches it. The 996 updates/s on the clip is the rate the board ran at in this one recording; the benchmark in panel (a) gives 954 frames/s at M = 32, the mean of two rounds (Xampling).

Transfer between sensors

OpenTac-Transfer maps calibrated normal-force distributions between skins of different shape and pitch in physical coordinates, using each skin's manifest and no paired data. It was evaluated on four LINQSTAT skins without bumps (Triangle, 409 taxels, and AgileX, 502, at 2 mm pitch; UMI, 174, and Robotiq, 96, at 4 mm), pressing five objects at 95 locations at 1–8 N.

  • Transfer reaches a median shape F1 of 0.750 over 5,290 predictions, against 0.714 for raw-count area averaging over the manifest geometry and 0.634 for bilinear array resizing.
  • Within the region both skins cover, it reaches 0.788, close to the 0.800 repeatability of the same skin.
  • Targets with 4 mm pitch score higher than those with 2 mm pitch (0.84–0.88 against 0.67–0.78).
  • The reduced foam model from OpenTac-Sim reaches 0.727 on the three skins left out of its fit.
Example presses mapped between skins; shape F1 by object; F1 against force; transfer F1 for each ordered pair of skins.
(a) Median-performing presses at ≥4 N; rows are target ← source at a shared physical scale (bar: 10 mm). (b) Median shape F1 by object; grey marks same-sensor repeatability. (c) F1 against calibrated force. (d) Transfer F1 for each ordered skin pair on co-visible support.

Simulation

The paper's policy-learning simulation is a MuJoCo SO-101 peg-insertion environment with CAD-derived tetrahedral pads attached to the gripper fingers. Each pad has 40 bumps on a 10×4 reduced deformation grid (165 degrees of freedom), with collision on the detailed surface mesh; each bump reports one normal and two tangential displacements, interpolated to 16×32 tactile images.

Simulated SO-101 arm following a trajectory toward an insertion target, with blue spheres and yellow cubes for training and evaluation positions; enlarged views of the fixed and moving gripper pads with per-bump shear arrows at 8.2 s and 13.5 s; on the right, the SO-101 grasping a can and two ALOHA arms in a dual-arm insertion.
OpenTac-Sim scenes from the paper, in MuJoCo with CAD-derived tetrahedral bump pads. Left: the SO-101 follows a trajectory toward the insertion target; blue spheres and yellow cubes mark training and evaluation positions, and the enlarged views show the shear at each bump of the fixed and moving pads at two moments. Right: grasping a can with the SO-101, and dual-arm insertion with ALOHA.

Simulated insertion success (%), from the paper. Adding shear to normal touch raised success from 74% to 86% on peg insertion and from 18% to 90% on plug insertion, and on the unfixtured dual-arm ALOHA task from 1 to 3 of 30 trials. Peg insertion uses a shear-based executor guard; ALOHA uses none.

Tactile input Peg Plug ALOHA
Proprioception 26 0 0
+ normal 74 18 3.3
+ normal and shear 86 90 10.0
A simulated robot arm with tactile pads holds a can; arcs trace paths of objects from the table into a basket that holds a red ball and a cube.
A simulated tabletop sorting task: the arm picks up objects and places them in a basket.
Two textured elastomer pads, elastic modulus 33.6 MPa (left) and 5 MPa (right), under the same cylindrical indenter: the softer pad deforms more locally.
The 5 MPa pad under the indenter: its surface (left) and its tetrahedral mesh (right), in sync.

The released OpenTac-Sim package (opentac.sim) provides two reduced contact models for flat sensors specified by manifests. Smooth skins use the reduced foam-contact model of the transfer study (a Winkler layer, smoothed and integrated over the manifest's taxels before the target calibration is applied). Bump sheets use rigid bumps on spring joints, which report normal force per taxel and shear per bump. See Simulate.

Recorded tactile fields

Four tactile recordings: a 64 by 64 skin, a 9 by 9 fingertip, and UMI gripper finger skins with a can, a ball and a screwdriver.
Heatmaps show normal load; cyan arrows show shear at each bump; white arcs indicate rotation. (a) 64×64 skin (4,096 taxels; not one of the 31 layouts above), twisting a dome and clippers. (b) 9×9 fingertip, opposite thumb twists. (c) UMI gripper, 29×6 finger skins: a can and a ball rocked in the grasp. (d) Extrinsic contact: a screwdriver moved down and up.
UMI gripper, external contact: a hand pushes the held screwdriver, and the force reaches both finger skins through it.
UMI gripper: a hand turns the held ball; normal and shear on both finger skins.

Limitations

Flex PCBs require developable surfaces (see Shapes and surfaces), and piezoresistive films show hysteresis, drift and temperature dependence. Force calibration is evaluated in-sample. The effect of acquisition rate on learned policies remains to be evaluated.

Reporting tactile experiments

To make tactile experiments comparable, the paper recommends reporting, with each result: the geometry (active surface, taxel count, pitch, footprint, coverage), the material and mechanics (film, electrode gap, bump geometry, mounting, preload), the calibration (baseline subtraction, fitted mapping, load range, evaluation split), the acquisition (taxel count N, budget M, sampling strategy, measured rate), and for learning and control the observation channels, demonstrations, per-sensor pose-only baseline and controller settings. The manifest covers the geometry; the rest belongs in the experiment record.

Data and code

Released in the code repository and website repository:

  • OpenTac-CAD (opentac/cad/), the readout firmware (firmware/, with prebuilt binaries), the readout boards' KiCad and JLCPCB files (hardware/), and the opentac Python package for reading and recording sensors, OpenTac-Sim (opentac.sim) and OpenTac-Transfer (opentac.transfer).
  • The 31 fabricated designs, regenerated for the current readout boards, each with its Gerbers, KiCad board and manifest: Ready-to-order designs.
  • The nine recorded presses behind How it works (three objects on three skins), in the form the page plays them, in docs/learn/data/takes/.