Code covered by the BSD License  

Highlights from
Biohydrodynamics Toolbox

image thumbnail
from Biohydrodynamics Toolbox by Alexandre Munnier
Tool to simulate easily the motion of moving solids or swimming robots in a potential fluid flow.

Articulated body: what is it and how to design it?
Articulated body: what is it and how to design it?
Biohydrodynamics Toolbox   

Articulated body


BhT is not concerned with animals inner Mechanics (how muscles work) but only with how a shape-changing body is able to propulse and steer itself in a fluid. Within BhT's mechanical model, animals are managed as robots whose movements are assigned as a function of time. They are called articulated bodies.
An articulated body is a mechanism composed of a collection of rigid solids connected together with hinges. The time evolving joints' angles are prescribed by the user and driven by a so-called controls M-File.

Example of articulated body: an articulated fish.
Images/articulated1.jpg
Remark that hinges are not managed by BhT. The fluid can flow between the body's links.

How to design an articulated body?


This task is divided into two steps:

 

Design of the solids making up the articulated body

The solids composing articulated bodies are described by means of their boundaries. Any solid's boundary is a parameterized counterclockwise oriented line described by a M-File.

Design of the articulated body's structure

How the articulated bodies' links are connected together is set in the DAT-File, within a field fish = {...}. Consider the example below and assume that these ellipse-shaped solids are part of a more complex articulated body:
Images/two_articulated_solids.jpg
The first solid is labeled solid1 and its boundary is described by the M-File bht_ellipse with the settings [0 0 2 1 1]. The second one is labeled solid2, it shares the same M-File but with the settings [0 0 1.7 0.5 1] and it is connected to its father = solid1. Both are connected by an hinge whose coordinates are [x(1),x(2)] in the frame attached to solid1 and [y(1),y(2)] in the frame attached to solid2
In the DAT-File, the related field fish = {...} looks like that:
fish =
 {...
   
     link = { label = solid1
              father = ...
              hinge coord = ...
              hinge local coord = ...
              mfilename = bht_ellipse
              settings = [0 0 2 1 1]
              ...  }

     link = { label = solid2
              father = solid1
              hinge coord = [x(1);x(2)]
              hinge local coord = [y(1);y(2)]
              mfilename = bht_ellipse
              settings = [0 0 1.7 0.5 1]
              ...  }
     ...}
Once the DAT-File has been written, it has to be compiled by running the function bht_data_compile. The function bht_kine_check allows to visualize what the articulated bodies described in the DAT-File look like.

See also

Where do the equations of motion used by BhT come from?
Fluid's boundaries
Writing a DAT-File
bht_data_compile
bht_kine_check
2008 - A. Munnier and B. Pincon (Insitut Elie Cartan and INRIA Lorraine, Projet CORIDA, Nancy, France).       

Contact us at files@mathworks.com