Examples

Home of OMD

I'm migrating to google code: google code site

This website is the home of OMD. OMD is a multi-body dynamics application used to simulate mechanical systems. Unlike most multi-body dynamics applications, OMD was built to accommodate different approaches to solving such problems. There is a frame work to define rigid bodies, joints, forces, integrators and three different models which use different techniques to solve the equations of motion for a set of bodies, joints and forces. The following are the Models or formulations available at this time:

  1. Model1 uses Kane's method or a recursive joint formulation. In this method each joint adds degrees of freedom or states to the model. Currently it is only capable of solving open loops.

  2. Model2 does not allow joints, it solves unconstrained bodies using their Cartesian Coordinates as states.

  3. Model3 uses constrained Cartesian coordinates meaning joints are used to create a set of algebraic differential equations. Coordinate partitioning is used to identify independent and dependent constraints allowing for the use of Ordinary Differential Equation (ODE) solvers.



Using OMD in C++

You can download the static library and headers and link them into your application. I've got a "Driving Game" on the site as an example. It uses Ogre to animate the simulation.

Using OMD in Python

OMD is written in C++, but I have wrapped it in Python (using swig ). Not everyone likes C++, and there are a ton of tools written in Python that could be used to visualize the results (animation or graphing). The OMD and OMD2 libraries are made accesible using "import", the examples show how it is done.

Using OMD in Simulink

I have also put OMD in Simulink. The "m-function" block is used to access OMD from inside Simulink, and a text file describes the model.