Standard HDF5 Framework for Solver Comparison in Multibody Dynamics
BPMD Database
The
BPMD database is maintained
here. There are problems collected from other
physics engines, for either use the data sets to test and evaluate your methods, or contribute to our data sets. There are tools provided for MATLAB or Python programmers. The data sets are
in the form of HDF5 and .mat file.
State of the Art
Simulation of multirigidbody systems is important in a number of areas of science and engineering. Physics engines, like
Bullet,
Gazebo,
Algoryx ,
RPISim are getting popular (you will find a full list of the related packages
here).
However, the existing physics engines use different methods to solve the Complementarity Problems (CPs) while the testing metrics for the solvers are various. Therefore, the development of a standard framework that
facilitates the fair comparison of solution algorithm is important. In this project, we provide a standard framework to compare the different solvers in multibody dynamics based on HDF5.
The standard interface is provided below, with their names and dimensions, as well as the physical interpretations. Such data at the iteration level provides sufficient information to formulate NCP, LCP and mLCP models.
Also pivoting, iterative and hybrid twostep solvers are fairly tested with the same error evaluation metric. The standard hdf5 is defined below:
Fields 
Names 
Sizes 
Physical Intepretation 
bodies (nb) 
ids 
nb X 1 
body ids 
masses 
nb X 1 
masses of body 
forces 
6nb X 1 
external forces, with first three entries as external forces and last three external torques 
inertia 
3nb X 3 
inertia of the bodies 
positions 
3nb X 1 
positions of the bodies 
quaternions 
4nb X 1 
quaternions of the bodies, with the first entry as the real part and the other imaginary parts 
velocities 
6nb X 1 
generalized velocities, with first three as the velocities and the last as the angular velocities 
constraints (nj) 
violations 
nj X 1 
the joint violations 
jacobians 
(nj * Type) X 3 
the Jaobians to transform the bodies that form the joint from the joint frame to the world frame 
pairs 
nj X 2 
the id pairs of the two body that form the joint 
bounds 
nj X 2 
the joint limits 
rows 
Type X 3 
jointwise Jacobian rows to divide the rows of the jacobians for each joint 
contacts (nc) 
gap 
nc X 1 
gap distance 
pairs 
nc X 2 
id pairs of the two bodies that form the contact 
mu 
nc X 2 
coefficient of static and dynamic friction 
normals 
nc X 3 
contact normals (unit vector) 
points 
nc X 3 
contact points (unit vector) 
Example of real physical simulation from Algoryx

Standard HDF5 structure 






A scene of spheres piling in a container from Algoryx 





More Datasets and Resources
If you are interested in the standard framework, you could downloads the code
here, under the directory of
solver comparison
More HDF5 data sets are provided
here. When generate data from physics engines, make sure to follow the format defined
in the table of HDF5 section.
A paper on this topic is provided here:
C. Lacoursiere, Y. Lu, J. Williams and J. C. Trinkle.
Standard Interface for data analysis of solvers in multibody dynamics. 4th Canadian Conference on Nonlinear Solid Mechanics (
CanCNSM), 2013

YingLu  20130910