← Back

ofxDabPhysics

github.com/bisnad/ofxDabPhysics · @bisnad
OF 0.11 Physics Robotics MIDI/OSC Rendering

Bullet physics wrapper for simulating articulated morphologies, with URDF import, OSC control and simple rendering.

0 0 Last commit 1y ago Created 1y ago

README



ofxDabPhysics



Author: Daniel Bisig - Coventry University, UK - ad5041@coventry.ac.uk - Zurich University of the Arts, CH - daniel.bisig@zhdk.ch

Dependencies: ofxDabBase, ofxDabMath, ofxDabOsc, Bullet3 (included), tinyxml2 (included)

---

Summary



ofxDabPhysics is a wrapper for the Bullet physics engine that facilitates the simulation of bodies with articulated morphologies. ofxDabPhysics implements behaviours for generating autonomous movements. It also offers the possibility to import articulated morphologies from URDF file. Furthermore, ofxDabPhysics can communicate via OSC messages with other applications. OSC messages can be used by other applications to receive the values of simulation parameters. In addition, OSC messages can also be employed as commands to remotely configure and control the simulation. Finally, ofxDabPhysics provides simple rendering functionality to visualise the simulation. The code is compatible with OpenFrameworks 0.11 and has been tested on Windows.

Entities



Body: represents an articulated morphology that consist of body parts, body joints, body motors, and behaviours.

Morphology



BodyPart: represents a rigid body which includes both its dynamics properties and collision boundary.

BodyJoint: represents a passive constraint between two body parts. This class is mainly used as base for an universal joint.

UniversalJoint: a joint that possesses individual lower and upper for its three perpendicular rotation axes.

BodyMotor: represents an active constraint between two body parts. Active constraints can be actuated. This class is mainly used as base for an universal motor.

UniversalMotor: an active joint that can operate in three different modes. The motor can operate in three different modes, as free spinning motor, as servo motor with position control, or as damped spring that possesses a linear and/or angular rest length.

Behaviours



Behavior: a behaviour is part of a body and can manipulate physical properties of the body parts, joints, or motors that it has been assigned to. Alternatively or in addition, a behaviour can also generate forces that impact on body parts.

Communication



OscControl: manages all communication with the physics simulation. Routes incoming OSC message to parsers for controlling either the simulation or its visualisation.

PhysicsOscControl: Parses incoming OSC messages to control the physics simulation.

VisualsOscControl: Parses incoming OSC messages to control the visualisation of the physics simulation.

Serialisation



UrdfImporter: loads robot definition files in URDF format and converts them into articulated bodies for simulation.

Visualisation



BodyVisualization: provides simple functionality for rendering body parts either as simple geometrical primitives or as triangulated meshes. Also provides a camera and handles material specifications for rendering.

Get this addon

HTTPS
SSH