Skip to content

Latest commit

 

History

34 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ATI Force/Torque Sensor – TwinCAT

TwinCAT Project for Reading the ATI Delta Force/Torque Sensor (DAQ analog electronics, non-NET, non-legacy)


Overview

This repository documents the complete and validated integration of an ATI Force/Torque (F/T) sensor – Delta series using analog DAQ electronics and Beckhoff TwinCAT.

The project implements the same mathematical model used by ATI’s official C library, adapted to IEC 61131-3, and provides a fully transparent signal chain:

Raw ADC → Volts → Strain Gage Vector → Calibration Matrix → Forces / Torques → Tool Transform

The implementation is intended to be:

  • Physically correct
  • Traceable to ATI reference implementations
  • Reproducible and maintainable
  • Independent from NET / EtherCAT ATI electronics

Key Features

✔ Delta DAQ analog sensor support ✔ EL3602 and ELM3704 Beckhoff modules ✔ Multi-calibration handling (runtime selectable) ✔ Independent bias (tare) per calibration ✔ Full 6×6 matrix math (no simplifications) ✔ Tool frame transformation (rotation + translation) ✔ Verified against ATI calibration files (.cal)


Reference: ATI Official DAQ C Library

ATI provides a software downloads page, which includes the ATIDAQ C Library (C reference implementation):

This project mirrors:

  • calibration matrix application
  • bias subtraction before matrix multiplication
  • force/torque computation semantics

The mathematical model implemented in this project is directly derived from ATI’s official C reference implementation.


1. ATI F/T Sensor Overview

The ATI F/T sensor measures six components simultaneously:

  • Forces: Fx, Fy, Fz (N)
  • Torques: Tx, Ty, Tz (Nm)

The Delta sensor is a monolithic structure with internal strain gages bonded to flexure beams. Elastic deformation produces differential analog voltages proportional to applied loads.

Sensor used in this project:

  • Family: ATI Delta
  • Electronics: DAQ analog
  • Outputs: 6 differential analog channels
  • Typical range: ±5 V or ±10 V (calibration dependent)

2. Available Calibrations

The sensor is associated with two factory ATI calibrations, each with its own matrix, range, and noise characteristics.

Serial Calibration Full Scale Output Range
FT6375 SI-165-15 ±165 N / ±15 Nm ±5 V
FT6374 SI-330-30 ±330 N / ±30 Nm ±10 V

Each calibration includes:

  • 6×6 calibration matrix
  • cross-axis coupling
  • scale factors
  • calibration certificate
Resources/
 ├─ FT6374.cal
 ├─ FT6374 Calibration Certificate.pdf
 ├─ FT6375.cal
 └─ FT6375 Calibration Certificate.pdf

.cal files are sensor- and serial-number specific and must never be mixed.


3. Measurement Chain

Strain Gage Raw ADC
        ↓
24-bit DINT (±8 388 607)
        ↓
Voltage Conversion
        ↓
Bias Subtraction
        ↓
Calibration Matrix / Scale Factor
        ↓
Force / Torque Vector
        ↓
Tool Frame Transform

4. Raw Signal Acquisition

Each strain gage channel (SG0…SG5) is acquired using Beckhoff AI modules:

  • EL3602 or ELM3704
  • Range: ±10 V
  • Resolution: 24-bit
  • PLC value: DINT

Mapping:

SG_Raw = ±8 388 607  → ±10.0 V

Voltage conversion:

SG_Volt = SG_Raw × (10.0 / (2^23 − 1))

Display Scaling in TwinCAT is visual only. The PLC always receives raw integer values.

Examples:

Raw =  (2^23 − 1)  → +10.0 V
Raw =          0   →   0.0 V
Raw = −(2^23)      → −10.0 V (hardware limit)
Raw =  8,388,607  → +10.0 V
Raw =          0  →   0.0 V
Raw = -8,388,608  → -10.0 V

5. Calibration Matrix

ATI defines a 6×6 calibration matrix:

[ Fx ]     [ c00 c01 c02 c03 c04 c05 ] [ SG0 ]
[ Fy ]     [ c10 c11 c12 c13 c14 c15 ] [ SG1 ]
[ Fz ]  =  [ c20 c21 c22 c23 c24 c25 ] [ SG2 ]
[ Tx ]     [ c30 c31 c32 c33 c34 c35 ] [ SG3 ]
[ Ty ]     [ c40 c41 c42 c43 c44 c45 ] [ SG4 ]
[ Tz ]     [ c50 c51 c52 c53 c54 c55 ] [ SG5 ]
  • SG values are voltages
  • Output units are N / Nm
  • Matrix is not normalized
  • Cross-axis coupling is intentional and required

6. Bias (Tare / Offset)

Definition

Bias represents:

  • tool mass
  • gravity
  • mounting offsets
  • electronics drift

Bias must be removed before matrix multiplication.

Implementation

Each calibration has its own independent bias vector:

  • Bias_6374[6]
  • Bias_6375[6]

Bias acquisition:

  1. Trigger tare
  2. Average N samples
  3. Store into calibration-specific bias

Correction:

SG_Volt − Bias

7. Force/Torque Computation

Complete processing pipeline:

  1. Read Raw ADC Values (DINT)

  2. Convert to Volts:

    SG_Volt = SG_Raw × (10.0 / (2^23 − 1))
    
  3. Compute Runtime Matrix using Calibration Matrix and Scale:

    Runtime_Matrix[i,j] = CalibrationMatrix[i,j] / CalibrationScale[i];
    
  4. Subtract Bias and Compute FT Vector in N / Nm:

    FT = RuntimeMatrix * (SG_Volt − Bias)
    

This is identical to ATI’s official computation flow.


8. Tool Frame Transformation

The project implements a full 6-DOF wrench transformation:

  • Rotation: Rx, Ry, Rz
  • Translation: r = (dx, dy, dz)

Equations:

F' = R · F
T' = R · T − r × (R · F)

Rotation order:

R = Rz · Ry · Rx

This allows reporting forces/torques at the tool center point (TCP) instead of the sensor origin.


9. Electrical Wiring

The sensor uses a DB26 connector with fully differential analog outputs.

  • SGx Output → AI+
  • SGx Reference → AI−
  • Twisted pairs for each channel
  • Shield connected to ground

Official ATI wiring documentation:

Resources/
├─ DB26 Connector.png
└─ Cable Scheme DB26.pdf

True differential inputs are mandatory for noise immunity and accuracy.


10. Beckhoff Module Configuration

This project supports two Beckhoff acquisition options:

  • EL3602 (standard 24-bit EL36xx analog input)
  • ELM3704 (measurement-technology terminal)

Important: In TwinCAT, Display Scaling is for engineering-unit visualization. The PLC process data is still the raw ADC value unless you explicitly implement scaling in software.

10.1 EL3602 Configuration (2-channel, 24-bit)

Selected settings (TwinCAT):

  • Measuring range: ±10 V (Display Scaling ±10 V)
  • PDO process data: DINT raw value (24-bit incl. sign, represented in 32-bit PDO) (download.beckhoff.com)

CoE (CANopen over EtherCAT) parameters

With right-adjust 24-bit presentation, the measured value is output with 24-bit resolution. Beckhoff’s documentation shows the full-scale mapping for ±10 V where the output value is 0x007F_FFFF at +10 V and 0xFF80_0000 at −10 V (24-bit value placed in a 32-bit field). (download.beckhoff.com)

Raw → Volts conversion (software)

V = Raw × (V_range / (2^23 − 1))

Where V_range = 10.0 V for ±10 V.

10.2 ELM3704 Configuration

Reference configuration used in this project:

  • Mode: Oversampling 1 (24-bit) – DC-Synchron (input based)
  • Interface: U ±10 V
  • Sensor Supply: External Supply
  • Filter1: None
  • Filter2: None
  • Decimation: 1
  • Integrator/Differentiator: Off
  • Scaler: Extended Range (Default)
  • Extended Functions: Disabled
  • Display Scaling: ±10 V (visualization only)

Notes on EtherCAT/CoE objects (ELM370x family) ELM370x terminals expose measurement configuration and process data via manufacturer-specific CoE objects, including:

  • 0x60n1 (PAI Samples, 24-bit)
  • 0x60n6 (PAI Synchronous Oversampling)
  • 0x80n0 (PAI Settings)
  • 0x80n1 / 0x80n3 (Filter 1 / Filter 2 settings)
  • 0x80n6 (Scaler settings) These object groups are documented by Beckhoff for the ELM370x family. (infosys.beckhoff.com)

11. Project Structure

ATI FT Sensor/
├─ PLC/
│   ├─ DUTs/
│   ├─ GVLs/
│   ├─ POUs/
│   │   └─ MAIN.TcPOU
│   └─ PlcTask.TcTTO
├─ Resources/
│   ├─ *.cal
│   ├─ calibration certificates
│   └─ wiring diagrams
└─ FT Channels/

12. Important Notes

  • Never linear-scale volts to Newtons
  • Always use the full 6×6 matrix
  • Bias must be applied before matrix multiplication
  • Each calibration is a different sensor behavior

13. Official ATI References

  • ATI DAQ Force/Torque Manual – 9620-05-DAQ
  • ATI Transducer Installation & Operation Manual – 9620-05 (Transducer Section)
  • ATI Calibration Certificates (see Resources/)

14. Status

✔ Sensor identified as ATI Delta (DAQ analog)
✔ Calibrations FT6374 / FT6375 validated
✔ Matrix pipeline verified
✔ Bias handling per calibration implemented
✔ Tool transform validated
✔ Ready for ABB GoFa integration

Author Davide Ferrari

About

TwinCAT Project for Reading the ATI Delta FT Sensor

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors