Skip to content
This repository has been archived by the owner on Nov 29, 2019. It is now read-only.

Tests realized in comparison with RBDL.

olivier-stasse edited this page Oct 16, 2014 · 13 revisions

Benchmarks realized in the Humanoids paper:

! Be aware that this just a snapshot, RBDL is under a lot of development and is heavily used in the robotics community. Measuring a software only by its speed would be a mistake !

The benchmark programs for rbdl evaluation are available at the following adress https://bitbucket.org/JustinCarpentier/rbdl_evaluate_performances. The rbdl branch used to parse the URDF model is available here https://bitbucket.org/JustinCarpentier/rbdl, changeset:718:816dc8a8ef12.

The programs used in METAPOD are benchmark_metapod_simple_humanoid_RNEA.cc and benchmark_metapod_simple_humanoid_CRBA.cc, the commit used is 39b100a on http://github.com/laas/metapod.

Faster RBDL

As pointed out by Martin Felis, RBDL maybe further improved by better free flyer representation. We report here the numbers he kindly provided:

(i7-2620M) CRBA Metapod: 7.472 us CRBA RBDL : 7.595 us (1-dof joints: 9.914 us)

RNEA RBDL : 6.310 us RNEA Metapod: 6.414 us (1-dof joints: 6.904 us)

(i7-3770) CRBA Metapod: 6.61528 us CRBA RBDL : 7.43813 us (1-dof joints: 9.58055 us)

RNEA Metapod: 5.76113 us RNEA RBDL : 6.66605 us (1-dof joints: 7.21249 us)

Note that as mentionned in the paper the difference is not very significative for latest Intel Chipsets, which makes RBDL very attractive. Indeed meta-programming based code are notoriously difficult to debug, and the model in metapod cannot be modified on-line. This is a problem for manipulation experiments. RBDL performances can be even improved using several other modification realized by Justin Carpentier. Again this would need further investigation on various embedded CPU, with various compilers and distributions. At the same time, some further discussion with Nicolas Mansard lead him to implement a new dynamic library which is trying to take the best of both worlds (meta-programming for the joint types, and flexible models). Preliminary tests shows better performance than both RBDL (with improvements) and Metapod. Again this call for further investigation with respect to what I called control simulators, i.e. code targeted mainly for control loop and NOT for simulation (but which could be used this way as a side effect).

Clone this wiki locally