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.
| Sensor | Price | Type | Force Range (Fz) | Resolution | Bandwidth | Interface | Best For |
|---|---|---|---|---|---|---|---|
| ATI Gamma SI-32-2.5 | $3,200 | Wrist 6-axis | 32 N | 6.25 mN | 7 kHz | EtherCAT/USB | Precision assembly, highest accuracy |
| Robotiq FT 300-S | $1,950 | Wrist 6-axis | 300 N | 0.1 N | 100 Hz | RS-485/USB | UR arms (native), general manipulation |
| Bota SensONE | $1,500 | Wrist 6-axis | 200 N | 0.1 N | 2000 Hz | EtherCAT/USB | High-bandwidth contact tasks |
| OnRobot HEX-E QC | $2,800 | Wrist 6-axis | 200 N | 0.2 N | 100 Hz | UR Tool I/O | UR arms, quick-change mount |
| FANUC F-200iA (built-in) | Included | Wrist 6-axis | 200 N | 0.5 N | 1000 Hz | Proprietary | FANUC arms only |
| GelSight Mini | $500 | Fingertip tactile | ~5 N normal | 0.01 N | 30 fps | USB | Grasp slip detection, texture sensing |
| uSkin (XELA Robotics) | $800 | Fingertip tactile (3×4 array) | ~20 N | 0.05 N/cell | 100 Hz | USB/SPI | Distributed 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
| Specification | What It Means | Practical Implication |
|---|---|---|
| Force range | Maximum measurable force before saturation | Must exceed peak task forces including collision; overload safety is separate |
| Resolution | Smallest detectable force change | Determines delicacy threshold; 0.1 N resolution detects contact at 0.1 N |
| Bandwidth (Hz) | Fastest signal updates per second | Control loops running at 1 kHz need sensor bandwidth >1 kHz |
| Overload rating | Maximum survivable force (not measurement range) | Must be 5–10× rated range for collision safety |
| Crosstalk (%) | Effect of one axis on another axis's reading | ATI <1%, budget sensors 3–5%; matters for precision tasks |
| Thermal drift | Signal change per °C without load | Re-zero after warm-up; compensate in long sessions |
| Weight | Sensor mass added to payload chain | 100–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_torqueROS2 package on GitHub. Bota:rokubiminiROS2 package. All publish to/ft_sensor/wrenchasgeometry_msgs/WrenchStamped. - Bias compensation node: Run at startup with gripper in reference pose. Call the
/ft_sensor/biasservice 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_controlprovides 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_detectedBool topic. This enables event-triggered state machines for assembly tasks.
F/T Sensor Use Cases with Specific Parameters
| Task | Key Force Requirement | Sensor Setup | Control Strategy |
|---|---|---|---|
| Peg-in-hole assembly | Detect 5 N insertion resistance, stop at 20 N | Wrist 6-axis, 0.1 N resolution | Force stops at 5 N threshold; search spiral until Fz drops |
| Surface following (wiping) | Maintain 1–3 N normal force | Wrist 6-axis, 0.1 N resolution, 200 Hz | Impedance control maintaining Fz = 2 N |
| Delicate grasp (eggs, produce) | Contact at 0.5 N, max grasp 3 N | Fingertip tactile or wrist 6-axis with 50 mN resolution | Grasp until contact, increase to target, stop |
| Screw insertion | Detect 0.1 Nm torque onset, 0.5 Nm strip limit | Wrist 6-axis with torque sensitivity | Rotate until Tz = 0.4 Nm, then stop |
| Door handle operation | Detect knob engagement at 2 N | Wrist 6-axis, 200 N range | Force-guided approach; impedance follow through rotation |
| Deformable object grasp | Grip force 0.5–5 N, slip detection | Wrist + fingertip tactile | Maintain 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.