Controller | Short Controller Description | Model [%] | Velocity Noise [%] | Torque Noise [%] | Torque Step Response [%] | Time delay [%] | Perturbations [%] | Overall Robustness Score | Username | Data |
---|---|---|---|---|---|---|---|---|---|---|
mcpilco | Swingup trained with MBRL algorithm MC-PILCO + stabilization with LQR. | 24.8 | 76.2 | 61.9 | 95.2 | 28.6 | 82.0 | 0.614 | turcato-niccolo | Data and Plots |
History SAC | SAC using custom model architecture to encode system dynamics. | 68.1 | 47.6 | 100.0 | 100.0 | 100.0 | 46.0 | 0.770 | tfaust | Data and Plots |
AR-EAPO | Policy trained with average reward maximum entropy RL | 87.6 | 81.0 | 100.0 | 100.0 | 81.0 | 98.0 | 0.913 | rnilva | Data and Plots |
iLQR Riccati Gains | Stabilization of iLQR trajectorry with Riccati gains. Top stabilizaion with LQR. | 5.2 | 38.1 | 9.5 | 85.7 | 14.3 | 0.0 | 0.255 | fwiebe | Data and Plots |
evolsac | Evolutionary SAC for both swingup and stabilisation | 75.2 | 57.1 | 100.0 | 100.0 | 71.4 | 68.0 | 0.786 | AlbertoSinigaglia | Data and Plots |
TVLQR | Stabilization of iLQR trajectory with time-varying LQR. | 62.9 | 90.5 | 100.0 | 100.0 | 42.9 | 64.0 | 0.767 | fwiebe | Data and Plots |
iLQR MPC stabilization | Online optimization with iterative LQR. Stabilization of iLQR trajectory. Top stabilization with LQR. | 31.9 | 90.5 | 100.0 | 100.0 | 38.1 | 44.0 | 0.674 | 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 pendubot even with these perturbations.
The model parameters of the pendubot are:
More information about the dynamic model of the double pendulum can be found here: Double Pendulum Dynamics. In the Double Pendulum Repository the parameters above are labeled as ‘designC.1/model1.1’. For a urdf file with this model see here: URDF.
The pendubot is simulated with a Runge-Kutta 4 integrator with a timestep of \(dt = 0.002 \, \text{s}\) for \(T = 10 \, \text{s}\). The initial pendubot 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 end-effector is above the threshold line at \(h=0.45 \, \text{m}\) (origin at the mounting point) and stays there until the end.
For the evaluation multiple criteria are evaluated and weighted to calculate an overall score (Real AI Score). The criteria are:
For each criterion 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. 50 random perturbations profiles are generated and evaluated.
These criteria are used to calculate the overall Real AI Score with the formula
\[ S = \frac{1}{6} \left( c_{model} + c_{vel, noise} + c_{\tau, noise} + c_{\tau, response} + c_{delay} + c_{pert} \right) \]
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.