Why Force/Torque Sensing Matters for Manipulation

Vision-only manipulation policies fail predictably on contact-sensitive tasks: peg insertion, drawer opening, screw fastening, and any task where the robot must apply a controlled force rather than simply move to a pose. The fundamental reason is that vision cannot directly measure force — it can only infer contact from appearance, which is unreliable for small contact areas, deformable objects, or occluded grasps.

Force/torque (F/T) sensing adds the sense of touch. A 6-axis wrist F/T sensor measures three force components (Fx, Fy, Fz) and three torque components (Tx, Ty, Tz) at the robot wrist. This allows policies to detect contact, regulate applied force, detect slip, and recognize task completion events (e.g., peg fully seated when insertion force drops).

The cost-benefit of adding F/T sensing is high. A $1.5K–$3K sensor can be the difference between a policy that works in the lab and one that works in production. For any task involving contact, insertion, or force regulation, budget for F/T sensing from the start.

The trade-off: F/T sensors add weight (100–400 g), reduce payload, add a potential failure point, and require careful integration. They are not necessary for free-space pick-and-place — only for contact-rich tasks.

Sensor Types: Wrist 6-Axis vs. Fingertip Tactile

Wrist 6-axis F/T sensors mount between the robot arm flange and the gripper/end-effector. They measure all forces and torques at the wrist, regardless of gripper type. They are the workhorse choice for most manipulation applications.

SensorPriceTypeForce Range (Fz)ResolutionBandwidthInterfaceBest For
ATI Gamma SI-32-2.5$3,200Wrist 6-axis32 N6.25 mN7 kHzEtherCAT/USBPrecision assembly, highest accuracy
Robotiq FT 300-S$1,950Wrist 6-axis300 N0.1 N100 HzRS-485/USBUR arms (native), general manipulation
Bota SensONE$1,500Wrist 6-axis200 N0.1 N2000 HzEtherCAT/USBHigh-bandwidth contact tasks
OnRobot HEX-E QC$2,800Wrist 6-axis200 N0.2 N100 HzUR Tool I/OUR arms, quick-change mount
FANUC F-200iA (built-in)IncludedWrist 6-axis200 N0.5 N1000 HzProprietaryFANUC arms only
GelSight Mini$500Fingertip tactile~5 N normal0.01 N30 fpsUSBGrasp slip detection, texture sensing
uSkin (XELA Robotics)$800Fingertip tactile (3×4 array)~20 N0.05 N/cell100 HzUSB/SPIDistributed contact sensing

Fingertip tactile sensors (GelSight, uSkin) provide spatially distributed contact information at the fingertip surface. They answer "where is the contact and what is its shape" rather than just "how much force at the wrist." They are used for slip detection, grasp quality estimation, and tasks requiring contact localization.

For most manipulation tasks, start with a wrist 6-axis sensor. Add fingertip sensors if you need slip detection or grasp texture information. Running both simultaneously is viable on a workstation-class compute platform.

Key Specifications Explained

SpecificationWhat It MeansPractical Implication
Force rangeMaximum measurable force before saturationMust exceed peak task forces including collision; overload safety is separate
ResolutionSmallest detectable force changeDetermines delicacy threshold; 0.1 N resolution detects contact at 0.1 N
Bandwidth (Hz)Fastest signal updates per secondControl loops running at 1 kHz need sensor bandwidth >1 kHz
Overload ratingMaximum survivable force (not measurement range)Must be 5–10× rated range for collision safety
Crosstalk (%)Effect of one axis on another axis's readingATI <1%, budget sensors 3–5%; matters for precision tasks
Thermal driftSignal change per °C without loadRe-zero after warm-up; compensate in long sessions
WeightSensor mass added to payload chain100–400 g; subtract from arm's rated payload

Overload Protection: The Critical Safety Requirement

F/T sensors are precision instruments that can be permanently damaged by forces exceeding their rated range. During robot programming, debugging, and unexpected collisions, the arm can easily generate forces 10–50× the sensor's rated range. This is the most common cause of expensive F/T sensor failure.

Minimum overload protection requirements:

  • Select a sensor with overload rating ≥10× rated force range. ATI Gamma (32 N rated, 900 N overload) meets this. Robotiq FT300-S (300 N rated, 800 N overload) is borderline — the 2.7× overload ratio is lower than ideal. For collision safety, prefer ATI.
  • Software force limit: Configure your robot controller to abort motion when wrist force exceeds a threshold (e.g., 20 N for a delicate task, 50 N for robust manipulation). This is separate from the physical overload protection but catches programming errors.
  • Mechanical overload protection: Some F/T sensors include mechanical slip clutches or fuses that protect the sensing element during hard collisions. ATI offers this as an optional module. For high-speed applications or collaborative robots, mechanical protection is worth the added cost.
  • Gravity compensation at startup: After mounting an end-effector, the sensor reads a constant offset equal to the gripper weight × gravity vector. Run bias compensation (zero the sensor with the gripper in a known orientation) at the start of every session. Failing to do this adds a constant bias to all force readings that corrupts contact detection.

ROS2 Integration Guide

All major F/T sensors have ROS2 drivers. The integration pattern is standard:

  • Driver installation: Robotiq: apt install ros-humble-robotiq-ft-sensor. ATI: ati_force_torque ROS2 package on GitHub. Bota: rokubimini ROS2 package. All publish to /ft_sensor/wrench as geometry_msgs/WrenchStamped.
  • Bias compensation node: Run at startup with gripper in reference pose. Call the /ft_sensor/bias service with the gripper hanging vertically downward. This removes gravity offset. Re-run after any gripper change or at the start of each session.
  • Low-pass filter: Raw F/T data contains high-frequency noise from motor vibration and encoder quantization. Apply a Butterworth low-pass filter at 50 Hz for contact detection, 200 Hz for impedance control. In ROS2: ros2_control provides filters, or use scipy.signal in Python.
  • Force torque topic to action topic: For policy training that uses F/T data as observation, publish the filtered wrench alongside joint states on the same timer callback to ensure synchronized timestamps.
  • Contact event detection: Implement a simple threshold detector: when |Fz| > contact_threshold (e.g., 1.0 N) for more than 5 consecutive samples, publish a /contact_detected Bool topic. This enables event-triggered state machines for assembly tasks.

F/T Sensor Use Cases with Specific Parameters

TaskKey Force RequirementSensor SetupControl Strategy
Peg-in-hole assemblyDetect 5 N insertion resistance, stop at 20 NWrist 6-axis, 0.1 N resolutionForce stops at 5 N threshold; search spiral until Fz drops
Surface following (wiping)Maintain 1–3 N normal forceWrist 6-axis, 0.1 N resolution, 200 HzImpedance control maintaining Fz = 2 N
Delicate grasp (eggs, produce)Contact at 0.5 N, max grasp 3 NFingertip tactile or wrist 6-axis with 50 mN resolutionGrasp until contact, increase to target, stop
Screw insertionDetect 0.1 Nm torque onset, 0.5 Nm strip limitWrist 6-axis with torque sensitivityRotate until Tz = 0.4 Nm, then stop
Door handle operationDetect knob engagement at 2 NWrist 6-axis, 200 N rangeForce-guided approach; impedance follow through rotation
Deformable object graspGrip force 0.5–5 N, slip detectionWrist + fingertip tactileMaintain target grip force; increase if slip detected

Recommendation Summary

  • Best value for UR arms: Robotiq FT 300-S ($1,950). Native UR Tool I/O connector, plug-and-play with UR polyscope, no additional wiring. Adequate for most manipulation tasks.
  • Best accuracy for precision assembly: ATI Gamma SI-32-2.5 ($3,200). 6 mN resolution is unmatched in this price range. Required for tasks with sub-1 N force thresholds.
  • Best bandwidth for high-speed control: Bota SensONE ($1,500). 2000 Hz bandwidth enables kHz-rate impedance controllers. Price-performance leader.
  • Best for slip detection: GelSight Mini ($500) at fingertip. Gel-based optic sensor provides contact geometry and slip direction — far more information than a wrist sensor for grasp quality tasks.
  • For new labs starting out: Buy a Robotiq FT 300-S if you have a UR arm; buy a Bota SensONE for non-UR arms. Add a GelSight only if your task specifically requires slip sensing. Do not skip F/T sensing for contact tasks — it will cost you months of debugging failed policies.

Signal Processing: Gravity Compensation and Filtering

Raw F/T sensor readings are not usable for control or policy training without processing. Two essential steps must be applied in real-time:

Gravity compensation: The sensor measures the weight of the end-effector (gripper + any held object) as a constant bias. This bias changes with arm orientation because gravity's direction relative to the sensor changes. Compensate with:

import numpy as np

def compensate_gravity(wrench_raw, R_sensor_world, mass_ee, com_ee):
    """Remove gravity bias from F/T readings.

    Args:
        wrench_raw: [Fx, Fy, Fz, Tx, Ty, Tz] raw sensor reading
        R_sensor_world: 3x3 rotation matrix, sensor frame to world
        mass_ee: end-effector mass in kg
        com_ee: center of mass [x, y, z] in sensor frame
    Returns:
        wrench_compensated: gravity-free wrench
    """
    g_world = np.array([0, 0, -9.81])
    g_sensor = R_sensor_world.T @ g_world
    F_gravity = mass_ee * g_sensor
    T_gravity = np.cross(com_ee, F_gravity)
    bias = np.concatenate([F_gravity, T_gravity])
    return wrench_raw - bias

Run this compensation at sensor rate (100-2000 Hz). The rotation matrix comes from the arm's forward kinematics. Calibrate mass_ee and com_ee once by recording sensor readings at 10 different arm orientations and solving the least-squares system.

Low-pass filtering: Motor vibration and encoder noise create high-frequency content that obscures contact signals. Apply a 2nd-order Butterworth filter:

  • Contact detection: Cutoff at 30-50 Hz. Preserves contact onset timing while removing vibration noise.
  • Impedance control: Cutoff at 100-200 Hz. Higher bandwidth needed for stable force feedback loops.
  • Data logging for policy training: Cutoff at 20-30 Hz. Policies running at 10-50 Hz do not benefit from higher-frequency force data. Aggressive filtering produces cleaner training signals.

Calibration Schedule and Drift Management

  • Session start re-zero: At the beginning of every data collection session, move the arm to a known calibration pose (gripper pointing straight down) and call the sensor's bias service. This takes 10 seconds and eliminates thermal drift accumulated since the last session.
  • Every 2 hours: Re-zero during a scheduled break. Sensor drift over 2 hours is typically 0.05-0.2 N depending on ambient temperature changes. For tasks with contact thresholds below 1 N, this drift matters.
  • After any gripper change: Changing the gripper changes the mass and center of mass parameters. Re-run gravity calibration (10 poses, 5 minutes) and update the compensation parameters.
  • Annual factory calibration: Strain gauge sensors (ATI, Robotiq) should be sent for factory recalibration annually. Cost: $300-$600. The calibration matrix that converts raw strain readings to force/torque values drifts over time due to strain gauge aging.

OpenArm 101 Compatible F/T Sensors

The OpenArm 101 uses a standard ISO 9409-1-31.5-4-M5 flange. These sensors mount directly:

  • Bota SensONE ($1,500) -- recommended for OpenArm. Matching 31.5 mm bolt circle, 2000 Hz bandwidth, ROS2 driver included. Total added weight: 120 g.
  • ATI Gamma ($3,200) -- highest accuracy, available with ISO 9409 adapter. Overkill for most OpenArm tasks but required for sub-0.1 N contact detection.
  • Robotiq FT 300-S ($1,950) -- designed for UR arms but compatible via adapter plate. Good choice if your fleet includes both UR and OpenArm arms and you want sensor interchangeability.

For fingertip sensing on OpenArm's default parallel jaw gripper, mount a GelSight Mini ($500) on each finger pad using the included adhesive mount. This provides contact geometry for slip detection without adding a wrist sensor.

Related Guides

Work with SVRC

SVRC stocks F/T sensors and provides integration support for all major arm platforms.

  • Hardware Store -- purchase ATI, Robotiq, Bota, GelSight, and Paxini sensors with integration support
  • Data Collection Services -- we collect force-rich demonstration data with F/T-equipped arms for contact-sensitive tasks
  • Repair and Maintenance -- F/T sensor calibration, mounting, and ROS2 driver integration services
  • Contact Us -- request sensor selection guidance for your specific manipulation tasks