Controller | Short Controller Description | Swingup Success | Swingup Time [s] | Energy [J] | Torque Cost [N²m²] | Torque Smoothness [Nm] | Velocity Cost [m²/s²] | Best RealAI Score | Average RealAI Score | Username | Data |
---|---|---|---|---|---|---|---|---|---|---|---|

MC-PILCO | MC-PILCO for swingup and stabilization | 10/10 | 1.37 | 11.66 | 8.93 | 0.54 | 84.61 | 0.598 | 0.591 | turcato-niccolo | data plot video |

ilqr_tvlqr_lqr | Stabilization of iLQR trajectory with time-varying LQR. | 8/10 | 4.12 | 34.02 | 51.88 | 0.643 | 242.34 | 0.227 | 0.175 | fwiebe | data plot video |

sac_lqr | Swing-up with an RL Policy learned with SAC. Stabilization with LQR. | 4/10 | 0.67 | 37.12 | 78.7 | 0.774 | 114.04 | 0.338 | 0.124 | chiniklas | data plot video |

The real system leaderboard compares the performance of different control methods on the real hardware. The task for the controller is to swingup and balance the pendubot and keep the end-effector above the threshold line.

The model parameters identified by us with a least squares optimization of the pendubot are:

- Gravity: \(g = 9.81 \, \frac{\text{m}}{\text{s}^2}\)
- First Link mass: \(m_1 = 0.523 \, \text{kg}\)
- Second Link mass: \(m_2 = 0.625 \, \text{kg}\)
- First actuator length: \(l_1 = 0.2 \, \text{m}\)
- Second actuator length: \(l_2 = 0.3 \, \text{m}\)
- First link center of mass: \(r_1 = 0.2 \, \text{m}\)
- Second link center of mass: \(r_2: 0.255 \, \text{m}\)
- First link inertia: \(I_1 = 0.031 \, \text{kg m}^2\)
- Second link inertia: \(I_2 = 0.050 \, \text{kg m}^2\)
- First actuator damping friction: \(b_1 = 0.001 \, \frac{\text{kg m}}{s}\)
- Second actuator damping friction: \(b_2 = 0.001 \, \frac{\text{kg m}}{s}\)
- First actuator coulomb friction: \(c_{f1}: 0.16 \, \text{N m}\)
- Second actuator coulomb friction: \(c_{f2}: 0.12 \, \text{N m}\)
- Motor Inertia: \(I_r = 6.28e-05 \, \text{kg m}^2\)
- Gear ratio: \(g_r: 6.0\)
- First Motor Torque limit \(\tau_{max1} = 0.0 \, \text{N m}\)
- Second Motor Torque limit \(\tau_{max2} = 6.0 \, \text{N m}\)

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 \(0.5\,\text{Nm}\) torque limit on the passive joint can be used to compensate the friction of the motor.

The actuators can be controlled with arbitrary control frequency of up to \(500\, \text{Hz}\) and the experiment takes \(10\,\text{s}\). The initial pendubot configuration is \(x_0 = (0, 0, 0, 0)\) (hanging down) and the goal is the unstable fixpoint at the upright configuration \(x_g = (\pi, 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).

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

**Swingup Success**\(c_{success}\): Whether the swingup was successful, i.e. if the end-effector is above the threshold line in the end of the simulation.**Swingup time**\(c_{time}\): The time it takes for the pendubot to reach the goal region above the threhhold line and*stay there*. If the end-effector enters the goal region but falls below the line before the simulation time is over the swingup is not considered successful! The swingup time is the time when the end-effector enters the goal region and does not leave the region until the end.**Energy**\(c_{energy}\): The mechanical energy used during the execution.**Torque Cost**\(c_{\tau, cost}\): A quadratic cost on the used torques ( \(c_{\tau, cost} = \sum u^TRu\), with R = 1).**Torque Smoothness**\(c_{\tau, smooth}\): The standard deviation of the changes in the torque signal.**Velocity Cost**\(c_{vel, cost}\): A quadratic cost on the joint velocities that were reached during the execution ( \(c_{vel} = \dot{q}^T Q \dot{q}\), with Q = identity)

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

\[ \begin{equation} S = c_{success} \left( 1 - \sum_{i \in \{ 'time', 'energy', '\tau, cost', '\tau, smooth', 'vel, cost' \}} \tanh \left(\frac{c_{i}}{n_{i}}\right)\right) \end{equation} \]

The weights and normalizations are:

Criterion | normalization \(n\) |
---|---|

Swingup Time | 10.0 |

Energy | 60.0 |

Torque Cost | 20 |

Torque Smoothness | 1.0 |

Velocity Cost | 400.0 |

The listed number for swingup time, energy, etc. in the leaderboard are the scores for from the best attempt. The ‘Best RealAIScore’ is the score of that attempt. The ‘Average RealAIScore’ is the average score over 10 attempts. Unsuccessful swingups (where the end effector is not above the threshhold line in the end of the experiment (i.e. after \(10\,\text{s}\))) have a score of 0.

If you want to participate in this leaderboard with your own controller have a look at the leaderboard explanation in the double pendulum repository. We recommend submitting the controller first to the pendubot simulation leaderboard and the robustness leaderboard. Experiments with the real hardware can be conducted remotely. Please contact shivesh.kumar@dfki.de, felix.wiebe@dfki.de or shubham.vyas@dfki.de for details and scheduling. The leaderboard is automatically periodically updated based on the recorded data which is uploaded to this leaderboard repository.