"Vision tells me the cup is on the table. Touch tells me it is slipping out of my hand. Only one of those is an emergency."
A Grasping AI Agent
Prerequisites
This section builds on the contact-mechanics and transduction vocabulary of Chapter 2 (force, pressure, strain, and how a physical quantity becomes a measurable signal), and on the sampling-rate and bandwidth ideas of Chapter 3, since slip is a high-frequency event. It assumes the "what is a modality" framing of Chapter 1. The mathematics used here (Coulomb friction, a friction cone) is elementary; the specific sensors that capture these signals are the subject of the following sections, not this one. This section motivates; it does not yet build.
The Big Picture
Every other part of this book has given machines a distal sense, one that reports on the world at a distance: cameras, lidar, radar, microphones, and RF all measure things you are not touching. Touch is the one proximal sense, and it is missing from almost every AI stack shipping today. A robot can recognize a strawberry from across the room and still crush it on contact, because recognition and grip force are different problems, and only one of them has an ImageNet. This chapter is about closing that gap. This first section argues the case: touch reports quantities no distal sensor can observe (contact force, shear, slip, hardness, microtexture), it reports them exactly where and when vision goes blind (at the moment of contact, under occlusion by the hand itself), and it has been "missing" not because it is unimportant but because it lacked the data, sensors, and representations the rest of perception spent a decade acquiring.
What touch measures that nothing else can
The first argument for touch is informational: it is the only sensor that observes the mechanical state of contact directly. When two surfaces meet, the physics at the interface is a small set of quantities, and none of them radiate outward for a camera to catch. There is the normal force pressing the surfaces together, the shear (tangential) force resisting sliding, the slip state (are the surfaces locked or moving relative to each other), the local compliance or hardness revealed by how the contact patch deforms under load, the microtexture felt as high-frequency vibration when a fingertip is dragged, and the thermal signature of the material (metal feels cold because it conducts heat away from the skin, wood does not). The what is this contact wrench and its evolution; the why it matters is that manipulation is controlled by exactly these variables, not by object identity. You do not lift a glass by knowing it is a glass; you lift it by keeping the tangential load inside the friction cone.
Formally, Coulomb's law says a static contact holds only while the tangential force stays under a friction-limited fraction of the normal force:
$$\lVert \mathbf{f}_t \rVert \le \mu\, f_n .$$The instant \(\lVert \mathbf{f}_t \rVert\) crosses \(\mu f_n\), the object slips. Here is the crux: \(\mathbf{f}_t\), \(f_n\), and \(\mu\) are all interface quantities. A camera can watch an object begin to fall after it has already left the friction cone, but it cannot measure the margin \(\mu f_n - \lVert \mathbf{f}_t \rVert\) that predicts the fall. Touch can, and it can do so milliseconds before any visible motion. That predictive margin is the single clearest example of information that is present in the tactile channel and absent, in principle, from every distal one.
Key Insight
Vision and touch are not two views of the same information at different quality. They are complementary in kind. Vision is a low-bandwidth, wide-area, distal sense that is excellent at "what and where" and structurally blind to contact. Touch is a high-bandwidth, tiny-area, proximal sense that is excellent at "how hard, which way, and about to slip" and nearly useless at a distance. A classic result in human motor control makes the point sharply: people whose fingertips are anesthetized drop objects and fumble simple grips even with their eyes fully open, because vision cannot supply the grip-force control that tactile afferents normally provide. An AI stack with cameras but no skin is in exactly that condition.
Why vision goes blind precisely at contact
The second argument is geometric, and it is the reason touch cannot simply be inferred from better cameras. At the moment that matters most, the moment of contact, the manipulator occludes the contact. When a gripper closes on a connector, the fingers hide the connector; when a hand grasps a mug, the palm and fingers cover the very surface patch bearing the load. This is the "last inch" problem of manipulation: perception is strong while the object is in free space and collapses in the final centimeter, exactly when the task succeeds or fails. The why is unavoidable geometry, not sensor quality: an eye-in-hand camera good enough to see under its own fingers would have to see through them.
Touch inverts this profile. It carries no signal at a distance (an untouched skin patch reports nothing) and maximum signal at contact, which is the complement of vision's curve. That complementarity is why touch belongs in the fusion stack of Chapter 50 rather than as a vision replacement: the two sensors are informative in disjoint regimes of the same task. It is also why touch is the natural partner of proprioception, the robot's sense of its own joint angles and end-effector forces developed in Chapter 57: proprioception tells the robot where its hand is, touch tells it what the hand has found.
In Practice: robotic connector insertion on an assembly line
Consider a factory cell that mates a USB-C plug into a socket, a task automotive and electronics manufacturers run millions of times a day. A camera positions the plug to roughly a millimeter, but the socket clearance is tens of micrometers and the last approach is entirely under the gripper's fingers, invisible to any external camera. Vision-only cells solve this with brute-force jigs and tight fixturing that break whenever a part shifts. A tactile-equipped gripper instead feels the plug catch the socket lip: a sudden shear spike with no normal-force increase means "misaligned, back off and re-approach"; a rising normal force with stable shear means "seated." The tactile signal arrives in a few milliseconds, well inside the control loop, so the robot corrects before it jams or bends a pin. The same feel-then-correct pattern generalizes to threading a nut, seating an RJ45 clip, and mating a wiring-harness connector, all cases where the decisive events happen in the occluded last inch and are legible only to touch.
Why it has been "missing": data, sensors, and representation
If touch is so informative, why is it absent from the models that already read ECG, radar, and lidar? The honest answer is not physics but infrastructure, and it is a three-part deficit. First, data: there is no ImageNet or LibriSpeech for touch. Tactile datasets are small, robot-specific, and expensive to collect, because every sample requires a physical contact rather than a scrape of the web. Second, sensor heterogeneity: a camera is a camera, but "a tactile sensor" spans camera-based gels, capacitive arrays, piezoresistive skins, and barometric taxels (all catalogued in Section 56.3), each with different resolution, modality count, and output format, so a model trained on one rarely transfers to another. Third, representation: the field has not agreed on what a tactile "frame" even is, an image, a force vector field, a point set, or a time series, which is the subject of Section 56.4.
These are the same three deficits that self-supervised learning solved for other modalities in Chapter 17, which is exactly why tactile foundation models are the current turning point rather than a distant hope. The small code below makes the friction-cone argument concrete and shows why the signal that resolves a grasp is a temporal one that only a high-rate contact sensor sees.
import numpy as np
# A held object: constant grip (normal force), rising pull (tangential force)
# as the arm accelerates. mu is the surface friction coefficient.
mu, f_n = 0.6, 5.0 # newtons of grip
t = np.linspace(0, 1.0, 200) # 200 Hz tactile stream, 1 second
f_t = 6.0 * t # tangential load grows as arm lifts
margin = mu * f_n - f_t # >0 = held, <=0 = slipping
slip_idx = np.argmax(margin <= 0) # first sample the object slips
print(f"friction limit = {mu*f_n:.1f} N")
print(f"slip begins at t = {t[slip_idx]*1000:.0f} ms, "
f"pull = {f_t[slip_idx]:.2f} N")
# A 30 Hz camera samples every ~33 ms and only sees motion AFTER slip.
# The 200 Hz tactile margin crosses zero first, giving ~tens of ms warning.
As Listing 56.1 shows, the decisive variable is a force margin sampled fast, not an image. That is the shape of the whole modality: local, mechanical, high-bandwidth, and invisible from afar.
The Right Tool
You do not need a physical rig to start experimenting with touch. The tacto simulator renders synthetic camera-based tactile images for a contact in a physics scene, and public sets like Touch-and-Go and ObjectFolder load through the Hugging Face datasets interface. Getting a stream of aligned tactile frames is a few lines rather than the several hundred lines of renderer, shader, and contact-solver plumbing it replaces:
from datasets import load_dataset
# streaming avoids downloading the whole multi-GB tactile corpus
touch = load_dataset("touch_and_go", split="train", streaming=True)
sample = next(iter(touch)) # {'tactile': image, 'vision': image, 'material': label}
datasets library handles download, streaming, decoding, and schema, roughly 200 lines of data plumbing, so you can focus on the model. What the library will not decide is which tactile representation (image, force field, or time series) your task actually needs.Research Frontier
The three-part deficit is being closed right now, which is why this chapter is tagged research-frontier. On the sensor side, Meta's DIGIT and the omnidirectional DIGIT 360 (2024) pushed low-cost, high-resolution camera-based touch into open hardware (Section 56.2). On the model side, tactile foundation models have arrived: Sparsh (Meta AI, 2024) is a self-supervised backbone trained across tactile sensors, UniTouch aligns touch with vision and language in a shared embedding, and T3 targets transfer across sensor types (all treated in Section 56.5). These do for touch what CLIP and its successors did for vision: supply a pretrained representation so that a new tactile task needs a few hundred labeled contacts rather than a bespoke dataset. Touch is transitioning from "missing" to "late but arriving," and the fusion of touch with vision-language-action policies is now an active frontier feeding directly into Section 56.6 and the embodied models of Chapter 58.
Exercise
Extend Listing 56.1 into a fair race between two sensors. Model a 30 Hz camera that can only report "object moving" one sample after the friction margin goes negative, and a 200 Hz tactile stream that reports the margin directly. Add Gaussian noise to the force estimate and find the latest sampling rate at which the tactile margin still gives at least 20 ms of warning before slip. Then write two sentences on why raising the camera frame rate does not solve the problem, referring to the occlusion argument in this section.
Self-Check
1. Name three physical quantities at a contact interface that touch measures and no distal sensor (camera, lidar, radar) can observe. For one of them, state the manipulation decision it drives.
2. The "last inch" problem says vision degrades exactly where touch peaks. Explain the geometric reason this is unavoidable rather than a matter of better cameras.
3. Touch has lagged other modalities not for physical reasons but infrastructural ones. Name the three deficits, and name the technique from Chapter 17 that is now closing them.
What's Next
In Section 56.2, we meet the sensors that actually capture these contact signals, starting with the camera-based family (GelSight, DIGIT, and the omnidirectional DIGIT 360) that turns a lump of soft gel and a tiny camera into a dense, high-resolution image of touch, converting the mechanical quantities argued for here into a stream a neural network can read.