ANYmal PD control test
ANYmal test is to test computational efficiency in solving articulated dynamics. In this test, a 18 DOF quadrupedal robot ANYmal is feedback-controlled to stand on a flat ground.
The test focuses on:
- Computational cost
- Scalability
Test scenario
- direct joint torque control based on PD position control scheme
- flat ground
- quadruped robot ANYmal
- maintain one contact per feet: controlled by ERP and parameter tuning
- tested with 1 x 1, 2 x 2, 3 x 3, 4 x 4, 5 x 5, 7 x 7, 10 x 10 and 15 x 15 number of ANYmals for scalability check
Tested solver list
- Rai
- Bisection solver (Rai solver)
- Bullet
- Sequential Impulse
- ODE
- Dantzig
LCP PGS[1]
- MuJoCo (no-slip enabled)[2]
- PGS
- CG
- Newton
- Dart
- Dantzig
- LCP PGS
Commentary
-
[1] ODE quick solver fails as shown in the following video, and was exempted. According to the manual this is due to the solver's property:
QuickStep is great for stacks of objects especially when the auto-disable feature is used as well. However, it has poor accuracy for near-singular systems. Near-singular systems can occur when using high-friction contacts, motors, or certain articulated structures. For example, a robot with multiple legs sitting on the ground may be near-singular.
from ODE wiki -
[2] MuJoCo no slip solver is a post-processing step that is prevent the slip caused by soft-constraint model. In the test without the noslip solver option, the robot flops into the ground in few seconds as the following video. Thus, in order to maintain 4 contact points between each robot and ground, we turned on the no slip solver option though it is computationally more expensive.
The main solver updates all unknowns. In contrast, the Noslip solver updates only the constraint forces in friction dimensions, and ignores constraint regularization. This has the effect of suppressing the drift or slip caused by the soft-constraint model. However, this cascade of optimization steps is no longer solving a well-defined optimization problem (or any other problem); instead it is just an adhoc mechanism. While it usually does its job, we have seen some instabilities in models with more complex interactions among multiple contacts.
from MuJoCo documentation
Results
The results of the test are as following figures:
The plot above indicates RaiSim is remarkably fast for articulated system simulation with contacts by virtue of its efficient multibody dynamics implementation.
MuJoCo relatively performs well for articulated system simulation compared to Bullet, Dart, and ODE. However, as we mentioned above, it has consistent slip without no-slip iteration.
ODE is significantly slower than other engines for this simulation since it uses the maximal coordinate representation for multibody systems which is considerably expensive.
Note that we failed to test more than 5 x 5 robots on Bullet since the PD controller failed to make the robot stands on the plane due to inaccurate contact impulse solution.