Table 1.
Evaluation of the computing speed of our engine on a robot model controlled by a closed loop controller with a variable number of parameters.
With gradient | Without gradient | ||||
---|---|---|---|---|---|
CPU | GPU | CPU | GPU | ||
SECONDS OF COMPUTING TIME REQUIRED TO SIMULATE A BATCH OF ROBOTS FOR 10 s | |||||
1 robot | 1,296 parameters | 8.17 | 69.6 | 1.06 | 9.69 |
1,147,904 parameters | 13.2 | 75.0 | 2.04 | 9.69 | |
128 robots | 1,296 parameters | 263 | 128 | 47.7 | 17.8 |
1,147,904 parameters | 311 | 129 | 50.4 | 18.3 | |
MILLISECONDS OF COMPUTING TIME REQUIRED TO PERFORM ONE TIME STEP OF ONE ROBOT. | |||||
1 robot | 1,296 parameters | 8.17 | 69.6 | 1.06 | 9.69 |
1,147,904 parameters | 13.2 | 75.0 | 2.04 | 9.69 | |
128 robots | 1,296 parameters | 2.05 | 1.00 | 0.372 | 0.139 |
1,147,904 parameters | 2.43 | 1.01 | 0.394 | 0.143 |
We evaluated both on CPU (i7 5930K) and GPU (GTX 1080), both for a single robot optimization and for batches of multiple robots in parallel. The numbers are the time required in seconds for simulating the quadruped robot(s) for 10 s, with and without updating the controller parameters through gradient descent. Shorter times are colored in green, longer in red. The gradient calculated here is the Jacobian of the total traveled distance of the robot in 10 s, differentiated with respect to all the parameters of the controller. For comparison, the model has 102 states. It is built from 17 rigid bodies, each having 6 degrees of freedom. These states are constrained by exactly 100 constraints.