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 multi-rigid-body 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.
Hierarchical Data Format 5 (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 two-step 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 - 2013-09-10
    Topic attachments
    I Attachment Action Size Date Who Comment
    hdf5_spheres_fall.pngpng hdf5_spheres_fall.png manage 135 K 11 Sep 2013 - 02:57 UnknownUser example spheres piling
    sphere_pile.gifgif sphere_pile.gif manage 136 K 11 Sep 2013 - 02:13 UnknownUser A scene of spheres piling
    sphere_pile2.gifgif sphere_pile2.gif manage 136 K 11 Sep 2013 - 02:18 UnknownUser spheres filing
    Topic revision: r5 - 13 Oct 2014, YingLu
    This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
    Ideas, requests, problems regarding Foswiki? Send feedback