Locomotion and control of a a self-propelled 

shape-changing body in a perfect fluid

T. Chambrion and A. Munnier

Institut Elie Cartan (Nancy)
INRIA Lorraine
Images/logovect.gif Images/logo-inria-.gif
Introduction Swimming using Lie brackets More efficient swimming strategies Moonwalking
A real time interactive control gameBiohydrodynamics Matlab Toolbox


Reference article

In this page we display numerical simulations related to the article:
Locomotion and control of a self-propelled shape-changing body in a perfect fluid,

that can be downloaded in pdf format by clicking on the title above. The notation we use in this page matches that of the article.

Maxima computations page

In the reference article, several proofs of controlability results are obtained by computing the dimension of vector spaces spanned by vectors fields together with their Lie brackets. These heavy computations have been realized with Maxima (a free softward distributed under lisence GPL and allowing symbolic computations). You can download here the Maxima's page of these computations: Maxima's page.


All of the simuations in this page have been realized with MATLAB.

Swimming using Lie brackets
The master idea to prove controlability results consists in computing Lie brackets of vector fields associated with allowable shape-changes. Although Lie brackets provide a powerful tool to obtain theoretical results,  the associated shape-changes don't yield in general very efficient swimming strategies as illustrated by the following example.

The shape-changes associated with the Lie Bracket of the two vector fiels X1 and X2 yields a net displacement of the center of mass of the swimming body along a new direction (being none  of those associated to X1 and X2). To approximate the Lie bracket [X1, X2], we integrate first along X1 during a small time step ( = 0.1), then along X2 during the same time step, next along -X1 and finally along -X2.

The left hand side of the movie shows the shape-changes at a macro scale. The right hand side is a zoom on the small black rectangle showing the displacement of the center of mass of the body. Notice how small it is.
Movie (click on the image above to play the movie)

More efficient swimming strategies
The observation of the preceding section leads to seeking new swimming strategies not based on the computation of Lie brackets. We propose here somesuch examples.
Definition of the control variables
The main difficulty in seeking swimming strategies is that the controls varibles ck(t) have to be allowable (in the sens given in the reference article). We then define the complex controls variables ck for k = 1,..., 6 as follows:
Images/def_r.jpg Images/def_theta.jpg Images/def_c.jpg

One easily checks that the controls variables ck(t) are indeed allowables.
The new idependant variables we are going to use as our controls are now the functions:

Numerical examples
The following simulations show the motion of the swimming animal over 8 strokes (time between 0 and 16π). Above the pictures, we display the corresponding controls values (we give only the non-zero elements).
The colors give the density inside the animal. (Click on the images to play the movies).

Using only the two first controls c1 and c

In this first example, we use only the controls Images/juste_alpha1.jpg and Images/juste_h1.jpg, all the others being equal to zero for all time.
Images/alpha1=t.jpg Images/alpha1=th1=1.jpg Images/alpha1eth1.jpg
Images/image_forward_motion.jpg Images/image_turn_left_motion_1.jpg Images/image_turn_left_right_motion.jpg

Any kind of displacement can be achieved. The control Images/juste_alpha1.jpg allows to set the frequency of the strokes (and hence the velocity of the animal) while the function Images/juste_h1.jpg set the direction (the amoeba turns left when it is positive and turns right when it is negative).

Using the pair of controls c3 and c4

Now, we use only the pair of functions Images/pair_controls.jpg to control the swimming shape-changing body, the other controls remaining constant. As in the preceding paragraph, Images/justealpha3.jpg allows to set the frequency of the strokes and Images/justeh2.jpg determines the direction. Once more, the body can follow any prescribed trajectory.

Notice that this swimming strategy seems to be less efficient than the previous one, for the animal undergoes many shape-changes for a small resulting net displacement.

Using the last pair of controls c5 and c6

Here, we use only the pair of functions Images/alpha5h3.jpg as controls. Any trajectory can be achieved but the efficiency is surely very low.

Non-swimming examples
Not any shape-changes set the amoeba into motion. In this paragraph only, let us redefine the controls Images/juste_theta1.jpg and Images/juste_theta4.jpg as follows:
Here, we use the function Images/justeh.jpg as a control. (Click on the image to play the movie).

With these definitions of the controls, only c1 and c4 are non-zero. There is no displacement of the center of mass althoug the deformations are not symmetric with respect to the center of mass.

In the  reference article, we prove that the swimming body can follow any prescribed trajectory while undergoing (approximately) any prescribed shape-changes. This result is very surprising and can be illustrated by the following example.

In the second movie, the body seems undergoing the same shape-changes as in the first movie but it swims backward !
Actually, there are superimposed shape-changes with very high frequency and very low amplitude. The difference between the shape-changes in the first and second movies cannot be observed at the normal time-scale. 

So let us slow down the time (up to almost freeze it) and zoom in on the boundary of the amoeba. Click on the image to play the movie.

Notice the time displayed in the NW corner. The complete simulation time lasts no more than 1e-2 seconds !

A real-time interactive control game

Click on the image and copy-paste the m-File in the MATLAB editor. Save it and run it by entering
>> amoeba_motion
in the Command Window of MATLAB. You can now control the motion of the amoeba with the keyboard. Use the keys: 'P' and 'L' to modify the velocity, 'W' and 'X' to steer, and 'G' to enable or disable the grid.

Other simulations of swimming animals: Biohydrodynamcis Matlab Toolbox


Biohydrodynamics Toolbox (BhT) is a collection of M-Files for design, simulation and analysis of animal motions in fluids. Animals are modeled as systems of articulated solid bodies. More widely, BhT allows to perform easily any kind of numeric experiments involving 2d motions of solids in an ideal fluid (simulations of so-called fluid-structure interaction systems).

Some of BhT's features

More informations are available on BhT project homepage: http://bht.gforge.inria.fr/


Examples of simulations

These simulations have been realized with BhT. (Click on the images to see the movies).

More demos are available on the BhT demo page.

Locomotion and control of a self-propelled shape-changing body in a perfect fluid, T. Chambrion and A. Munnier (2009).Up