A Methodology of Modelling Fish-like Swim Patterns for Robotic Fish
ABSTRACT This paper presents a novel modelling methodology for our robotic fish, which considers the relative movement of the tail to the head in order to model variable swimming patterns for robotic fish. It deduces a tail motion function from a fish body motion function and then uses multiple joints to approximate the tail motion function. Three basic swim patterns are modelled and some experiment results are presented to show its feasibility and performance. The proposed method can be used as a general method for any multiple-joint robotic fish.
Article: Note on the swimming of slender fishJournal of Fluid Mechanics. 01/1960;
Conference Proceeding: Mimicry of Sharp Turning Behaviours in a Robotic Fish.Proceedings of the 2005 IEEE International Conference on Robotics and Automation, ICRA 2005, April 18-22, 2005, Barcelona, Spain; 01/2005
Control Performance in the Horizontal Plane of a Fish Robot with Mechanical Pectoral Fins. 2000. IEEE Journal of Oceanic Engineering 25 121-129..
A Methodology of Modelling Fish-like Swim Patterns for
Jindong Liu and Huosheng Hu
Department of Computer Science, University of Essex, Colchester CO4 3SQ, U.K.
Email: firstname.lastname@example.org, email@example.com
Abstract—This paper presents a novel modelling methodology
for our robotic fish, which considers the relative movement of the
tail to the head in order to model variable swimming patterns for
robotic fish. It deduces a tail motion function from a fish body
motion function and then uses multiple joints to approximate
the tail motion function. Three basic swim patterns are modelled
and some experiment results are presented to show its feasibility
and performance. The proposed method can be used as a general
method for any multiple-joint robotic fish.
Index Terms—Robotic fish, swim patterns, modelling methodol-
The astonishing swimming abilities of fish has inspired
many researchers to work on a new kind of aquatic man-made
robotic systems, namely Robotic Fish. Up to now, majority of
research work has been focused on the fish-like propulsion
mechanism , the fin material , remote operation and
multi-agent cooperation and the mechanical structures .
Although several basic swim movements, called swim pat-
terns, have been realized on robotic fish, little research work
has been done to give a general methodology to describe
how to model variable swim patterns. In this paper, a novel
modelling methodology is proposed to realize the fish-like
swim patterns in our robotic fish. It first considers the relative
movement of the tail to the head and gives an integrated idea
to model variable swimming patterns for robotic fish.
The rest of this paper is organized as follows. Section II
presents the structure of the proposed methodology, the content
of each module and the relationship between them. Section III
addresses three examples which use the methodology to model
three swim patterns. In Section IV, an evaluation system is
first given to evaluate the modelling performance in robotic
fish. Then the experimental results are presented to show the
feasibility and performance of three modelled swim patterns.
Finally, conclusions and future work are given in Section V.
II. METHODOLOGY OF MODELLING SWIMMING PATTERNS
The centre issue of modelling fish swimming patterns for
robotic fish is to describe the swim pattern by the tail motion
relative to the head because all swim patterns have to be imple-
mented through movement of tail joints which move relative
to the fish head. To realize fish-like swimming patterns, we
proposed a modelling methodology as shown in Fig. 1. The
body motion function fB(x,t) of a specific swim pattern is
obtained from biologists, which models the movement of a
Body motion function
Tail motion function
relative to head
gestures by tail joints
Discrete Tail motion
function into several
Build up Lookup table
of one cycle motion of
Build up joint function
to approximate the
cycle motion of joints
Methodology of modelling robotic fish swim patterns
whole fish body during swimming. The tail motion function
fT(x,t) is deduced by subtracting a linear function of head
swing from the body motion function. It is a relative motion
function between the fish tail and its head. The purpose of
generating tail motion functions is to control the tail joints to
move in a reference frame, i.e. a head fixed frame, because
the interesting part to control is the tail section rather than the
whole fish body.
The basic idea of reproducing fish swim patterns on a
robotic fish is to apply multiple mechanical joints on the
tail to generate the similar tail motion as a real fish does.
However, it is difficult and even impossible to deduce the
analytic solution of the joint motion function from the tail
motion function because of the difficulties of solving a number
of sine functions, e.g., fB(x,t), and polynomial functions, e.g.,
the constraints of the joint length. So a digital approximation
method was proposed in . In this method, the tail motion
function in one period is discretized into M tail gestures
hT(x,i)(i = 0...M −1) against time. Fig. 2 gives an example
of tail gestures of a cruise-in-straight swim pattern. In this
1-4244-0828-8/07/$20.00 © 2007 IEEE.
Proceedings of the 2007 IEEE
International Conference on Mechatronics and Automation
August 5 - 8, 2007, Harbin, China
( , )
Th x i
the head fixed coordinate system.
Tail gestures, i.e., the discretized tail motion function hT(x,i) in
way, we can mimic the fish swimming by approximating each
tail gesture with the rigid linkages between the joints.
Figure 3 shows an example of approximating a tail gesture
hT(x,i) with four joints. There are four linkages, i.e., (I, II, III,
IV), between the joints. (xi,yi)(i = 0...3) show the position
of four joints. (x4,y4) shows the endpoint of the last linkage.
pi,j(j = 1...4) are the slope angles of the linkages. qi,j(j =
1...4) are actual control angles, i.e. turn a joint relative to its
anterior linkage. For example, qi,3 means the turning angle
of the 3rd joint (at (x3,y3)) relative to the linkage II for the
tail gesture hT(x,i). Thus, the approximation result for a tail
motion function fT(x,t) can be denoted as qi,j(i = 0...M −
1,j = 1...K), here K is the total number of joints and M is
the number of gestures.
In practice, two methods can be applied to control the joints
to turn according to the approximation result qi,j. The first
method is a lookup table method. A lookup table is built to
contain all the turning angles of qi,j(i = 0...M−1,j = 1...K).
The servo equipped in each joint is controlled to turn by
following qi,jone by one. This method is easy to implement.
However, it is hard to revise qi,jduring online learning because
the lookup table is constituted by at least 32 knots of each
joint to guarantee the smooth approximation. It has to revise
the parameters of fT(x,t) in order to change qi,j. The second
method is to build a joint motion function qj(t) which is a
non-linear regression of qi,j(i = 0...M − 1). qj(t) can be a
polynomial function or other non-linear functions, e.g., sine
function. Thus, it is convenient to adapt the parameter of
swim patterns because qj(t) has limited parameters and is
readily twisted online. See Section III-A for the details of
the regression procedure.
For different swim patterns, the body motion function also
varies. Because most previous research has focused on cruise
straight, the body motion functions of all other swim patterns
have not been explored so far. To study these swim patterns,
we model cruise-in-turning modelled by revising the body
motion function of cruise straight. For the sharp turn swim
pattern, there isn’t any body motion function revealed by
biologists. It is modelled directly from a tail motion function
based on our observation of real fish turning.
III. IMPLEMENTATION SWIM PATTERNS
In our implementation, we divide the carangiform fish
swimming motion into several basic swim patterns based
000.05 0.050.1 0.10.150.15 0.20.20.250.25
y (m)−tail undulation amplitude
the connection between fish head and tail. (xi,yi) is the joint position. It
supposes that the tail has four joints in total.
An example of tail gesture approximation. The original point is
on the observation from biologists and ourselves. We will
implement the methodology to realize following swimming
• Cruise straight: The fish swims along a straight line
at a constant speed, possibly with small accelera-
tion/deceleration (|a| < 0.3L/s2, L is the length of fish
body). Cruise straight belongs to periodic swimming. It
can be modeled by a time-variant traveling wave function
and implemented by approximating the function with the
tail joints. See details in Section III-A.
• Cruise-in-turning: The fish turns at a small angular speed
(|ω| < 0.5rad/s) but at a constant linear speed. It is one
of periodic swimmings and modelled by the same time-
variant traveling wave function as cruise straight except
that a time-invariant offset wave is added onto the wave
function. The approximating method with tail joints is
also used for this swim pattern. See details in Section
• Sharp turn: The fish generates a brief and sudden angular
acceleration to avoid predators or obstacles. There are
two main types of sharp turn according to the fish body
shape: C-shape and S-shape. In the biology literature,
there is a term “Fast start” which is divided to two basic
motions here: sharp turn and burst. sharp turn is an
unsteady movement. C-shape sharp turn is modelled by
a novel time-variant circle function and S-shape sharp
turn hasn’t been modelled by anyone yet. In terms of
practical implementation, the approximating method is
applied. See details in Section III-C.
In summary, cruise straight and cruise-in-turning are ex-
amples of periodic swimming, while sharp turn represents
A. Cruise Straight Swim Patterns
The motion of a fish body during cruise straight could
be described by a travelling wave (1), which was originally
suggested by  and is widely used in robotic fish research.
The parameter of the fish travelling wave changes depending
on the fish types and its kinetics status in water. Here we have
the fish body motion function:
y = fB(x,t) = (c1x + c2x2)sin(kx + ωt)
where the original point is set as the conjunction point between
fish head and tail. y is the transverse displacement of a tail
unit; x-axis is the centre line of the undulation wave of Cruise
Straight; k =2π
c1is the linear wave amplitude envelope; c2is the quadratic
wave amplitude envelope; ω = 2πf is the wave frequency; t
is the time.
Fig. 4 shows an example of the fish body function. It shows
that the fish undulates its tail to generate the propulsion wave.
Following the methodology in Section II, the body motion
function must be converted into the tail motion function before
the digital approximation. Assume the fish head part, from the
nose tip to x = 0 point, is rigid and the gradient of the head
is the same as the derivative of Equation (1) at x = 0. Then
the tail movement relative to the head could be expressed by
subtracting a linear function y = c3x, here c3is the gradient
of head swing, from the body motion function (1). c3can be
calculated as the first-order derivative of fB(x,t) at x = 0,
(c1x + c2x2)kcos(kx + ωt)|x=0
λis the wave number; λ is the wave length;
B(x,t)|x=0= (c1+ 2c2x)sin(kx + ωt)+
So the tail motion function corresponding to Equation (1)
fT(x,t) = fB(x,t) − c3x
= (c1x + c2x2)sin(kx + ωt) − c1xsin(ωt)
Comparing Fig. 4 and Fig. 5, it is noticeable that the
amplitude of the relative motion is larger than the one of
body motion. In other words, the tail has to undulate itself
with a bigger amplitude than the observed one to achieve the
swimming wave because the head sways during swimming.
This is a KEY consideration when reproducing real fish
swimming on a robotic fish.
After obtaining the tail motion function fT(x,t), the dig-
ital approximation can be done and the joint angle qi,j is
calculated (see Fig. 6) given the tail length: [l1,l2,l3,l4] =
In our practical realization of the robotic fish, the series of
joint angle qi,jis regressed to a time-dependent function qj(t),
where j is the index of joints. Because qj(t) must be periodic
in periodic swimming and its shape is similar to a sine function
(see Fig. 6), so it can be represented by the Fourier series:
an,jsin(nωt + ϕn,j)
Generally, only the first index in Equation (4) is chosen to
simplify our online learning. The 1st phase of first joint, ϕ1,1,
is set to zero without losing generality. So the form of the
joint angle to be controlled can be written as follows:
qj(t) = ajsin(ωt + ϕj),j = 1...K
−0.0500.05 0.1 0.150.20.25
(c1=0.3 c2=0 k=13.6 ω=−2π/9)
Fig. 4.An example of body motion function.
−0.0500.050.10.15 0.2 0.250.3
(c1=0.3 c2=0 k=13.6 M=18)
Fig. 5. The approximation result of a 4-joint tail for cruise straight
B. Cruise-in-Turning Swim Patterns
When a fish is performing Cruise-in-turning, its body
motion function can be modelled by the sum of the body
motion function of cruise straight and a deflected centre curve,
denoted as d(x). So the undulation centre of the tail movement
becomes a curve rather than a straight line as in cruise straight,
as shown in Fig. 7. However, nobody has shown the form of
d(x). Based on our observation of fish swimming, we assume:
d(x) = d1xd2,d2> 1,x > 0
where d2 is the curvature factor to control the curvature of
the deflected centre and d1 is the direction factor to control
the turning direction, which is also proportional to the turning
angle when d2is fixed.
Therefore, the body motion function of cruise-in-turning
can be written as follows:
y = fB(x,t) = (c1x + c2x2)sin(kx + ωt) + d1xd2
where all the parameters have a similar definition to Equation
(1). Actually, it can be viewed as the uniform body motion
equation of cruise straight and cruise-in-turning because it is
exactly equal with (1) when d1= 0.
Following the methodology in Section II, the tail motion
function corresponding to Equation (7) can be written as:
fT(x,t) = fB(x,t) − c3x
= (c1x + c2x2)sin(kx + ωt) + d1xd2− c1xsin(ωt)
After getting the tail motion function fT(x,t), the digital
approximation can be done and the joint angle qi,jis calculated
(see Fig. 8) for practical control. Similar to cruise in straight,
in practical terms of cruise-in-turning on our robotic fish, the
joint angle qi,jis regressed to a time-dependent function qj(t):
qj(t) = ajsin(ωt + ϕj) + bj,j = 1...K
C. C-shape Sharp Turning Swim Patterns
Sharp turning has mainly two kinds: C-shape and S-shape.
We first consider the C-shape in which fish bends its tail
quickly to one side and the tail shape like a “C” during the
Fig. 9 is a C-shape sharp turn sequence recorded from
an adult carp . The shape changing of the tail during a
sharp turning can be imagined like that the fish embraces a
virtual circle using its flexible tail (see details in our another
paper ). The virtual circle changes its centre and radius
against the turning time. The circumference of the virtual
circle determines the tail shape. Based on this observation, a
circle function (10) can be written in the head-fixed coordinate
(c1=0.3 c2=0 k=13.6 M=18)
The joint angle calculated by the digital approximation method for
Fig. 7.Model for Cruise-in-turning
(c1=0.3 c2=0 k=13.6 M=18 d1=1 d2=2)
cruise in right turning
The joint angle calculated by the digital approximation method for
system. See Fig. 10 for the shape of a virtual circle (in dash
(x − xc(t))2+ (y − yc(t))2= y2
where xc(t) and yc(t) form the changing of the circle centre in
terms of time. yc(t) is also used for the circle radius because
the virtual circle is always tangent to the x-axis. If we get the
function of xc(t) and yc(t), we can generate a series of circle
functions by discretizing time t into (0...M −1). These circle
functions can be viewed as tail gestures hT(x,i) (Fig. 2) of
the shape tuning. Then the digital approximation method can
be used to calculate the turning angles of joints in order to
approximate these gestures. Now, the question of modelling
the C-shape sharp turning is converted to how to find proper
functions of xc(t) and yc(t).
So, the form of yc(t) is proposed as Equation (11):
where k > 1, m > 1 are parameters to decide the feature of
the sharp turn such as the tail shape, the bending speed and
the maximum bending angle, etc.
So, xc(t) can be written as a second-order polynomial
equation of yc(t) as follows:
cy1+ (cy0− cy1)(t−t1)k
cy1+ (cy1− cy2)(t−t1)m
t ∈ [t0,t1)
t ∈ [t1,t2]
c(t) + a12yc(t) + a13
c(t) + a22yc(t) + a23
t ∈ [t0,t1)
t ∈ [t1,t2]
Fig. 9.A C-shape sharp turn sequence recorded from an adult carp 
(( ), ( ))
x t y t
Fig. 10. The virtual circle function of C-shape sharp turning and an example
of the approximation result.
where aijcan be calculated easily if given the coordinates of
point A, B and C.
An example of the trajectory of (xc(t),yc(t)) is shown in
Fig. 10. A series of virtual circle functions can be obtained
now from (xc(t),yc(t)). They are the tail gestures to ap-
proximate using the tail linkages. An approximate example
is displayed in Fig. 10. Fig. 11 presents the joint angle qi,j
against time. It is clear that there is a sharp increase in the
shrink stage (t < 15) and a slower decrease in the release
stage (15 < t < 35). The unit of time t is 50 ms.
IV. EXPERIMENTAL RESULTS AND ANALYSIS
In this section, each designed swim pattern is tested in our
real robotic fish, G9 series, including Green G9, Blue G9 and
White G9. The experimental tank is 5.5 m in length, 1.7 m in
width, and 1.7 m in height with 1.5 m water depth.
A. Evaluation System for Swim Patterns
Up to now, most robotic fish projects focused on the bio-
hydrodynamics mechanism of the cruise straight swim pattern.
The corresponding evaluation system  only considers
the factors related to the energy efficiency and the vortex
morphology generated from swimming. There are no factors to
describe fish-like swim patterns to mimic real fish motion apart
Fig. 11.The joint angle curve in a sharp turn.
from the cruise straight. It is necessary to build an evaluation
system to evaluate the performance of these swim patterns.
These criterion are selected based on two factors: (i) The
morphological feature of real fish swimming, i.e., evaluating
how well the robotic fish swims like a real fish. We believe that
the swim pattern of real fish is the optimal one after thousands
of years of evolution. Therefore, the robotic fish should swim
like a real fish. (ii) The kinematic characteristics of swim
patterns. They are the explicit factors to gauge the performance
of fish swimming. In details, the physical meanings of the
factors in the evaluation system are discussed as follows:
• Linear speed Vp is a kinematic factor to measure the
absolute linear speed of cruise straight. It is also a
basic factor to calculate the Strouhal number below. The
swimming speed of fish is often measured in body lengths
per second (BL/s), which is calculated by VBL= Vp/L,
where L is the body length of a robotic fish. VBL is
normally used to compare the maximum speed between
different robotic fish.
• Head swing factor Shis a morphological factor to eval-
uate cruise straight. It is the ratio between the amplitude
of the head tip undulation and the amplitude of the tail
tip undulation. Generally, for a carangiform Shshould be
in the range of 0.15 to 0.4. A large Shmeans that a large
amount of energy is wasted by the fish head in pushing
the water to sides. A small Sh indicates that the body
motion function (1) has wrong parameters and it can not
generate fish-like body motion.
• Strouhal number St is adapted from , which was used
to characterize the structure of vortex wakes released after
the fish tail. It is chosen as a morphological factor here
because it is a relative stable factor in range 0.25 to 0.40
 for fish representing subcarangiform, carangiform
and thunniform modes.
• Turning radius r is a kinematic factor for both cruise-
in-turning and C-shape sharp turning. It measures the
operating range during turning.
• Angular speed ωtand ωcare kinematic factors for cruise-
in-turning and C-shape sharp turning. They gauge the
change of fish heading in unit time.
0.50.6 0.70.8 0.91 1.11.2 1.3
Frequency f (Hz)
Swim speed (m/s)
Fig. 12. Relationship between swim speed and tail flapping speed
• Maximum bending angle βc is both a morphological
factor and a kinematic factor for C-shape sharp turning.
It is around 90 to 120 degrees in a real fish.
• Turning efficiency ηc is a kinematic factor for C-shape
sharp turning. From its definition of ηc= θc/βc, higher
ηc means that the robotic fish achieves a faster turning
speed by a smaller turning angle.
B. Periodic Swimming Pattern
For G9 robotic fish, when tail flapping frequency f = 0.5
Hz, linear speed Vp = 0.2 m/s, head swing factor Sh =
Ah/At= 0.07/0.2 = 0.35, Strouhal number St = fAt/Vp=
0.5 ∗ 0.2/0.2 = 0.5. It is clear that all morphological factors
lie in or near to the desired range. The cruise straight swim
pattern of the robotic fish is smooth and very similar to
a real fish. The relationship between f and Vp is shown
in Fig. 12, where the maximum linear speed is 0.53 m/s
and the corresponding body length speed VBL = Vp/L =
0.53/0.6 = 0.9. The turning radius r = 0.6 m and angular
speed ωt= 70/11 = 6.36◦/s.
C. Unsteady Swimming Movement
Fig. 13 plots the angular speed ωc and turning angle θc
against time t. The duration of sharp turning is about 2.5 s. In
the shrink stage, the turning speed increased to 130◦/s quickly
from beginning within 1 s, then the robotic fish started the
release stage, and finally the speed is decreased to 0◦/s. The
maximum turning angle is 105◦which is achieved at 2 s.
The final turning angle is about 80◦. This process is quite
similar to real fish sharp turning. The average angular speed
ωc= θc/(t2− t0) = 80/2.5 = 32◦/s. The turning efficiency
ηc= θc/βc= 80/120 = 0.67.
V. CONCLUSION AND FUTURE WORK
In this paper, a novel modelling methodology is developed
to realize fish-like swim patterns in our robotic fish. Three ba-
sic swim patterns are modelled and some experimental results
are presented to show its feasibility and good performance.
Our robotic fish has been in the public show in London
turning speed (deg/s), turning angle (deg)
Fig. 13. Performance of C-shape sharp turning
Aquarium since its successful launch on 6 October 2005, and
attracted thousands of visitors worldwide.
Our future work will be focused on modelling other swim
patterns, such as the S-shape shape turning and realize online
learning of control parameters.
This research is funded by London Aquarium. Our thanks
also go to Ian Dukes and George Francis at Essex for their
contribution toward the project.
 K. Naom. Control Performance in the Horizontal Plane of a Fish Robot
with Mechanical Pectoral Fins. IEEE Journal of Oceanic Engineering,
vol. 25(1), 2000:pp. 121–129.
 J. Witting, K. Safak, and G. Adams.
Biomimetic Underwater Robots. In J. Ayers, J. Davis, and A. Rudolph,
eds., Neurotechnology for Biomimetic Robots. MIT Press, 2001, pp. 117–
 J. Liang. Researchful Development of Underwater Robofish II- Devel-
opment of a Small Experimental Robofish. Robot, vol. 24(3), 2002:pp.
 J. Yu, S. Wang, and M. Tan.
Biomimetic Robot Fish and Its Realization. Robotica, vol. 23, 2005:pp.
 S. Guo, T. Fukuda, N. KATO, and K. OGURO.
Underwater Microprobe Using IMPF Actuator. In Proceedings of IEEE
International Conference on Robotics and Automation. IEEE, Leuven,
Belgium, May 1998, pp. 1829–1834.
 J. Liu and H. Hu. Building a Simulation Environment for Optimising
Control Parameters of an Autonomous Robotic Fish. In Proceedings of
CACSCUK. Sept 2003, pp. 317–322.
 M. J. Lighthill. Note on the Swimming of Slender Fish. J. Fluid Mech.,
vol. 9, 1960:pp. 305–317.
 I. L. Y. Spierts and J. L. V. Leeuwen. Kinematics and Muscle Dynamics
of C- and S-starts of Carp (Syprinus Carpio L.). Journal of Experimental
Biology, vol. 202, 1999:pp. 393–406.
 J. Liu and H. Hu. Mimicry of Sharp Turning Behaviours in a Robotic
Fish. In Proceedings of IEEE International Conference on Robotics and
Automation. Barcelona, Spain, April 2005, pp. 3329–3334.
 M. Sfakiotakis. Review of Fish Swimming Modes for Aquatic Loco-
motion. IEEE Journal of Oceananic Engineering, vol. 24(2), 1999:pp.
 G. S. Triantafyllou, M. S. Triantafyllou, and M. A. Grosenbaugh.
Optimal Thrust Development in Oscillating Foils with Application to
Fish Propulsion. Journal of Fluids and Structures, vol. 7, Feb. 1993:pp.
SMA Actuators Applied to
A simplified Propulsive Model of