I made the setpoint wobble. Did the joint follow?

November 01, 2026

Kay and Jo start a run paused, put a sine wave on the joint's setpoint and watch whether the joint keeps up. The strip is below, and the steps to repeat it are under it.

I made the setpoint wobble. Did the joint follow? Four panels. Kay, a round teal character, and Jo, a dry blue one, are joined by a dotted line. Step 1, start paused. A card reads: the run is held at 0 seconds with the setpoint at 1.2 radians and nothing integrated yet. Kay says: Paused at 0. Nothing yet. Jo says: So set it up first. Step 2, a waveform. A card reads: setpoint angle, a sine around 1.2 radians, plus or minus 0.4 at 0.2 hertz. Kay asks: A sine on the setpoint? Jo says: From the very first step. Step 3, the run. A chart shows the setpoint swinging as a sine and the joint's angle following with a smaller swing. Kay says: It is moving! Jo says: Following, but not all the way. A card reads: after 8 seconds the joint's angle ranges from 1.02 to 1.38 radians, while the setpoint ranges from 0.80 to 1.60. Kay asks: Why so small? Jo says: At this speed it cannot keep up. Copyright © 2026 Zenin Easa Panthakkalakath. konjugate.com I made the setpoint wobble. Did the joint follow? Kay and Jo put a sine wave on a live parameter. Live mode in Konjugate. Paused at 0. Nothing yet. So set it up first. A sine on the setpoint? From the very first step. It is moving! Following, but not all the way. Why so small? At this speed it cannot keep up. The example model is illustrative. Not a real robot joint. © 2026 Zenin Easa Panthakkalakath Konjugate konjugate.com
Kay and Jo, on the Position Controlled Joint example.
Transcript

Four panels. Kay, a round teal character, and Jo, a dry blue one, are joined by a dotted line. Step 1, start paused. A card reads: the run is held at 0 seconds with the setpoint at 1.2 radians and nothing integrated yet. Kay says: Paused at 0. Nothing yet. Jo says: So set it up first. Step 2, a waveform. A card reads: setpoint angle, a sine around 1.2 radians, plus or minus 0.4 at 0.2 hertz. Kay asks: A sine on the setpoint? Jo says: From the very first step. Step 3, the run. A chart shows the setpoint swinging as a sine and the joint's angle following with a smaller swing. Kay says: It is moving! Jo says: Following, but not all the way. A card reads: after 8 seconds the joint's angle ranges from 1.02 to 1.38 radians, while the setpoint ranges from 0.80 to 1.60. Kay asks: Why so small? Jo says: At this speed it cannot keep up.

What just happened

The Position Controlled Joint example drives a joint towards a setpoint angle of 1.2 radians. The run was started paused, so nothing was integrated until it was resumed, and a sine wave of 0.4 radians at 0.2 Hz was put on the setpoint before the first step. That swings the target between 0.80 and 1.60 once every 5 seconds.

The joint followed, but only part of the way. After 8 seconds its angle ranged from 1.02 to 1.38 radians, a swing of 0.36 against the setpoint's 0.80. At this speed the controller and motor cannot move the joint through the whole range before the target turns round.

Repeat it in Konjugate

  1. Load Position Controlled Joint from the Examples dialog, open Run, switch Online simulation on, set the target time to 20 seconds and press Start paused.
  2. In the Live controls, set the transition of Setpoint angle to Sine, with an amplitude of 0.4 and a frequency of 0.2 Hz, and press its Start button.
The Live controls with a sine chosen for the setpoint, with its preview
The line under the fields reads Around 1.2: 0.80 to 1.60.
  1. Press Resume and watch the Control changes panel plot what you did.
Mid-run, with the setpoint plotted in Control changes
The change is listed under the plot: Sine around 1.2 rad, ±0.4 at 0.2 Hz.
The finished run
Four cycles in 20 seconds.

What this does and does not say

The example is a bundled model, not a real joint, and the figures were read from the run described above on 2026-11-02. The point is the workflow: a waveform is a quick way to ask how a system responds to a moving input, live, without writing the input into the model. Try other amplitudes and frequencies to see where the response stops keeping up.

Go deeper

Follow Konjugate on LinkedIn for updates, or subscribe via RSS.

Comments