WIMRobotics
§T0 TechnologyDOC WR-SITE-04 · REV 2026-11

Test data · conditions · sources

The numbers behind PLEM.

Each figure on this page carries how it was measured and where it is published.

§T1 Control loopOutside labs · KOTCA KST-25-236 · LTA LR500172603E

The controller does its work in 23 µs of a 1,000 µs cycle.

Most of that is EtherCAT send and receive. Our control math takes under 2 µs. The rest of the millisecond is headroom for inference, logging and more axes.

FIG T1 · Mean work per cycle, 23.25 µsµs
02.557.510 µs EtherCAT send9.69 EtherCAT receive6.63 Other4.93 Control math< 2
SOURCE KOTCA KST-25-236, 2025-10-23/24, witnessed test. W-RC v1.0, Jetson AGX Orin 64 GB, Ubuntu 20.04, IgH EtherCAT master, 6 axes, 3 runs × 3 min ≈ 180,000 cycles.
ItemResultCriterion
Processing per cycle0.0232 ms≤ 0.2 ms · Pass
Command period1 ms1 kHz
Period std. dev.0.0042 ms≤ 0.1 ms · Pass
Max period error0.0420 msreported
Wake-up p996.41–6.82 µs3 runs
Wake-up worst41.9 µsworst of 3 runs
12 axes at 1 kHz, cycle jitter±4.1 µsLTA LR500172603E

We always show the worst case next to p99.

§T2 KernelJetson AGX Orin · PREEMPT_RT · published

A real-time kernel alone is not enough.

Under GPU, network and storage load, the worst-case wake-up on a stock real-time kernel still reaches 100–160 µs. Isolating CPUs for the control thread brings it into single digits.

FIG T2 · Worst-case wake-up latency by loadµs · 600k samples per load
050100150 µs GPU load 159 15 EtherCAT load 113 6 Storage load 145 7
RT kernel, no isolationRT kernel + isolated CPUs 8–11
SOURCE Blog "PREEMPT_RT on Jetson AGX Orin", 2025-12-23. JetPack 6.2 RT kernel, cyclictest 1 ms, 10 min per load.
318→56µs
stock kernel vs RT kernel under combined stress
Same post
0.8µs
4-stage pipeline with lock-free IPC, down from 78–103 µs with mutexes
Blog · Jan 2026
0.7µs
p99 to create and queue one 1 kHz telemetry sample
Blog · Jan 2026
5µs
isolated-CPU wake-up max on the field-test host
Field test · Oct 2026
Raw chart of max latency per load before and after CPU isolation
Raw chart from the post
§T3 EtherCAT syncRoot cause analysis · published 2026-10-10

Why EtherCAT sync collapsed every 110 seconds on Jetson, and the one-line fix.

A time-sync service was slewing the host clock by up to ±140 ppm about every 110 s. The drives followed the drifting clock. Locking it with one device-tree property removed the drift.

FIG T3 · Max distributed-clock deviationµs · log scale
1101001,000 Clock lock off20 min run 328 Clock lock on300 s run 3.5 Share of cycles above 10 µs: 7.4% → 0% · RT loop jitter ≤ 1.2 µs · zero missed cycles
SOURCE Blog "Jetson nvpps and EtherCAT DC drift". IgH 1.6 master, JetPack 6.2.1 RT, I210 NIC, two servo drives at 1 kHz with DC, axes mechanically coupled, 23.5 rad/s.
Two EtherCAT servo drives driven from Jetson over CoE, the bench used for the analysis
Raw chart of DC deviation with clock lock on and off
Raw chart from the post
§T4 Motion qualitySame arm, same path, controller swapped

Better timing shows up as a straighter line.

Our 1 kHz torque controller against the arm's built-in PID and against ADRC, drawing the same 30 cm lines with a 4.5 kg swinging payload and a laser on the flange.

Error metricvs built-in PIDvs ADRC
Perpendicular to path−32%−10%
Along the path−48%−23%
Peak at reversals—−49%

Source: video "PLEM torque controller, straight-line test", 2026-10-21. 30 cm lines at 5 cm/s, three passes.

−36%
position error from friction compensation, 160 runs, p < 0.01, Cohen's d 1.49
Blog · 2026-01-12
+21%
tracking accuracy from planner acceleration feed-forward, torque RMS 3% lower
Blog · 2026-01-13
Raw chart of friction compensation improvement by speed
Raw chart · friction compensation gain by speed
Commanded versus measured joint waveforms
Commanded vs measured joint waveforms in our tuning tool
§T5 AI on the edgeMeasured · Jetson AGX Thor · 2026-11

Inference and 1 kHz motion on the same computer.

Policies run on the Jetson next to the control loop, measured on our own fine-tuned models.

FIG T5 · Median time per inferencems · Thor devkit, MAXN
0306090 ms Pi0.5 · BF1686.0 GR00T N1.7 · BF1687.8 GR00T N1.7 · FP851.0
SOURCE WIM measurement, 2026-11-07. TensorRT. Pi0.5 fine-tuned on our data, 10 denoising steps, 16-step action chunk: 11.6 inferences/s, 5.19 J per inference.
CLIP · Policy → IK → EtherCAT 1 kHzPipeline demo
Language task, front and wrist cameras, policy on Thor, action chunks to IK, EtherCAT at 1 kHz on our controller.
Several arms, one Jetson · demo
Natural language command driving a robot arm
Sentence → pick → place, uncut, on our controller
Self-recovering pick and place
Self-recovering pick-and-place when the object moves
Dual-arm handover, humanoid upper body
§T6 Calibration & visionPeer-reviewed · Robotics and Autonomous Systems 2026

Where the camera thinks the robot is, corrected.

"Adaptive Pair Weighting for Robust Hand-Eye Calibration": a 17,729-parameter network that trains in about 107 s on one CPU core and down-weights bad calibration pairs.

SettingRotation errorChange
Simulation, 20 sets2.627° → 0.385°−85.4%
Real arm, ~1.3 m, 20 sets8.687° → 3.522°−59.5%
Real arm, translation24.14 → 16.81 mm18 / 20 sets better

DOI 10.1016/j.robot.2026.105763 · 6-axis cobot with wrist stereo camera.

15→7ms
detection per frame on Jetson, TensorRT FP16 + DeepStream, recycling line at 0.5 m/s
Blog · 2024-01-18
<0.5mm
sim-to-real cell calibration with a touch probe and Kabsch fitting
Blog · 2024-10-28
Hand-eye calibration rig with arm, wrist camera and board
Calibration rig
Per-set rotation error chart
Per-set rotation error, 20 sets
§T7 HardwareDesigned and tested in Daegu

Our own controller and boards.

W-RC is a Jetson running PLEM: AI inference and 1 kHz real-time motion on one board. We design the controller and the boards ourselves in Daegu.

W-RC controller cabled to a cobot on a lab bench
W-RC driving a 6-axis cobot on a lab bench
WIM-CB100 EtherCAT slave board
WIM-CB100 EtherCAT slave board
Electrical cabinet internals
Cabinet build
W-RC controllerSpec
ComputeNVIDIA Jetson AGX Orin 64 GB, 275 TOPS INT8
Control loop1 kHz
FieldbusEtherCAT, Modbus TCP
Network5 × GbE
I/ODI 8 / DO 8
Power90–264 VAC
Size · weight238 × 352 × 207 mm · < 11 kg
TestsLTA LR500172603E · KOTCA KST-25-236 · FCC Part 15B · ICES-003
WIM-CB100 boardSpec
MCUSTM32F103
PortsDual 100BASE-TX EtherCAT, RS-485 Modbus RTU
I/ODI/DO, relays, 16-bit PWM
TestEtherCAT, ADC and PWM checked live on every board
§T8 StackWhere we sit in your robot

Below the application, above the chip.

We own the layers from the real-time OS down to the drives, and we build the controller and boards they run on. The drive layer of PLEM is open source: PLEM on GitHub →

Policy · perceptionVLA and vision models, planning. Yours or ours.YOU / WIM
10–30 Hz
Real-time bridgeAction chunks to smooth trajectories, measured-delay compensation, IK.WIM
→ 1 kHz
Real-time controlPREEMPT_RT, CPU and IRQ isolation, lock-free IPC, PID / ADRC / torque control.WIM · PLEM
1 kHz
FieldbusEtherCAT CiA 402 with distributed clocks, CAN-FD, RS-485, ros2_control.WIM
µs sync
Robot · PLC · drivesYour robots and drives, on W-RC (Jetson + PLEM) or next to the controller you already own.W-RC / EXISTING
InterfaceHow we connect
EtherCAT drivesCiA 402 (CSP / CST), distributed clocks
YaskawaMotoROS2, proxy streaming past the 200-point limit
Collaborative armsVendor streaming APIs, real-time host in front
KUKAEthernet KRL interface bridge
ActuatorsCAN-FD, RS-485 Modbus RTU as ros2_control plugins
SoftwareROS 2, ros2_control, Isaac Sim, TensorRT
§T9 PublishedRead the raw data
2026-10-23Post

Time is a control input · 7-axis arm field test

2026-10-21Video

Torque controller straight-line test · vs PID and ADRC

2026-10-10Post

EtherCAT DC drift on Jetson · 328 → 3.5 µs

2026Paper

Adaptive Pair Weighting for Robust Hand-Eye Calibration · Robotics and Autonomous Systems

2026-01-12Post

Friction compensation experiment · 160 runs

2025-12-23Post

PREEMPT_RT on Jetson AGX Orin · CPU isolation under load

2025-01-04Post

Yaskawa MotoROS2 proxy server · streaming past the point limit

2024-01-18Post

Detection on Jetson, 15 → 7 ms · recycling line

§T10 Next stepEngineer to engineer

Send us a 60-second log from your robot. We will tell you which of these numbers you are missing.