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.
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).
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.
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.
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.
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.
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.
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.
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.
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.
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 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 |
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¶
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 theopentacPython 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/.