Acrobot Simulation Robustness Leaderboard

Controller Short Controller Description Model [%] Velocity Noise [%] Torque Noise [%] Torque Step Response [%] Time delay [%] Overall Robustness Score Username Data
iLQR MPC stabilization Online optimization with iterative LQR. Stabilization of iLQR trajectory. Top stabilization with LQR. 13.8 90.5 100.0 90.5 47.6 0.685 fwiebe Data and Plots
TVLQR Stabilization of iLQR trajectory with time-varying LQR. 59.0 95.2 100.0 100.0 76.2 0.861 fwiebe Data and Plots
SAC LQR Swing-up with an RL Policy learned with SAC. 76.7 71.4 100.0 100.0 61.9 0.820 chiniklas Data and Plots
iLQR Riccati Gains Stabilization of iLQR trajectorry with Riccati gains. Top stabilizaion with LQR. 6.2 28.6 38.1 71.4 4.8 0.298 fwiebe Data and Plots
mcpilco Swingup trained with MBRL algorithm MC-PILCO + stabilization with LQR. 40.5 66.7 81.0 90.5 19.0 0.595 turcato-niccolo Data and Plots
Energy PFL Partial Feedback Linearization with energy shaping control. Stabilization with LQR. 41.9 47.6 81.0 52.4 28.6 0.503 fwiebe Data and Plots
iLQR MPC Online optimization with iterative LQR. Without reference trajectory. 20.5 4.8 4.8 9.5 4.8 0.089 fwiebe Data and Plots


The robustness leaderboard compares the performance of different control methods by perturbing the simulation e.g. with noise or delay. The task for the controller is to swingup and balance the acrobot even with these perturbations.

The model parameters of the acrobot are:

More information about the dynamic model of the double pendulum can be found here: Double Pendulum Dynamics. For a urdf file with this model see here: URDF.

The acrobot is simulated with a Runge-Kutta 4 integrator with a timestep of \(dt = 0.002 \, \text{s}\) for \(T = 10 \, \text{s}\). The initial acrobot configuration is \(x_0 = (0.0, 0.0, 0.0, 0.0)\) (hanging down) and the goal is the unstable fixpoint at the upright configuration \(x_g = (\pi, 0.0, 0.0, 0.0)\). The upright position is considered to be reached when the distance in the state coordinates is below \(\epsilon = (0.1, 0.1, 0.5, 0.5)\).


For the evaluation multiple criteria are evaluated and weighted to calculate an overall score (Real AI Score). The criteria are:

For each crierion the quantities are varied in \(N=21\) steps (for the model inaccuracies for each independent model parameter) and the score is the percentage of successful swingups.

These criteria are used to calculate the overall Real AI Score with the formula

\[ S = w_{model} c_{model} + w_{vel, noise} c_{vel, noise} + w_{\tau, noise} c_{\tau, noise} + w_{\tau, response} c_{\tau, response} + w_{delay} c_{delay} \]

The weights are

\[ w_{model} = w_{vel, noise} = w_{\tau, noise} = w_{\tau, response} = w_{delay} = 0.2 \]


If you want to participate in this leaderboard with your own controller have a look at the leaderboard explanation in the double pendulum repository. The leaderboard is automatically periodically updated based on the controllers that have been contributed to that repository.