You are on page 1of 8

Genetic Algorithm Optimization of Escape and Normal Swimming Gaits for a Hydrodynamical Model of Carangiform Locomotion

P. D. Kuo Systems Design Engineering Dept. University of Waterloo Waterloo, ON N2L 3G1

D. Grierson Civil Engineering Dept. University of Waterloo Waterloo, ON N2L 3G1 The advantages of improved efficiency, stealth, turning radii, and acceleration could prove to be significant if applied to the design of fishlike propulsion systems. Understanding the dynamics of such systems could prove beneficial in a number of application areas such as autonomous robots for remote-sensing operations in rivers, littoral zones and at the ocean bottom where robust adaptations to irregular bottom contours, current and surge are required. Therefore, obtaining optimum gaits for such devices is an important undertaking.

Abstract

A hydrodynamic model of a three segment fish is presented. This model is then optimized using a genetic algorithm subject to two separate criteria; escape and normal swimming behaviour. With this optimization, gaits for normal swimming and escape behaviour are obtained.

INTRODUCTION 2 CARANGIFORM LOCOMOTION


Nature's solutions to underwater propulsion are numerous. One such solution is so-called carangiform motion used by swordfish, tuna, mackerel and salmon. Breder (1926) introduced the term carangiform to members of the Carangidae family as well as other fish exhibiting similar body morphology and propulsive efficiency. These fast swimming fish typically have large, high-aspect-ratio tails with still waves propagating from head to tail as seen in Figure 1.

Human engineered solutions to underwater propulsion typically depend on the use of propellers and maneuvering surfaces. In contrast, natures solutions use changes in the overall shape of the body of the object in order to generate thrust and thus propulsion. It can be argued that the underwater locomotion methods employed by nature are superior to human-designed devices (Mason et al., 2000). One advantage is greater maneuverability. There exist fish that can perform 180degree turns within a fraction of a body length as compared to boats, which typically have very large turning radii (Mason et al., 1999). As well, due to the evolution of the so-called escape response (Domenici et al., 1997), fish can accelerate quickly from rest in order to escape from predators. This agility also allows them to work in considerably complex hydrodynamic environments such as surf surge and littoral zones that are currently beyond the capabilities of propeller driven craft. It has also been shown by Triantafyllou et al. (1993) that the motion of a mechanical tuna significantly reduces its own drag thus increasing swimming efficiency. Another advantage is stealth. Human-made craft suffer from noisy cavitation created by the propeller. A study by Ahlborn et al. (1991) using an artificial fishtail to mimic fishlike swimming concluded that the alternating creation and destruction of the vortices in the wake behind the fish tail provided not only an efficient method of swimming, but also aided in guarding against detection by predators.

Figure 1: Carangiform gait (Gray, 1968). This requires a powerful musculature that generates sideto-side movement of the posterior vertebral column and flexible tail. The hydrodynamics of propulsion with this side-to-side movement involve the generation of vortices

within the wake through which water is propelled with the tail also generating lift. In carangiform locomotion, the amplitude of the still waves increases closer to the rear while the fishs body is mostly rigid at the front. Fish classified as using carangiform locomotion generally use only the rear third of the body to move. For a complete treatment of underwater locomotion methods and analyses please refer to Breder (1926) and Domenici et al. (1997).

body in the longitudinal direction, y is the position of the body in the lateral direction and corresponds to the orientation of the body in the inertial reference frame. All variables are functions of time t. The equations of motion are:

HYDRODYNAMICAL MODEL

u1 && 1 u2 &&2 Lx + D f _ x + Db _ x + f am _ x I total && = x Ly + D f _ y + Db _ y + f am _ y y && & + + + ( x x, y y ) ( L + f ) & b am m m am f


where u1 and u2 are the input signals to the system which represent the acceleration of the joint angles with respect to the bodys longitudinal axis, L is the lift forceon the tail fin, Df is the drag force on the tail fin, Db is the drag on the body, fam is added mass forces due to the acceleration component of the tail fin, f is the quasi-static torque generated around the midpoint of the tail, b is the total drag moment acting on the body, am is the added moment due to the acceleration component of the tail fin, xm and ym are the displacements of the midpoint of the tail in the x and y directions respectively, and Itotal is the total inertia of the system including the inertia of the fluid surrounding the body and the inertia of the body and tail fin. It must be stressed that this model is quite simplified but does perform relatively well as compared to empirical results (Mason et al., 1999, 2000).

A model of a three segment fish based on previous work by Kelly et al. (1998), Mason et al. (1999, 2000) and Morgansen et al. (2001, 2002) has been implemented. This model allows various swimming gaits to be studied as related to the forces required to generate propulsion. Three segments model the fish - the body, the peduncle and the tail. The body segment of the fish can be modeled as a rigid body and is connected to the tail by the peduncle a slender segment of generally negligible hydrodynamic influence (Mason et al., 2000). Motion is analyzed only in two dimensions of the horizontal plane, thus allowing a simplified analysis of the thrust generated. The direction of intended travel (longitudinal to the fish body) is referred to as the x direction. Travel in the lateral direction is referred to as travel in the y direction. Values required for the evaluation of the thrust generated can be derived using the Kutta-Joukowski theorem and assuming that the tail hydrofoil is in a quasi-steady uniform flow with the overall velocity being implied by the instantaneous velocity of the foils quarter-chord point (Kelly et al., 1998, Mason et al., 1999, 2000, Morgansen et al., 2001, 2002). The drag forces acting on the tailfin can be estimated using Lanchester-Prandtl wing theory. In total, the model takes into account the following considerations: quasi-static torque generated around the midpoint of the tail, total drag moment acting on the body, the moment added by mass forces, lift, drag force acting on the body and fin, and additional mass forces due to acceleration effects. Due to simplifications with the model, the special spatial structure of the wake has been ignored. Vortices shed from the tailfin are treated as if they are swept away and become immediately very distant. Hydrodynamic interactions between the different components (fin, peduncle, and body) are ignored. Forces on the peduncle are also ignored. The model is characterized by ten states: 1 , 2 , x , y , & & & & & , 1 , 2 , x , y , and . Note that the last five states are the time derivatives of the first five states. 1 is the angle of the peduncle joint with respect to the longitudinal axis of the body, 2 is the angle of the tail with respect to the longitudinal axis of the body, x is the position of the

BEHAVIOUR SELECTION

In order to optimize the hydrodynamical model for different behaviours, fitness criteria must be selected. One way in which to select gaits is to use those which would hypothetically lead to a higher survival value for the organisms which are being modelled. Two behaviours were chosen: escape gait and normal swimming (most efficient gait). An escape gait has survival value for an organism since it must be able to quickly escape from predators in order to avoid being harmed. The other behaviour, normal swimming, is important due to the fact that an everyday locomotion gait must be energy efficient. Minimizing energy use during normal swimming increases survival value since less energy is required and therefore less energy needs to be inputted into the system in the form of calories. 4.1 NORMAL SWIMMING BEHAVIOUR FITNESS FUNCTION

Normal swimming can be characterized as a low amplitude oscillation having a duration of more than 10s (Domenici et al., 1997). Therefore, the fitness criterion for measuring normal gait was the distance travelled in 10

seconds subject to a penalty on inefficient gaits. Efficiency is calculated by relating an input signal to its power via:

Fitnessescape = displaceme nt y pescape

power =

(t )

dt

Note that this fitness function enforces that the fish travel 90o as much as possible from the direction that it was previously travelling. This type of behaviour can be considered representative given information regarding escape bends (Domenici et al., 1997). Note that the direction of the turn as described in the fitness function is not predetermined. A 90o turn to the left or the right is equally valid. Obtaining an optimum gait for the opposite direction from the resultant gait obtained through the fitness function is simply a matter of negating the amplitudes of the inputted gaits to the model. In this way, optimum turning gaits may be found for turns in either direction. With the two fitness functions characterized (escape and normal swimming), an optimization may now be performed in order to determine the optimal gaits for each fitness function.

Therefore, the fitness criterion was:


Fitnessnormal = displacement x powerinputted

The objective is to maximize the fitness subject to a penalty on movement in the lateral direction since only forward moving gaits were considered. This is done through the implementation of a penalty function which is taken as:
pnormal = displacementtotal displacement x powerinputted

MODEL OPTIMIZATION

Therefore, the fitness function to be maximized then becomes:


Fitnessnormal = displacementx pnormal powerinputted

Previous work by Barrett (2002) indicates that genetic algorithms can be an effective means from which to obtain swimming gaits. However, this previous work inputted gaits obtained by the genetic algorithm directly into the experimental apparatus. This project attempts to obtain optimal gaits under separate objectives, entirely in simulation (mathematically). The simulation is obtained from generating the requisite equations of motion and then performing a subsequent optimization. 5.1 GENETIC ALGORITHMS

4.2

ESCAPE BEHAVIOUR FITNESS FUNCTION

The escape behaviour objective was determined by obtaining the farthest lateral distance travelled within a given small time period. Fast fish starts are characterized as an escape response when movement occurs for less than 1 second after an escape stimulus has been evoked (Domenici et al., 1997). A C or S-shaped bend is normally produced towards the stimulus effectively pushing the fish away from the stimulus (Budick et al., 2000). This bend generally produces a very quick turn away from the stimulus. Therefore, the following equation was taken to characterize the fitness criterion:
Fitnessescape = displacement y

John Holland defined genetic algorithms in his seminal book Adaptation in Natural and Artificial Systems (Holland, 1975). Holland contended that the concepts of biological evolution could serve as a metaphor for artificial systems. Genetic algorithms use the concept of survival of the fittest by randomly initializing a population of individuals, where each individual contains the parameters to a possible solution of a global optimization problem. Each individual of the population is assigned a fitness value that objectively indicates its quality as a solution to the problem based on its parameters (Holland, 1975). Individuals are then selected to become parents based on their fitness to form the next generation of potential candidate solutions to the problem. New potential solutions are formed from the creation of child solutions via the metaphors of genetic crossover and mutation. The initialization step of the genetic algorithm, whereby random solutions to the problem are generated, effectively samples the possible set of solutions. From this initial set of random solutions, the most promising ones are given the chance to pass parts of their genetic string into the next generation. In this way, the overall population moves

This objective is to maximize the criterion subject to a penalty on the distance travelled in the forward direction via the following penalty function:

p escape = displacement total displacement y


This leads to the following overall fitness function to be maximized for escape behaviour:

towards the optimum. A thorough treatment of genetic algorithms may be found in Goldberg (1989), Holland (1975) and Mitchell (1996). 5.2 GENETIC STRING ENCODING

10 runs of the algorithm would be performed in order to gauge its performance.

6
6.1

RESULTS
FIRST VERSION OF GENETIC ALGORITHM

Solutions to this problem were taken to be of the form:

& & = sin(t + )


This was assumed to be the optimal form from a separate non-linear analysis (Morgansen et al., 2001, 2002). This allows a parameterization of the solution into a genetic string representation. There are six parameters inputted for optimization (three each for the peduncle and tail) - the amplitude (), frequency () and phase of oscillation ( ). Since the phase angles can be thought of as specifying a phase difference between the peduncle and tail fin, one of the phases specified is redundant. Therefore, only one phase angle was inputted to the system with the other phase angle always assumed to be 0. Further, since it is biologically implausible to have the peduncle and tail joints oscillating at different frequencies (), one of these inputs was eliminated so that both joints oscillate at the same angular frequency. Thus, the inputs to the model were reduced from six to four parameters. The parameters in the genetic string can be thought of as forming a 4-D state space of possible combinations of solution vectors. Each solution vector can be thought of as representing an individual fish with the associated swimming gait defined by the parameters of the vector. 5.3 GENETIC ALGORITHM (GA) IMPLEMENTATION

The parameters for the highest fitnesses found for the escape behaviour were:
Fitness 1 2 3 *4 5 6 7 8 9 10 High Low Mean Median Std Dev. 4.50 7.14 12.30 12.40 11.20 11.08 12.26 11.40 11.18 11.79 12.40 4.50 10.52 11.30 2.60 # gens 27 136 108 107 94 78 140 72 106 67 140 27 93.50 100.00 33.90

peduncle
0.97 2.40 2.37 2.39 2.35 2.35 2.39 2.39 2.40 2.39 2.40 0.97 2.24 2.39 0.45

15.80 11.90 15.20 15.20 15.00 15.24 15.25 15.38 15.03 15.24 15.80 11.90 14.92 15.22 1.09

2.08 0.50 3.62 3.62 3.47 3.56 3.63 3.64 3.48 3.58 3.64 0.50 3.12 3.57 1.03

tail
2.39 1.22 2.39 2.39 2.40 2.36 2.39 2.39 2.37 2.39 2.40 1.22 2.27 2.39 0.37

* best run The resultant input of the optimal gait (gait 4) into the hydrodynamical model is shown in Figure 2 with the progress of the GA run shown in Figure 3.
3 x displacement (m) y displacement (m) theta (rad)

Two versions of the genetic algorithm were attempted. The first version used a random initial population, floating point representation, population size of 50, rankbased selection, crossover with probability 85% and mutation with probability 5%. The second version of the genetic algorithm used the same parameters as the first version except for the use of a crossover blending operator instead of the traditional real-valued crossover. Elitism was also used for both versions of the genetic algorithm with the percentage of the population retained set at 15%. Therefore, the top 15% of each generation was allowed to pass to the next generation without being subject to crossover or mutation with the remaining individuals being created having an 85% probability of crossover and a 5% chance of mutation. The convergence criterion was set so that the GA terminated when the best individual found up to that point remained unchanged for 25 generations. Since the genetic algorithm is a stochastic method which does not guarantee finding an optimum and most likely returns different answers for each run, it was decided that

-1

-2

-3

-4

-5

0.1

0.2

0.3

0.4

0.5 time (s)

0.6

0.7

0.8

0.9

Figure 2: GA 1st version, optimal escape behaviour.

14

Fitness
12

# gens 95 80 75 67 170 92 169 70 118 89 170 67 102.50 90.50 38.22

peduncle
0.03 0.06 0.01 0.05 0.02 0.01 0.00 0.04 0.05 0.04 0.06 0.00 0.03 0.03 0.02

15.80 15.90 16.00 15.60 16.00 15.80 15.90 15.80 15.90 15.90 16.00 15.60 15.86 15.90 0.12

3.00 3.06 3.15 2.95 3.06 3.03 2.93 3.08 3.08 3.07 3.15 2.93 3.04 3.06 0.07

tail
0.01 0.06 0.01 0.02 0.01 0.01 0.00 0.04 0.04 0.03 0.06 0.00 0.02 0.01 0.02

1 2 *3 4 5 6 7 8
Best Individual Population Average Final Fitness=12.3601 ap=2.3934 W=15.2038 p=3.6241 at=2.3929 0 20 40 60 Generation 80 100 120

489.00 215.00 560.00 348.00 536.00 555.00 544.00 293.00 273.00 343.00 560.00 215.00 415.60 418.50 134.21

10

8 Fitness 6 4

9 10 High Low Mean Median Std Dev.

Figure 3: Progress of GA 1st version, escape behaviour. The gaits found via the GA optimization for the escape behaviour all have very large amplitudes () at or near the maximum bounds for the amplitude parameters. This indicates that for escape behaviour, these two parameters should be at their respective maximums. Therefore, the upper-bound for these parameters should be set at values which correspond to physical limits for the motion produced. As well, the angular frequency () was found to be at approximately the same value for each run It is noted from Figure 2 that the amount of turning achieved by this gait was very small. This comes as no surprise due to the assumptions inherent in the model of the fish. By modeling only three rigid segments, a quick turn is not easily generated. Quick escape-type turns in fish are generated through a large C-shaped bend in the body. Assuming a threesegment fish body makes achieving the forces required in order to create a sharp turn in the water difficult. As can be seen in Figure 2, the displacement in the y direction is very small. It is quickly overtaken by the displacement in the x direction. This would indicate that either this model is not a good one in order to study escape type bends or that the fitness criterion is not appropriate. The GA criterion for efficient swimming was also run 10 times in order to gauge the performance of the algorithm. The optimal results of the GA runs for the efficient swimming criterion were:

* best run Note that the values indicating the amplitude of the gaits produced at the joints is significantly smaller than those found for the escape behaviour. This is as expected since large amplitude gaits were penalized by the GA because of their energy requirements. We can see that the gaits found are all small amplitude, high frequency gaits as was expected. As well, as can be seen in Figure 4, the swimming trajectory of the optimal gait (gait 3) is in the forward direction with little or no movement in the lateral (y) direction as expected. The progress of the GA optimization for the optimal run is shown in Figure 5.
0.07 x displacement (m) y displacement (m) theta (rad) Fitness=559.7922 ap=0.0097163 W=15.9655 p=3.1458 at=0.0067468

0.06

0.05

0.04

0.03

0.02

0.01

-0.01

5 Time (s)

10

Figure 4: GA 1st version, optimal normal gait.

600

Fitness *1 12.53 6.71 11.17 7.07 7.04 11.94 11.90 12.47 5.94 8.32 12.53 5.94 9.51 9.74 2.72 2 3 4
Best Individual Population Average Final Fitness=559.7922 ap=0.0097163 W=15.9655 p=3.1458 at=0.0067468

# gens 198 198 99 222 137 208 258 146 58 36 258.00 36.00 156.00 172.00 73.56

peduncle
2.383 2.390 2.286 2.398 2.339 2.371 2.288 2.398 0.546 2.075 2.40 0.55 2.15 2.36 0.57

15.166 12.047 15.156 11.941 11.902 15.145 15.178 15.202 15.269 15.426 15.43 11.90 14.24 15.16 1.58

3.674 0.337 3.584 0.481 0.529 3.547 3.566 3.673 3.588 3.637 3.67 0.34 2.66 3.57 1.53

tail
2.391 1.108 2.346 1.181 1.237 2.399 2.392 2.388 1.936 2.256 2.40 1.11 1.96 2.30 0.56

500

400

5 6 7 8 9 10 High Low Mean Median Std Dev.

300 Fitness 200 100 0 -100 0

10

20

30

40 Generation

50

60

70

80

Figure 5: Progress of GA 1 version, normal gait. 6.2 SECOND VERSION OF GENETIC ALGORITHM USING CROSSOVER BLENDING

st

* best run The resultant input of the optimal gait (gait 1) into the hydrodynamical model is shown in Figure 6 with the progress of the GA run shown in Figure 7.
4

A second version of the GA optimization added the use of a blended crossover operator in an attempt to obtain even higher fitness solutions. The previous crossover operator cuts the solution chromosome only at the boundaries between solution parameters. This creates a child that is made up strictly of parts of each parent solution. The blended crossover operator adds another parameter that is chosen randomly. Instead of directly cutting the solution chromosome at the boundaries between parameters, a site within one of the parameters (between boundaries) may be chosen. All parameters other than the one cut are made up of the two parent solutions much in the same way as the previous crossover described. However, the solution parameter of the child at the crossover point is composed of a randomly chosen weighted sum of the two parents for this given parameter. Therefore, the child solution is composed of the first parent up to the crossover point, a linear combination of the first and second parent at the crossover point, and then the rest of the second parent making up the child solution (Mitchell, 1996). It was hoped that such a crossover technique would add more exploratory type characteristics to this real-valued GA. By combining weighted sums of a single parameter in each child solution, we are effectively adding new genetic material into the search. This can also be thought of as a form of crossover with a directed mutation (Mitchell, 1996). The gaits obtained for the escape behaviour were as follows:

-1

-2 x displacement (m) y displacement (m) theta (rad) Fitness=12.5337 ap=2.3835 W=15.166 p=3.6741 at=2.3906 0 0.1 0.2 0.3 0.4 0.5 Time (s) 0.6 0.7 0.8 0.9 1

-3

-4

-5

Figure 6: GA 2nd version optimal escape behaviour.

14

12

10

8 Fitness

Note that the fitness measure is generally higher for the blended crossover operator than for the previous algorithm version. This may be explained by the more exploratory aspects of this crossover operator. Based on the data obtained, it would appear that the blended crossover operator is superior to the previous standard crossover operator given the efficient gait criterion. The result of the optimal gait (gait 8) when inputted into the model are shown in Figure 8 with the progress of the GA optimization shown in Figure 9. Notice that the trajectory of x, y and are similar to those presented in Figure 4.
0.06 x displacement (m) y displacement (m) theta (rad) Fitness=635.6125 ap=0.0095125 W=15.9898 p=3.1148 at=0.0032824

Best Individual Population Average Final Fitness=12.5337 ap=2.3835 W=15.166 p=3.6741 at=2.3906 0 20 40 60 80 100 Generation 120 140 160 180 200

0.05

0.04

Figure 7: Progress of GA 2nd version, escape behaviour. A slightly higher fitness was obtained using this modification. However, note that the results of the runs using blended crossover were not significantly different from those of the previous algorithm version for escape behaviour. This is to be expected since for the previous version, most parameters were at their upper bounds. Since this will also likely be the case for any other algorithm modification, it is not surprising that the results of the runs were very similar to those obtained in the previous version. For the normal swimming gaits, the following gaits were obtained using the blended crossover operator:
Fitness 1 2 3 4 5 6 7 *8 9 10 High Low Mean Median Std Dev. 519.00 254.00 307.00 513.00 605.00 433.35 376.48 635.61 477.16 486.83 635.61 254.00 460.74 482.00 121.42 # gens 177 92 81 116 89 143 78 54 166 266 266.00 54.00 126.20 104.00 63.45

0.03

0.02

0.01

-0.01

5 Time (s)

10

Figure 8: GA 2nd version optimal normal gait.


700

peduncle
0.016 0.064 0.038 0.016 0.012 0.035 0.045 0.010 0.027 0.025 0.06 0.01 0.03 0.03 0.02

15.900 15.900 15.800 15.900 15.900 15.987 15.949 15.990 15.974 15.978 15.99 15.80 15.93 15.92 0.06

3.010 3.040 3.400 3.040 3.010 3.049 2.876 3.115 2.990 3.037 3.40 2.88 3.06 3.04 0.13

tail
0.010 0.043 0.034 0.010 0.004
Fitness

600

500

400

0.011 0.015 0.003 0.010 0.011 0.04 0.00 0.02 0.01 0.01

300

Best Individual Population Average Final Fitness=635.6125 ap=0.0095125 W=15.9898 p=3.1148 at=0.0032824

200

100

-100

10

20

30 Generation

40

50

60

* best run

Figure 9: Progress of GA 2nd version, normal gait.

Results from both fitness criteria would suggest that the blended crossover operator does in general provide higher fitness solutions than the previous crossover operator.

D.E.Goldberg, 1989. Genetic algorithms in search, optimization, and machine learning. Don Mills, ON: Addison-Wesley Pub. J. Gray, 1968. Animal Locomotion. New York, USA: W.W. Norton & Company, Inc. J.H. Holland, 1975. Adaptation in Natural and Artificial Systems. Don Mills, ON: The University of Michigan Press. S.D. Kelly, R.J. Mason, C.T. Anhalt, R.M. Murray, J.W. Burdick, Modelling and Experimental Investigation of Carangiform Locomotion for Control. Proc. Amer. Contr. Conf., pgs 1271-1276, 1998. P.D. Kuo, Evolution of a Neural Pattern Generator for Carangiform Locomotion. SYDE 461/462 Report, University of Waterloo, ON, 2003. R. Mason, J.W. Burdick, Construction and Modelling of a Carangiform Robotic Fish. International Symposium on Experimental Robotics, Sydney, Australia, 1999. R. Mason, J.W. Burdick, Experiments in Carangiform Robotic Fish Locomotion. Proc. IEEE Int. Conf. on Rob. Aut., pg. 428-35, 2000. M. Mitchell, 1996. An Introduction to Algorithms. Cambridge, USA: The MIT Press. Genetic

CONCLUSIONS

By creating a hydrodynamical model of a fish, and suitable fitness functions for the different criteria of interest, genetic algorithms may be used as a method for obtaining gaits for underwater locomotion. As well, for this specific application of the genetic algorithm, the crossover blending operator gives higher fitness solutions than the traditional real-valued crossover operator. This is most likely due to the operators increased ability to explore the search space by combining values of the two parents to form a new parameter at the cut location. Future Work Future work will focus on generating an extended hydrodynamic model with more segments than the three currently implemented. This should allow more effective sharp turning motions to be generated. As well, this allows comparisons between the two models showing the efficacy of modeling carangiform motion using three segment models. Further modifications to the genetic algorithm will also be studied such as the effects of population size, elitism and different convergence criteria. Acknowledgments The authors would like to acknowledge Chris Eliasmith for his help in formulating the hydrodynamical model of the fish. References J.M. Ahlborn, D.G. Harper, R.W. Blake, D. Ahlborn, M. Cam. Fish without footprints. J Theor Biol., 148:521533, 1991. D. Barrett. Optimization of Swimming Locomotion by Genetic Algorithm. in NeuroTechnology for Biomimetic Robots, edited by J. Ayers, J.L. Davis, and A. Rudolph. London: MIT Press, 2002. C.M. Breder. The Locomotion of fishes. Zoologica, 4:159-297, 1926. S.A. Budick, D.M. OMalley. Locomotor Repertoire of the Larval Zebrafish: Swimming, Turning and Prey Capture. Journal of Experimental Biology. 203, 25652579, 2000. P. Domenici, RW. Blake, 1997. The Kinematics and Performance of Fish Fast-Start Swimming. The Journal of Experimental Biology, 200, 1165-1178.

K.A. Morgansen, V. Duindam, R.J. Mason, J.W. Burdick, R.M. Murray, Nonlinear Control Methods for Planar Carangiform Robot Fish Locomotion. Proc. IEEE Int. Conf. Rob. Aut., 2001. K.A. Morgansen, P.A. Vela, J.W. Burdick, Trajectory Stabilization for a Planar Carangiform Robot Fish. Proc. IEEE Int. Conf. Rob. Aut., 2002. G.S. Triantafyllou, M.S. Triantafyllou, M.A. Grosenbaugh. Optimal thrust development in oscillating foils with application to fish propulsion. J Fluid Struct., 7:205-224, 1993.

You might also like