Skip to main content

Native sample model

Native C++ and Python samples preserve the sensor's discovered units. Every sample describes one accepted RDT record.

FieldTypeContract
rdt_sequenceunsigned 32-bit / intRequest-stream sequence used for loss, duplicate, and ordering checks
ft_sequenceunsigned 32-bit / intDevice measurement sequence used for progress, stall, restart, and backward checks
statusunsigned 32-bit / intATI device status word
raw_wrenchsix signed 32-bit counts(Fx, Fy, Fz, Tx, Ty, Tz) before scaling
forcethree floating-point values(Fx, Fy, Fz) in force_unit
torquethree floating-point values(Tx, Ty, Tz) in torque_unit
force_unitforce-unit enumUnit paired with the discovered force scale
torque_unittorque-unit enumUnit paired with the discovered torque scale
configuration_revisionunsigned 64-bit / intConfiguration identity used to scale the record
receive timestampmonotonic host timeReceipt time for freshness and interval calculations

The device record has no acquisition wall-clock timestamp. Do not convert the monotonic receive timestamp into UTC. Record a separate system-clock timestamp when cross-system correlation is required.

Scaling

force[i] = raw_wrench[i] / counts_per_force_unit
torque[i] = raw_wrench[i + 3] / counts_per_torque_unit

The result uses the unit stored with its scale. ROS converts these native values to N and N·m before publishing.