The Contact Problem
State-of-the-art RGB-D perception systems achieve 2-5mm localization accuracy on objects in a scene. This sounds impressive until you consider what precision assembly requires: peg-in-hole insertion tolerances are typically +/-0.5mm, USB-A connector insertion is +/-0.3mm, and SIM card slots require +/-0.1mm. The gap between what vision can resolve and what contact tasks require is a physical constant — no amount of better camera resolution closes it entirely.
The core issue is that contact itself changes the system state in ways that are invisible to a camera. When a gripper finger makes contact with a surface, forces and deformations occur at a sub-millimeter scale. The camera sees a gripper approaching an object; it cannot see whether the contact is stable, slipping, or about to cause the object to rotate out of the grasp.
Compliant vs. Stiff Control: The Fundamental Choice
Before discussing force sensing hardware, it is essential to understand the two fundamental control philosophies for contact tasks:
Stiff (position) control: The robot tracks a commanded position trajectory regardless of external forces. If the end-effector encounters an obstacle, the controller drives high forces to try to maintain the commanded position. This is the default control mode on most industrial robots and is appropriate for free-space motion where contact is not expected. During contact, stiff control can damage the robot, the object, or both — a 1mm position error during a 0.5mm-clearance insertion produces contact forces that can reach hundreds of Newtons.
Compliant (impedance/admittance) control: The robot behaves like a virtual spring-damper system at the end-effector. When it encounters an external force, it yields — moving in the direction of the force proportionally to its magnitude. The stiffness and damping parameters determine how much the robot "gives" under load. Low stiffness (50-200 N/m) makes the robot very compliant, useful for contact exploration. High stiffness (2000-5000 N/m) makes it nearly rigid while still protecting against force spikes.
Impedance Control Theory
Impedance control is the most widely used force control framework in manipulation research. The controller defines a desired mechanical impedance (relationship between position error and applied force) at the end-effector:
The key insight: impedance control does not require a force sensor. It uses the commanded position and measured position (from joint encoders) to estimate the applied force. However, adding a wrist F/T sensor enables explicit force measurement, which is more accurate than the dynamics-model-based estimation (especially for arms with significant friction in the joints, which includes most arms under $50K).
Force Control Modes
Three operational modes cover the majority of contact manipulation tasks:
1. Pure impedance control: Set a desired stiffness in all 6 Cartesian axes. The robot acts like a spring — compliant when encountering unexpected contact, stiff enough to maintain trajectory in free space. Use this as the default mode for any task involving potential contact. No force sensor required (but one improves accuracy).
2. Force/position hybrid control: Control some Cartesian axes in position mode and others in force mode. The classic example is surface polishing: control X and Y in position mode (follow the surface trajectory) while controlling Z in force mode (maintain 5N contact force against the surface). This requires a force sensor to measure the contact force in the force-controlled axes.
3. Force-guided search: Use force feedback to guide the robot toward a target configuration. For peg-in-hole insertion: move the peg down until a Z-force spike is detected (contact with the surface), then apply a spiral search pattern in X-Y while maintaining low Z-force until the peg slips into the hole (detected by a sudden decrease in Z-force and increase in insertion depth). This is the standard industrial approach for precision insertion without precise vision.
| Control Mode | Sensor Required | Typical Tasks | Precision | Implementation Complexity |
|---|---|---|---|---|
| Pure impedance | None (optional F/T) | Safe grasping, contact exploration | +/-2-5mm | Low |
| Force/position hybrid | Wrist 6-axis F/T | Polishing, deburring, surface following | +/-0.5N force | Medium |
| Force-guided search | Wrist 6-axis F/T | Peg-in-hole, connector insertion | +/-0.1mm | Medium-high |
| Tactile-guided manipulation | Tactile array (GelSight/XELA) | In-hand rotation, slip recovery | 3mm spatial | High |
Contact Mechanics Fundamentals
Three concepts from contact mechanics are essential for understanding why force sensing matters:
- Friction Cone: A contact force must lie within the friction cone to avoid slip. The cone half-angle is arctan(mu), where mu is the coefficient of friction. For rubber gripper pads on steel (common in industrial settings), mu = 0.3. For silicone on glass, mu = 0.5. A measured contact force outside the friction cone predicts imminent slip — information that no camera can provide.
- Force Closure vs. Form Closure: A form closure grasp constrains the object by geometry alone (e.g., gripping a cylinder in a matched V-groove). A force closure grasp constrains the object by applying contact forces from multiple directions such that their friction cones together prevent any rigid body motion. Force sensors let you verify you have achieved force closure; vision cannot.
- Coulomb Friction Model: The standard model for predicting slip: |F_tangential| <= mu x F_normal. Measuring F_normal at the contact point lets you compute the maximum tangential force before slip, which is the fundamental constraint in dexterous manipulation.
Where Vision Fails in Practice
Three specific failure modes dominate in real manipulation systems:
- Occlusion During Approach: As the gripper approaches an object for grasping, the fingers occlude the contact surface. The camera's view of exactly where contact will occur disappears in the last 2-5cm of approach — the most critical phase for precise placement.
- Pixel Noise at Close Range: Depth sensors lose accuracy below 10-15cm working distance due to structured light interference and IR reflections from the gripper itself. Wrist-mounted cameras operating at typical manipulation distances are operating at the edge of their reliable range.
- Depth Shadow on Grasp Surface: The gripper structure casts depth shadows on the grasp target surface, creating missing data in the point cloud precisely where you need the best localization.
Force Sensor Types: Detailed Comparison
| Sensor Type | What It Measures | Precision | Bandwidth | Cost | Best For |
|---|---|---|---|---|---|
| Wrist 6-axis F/T (ATI Mini45) | Full 6-DOF contact wrench | +/-0.05N / +/-0.5Nmm | 7 kHz | $3K-8K | Insertion, assembly, grinding |
| Wrist 6-axis F/T (Robotiq FT300) | Full 6-DOF contact wrench | +/-0.1N / +/-1Nmm | 100 Hz | $1.5K-3K | General manipulation, cobots |
| Joint torque estimation | Estimated external torques | +/-0.5Nm | 1 kHz | $0 (software) | Collision detection, rough contact |
| Fingertip F/T (Bota SensONE) | 6-axis force at fingertip | +/-0.01N | 800 Hz | $2K-5K/finger | Delicate grasping, surface following |
| Tactile array (XELA uSkin) | 3-axis force per taxel | 3mm spatial | 100-500 Hz | $800-3K | Slip detection, contact localization |
| Optical tactile (GelSight Mini) | High-res contact geometry | 25 micron depth | 30-60 Hz | $300-600 | Texture recognition, object ID |
| Paxini tactile sensor | Distributed normal + shear | 1mm spatial | 200 Hz | $500-1.5K | Slip prediction, grasping |
Real Examples Where Contact Sensing Enables Tasks
The following are concrete examples from published work and SVRC internal projects where adding force/tactile sensing enabled tasks that were impossible with vision alone:
Peg-in-hole insertion (0.5mm clearance): A Franka Research 3 arm with ATI Mini45 wrist F/T sensor. The controller uses a spiral search strategy: descend until Z-force exceeds 5N (contact with surface), then spiral outward in X-Y while maintaining 3N Z-force until Z-force drops (peg entering hole). Success rate: 89% with F/T vs. 62% vision-only. The F/T sensor detects the hole entry within 0.1mm, which is below the resolution of any practical depth camera setup.
PCB connector assembly: USB-C connectors require +/-0.3mm alignment and 10-15N insertion force applied in the correct direction. A vision-only policy can localize the connector to within 1-2mm but cannot control insertion force. Adding a wrist F/T sensor enables force-limited insertion with compliance — the controller applies 12N in the insertion direction while allowing +/-5mm compliance in the perpendicular axes. Success rate jumps from 45% (vision-only) to 92% (vision + F/T).
Egg grasping and transfer: Eggs break at approximately 30-50N force depending on orientation. A standard parallel-jaw gripper commanded to close with constant force will either fail to grasp (too little force) or break the egg (too much). Adding a fingertip force sensor enables a force-limited grasp that closes until 8N is detected, holds at that force, and increases to 12N only during acceleration phases to prevent slip. Zero egg breakage in 200 trials vs. 15% breakage without force sensing.
Surface following (polishing, wiping): Maintaining consistent 5N contact force while following an irregular surface shape. Vision can estimate the surface geometry before contact but cannot measure the actual contact force during the wipe. A force/position hybrid controller holds 5N in the surface-normal direction while following a trajectory in the tangential plane. Force variation: +/-0.3N with F/T control vs. +/-3N with position control (estimated from dynamics model).
Key Papers and Systems
- Hogan, 1985 — "Impedance Control": The foundational paper establishing impedance control theory. Still the primary reference for understanding compliant manipulation.
- Raibert & Craig, 1981 — "Hybrid Position/Force Control": Introduced the concept of independently controlling position and force in orthogonal task-space directions. The basis for all modern force/position hybrid controllers.
- Calandra et al., 2018 — "More Than a Feeling": Demonstrated that GelSight tactile sensing enables grasping of objects that vision cannot perceive (transparent, reflective, thin). The paper that established tactile sensing as a practical tool rather than a research curiosity.
- Qi et al., 2023 — "General In-Hand Object Rotation": Used tactile sensing with RL to achieve dexterous in-hand rotation of arbitrary objects. Showed that tactile feedback is necessary for in-hand manipulation — vision-only policies plateau at 30% success on rotation tasks while tactile-enabled policies reach 85%.
- Suresh et al., 2024 — "Neural Contact Fields": Learned contact prediction from tactile sensor readings, enabling model-based planning for contact-rich manipulation. Represents the frontier of combining learned models with force/tactile data.
F/T Sensor Comparison: Detailed Specifications
| Sensor | Fx/Fy Range | Fz Range | Resolution (Fx/Fy) | Bandwidth | Weight | Price |
|---|---|---|---|---|---|---|
| ATI Gamma | +/-65 N | +/-200 N | 0.0125 N | 7 kHz | 255 g | $6,000-8,000 |
| ATI Mini45 | +/-145 N | +/-290 N | 0.0625 N | 7 kHz | 94 g | $3,500-5,500 |
| Robotiq FT300 | +/-300 N | +/-300 N | 0.1 N | 100 Hz | 300 g | $1,500-3,000 |
| OnRobot HEX | +/-200 N | +/-200 N | 0.2 N | 100 Hz | 230 g | $2,000-3,500 |
| Bota SensONE | +/-200 N | +/-1000 N | 0.01 N | 800 Hz | 120 g | $2,500-5,000 |
Built-in F/T sensing. Several modern robot arms include built-in joint torque sensing or wrist F/T estimation without external sensors. The Franka Research 3 provides estimated end-effector wrench through its joint torque sensors at 1 kHz -- accurate to approximately 1N for force and 0.1 Nm for torque. The UR5e and UR10e provide built-in F/T estimation at the tool flange using motor current measurements -- less accurate (2-5N resolution) but sufficient for collision detection and gross contact tasks. For teams on a budget, built-in F/T estimation can eliminate the need for an external sensor on tasks that do not require sub-Newton precision.
Sensor selection guidance: For research labs starting with force sensing, the Robotiq FT300 provides the best value -- it has a wide force range, integrates easily with UR and Franka arms via standard tool flange, and its 100 Hz bandwidth is sufficient for most manipulation control loops. For precision tasks requiring sub-Newton resolution (micro-assembly, medical device handling), the ATI sensors are the standard choice despite their higher cost. The Bota SensONE offers the best combination of resolution and bandwidth at a moderate price point and is gaining popularity in research settings. The OnRobot HEX is designed specifically for cobot integration and offers the simplest plug-and-play setup.
Impedance Control Implementation
The following Python code implements Cartesian impedance control for a 7-DOF robot arm. This is the practical implementation of the impedance control theory discussed earlier, suitable for integration with ROS2 control frameworks.
# impedance_controller.py -- Cartesian impedance control for manipulation
import numpy as np
class CartesianImpedanceController:
"""6-DOF Cartesian impedance controller with configurable stiffness/damping."""
def __init__(self):
# Stiffness matrix: [Kx, Ky, Kz, Krx, Kry, Krz]
# Low stiffness = compliant (good for contact exploration)
# High stiffness = stiff (good for free-space tracking)
self.K = np.diag([
800.0, # X stiffness (N/m) -- approach direction
800.0, # Y stiffness (N/m)
400.0, # Z stiffness (N/m) -- lower for contact tasks
30.0, # Rx stiffness (Nm/rad)
30.0, # Ry stiffness (Nm/rad)
20.0, # Rz stiffness (Nm/rad)
])
# Damping: critically damped = 2 * sqrt(K * m)
# m_eff ~ 2-5 kg for most 7-DOF arms at typical configurations
m_eff = 3.0 # effective end-effector mass (kg)
self.D = 2.0 * np.sqrt(self.K * m_eff) # Critical damping
def compute_wrench(self, x_desired, x_current, xdot_current):
"""Compute the 6-DOF wrench (force + torque) to apply.
Args:
x_desired: desired pose [x, y, z, rx, ry, rz] (6,)
x_current: current pose [x, y, z, rx, ry, rz] (6,)
xdot_current: current velocity [vx, vy, vz, wx, wy, wz] (6,)
Returns:
wrench: [fx, fy, fz, tx, ty, tz] (6,) in Newtons and Nm
"""
pose_error = x_desired - x_current
wrench = self.K @ pose_error - self.D @ xdot_current
return wrench
def set_contact_mode(self, contact_axis='z', contact_force=5.0):
"""Switch specified axis to force control mode.
For hybrid force/position control: set low stiffness on the
contact axis and command a desired force instead of a position.
"""
axis_map = {'x': 0, 'y': 1, 'z': 2, 'rx': 3, 'ry': 4, 'rz': 5}
idx = axis_map[contact_axis]
self.K[idx, idx] = 50.0 # Very low stiffness = compliant
# Desired "position" on this axis becomes force/K:
# x_desired[idx] = x_current[idx] + contact_force / K[idx]
return contact_force / self.K[idx, idx]
Tuning guidelines: Start with the stiffness values shown above and adjust based on your task. For free-space motion (no contact expected), increase K to 1500-3000 N/m for crisp trajectory tracking. For contact exploration (searching for a hole, following a surface), reduce K on the contact axis to 50-200 N/m. The damping ratio should remain close to critically damped (damping factor = 1.0) to prevent oscillation. Under-damped systems oscillate on contact; over-damped systems feel sluggish and respond slowly to force changes.
Task-Specific Contact Sensing Requirements
Different manipulation tasks impose fundamentally different requirements on contact sensing. Understanding these requirements prevents both under-specifying (sensor cannot resolve the contact events that matter) and over-specifying (paying for precision you do not need).
Peg-in-hole insertion (0.1mm tolerance). This is the canonical precision contact task. The peg must align with the hole to within 0.1mm before insertion force can drive it home. Vision can localize the hole to 1-2mm; the remaining 0.1mm alignment must come from force-guided search. Required sensing: 6-axis wrist F/T sensor with sub-0.1N resolution in XY (lateral) axes and 1N resolution in Z (insertion) axis. The controller detects hole entry by monitoring a sudden drop in Z-force (from surface contact force to near-zero as the peg enters). ATI Mini45 or Bota SensONE are appropriate sensors. Success rate improvement: 62% (vision-only) to 89% (vision + F/T).
Egg handling (30-50N fracture threshold). Eggs require grip force between 5N (minimum for secure grasp during transport) and 30N (fracture threshold for lateral loading). The 6x force margin seems comfortable but shrinks under dynamic conditions -- acceleration during transport adds inertial loads that can push grip force above the fracture threshold. Required sensing: fingertip force sensor (Bota SensONE or Paxini) with 0.1N resolution and 100+ Hz bandwidth. The controller ramps grip force from 5N to 8N during acceleration phases and back to 5N during steady-state transport. Breakage rate: 15% without force sensing, 0% with force sensing (200 trial evaluation at SVRC).
Fabric manipulation (sub-Newton forces). Picking up a single layer of fabric from a surface requires detecting contact forces of 0.1-0.5N and controlling pinch force to grip one layer without bunching. Wrist F/T sensors lack the resolution for this task -- the signal is lost in sensor noise and gravity compensation error. Required sensing: tactile array (GelSight Mini or Paxini) that can resolve sub-millimeter contact geometry and sub-0.1N shear forces. The tactile image shows whether one or multiple fabric layers are grasped, which is invisible to both cameras and wrist F/T sensors.
PCB component insertion (5-15N, 0.3mm alignment). Surface-mount and through-hole component insertion requires aligning leads with pad holes to 0.3mm and applying 5-15N insertion force without bending the leads. The force profile during insertion is diagnostic: a smooth force ramp indicates correct alignment; a force spike followed by a drop indicates a lead bending. Required sensing: 6-axis wrist F/T with 0.05N resolution. The controller applies a constant 3N search force while executing a spiral pattern until the leads find the holes (detected by force drop), then switches to a constant-velocity insertion with 15N force limit.
Tactile Sensing: Beyond Wrist F/T
Wrist-mounted F/T sensors measure the aggregate force/torque at the wrist joint, which captures the net interaction between the gripper and the environment. Tactile sensors, mounted on or in the gripper fingers, measure the local pressure distribution at the contact interface. This provides fundamentally different information.
GelSight / GelSight Mini. Optical tactile sensors that capture a high-resolution (640x480) image of the deformed contact surface at 30fps. GelSight can detect surface texture, estimate contact normals, and measure shear forces -- information that is invisible to wrist F/T sensors. Price: $500-1,500 per finger. Ideal for: slip detection, surface quality inspection, object recognition by touch.
XELA uSkin. Capacitive tactile sensor arrays that provide spatially distributed pressure readings at 100Hz across a flexible sensor pad. Resolution: 4mm spatial, 0.1N force. Can be conformally mounted on curved gripper surfaces. Price: $2,000-5,000 per array. Ideal for: grasp stability monitoring, in-hand manipulation, multi-point contact estimation.
Paxini tactile sensor. Available through the SVRC hardware catalog, Paxini provides pressure distribution sensing optimized for parallel-jaw grippers. Integrates directly with the OpenArm 101 gripper mounting interface.
Emerging: learning-based tactile sensors. A growing category of tactile sensors uses neural networks to estimate contact properties from raw sensor data. GelSight-style sensors produce images that can be processed by standard vision models to estimate contact normal, friction coefficient, and slip probability. The advantage over traditional capacitive sensors: richer contact information from a single sensor. The disadvantage: inference latency (5-15ms for a ResNet-18 processing a 240x320 tactile image) and the need for training data to calibrate the neural estimator. For teams already using learned manipulation policies, adding a learned tactile processing module is architecturally consistent and provides complementary contact information.
When to use tactile vs. wrist F/T. Use wrist F/T for: gross force control (insertion, assembly), collision detection, impedance control. Use tactile sensors for: slip detection during transport, texture-based object classification, stable grasp verification, and deformable object handling where local contact geometry matters. For maximum capability, use both: wrist F/T for the control loop and tactile sensors for grasp monitoring and slip prediction.
Integrating Force Data into Learning Pipelines
For teams training imitation learning policies on contact-rich tasks, force/torque data should be included as an additional observation channel alongside camera images and joint state. Practical integration guidance:
- Data format: Record F/T readings as a 6-dimensional vector (Fx, Fy, Fz, Tx, Ty, Tz) in the sensor frame at 30Hz (downsampled from the native 500-1000Hz sensor rate to match camera frame rate). Store in the same HDF5 episode structure as other observations.
- Normalization: Normalize F/T readings by the sensor's rated range (e.g., divide forces by 100N and torques by 10Nm for ATI Mini45). This keeps values in a similar range to normalized joint angles and image features.
- Feature extraction: For simple integration, concatenate the raw 6D F/T vector with the proprioceptive state vector and feed both to the policy's state encoder. For richer features, compute a short history (last 10 readings = 60D vector) that captures force rate of change, which is critical for detecting contact transitions.
- Expected improvement: Adding F/T observations to the policy's input improves success rate by 10-25% on contact-rich tasks (insertion, assembly) compared to vision+proprioception only. On tasks without significant contact requirements (free-space pick-place), the improvement is marginal (<5%).
Force Control Safety: Protecting Hardware and Workpieces
Force control without proper safety limits is dangerous to both the robot and the objects it manipulates. Every force-controlled system should implement these safety layers:
- Hard force limits: Set absolute maximum force thresholds per axis (e.g., 50N for Fx/Fy, 80N for Fz on a tabletop manipulation setup). If any axis exceeds the threshold, the controller immediately transitions to a compliant gravity compensation mode. These limits protect against controller bugs, unexpected collisions, and sensor failures.
- Rate-of-force limits: Limit the rate at which commanded force can change (e.g., max 20 N/s). This prevents sudden force impulses from damaging delicate objects or the robot's gear train.
- Contact watchdog: If the F/T sensor reads above a threshold for longer than expected (e.g., >5 seconds for a task that should complete in 2 seconds), trigger a timeout and retract. This catches situations where the controller is pushing against an obstruction without making progress.
- Sensor health monitoring: Check for F/T sensor saturation (all readings at maximum), sensor disconnect (readings jump to zero), and excessive noise (variance exceeds 5x baseline). Any of these conditions should trigger an immediate safe stop.
Force-Guided Search Strategies for Precision Assembly
For tasks requiring sub-millimeter alignment (connector insertion, peg-in-hole, screw starting), vision alone cannot provide sufficient accuracy. Force-guided search strategies use F/T sensor feedback to locate the exact alignment position through controlled contact.
| Strategy | Description | Best For | Typical Search Time | Success Rate |
|---|---|---|---|---|
| Spiral search | Maintain Z contact force while spiraling outward in XY until Z force drops (entry detected) | Round peg-in-hole, centering | 1-5 seconds | 85-92% |
| Raster scan | Systematic XY grid search with contact detection at each point | Rectangular slot insertion, large uncertainty region | 3-15 seconds | 90-95% |
| Force gradient descent | Move in direction that reduces lateral force magnitude (toward chamfer center) | Chamfered holes, self-aligning geometries | 0.5-2 seconds | 88-94% |
| Wiggle insertion | Apply small oscillating rotations around insertion axis while maintaining Z force | Tight clearance insertion, friction-dominated entry | 2-8 seconds | 80-88% |
| Learned residual | Classical search + learned correction from F/T history | Complex geometries, non-standard fixtures | 1-5 seconds | 90-96% |
The learned residual approach is the current state of the art: use a classical search strategy (spiral or gradient descent) as the base controller, then train a small neural network on F/T sensor history to predict corrections. The network learns the relationship between force signatures and optimal search adjustments for your specific hardware and task geometry. This hybrid approach consistently outperforms both pure classical and pure learned controllers by 5-8% on complex insertion tasks. See our classical vs. learned robotics guide for the full architecture.
Force Sensor Integration Checklist
For teams adding force sensing to an existing manipulation setup, this checklist covers the critical integration steps that are often missed.
- Mechanical installation. Mount the F/T sensor between the robot's wrist flange and the gripper. Ensure the mounting interface is rigid -- any compliance between the sensor and the gripper introduces measurement error. Use the sensor manufacturer's recommended mounting bolts and torque specifications. For ATI sensors, torque to 2.5 Nm; for Robotiq FT300, use the provided adapter plate.
- Gravity compensation. The sensor measures the gripper's weight as a constant offset. Calibrate this bias at startup by recording readings in 5+ arm configurations (different orientations) and fitting a gravity compensation model. Without gravity compensation, the "zero force" reading varies by 2-10N as the arm moves, masking actual contact forces.
- Electrical noise reduction. F/T sensor cables are susceptible to electrical noise from servo motors. Route cables away from motor power cables. Use shielded cables and ground the shield at one end only (the sensor end). If you see 60 Hz noise in the force readings, check for ground loops.
- Synchronization with cameras and joints. Ensure F/T readings are timestamped and synchronized with camera frames and joint encoder readings. For learning pipelines, a timestamp offset of more than 20ms between F/T and camera data degrades policy quality. Use hardware synchronization (PTP or trigger signals) rather than software timestamps for best results.
- Recording bandwidth. F/T sensors output at 500-7000 Hz natively. For learning pipelines, downsample to 30-50 Hz (matching camera frame rate) using an averaging filter. For real-time force control, use the full native bandwidth. Store both the downsampled and raw data -- the high-bandwidth data is useful for contact event detection in post-processing.
Common Force Sensing Failure Modes and Debugging
Force sensing systems fail in predictable ways. Understanding these failure modes and their diagnostic signatures saves hours of debugging time.
| Symptom | Likely Cause | Diagnostic Check | Fix |
|---|---|---|---|
| Force readings drift over a session (0.5-3N/hour) | Thermal drift in strain gauge | Log readings at rest over 2 hours; plot trend | Re-bias every 30 min or use temperature compensation |
| 60 Hz oscillation in force signal | Electrical ground loop | FFT of raw signal; look for spike at 60 Hz | Ground shield at sensor end only; route cable away from motors |
| Large force offset that changes with arm pose | Missing gravity compensation | Record readings at 5+ orientations; offset should correlate with gravity vector | Calibrate gravity model; see integration checklist step 2 |
| Sudden force spikes (50-100N) with no contact | Cable strain or connector intermittent | Wiggle cable during logging; spikes correlate with cable movement | Replace cable; secure cable routing with strain relief |
| Force readings saturate during light contact | Wrong sensor range selected | Check sensor configuration; compare rated range to task forces | Switch to higher-range calibration or a different sensor model |
| Inconsistent readings between left and right fingers | Asymmetric gripper wear or misaligned tactile pad | Apply known force to each finger separately; compare | Replace worn finger pad; recalibrate tactile sensor mounting |
SVRC maintains a diagnostic kit for force sensor debugging that includes a precision force gauge (Omega DFG35, 0.01N resolution), a cable tester, and a set of calibration weights. Teams renting SVRC hardware for data collection have access to this kit and to our sensor integration support.
Force Data in the Training Pipeline: Architecture Patterns
There are three proven architectures for incorporating force/torque data into learned manipulation policies. The choice depends on your task complexity and available sensor modalities.
Pattern 1: Early fusion (concatenation). Concatenate the 6D F/T vector with the proprioceptive state (joint angles, velocities) before the policy's state encoder. This is the simplest approach and works well when force information is supplementary to vision. Typical improvement: 8-15% on contact-rich tasks. Use this as your default starting point.
Pattern 2: Temporal convolution on force history. Instead of the instantaneous 6D reading, pass the last 0.5-1.0 seconds of F/T history (15-30 readings at 30 Hz) through a 1D convolutional network that extracts temporal force features (contact onset, force ramps, oscillation frequency). The resulting feature vector is concatenated with visual features. This pattern excels for insertion tasks where the force trajectory shape is diagnostic. Typical improvement: 15-25% on insertion and assembly tasks.
Pattern 3: Force-conditioned attention. Use force readings as a conditioning signal for cross-attention in a transformer policy. The visual tokens attend to force features, allowing the policy to learn when to look at which visual region based on what it feels. This is the most expressive architecture but requires 500+ demonstrations to train effectively. Typical improvement: 20-30% on multi-phase contact tasks (search, insert, verify). Use this only with abundant data and tasks that have distinct force-mediated phases.
# Pattern 2: Temporal convolution on F/T history
import torch
import torch.nn as nn
class ForceTemporalEncoder(nn.Module):
"""Extract temporal features from F/T sensor history."""
def __init__(self, history_len=30, ft_dim=6, out_dim=32):
super().__init__()
self.conv = nn.Sequential(
nn.Conv1d(ft_dim, 16, kernel_size=5, padding=2),
nn.ReLU(),
nn.Conv1d(16, 32, kernel_size=5, padding=2),
nn.ReLU(),
nn.AdaptiveAvgPool1d(1), # Global average pooling
)
self.fc = nn.Linear(32, out_dim)
def forward(self, ft_history):
# ft_history: (batch, history_len, 6)
x = ft_history.transpose(1, 2) # (batch, 6, history_len)
x = self.conv(x).squeeze(-1) # (batch, 32)
return self.fc(x) # (batch, out_dim)
This temporal encoder produces a compact 32-dimensional feature vector that captures force dynamics over the last second. The convolutional architecture is preferred over an MLP on flattened F/T history because it preserves temporal locality -- the kernel learns to detect specific temporal patterns (force ramps, oscillations, step changes) regardless of when they occur in the history window.
Training tip: When training with F/T observations, normalize force values by the sensor's rated range (not by the dataset's empirical statistics). Using empirical normalization causes problems when the deployment task produces forces outside the training distribution -- the normalized values will exceed [0, 1] and the policy will receive out-of-distribution input. Range-based normalization (divide Fx by the sensor's Fx max) ensures the input always stays within [0, 1] regardless of the specific forces encountered.
Missing modality handling: If your deployment will sometimes run without F/T data (sensor failure, different hardware configuration), train with random F/T dropout: zero out the entire F/T input with 10-20% probability during training. This teaches the policy to make reasonable predictions from vision alone when F/T data is unavailable, with F/T providing an improvement when present rather than being a hard dependency.
Concatenate its output with the visual encoder output and proprioceptive state before the action prediction head. Training time overhead is negligible (<5% increase) compared to the visual encoder forward pass.
Performance Impact: The Numbers
The performance difference between force-enabled and vision-only manipulation is large and well-documented in robotics literature. For peg-in-hole insertion with 0.5mm clearance: force/torque-guided approaches achieve 89% success rate vs. 62% for vision-only, based on ATI-sponsored benchmarks on a Franka Research 3 arm. The delta is larger for tighter tolerances.
Cable insertion — arguably the most economically important manipulation task for electronics manufacturing — shows a similar gap: 94% success with wrist F/T control vs. 71% vision-only. The difference compounds in production: a 71% success rate requires 1.4 attempts per insertion on average; at 94%, it is 1.06. At 10,000 insertions per day, this translates directly to throughput capacity.
For manipulation tasks where tolerances exceed 5mm and compliance is not required, vision-only approaches are often sufficient. But for anything involving constrained fit, sliding contact, or delicate force limits — force sensing is not optional, it is the enabling technology.
Cost-Benefit Analysis: When to Add Force Sensing
Force sensing hardware adds $1,500-8,000 to a robot setup and requires 1-3 days of integration time. Here is when the investment is justified:
- Always justified: Insertion tasks with <1mm clearance, assembly with snap-fit or press-fit connectors, handling fragile objects (eggs, glass, electronics), surface following or polishing, and any task where applying too much force causes damage.
- Sometimes justified: General pick-and-place where objects vary in weight (force helps detect grasp failure during transport), multi-object tasks where collision detection improves reliability, and quality inspection tasks where contact force is a quality signal.
- Rarely justified: Simple bin picking of robust objects, tasks where a soft gripper provides inherent compliance, and tasks where vision alone provides sufficient feedback (large clearance, no contact precision required).
The ROI calculation: if adding force sensing increases task success rate by 15% on a task running 1,000 cycles per day, and each failed cycle costs $0.50 in rework or downtime, the sensor pays for itself in 2-4 weeks. For high-value tasks (electronics assembly, medical device handling), the payback period is often measured in days.
SVRC stocks a range of force-enabled manipulation hardware including wrist F/T sensors, Paxini tactile sensors, GelSight Mini, and XELA uSkin arrays. Our data collection infrastructure records synchronized force/tactile data alongside vision for training contact-rich policies. Pilot data collection starts at $2,500. Browse the hardware catalog for current availability and integration support.