666 test

666-test

Test scenario

Tested solver list

Commentary

Results

Assuming complete rigidness, the contact of two objects has complete-complementarity: there's neither deformation nor penetration. However, the constraint relaxation for tractable contact dynamics inevitably has position level drift in the discretized world which leads to unrealistic penetration between objects on their contacts. This penetration effect is observed for RaiSim, Bullet, ODE, and Dart which are based on the hard contact model.

Besides, MuJoCo adopts complementarity-free contact model(soft contact model), which does not hold strict complementarity rather relaxes the constraint to make the contact problem convex. The position level drift also inherently exists apparently.

By measuring the pairwise penetration between objects, we can quantize the severity of position level drift. We observed the error over the timestep size. The results are as follows:

Clearly, RaiSim has faster and more accurate speed-accuracy curve than other by means of the novel bisection solver. Bullet perform poorly in this test that has severe penetration problem for general situation. This can be attenuated by ERP, but remark that ERP is not based on real physics but a post process to make plausible result.

Also RaiSim remarkably faster than other engines: it is even six times faster than Bullet which is the fastest among others.

Note that MuJoCo cannot specify restitution coefficient. There's uncontrollable bouncy behavior as the following video. 666-test-mujoco