UR5 controller assessment

Real measurements · October 14 · gain/lookahead comparisons, model validation and end-effector tracking

What these experiments establish

  • The original controller settings produce a stable but lagging response to these small free-space commands. The roughly 300 ms settling time is not a fixed limit of the robot.
  • Lower lookahead and higher gain reduced settling time in the new wrist tests. Faster step response also increased peak acceleration and jerk; smooth references still matter.
  • The first wrist-only experiment mostly rotated the tool. It cannot establish translational speed limits. The new experiment moves the TCP vertically by 20 mm and back, with fixed orientation.
  • “Good tracking” below means staying within a stated same-time position error. This is different from following the same geometric path with a delay.

Measured operating range · this vertical path

Highest tested speed passing the error threshold in both directions, using maximum 3D error through each move and 300 ms after it. These are tested operating points, not hardware speed limits or guarantees for other paths.

Scope: One posture, current attached tool and payload configuration, free space. Speeds tested: 5–40 mm/s. No contact dynamics, large moves, singular configurations or workspace-wide limits were identified.

Same wrist step profile, three settings

Settling/rise/overshoot columns use the four 8 mrad transitions, including return moves. The time shift uses the entire step profile. Acceleration/jerk are filtered estimates; only one run per setting was made.

Earlier measurements

The October 4 sweep also varied lookahead and gain over a wider range. Today's table contains newly recorded measurements with coherent RTDE packets. Earlier results motivated these two comparison settings; they are not substituted for today's data.

UR documents that gain and lookahead affect response speed and stability. Official servoJ explanation

Vertical tracking test

20 mm up and back at 5, 10, 20 and 40 mm/s. Each move uses a 100 ms velocity ramp at both ends, with a 1 second hold between moves. The robot's calibrated IK generates the path before streaming; joint targets are then sent at nominal 125 Hz.

Joint-space equivalent on this path

Joint speeds depend on posture and direction. These deltas describe a continuously interpolated 10 Hz action, not an instantaneous joint step.

Cruise lag = average along-axis error ÷ requested velocity over the last 150 ms of constant-speed travel. It is an effective following lag, not pure network delay. “Target” is a moving reference, not a sequence of stops.

What the first wrist test tells us about the EE

RTDE TCP positions are the robot's kinematic estimate from encoders, not an independent camera/metrology measurement of physical tip accuracy.

Command-to-motion models

Two candidates are fitted: delay + first-order response and delay + second-order response. Both can replay an arbitrary saved command stream using the included simulator.

Second-order equation: q̈ = ωn² (K·u(t−d) − q) − 2ζωn q̇, around the initial position. A small fitted output bias is applied separately. First-order: τq̇ + q = K·u(t−d).

Wrist joint model · trained on 2/4 mrad, tested on 8 mrad

Vertical EE model · trained on 5/10/20 mm/s, tested on 40 mm/s

Joint models from the translation run · 40 mm/s held out

This path excites J2, J3 and J4. J6 is covered by the separate wrist test; J1/J5 remain unidentified. Correlated motion along one path cannot identify cross-joint coupling.

Parameters describe local input/output response; they do not identify the robot's internal gains, inertia or network delay separately. Bias units differ: mrad for the wrist fit, mm for the vertical fit.

Using this in simulation

  • Replay targets through the delay/filter using matching time stamps and control rates. The implementation is identify.py; fitted parameters and predictions are in assessment.json.
  • Use the joint model as an empirical actuator-response approximation. The scalar vertical model validates this path only; it is not a general six-axis robot controller.
  • Do not add this response on top of an existing slow simulated actuator and count the same lag twice. Revalidate the complete simulated chain against held-out real trajectories.
  • Contact, force/torque limits, friction, other postures, other joints and payload changes need separate identification. The fitted delay also contains residual clock-alignment uncertainty.

Experiment notes

  • The first EE preflight was aborted with zero servo commands because the FK result did not match the expected small-motion envelope. Explicitly passing the active TCP offset corrected the FK call; it was then verified against live RTDE pose before IK was used.
  • No gripper commands, homing, protective-stop clearing, payload edits or TCP changes were made. Each completed motion profile returned to its initial posture.
  • Robot timestamp alignment follows the individual report's method. All samples and original metadata remain available in those reports.
  • For error-tolerance estimates: approximately error = speed × effective lag during constant-speed motion. At 10 Hz, per-action displacement = speed × 0.1 s. Acceleration and reversals require additional margin.