The direct answer
How should backlash or lost motion be measured on a robot joint actuator? Lock or hold the input using one explicitly named hardware boundary, apply a calibrated bidirectional output-torque triangle from −10% to +10% of an exact continuous or rated output-torque reference, and measure the external output-flange angle. Run three preconditioning cycles and five recorded cycles at three output positions while keeping temperature, brake, servo and compensation states fixed.
What should be reported? Publish the full synchronized torque–angle samples, the zero-torque branch gap H0, the RCI low-torque branch gap LM4 at equal ±4% rated torque, cycle variation, position variation and expanded uncertainty. A precise result is not reportable when expanded uncertainty exceeds 20% of the metric.
RCI-BLM-1 v0.1.0 is a public draft ready for laboratory and inter-laboratory review. Machine status: public-draft-lab-validation-required. It is not an ISO standard, has not completed a physical round-robin and does not create a safety or production-acceptance claim.
Do not mix three different test objects
The same actuator can produce different curves when the gear input is mechanically locked, the complete unpowered actuator is locked through its motor path, or a powered controller holds position. RCI requires the boundary in every raw row and forbids cross-boundary ranking.
| Boundary | What the curve contains | State that must be frozen | Comparison rule |
|---|---|---|---|
| Gear or reducer only; input mechanically locked gear-only-mechanical-lock | Reducer, output bearing, fixture and measurement-chain torsional response. | Input lock type and measured lock motion; lubricant, ratio, assembly, preload and output-bearing state. | Compare only with the same reducer-only boundary and equivalent assembly state. |
| Integrated actuator unpowered; motor/input mechanically locked integrated-unpowered-mechanical-lock | Complete actuator mechanical path, including couplings, brake state, bearings, housing and reducer. | Power removed; brake state explicit; motor shaft/input lock explicit; internal and external angle references retained. | Do not merge with reducer-only or servo-on results. |
| Integrated actuator powered in a fixed servo-hold state integrated-servo-hold | Closed-loop joint response including controller, sensing, current limits, compensation and mechanical path. | Firmware, control mode, gains, current limits, command, compensation, brake and supply state frozen and published. | A system-control result; never relabel as gear backlash or compare with a mechanically locked result. |
A servo-hold result may be exactly what a robot integrator needs, but it includes gains, current limits, encoders, firmware, friction compensation and control delay. It cannot be renamed “gear backlash.” Conversely, a reducer-only test cannot predict closed-loop joint behavior.
The baseline profile
| Parameter | Required value | Boundary |
|---|---|---|
| Reference torque Tref | Exact continuous or rated output torque | Same model, ratio, voltage, cooling and thermal condition; never substitute peak or stall torque. |
| Torque path | −10% Tref → +10% Tref → −10% Tref | Use measured output torque for analysis. |
| Ramp and dwell | 1% Tref/s; 2 s at each endpoint | Any modified rate is a disclosed protocol deviation. |
| Cycles | 3 preconditioning + 5 recorded per position | Do not select the best cycle. |
| Positions | 0°, 120°, 240°; or 10%, 50%, 90% safe travel | Continuous and limited axes use different position notation. |
| Temperature | 20 ±2°C; ≥60 min soak | Housing drift ≤0.5°C over 15 min before acquisition. |
| Acquisition | ≥100 Hz synchronized torque and angle | Raw, unfiltered samples remain public. |
| Population | 1 unit = unit characterization; ≥3 units = model-level description | Neither threshold creates a production acceptance claim. |
If a trustworthy Tref is unavailable, a laboratory may publish an absolute-torque exploratory run. It must state the absolute torque and cannot use the unqualified RCI-BLM-1 normalized result label. This prevents a peak or stall number from silently setting the test load.
The fixture must not hide inside the result
- Torque: use a calibrated bidirectional transducer at the output flange. A commanded motor current is not a substitute for measured output torque.
- Output angle: use an independent external angle reference attached to the output flange. Motor encoder resolution alone cannot establish output hysteresis.
- Input movement: measure motion at the locked input or lock attachment. An apparently rigid lock can contribute a meaningful share of a small result.
- Fixture: publish adapter drawings, fasteners, bolt torque, lever arm and blank-fixture characterization. If a correction is applied, publish corrected and uncorrected values.
- Thermal state: record ambient and housing temperature throughout the run; name each sensor location.
- Uncertainty: link calibration records and an uncertainty budget. Include the coverage factor rather than publishing a bare ± value.
A lever-based load can add radial force and tilting moment at the joint bearing. That load must be calculated and kept inside the manufacturer’s bearing limits, or the fixture should apply pure torque. Guards, an emergency stop and the product’s electrical and thermal limits remain mandatory; this protocol is not a safety procedure.
Eight acquisition steps
- Freeze identity and boundary: Record the exact unit, ratio, revisions, test boundary, brake, servo, compensation, supply and Tref source before mounting.
- Calibrate and characterize the fixture: Zero synchronized channels, verify torque sign and angle sign, record calibration identifiers and measure input-lock or fixture motion.
- Stabilize temperature: Soak for at least 60 minutes at 20 ±2°C and continue until housing drift is no more than 0.5°C over 15 minutes.
- Set the first output position: Use 0°, 120° and 240° for a continuous axis, or 10%, 50% and 90% of declared safe travel for a limited axis.
- Precondition: Run three triangular cycles from −10% Tref to +10% Tref and back at 1% Tref/s; do not use them in the reported result.
- Acquire five cycles: Record five more complete ascending and descending triangular cycles at least 100 Hz, with a two-second dwell at each endpoint.
- Repeat positions: Repeat stabilization check, preconditioning and acquisition at the other two output positions without changing the declared boundary.
- Publish raw and summary data: Retain every sample and validity flag, calculate the four protocol metrics, publish the uncertainty budget and disclose every deviation.
Each recorded cycle contains both monotonic branches. Interpolate the ascending and descending branches independently at measured −4%, 0% and +4% Tref. Never average the branches first, and never delete inconvenient samples: invalid rows stay in the raw file with a reason.
Four metrics, none of them robot accuracy
| Metric | Equation | Interpretation boundary |
|---|---|---|
| Zero-torque branch gap H0 h0_branch_gap | H0 = abs(theta_ascending(0) - theta_descending(0)) | Direction-dependent zero-torque hysteresis width at the declared flange and test boundary. |
| RCI low-torque lost-motion branch gap LM4 lm4_branch_gap | LM4 = (abs(theta_ascending(+0.04*Tref) - theta_descending(+0.04*Tref)) + abs(theta_ascending(-0.04*Tref) - theta_descending(-0.04*Tref))) / 2 | Mean separation of the two torque–angle branches at equal ±4% rated torque. This explicit RCI equation is not assumed equivalent to an undocumented vendor value. |
| Cycle repeatability of LM4 lm4_cycle_sd | sample standard deviation of valid cycle-level LM4 values | Within-position cycle variation; not robot pose repeatability. |
| Position dependence of LM4 lm4_position_range | max(position-mean LM4) - min(position-mean LM4) | Observed variation across the three required output positions. |
The ±4% reporting level is deliberately visible. Harmonic Drive’s public engineering data describes low-torque lost-motion measurement around ±4% rated torque with the input locked. RCI does not copy an unpublished calculation: LM4 defines the branch-gap equation above and requires the complete raw loop. A vendor value is comparable only when its equation, hardware boundary, torque reference, fixture, temperature, positions, cycles and uncertainty are all equivalent.
The raw file is part of the result
The raw template contains 40 columns. Required identity fields prevent a clean curve from becoming detached from the exact unit and test boundary; required sample fields preserve the torque, external angles and thermal state needed to recalculate the result.
| Column | Required | Unit | Purpose |
|---|---|---|---|
protocol_id | Yes | — | Must be RCI-BLM-1 for this protocol. |
protocol_version | Yes | — | Protocol version used for acquisition. |
test_id | Yes | — | Stable identifier for the complete test run. |
unit_id | Yes | — | Pseudonymous stable unit identifier. |
manufacturer | Yes | — | Manufacturer of the tested hardware. |
model | Yes | — | Exact model and ratio or ordering code. |
serial_hash | Conditional | — | One-way serial-number hash when traceability is permitted without publishing the serial. |
hardware_revision | Yes | — | Hardware, reducer and assembly revision. |
firmware_version | Conditional | — | Required for powered tests; otherwise not applicable. |
test_boundary | Yes | — | One of the three protocol test-boundary identifiers. |
fixture_configuration_url | Yes | — | Versioned fixture drawing, fastener, adapter and load-path record. |
axis_orientation | Yes | — | Axis direction and gravity orientation. |
input_constraint_method | Yes | — | Mechanical lock or servo-hold implementation and attachment point. |
input_angle_reference | Yes | — | Sensor and physical point used to measure input or lock motion. |
brake_state | Yes | — | Absent, released, engaged or other explicitly defined state. |
servo_state | Yes | — | Unpowered, disabled or powered hold. |
control_mode | Conditional | — | Required for servo-hold tests. |
control_configuration_url | Conditional | — | Required for servo-hold tests; versioned gains, limits, command and compensation settings. |
compensation_state | Yes | — | Backlash, friction, gravity and compliance compensation state. |
rated_torque_reference_nm | Yes | N·m | Exact continuous or rated output-torque reference Tref; never peak or stall torque. |
rated_torque_source | Yes | — | Versioned source and condition for Tref. |
instrument_configuration_url | Yes | — | Versioned torque, angle, temperature, synchronization and calibration-chain record. |
position_id | Yes | — | Stable identifier for one of the three required output positions. |
output_position_deg | Yes | deg | Nominal output position relative to a marked datum. |
cycle_index | Yes | — | Recorded cycle number; preconditioning samples use negative or zero indices. |
branch | Yes | — | ascending, descending, dwell or transition. |
timestamp_s | Yes | s | Monotonic time from the start of acquisition. |
target_torque_percent_tref | Yes | % Tref | Normalized target torque. |
commanded_output_torque_nm | Yes | N·m | Commanded fixture or actuator output torque. |
measured_output_torque_nm | Yes | N·m | Calibrated output torque at the tested flange. |
measured_input_angle_deg | Yes | deg | Measured input or lock motion at the declared reference; use zero only when a calibrated channel actually measured zero. |
external_output_angle_deg | Yes | deg | Calibrated external output-flange angle; this is the primary angular reference. |
internal_motor_angle_deg | Conditional | deg | Internal motor-encoder angle when available. |
internal_output_angle_deg | Conditional | deg | Internal output-encoder angle when available. |
ambient_temperature_c | Yes | °C | Ambient temperature at each sample or joined by timestamp. |
housing_temperature_c | Yes | °C | Housing temperature at the declared measurement point. |
supply_voltage_v | Conditional | V | Required for powered tests. |
bus_current_a | Conditional | A | Recommended for powered tests; state not measured if absent. |
sample_valid | Yes | — | true or false; never delete rejected samples from the published raw file. |
invalid_reason | Conditional | — | Required when sample_valid is false. |
The 30-column summary template keeps unit-, position- and model-level aggregation separate. Every row links back to immutable raw data, calibration records, the uncertainty budget and an analysis-code commit.
What a laboratory may—and may not—claim
- One physical unit: “Unit U03 produced LM4 = x° under RCI-BLM-1 v0.1.0, boundary Y.” Do not generalize to the model population.
- Three or more units: a descriptive model-level aggregate may be reported only after publishing every unit and position. It is still not a production lot acceptance result.
- Measurement capability: if expanded uncertainty is more than 20% of the metric, publish
below_measurement_capability, the uncertainty and the raw data—not a precise leaderboard value. - Deviation: a modified run may remain useful, but every deviation is listed and the unqualified protocol label is removed.
- Terminology: H0 and LM4 are component-level quasi-static hysteresis metrics. They are not robot pose accuracy, robot repeatability, dynamic transmission error, lifetime or safety performance.
Relationship to standards and manufacturer conventions
ISO 230-2:2014 publicly identifies direct measurement, repeated measurements and rotary-axis applicability for machine-tool positioning tests. ISO 9283:1998 addresses industrial-robot performance criteria and test methods. RCI-BLM-1 is a component-level hysteresis protocol: it is neither a reproduction of the paid standards nor a claim of conformity to either one.
Harmonic Drive’s engineering data provides the public ±4% rated-torque convention that motivated RCI’s explicit LM4 reporting level. NIST Technical Note 1297 is the reporting boundary for expanded uncertainty, its coverage factor and the underlying uncertainty components.
RCI links to public metadata and manufacturer engineering material, but does not redistribute the paid text of ISO standards. The protocol steps, field contract and equations published here are RCI’s own method and must not be represented as text issued by ISO, NIST or a manufacturer.
What remains before the method is validated
Version 0.1.0 still needs a physical shakedown on at least one reducer-only fixture and one integrated actuator, followed by an inter-laboratory round-robin. The first campaign must test time alignment, lock-motion measurement, interpolation stability, fixture correction, the 100 Hz sample floor and the uncertainty threshold. Any material correction will create a new version; the current release remains immutable.
Until that work is complete, this page is a reproducible protocol specification—not an independent measurement result. RCI has published no actuator LM4 values and makes no claim that a current catalog model passes or fails the method.
Download the protocol and templates
Suggested citation: Robot Component Index. “Robot Joint Backlash Test Protocol: 3 Boundaries, 3 Positions, 5 Recorded Cycles.” RCI 020, version 0.1.0, 2026-08-10. https://robotcomponentindex.com/research/reproducible-backlash-lost-motion-test-protocol/
Download the immutable protocol JSON, raw-sample CSV template and result-summary CSV template. Stable current aliases are protocol JSON, raw CSV and summary CSV.
Use the protocol together with RCI 016’s 18-record public-claim audit and the backlash, transmission error and repeatability field guide. Submit corrections or laboratory feedback through the public corrections channel.