Under Review

Benchmarking Classical & Learning-Based Control on a Real System

Under review for IEEE Robotics & Automation Magazine

cart: 0mm / ±777mm | ball: 0.0° / ±4.6° | v_cmd: 0.00
🎮 Manual

Move mouse left/right to control cart · Scroll to zoom · Drag to orbit · Space to reset

Can you keep the ball centered? Move your mouse to control the cart.
13 controllers competed to do this on real hardware: 50 trials each.

The Problem

A Deceptively Simple Challenge

A nonlinear, underactuated control problem with real-world sensing constraints.

Ball-on-arc system diagram showing a ball rolling on a convex arc (with shallow concave dip) mounted on a linear cart with ToF sensors
1

Sensor blind zone: ToF sensors cannot see the ball near cart endpoints (|θ| > 0.064 rad), creating unobservable states at the worst possible moment

2

Sensor noise: 7–9 mm peak-to-peak variation observed with ball stationary at center (σ ≈ 1.7 mm per sensor, no filtering applied, 12 Hz update)

3

Sensor zero-offset: replacing or repositioning ToF sensors introduces a variable offset (±several mm) from true center, silently biasing every controller differently each time

4

Sim-to-real gap: first-order lag model approximates the PLC's 7-phase motion profile; mismatch in cart acceleration transients couples directly into ball dynamics

5

Hard track limits: 1.56m track with no room for error; classical controllers need heuristic wall-override gains that introduce oscillations near endpoints

13
Controllers
50
Trials Each
20 Hz
Control Rate
Platform

Industrial-Grade Hardware

Industrial servo, low-cost sensors, and rapid-prototyped mechanics : the noise and imprecision controllers actually face in deployment.

Ball-and-arc experimental setup showing the linear cart, 3D-printed arc with ToF sensors, and Beckhoff servo motor

Fig. The ball-and-arc platform.

Why this setup matters: Asynchronous multi-rate sensing, communication latency, and sensor noise create conditions where simulation-optimal controllers can catastrophically fail.

Actuation
Beckhoff AM8121 + TwinCAT 3
Velocity mode · τ_v = 0.15s · 7-phase profile
Sensing
2× VL53L0X ToF + Encoder
Ball: 12 Hz, σ ≈ 1.7mm · Cart: PLC encoder
Track & Arc
1.553m track · R = 2.101m
3D-printed PLA · 2mm dip (FWHM 20mm)
Control
20 Hz · Python · USB-serial
Tested 5–50 Hz · i7-13700 workstation
Data Flow
ToF (ball) → Arduino Uno → USB → Workstation
PLC encoder (cart) → RS232-USB → Workstation
→ merge as [x, ẋ, θ, θ̇] → Controller → USB → PLC → Servo
Asynchronous: ball at 12 Hz, cart at loop rate ; fused into state vector at 20 Hz
Controllers

13 Controllers Compared

5 classical + 5 learning-based + 3 data-driven controllers evaluated under identical conditions on real hardware: 50 stratified trials each.

Classical
Learning
Data-Driven
Results

Experimental Results

50 hardware trials per controller at 20 Hz. Difficulty-stratified initial conditions. Identical physical system.

Baseline Performance: 50 Trials per Controller

50 trials, 20 Hz, stratified ICs | Ball settled within ±0.01 rad (±2 mm) for 1 s, 30 s timeout

Data-Driven RL Classical
MPPI
2.1s
2.5s
100
PPO (BZ+DR)
2.5s
5.1s
98/100
PD+WO
3.4s
5.8s
96/100
PPO (WM)
3.6s
6.8s
100
LQR+WO
4.0s
7.1s
100/100
NMPC
4.7s
7.5s
90/100
TRPO (DR)
4.8s
8.1s
90/100
TQC (DR)
6.6s
9.8s
86/100
SMC+WO
8.3s
8.9s
92/100
SAC (DR)
8.4s
10.1s
82/100
MPC+WO
9.7s
10.8s
80/98
IQL
9.8s
10.6s
92
TD3 (DR)
10.1s
11.4s
92/100

BZ = Blind Zone sensor modelling, DR = Domain Randomization, WO = Wall Override, WM = World Model (LSTM-based next-state prediction). Data-driven methods (MPPI, PPO WM, IQL) use learned dynamics or logged data (no simulation SR reported).

Settling Time by Starting-Position Stratum

Median time to settle, by cart initial position (50 stratified trials, successful trials only). Bar color encodes the stratum (see legend below); controller category is shown in the first chart.

easy (center) medium (near-wall) hard (at-wall)
MPPI
3.1s
1.2s
2.3s
50/50
PPO (BZ+DR)
2.2s
2.1s
3.9s
49/50
PD+WO
2.8s
3.1s
4.1s
48/50
PPO (WM)
5.0s
2.9s
5.7s
50/50
LQR+WO
3.2s
4.5s
3.9s
50/50
NMPC
1.7s
5.1s
6.4s
45/50
TRPO (DR)
5.6s
4.2s
1.4s
45/50
TQC (DR)
4.9s
8.5s
11.6s
43/50
SMC+WO
7.0s
6.0s
8.8s
46/50
SAC (DR)
7.3s
7.9s
9.7s
41/50
MPC+WO
13.3s
9.4s
5.1s
40/50
IQL
14.3s
13.1s
8.2s
46/50
TD3 (DR)
10.1s
8.7s
8.1s
46/50

Hardware median settling time by starting-position stratum. MPPI is fastest and most consistent across all strata (1.2 to 2.7 s). Three equal-width bars per controller: center (left), near-wall (middle), at-wall (right). Empty bar = zero successful trials in that stratum. SR = successful trials / total.

Findings

Key Takeaways

Finding 1

Explicit constraint handling enables classical controllers. Adding a wall-override heuristic raises PD from 18% to 96%, LQR from 6% to 100%, and SMC from 12% to 92% (78 to 94 pp gains). Without boundary handling, no classical controller exceeds 24% hardware SR. NMPC handles constraints natively and is the exception.

Finding 2

A small LSTM trained on logged hardware data enables two deployment modes. MPPI uses it for online sampling-based planning: 100% SR, fastest median settling (2.07 s), lowest effort (0.360 RMS), at the cost of GPU compute at runtime (42 ms per step for 800 parallel rollouts). PPO-WM trains a policy inside the same model: identical 100% SR with sub-2 ms CPU inference (GPU only during a roughly 40 min training phase).

Finding 3

The residual sim-to-real gap is sensor-driven. All five model-free RL agents reach 100% SR in simulation yet range 82 to 98% on hardware. Domain randomization lifts PPO from 60% to 90% (a 30 pp gain), then plateaus; adding blind-zone sensor modelling closes the remaining gap to 98%. Physics randomization and sensor modelling address different gaps.

Finding 4

Reactivity beats model accuracy. Given explicit constraint handling, the controller reacting most promptly to the current observation beats the one with the most faithful model. LQR+WO (linearized, no planning) reaches 100% SR; NMPC (full nonlinear model, 30-step horizon) reaches only 70%, recovering to 90% with a 10-step horizon because the sensor reading can be up to one cycle (82 ms) old.

Offline RL

IQL, trained on roughly 270k post-recalibration transitions from diverse controller families (84% successful), achieves 92% SR with the second-lowest control effort (0.395 RMS) using no simulator. Its conservative policy trades speed for simplicity (9.80 s median settling, about 4.7x slower than MPPI), with failures concentrated near the arc center where the Q-value gradient is shallow.

Practical Takeaway

Regardless of approach: implement explicit constraint handling first. On this system, boundary awareness is the strongest predictor of hardware success, whether via heuristic override, cost penalty, or learned avoidance. Algorithm choice matters less than this single design decision.

Reproducibility

Reproduce in Minutes

Fully open-source. Train a PPO policy on CPU, evaluate all controllers in simulation.


# Clone and install all dependencies
git clone https://github.com/arc-benchmark-review/ball-balancing-on-arc
cd ball-balancing-on-arc
make install-full

# Train PPO with blind-zone + domain randomization (about 40 min on CPU)
python training/scripts/train_all_cont.py \
  --algos ppo --rewards balanced --dr --blind-zone \
  --timesteps 3000000 --tag ppo_bz_dr

# Evaluate all controllers in simulation
make eval-sim

# Generate all paper figures
make figures
Citation

Cite This Work

@article{anon2026controller,
  title   = {Which Controller Should You Deploy? A Hardware
             Benchmark of Classical and Learning-Based
             Methods on a Ball-on-Arc System},
  journal = {IEEE Robotics \& Automation Magazine},
  year    = {2026},
  note    = {Under review}
}