iros04-15
TRANSCRIPT
-
7/30/2019 IROS04-15
1/6
Building a 3D Simulator for Autonomous
Navigation of Robotic FishesJindong Liu
Department of Computer Science, University of EssexWivenhoe Park, Colchester CO4 3SQ, U.K.
Email:[email protected]
Huosheng Hu
Department of Computer Science, University of EssexWivenhoe Park, Colchester CO4 3SQ, U.K.
Email: [email protected]
Abstract-- This paper presents a 3D simulator used for
studying the motion control and autonomous navigation of a
robotic fish. The simplified kinematics and hydrodynamics
models are created for the simulator, including many other
object models such as water, obstacles, sonar sensors and a
swimming pool. The experimental results show that the use of
this simulator is a realistic and convenient way to develop
autonomous navigation algorithms for robotic fishes.
I. INTRODUCTIONIn nature, fish has astonishing swimming ability afterthousands years evolution. Instead of the conventional
rotary propeller used in ship or underwater vehicles, theundulation movement provides the main energy of fish. Theobservation shows that this kind of propulsion is morenoiseless, effective, and maneuverable than the propeller-based propulsion. Recently, some researchers started tobuild an aquatic man-made robotic systems namely RoboticFish which could apply the fish-like swimming in order toexplore the fish behaviors, detecting the leakage of oilpipeline, sea bed exploration, mine countermeasures androbotics education, etc.
In 1994, the first robot fish named robotuna wasdeveloped by MIT [2]. After that, many researchers putforward several kinds of robot fish. The NorthwesternUniversity applied Shape Memory Alloy(SMA) on therobotic lamprey [4] which aimed to realize minecountermeasures. In Japan, Nagoya University developed amicro robotic fish using ICPF Actuator [5] and TokaiUniversity realized a robotic Blackbass [3] to research thepropulsion of pectoral fins. National Maritime ResearchInstitute in Japan developed many kinds of robotic fishprototypes from PF300 to PPF-09 [6] to exploit the up-down and effective swimming. The Mitsubishi HeavyIndustries built a robotic fish named coelacanth robot [16].
Most of previous research focused on thehydrodynamics mechanism of fishlike swimming, thespecial skin material and mechanical structure of roboticfish models. Although, autonomous navigation poses majorchallenge for a robotic fish, no research has been done up tonow. In order to study the fish-like motion control algorithm(MCA) and autonomous navigation algorithm (ANA) on arobotic fish, it is important to make a quantitative evaluationof the algorithm through many trials of experiments bychanging parameters. Although, we already have a realrobotic fish, making such trials is a difficult task in the realworld, and simulators are built to perform a virtualexperiment.
However conventional simulators such as MOBS [14]for mobile robots have some limitations. They are usually
used for 2D movement and their kinematics and dynamiticmodels are simple compared with robotic fishes because thecommon mobile robot takes no account of the interactionbetween itself and the locomotion medium-- air, while theinteraction between robotic fishes and water is one of themost important aspects for the robotic fish motion control.
Some researchers focused on the animation of a realfish, such as Tu [10] and William [11]. Their main aims arethe fish-like behaviors of artificial fishes but not MCA or
ANA. The fish models used in their animation are extractedfrom real fishes but not from robotic fishes. Up to now, no3D simulator has been built for the ANA of robotic fishes.We are the first group who try to build such kind ofplatform for the research of MCA and ANA of roboticfishes. Although we have not finished up it at all, theexperiments already showed its great value. Here, the 3Dsimulator is built up based on a four-joint robotic fish [9].
The rest of this paper is organized as follows. Section IIdescribes the aim, main challenges and supposedconditions. Section III addresses the creation of the roboticfish model and some relative models such as water,obstacles, sensors and the swimming pool. In section IV, the
simplified kinematics model and the hydrodynamic modelare proposed for the virtual robotic fish. Section V explainsthe computation flow of the simulator, which includes thefish status update and the collision detection. In Section VI,a preliminary experiment is carried out to verify thefeasibility and performance of the simulator. Finally, a briefconclusion and future work are given in section VII.
II. CHALLENGE AND CONDITIONSThe focus of this paper is how to simulate a robotic fish
to make it swim like a real fish and realize its autonomousnavigation. The main aims of our simulation work are:
To simulate the hydrodynamic model of a roboticfish, and understand the relationship between therobotic fish locomotion and the motion controlparameters of the joints.
To develop fish-like MCAs for the robotic fish, andrealize or mimic the real fish behaviors such asdecelerating/accelerating swim, constant swim,turning and hover.
To test the ANA in the robotic fish such as to avoidobstacle, to pursue a moving target, to swim in anappointed trajectory, etc
Compared with some traditional simulation work inrobotics, the simulator for robotic fishes encounters somespecial difficulties due to the different locomotion medium-water. Since water is an incompressible fluid, any
0-7803-8463-6/04/$20.00 2004 IEEE
Proceedings of 2004 IEEE/RSJ International Conference on
Intelligent Robots and Systems
September 28 - October 2, 2004, Sendai, Japan
613
mailto:[email protected]:[email protected]:[email protected]:[email protected] -
7/30/2019 IROS04-15
2/6
movement of a robotic fish will set the water surrounding itin motion and vice verse. The main challenges are:
The fishs swimming mechanism and mathematicalmodels are not very mature. There is not a simpleand direct method to compute the forces acting on aswimming fish.
The collision computation between robotic fishes orbetween a robotic fish and other objects is morecomplex than those in mobile robot simulationsbecause the body shape of a robotic fish is changingwhen swimming.
To deal with above challenges, this paper makes somesimplification on the simulation environment and supposefollowing preconditions:
The water in which robotic fishes swim is quasi-steady fluid. Most of fish swimming mechanismresearches quoted in this paper is based on thissupposition which also makes it easy to buildhydrodynamic model.
For a given parameter vector { },,, 21 kcc= (See(2)) for the movement of the robotic fish tail, thevalue and the direction of thrust force acting on therobotic fish are determined with no respect to thevelocity of the robotic fish.
The viscous drag is considered as the onlyresistance when the robotic fish swimming.
III. MODELING A ROBOTIC FISHThe whole simulator is built by OO programming
method. C++ is selected as the programming language andOpenGL is adopted for the animation display. The roboticfish used for the 3D simulator was purchased from CACIS
[9]. It has no onboard sensors. Figure 1 shows itsmechanical configuration of it. Based on this prototype, avirtual 3D robotic fish model is created (Figure 2), which ismanually constructed using OpenGL.
As shown in Figure 2-(a), the fish trunk and fish fins aredesigned separately. The former consists of eight parts: thenose, the eyes, the neck plane, the first joint plane (I), thesecond joint plane (II), the third joint plane (III), the forthjoint plane (IV) and the tail. Each part is defined by a group
of six traverse points (A, B, C, D, E, F) which are used tocompute the control points of bezier-spline in the OpenGLrender processing. These points are arranged into twogroups: (ABCD) and (AFED), to build the right-half and theleft-half fish body respectively. The values of these traversepoints are proportional to the real robotic fish. It isconvenient to change the size of the robotic fish model bychanging the traverse points. In each joint plane, an axisthrough point A and point D acts as the axis of a virtualservo motor which represents the servo motor in the realrobotic fish. The model could animate fish-like movementwhen the virtual servo motors turn by each axis in a specialway (see section V: Joint Kinematics Model).
The robotic fish fins include dorsal fin, left pectoral finand right pectoral fin. Each of them is described by two
bezier-splines (I, II) which are defined by four traversepoints (A, B, C, D) as shown in Figure 2-(b). They aredesigned for future balance control and up-down motioncontrol.
From above traverse points, OpenGL could generate amesh of a robotic fish body and then map a fish skin textureonto the mesh for realistic display. Figure 3(b) gives anexample of the final robotic fish model. To realizeautonomous navigation, a robotic fish needs sensors are toperceive its environment. Therefore, we designed modelsfor virtual sonar sensors, infrared sensors, cameras andbumpers. The sonar sensors and the infrared sensors arealternatively selected .All sensors are equipped on the head
of the robotic fish model. A virtual bumper is fixed onto thenose and other sensors locate around the eyes.
z
(a) Real Robotic fish (b) Virtual Robotic fish
Figure 3 Virtual robotic fish vs. Real one
D
AI
B
C E
F Neck
IIIII
IV
Tail
Nose
Eyes
x
o
Dorsal Fin Left Pectoral Fin
Right Pectoral Fin
A I
II
III
BC
D
III
(a)
(b)
Figure 2 3D robotic fish model
Figure 1 Mechanical Configuration of the Robot Fish[9]
Antenna Tail
Ni-H BatteryJoint I Joint III
Joint II Joint IV
(a) Front view
78
Microprocessor + Peripherals
Servo motor
400
Ornamental eyes
Head + Forebody
40
(b) Top view178
614
-
7/30/2019 IROS04-15
3/6
The camera model is created by adding two moreContext DCs in the OpenGL program with fish eyeviewpoint configuration. When the robotic fish swims, bothof the camera Context DCs re-render all of the models inthe simulator and output images that the robotic fish cansee. Then the images could be processed by traditionalimage processing methods. Figure 11 shows two imagesgenerated by the camera model.
The bumper sensor model only has two statuses: ONor OFF, which detects whether the robotic fish headbumps with other objects. The sonar sensor and the infraredsensor are range sensing sensors. To simplify thecomputation, the sonar sensor is modeled as a wedge. Itscross-section is designed as Figure 4-(b) based on the realsonar sensors (Figure 4-(a)[8]). The transducer and thereceiver are viewed as a same point (T/R). A bunch of raysis created in front of the T/R point to simulate the ultrasonicwave. When the robotic fish detects obstacle by sonar, itcomputes the crossing point of each ray with the obstacle inambient. The infrared sensor model is designed in a similarway except that the sensitivity region is narrower.
The water wave in the simulator is viewed as the noisesource of fish movement. We only consider the noise in thehorizon plane paralleled with the water surface. It issupposed that the noise only affects the robotic fish positionwith no respect to the velocity and the acceleration. Thewater noise is decomposed into two sub-noises:
and which are described by sine functions:xE yE
)/2sin( xxx tAE = , (1))/2sin( yyy tAE =
where the and are the amplitude and
wavelength respectively.
yx AA , yx ,
The obstacle model is extracted as a solid column whichfloats on the water surface and is defined by twoparameters: height and radius. In contrast, the swimmingpool model is a transparent uncovered box.
IV. KINEMATICS MODEL AND HYDRODYNAMIC MODELThis section presents three types of models we have
built, namely the Joint Kinematics Model, theHydrodynamics Model, and the Kinematics Model.
A. Joint Kinematics ModelThe control of robotic fish movement mainly depends
on how the tail joints turn. The kinematics model of the tail
joints decides if the robotic fish swims like a real fish, if the
swimming is high efficient and how much propulsion forceacting on the robotic fish is generated.
The motion of fish tail could be described by a travelingwave (2), which was originally suggested by Lighthill[7] Itsoriginal point is set at the conjunction point between fishhead and tail. The swimming of a fish could be viewed as
the generation of the traveling wave. The parameter vector{ },,, 21 kcc= is the key element to determine the
kinematics of fish tail.
)sin()(),(2
21 tkxxcxctxybody ++= (2)
where is the transverse displacement of the tail unit;bodyy
x is displacement along the main axis; 2=k is wave
number; is wave length; is linear wave amplitude
envelope; is quadratic wave amplitude
envelope;
1c
2c
f 2= is wave frequency; is oscillating
frequency of tail,
Tf /1=
T is cyclic; t is time.
For a real fish, it has tens of vertebras that could beviewed as tens of mini joints to approximate the wave. Sothe approximate result is very smooth. But for our roboticfish, it only has four joints, which is impossible to generateexactly fish-like smooth wave. How to use limited joints toapproximate the traveling wave in a real fish is one of majorchallenge problems for the robotic researchers. Yu [9]rewrote the Equation (2) and divided one cyclic to Mdivisions. A 4 look-up table is used to control themotors to approximate the traveling line. Each line of thelook-up table consists of 4 turning angles for 4 tail motors.When the data in the table is output to the four servo motorssequentially, the robotic fish will swim like a real one.
The joint kinematics model in the simulator is the samewith the above model except the virtual servo motor insteadof the real ones. A 4 servo look-up table is saved in thesimulator and could be directly used for the real robotic fishcontrol after tested.
When the robotic fish turns, a deflected angle d (see
C. The Kinematics Model for details) acts on the first jointand the second joint as an offset angle. So, the real controldata on the fish joints is the sum of deflected angle and thecontrol data saved in a servo look-up table. If we define a
vector },,,{ 4321 = as the joints status, then:
211 dT += , 222 dT += , T33 = , T44 = (3)
where { }TTTT 4321 ,,, are the data in the servo look-up table.
B. The Hydrodynamics ModelThe forces acting on a swimming robotic fish are
weight, buoyancy and hydrodynamic lift in the verticaldirection. In the horizontal heading direction, thrust, frictionand inertia drag are found.
In the classification of fish swimming modes [1], therobotic fish used as the prototype in this paper falls betweenthe sub-carangiform mode and the carangiform mode (Bothmodes are sorted as BCF locomotion modes.) For such two
swimming modes, the hydrodynamic model which is related
T/R
(b)
Sensitivity
region
Virtual sonar sensor
Sensitivity
region
02
Line-of-sight
T/R
Real sonar sensor
(a)
Fi ure 4 The sonar sensor model
615
-
7/30/2019 IROS04-15
4/6
with the way thrust is generated has long been associatedwith the added-mass method [12]. As the propulsive wavepasses backward along the fish, the momentum of the waterpassing backward is changed by the movement of the fish
tail, which causes a reaction force from water to fish.
is decomposed into a lateral and a thrust
component which contributes to overall forwardpropulsion for fish.
RF
RF LF
TF
In the simulator, the added-mass method is too complexto be applied for the real-time computation. So, we assumetwo pre-conditions (see Section II) to simplify thehydrodynamic model. The swimming friction drag issupposed as the only resistance against thrust, which is onlydetermined by the travelling wave parameter vector
{ },,, 21 kcc= . The longer and faster the fish, the moreresistance it would be encountered. So, in case of a given ,
there must be a maximum robotic fish velocity to
make the friction drag equal to the thrust. At the same time,
the robotic fish will keep a constant swimming velocity.
maxU
The friction drag could be calculated using the standardNewtonian equation
2
5.0 SUCD fv = (4)
where is the drag coefficient which depends on the
Reynolds number, S is the wetted surface area, U is the
forward velocity of the robotic fish and
fC
is the water
density. The Reynolds number is defined as
LU=Re (5)
where is the tail length and v is the kinematics viscosity
of water (1.12mm
L2/s, fresh water in 60F). The laminar and
the turbulent drag coefficients are and
respectively [13]. In this paper, the drag
coefficients is set as the sum of two drag coefficients.
5.0Re328.1 2.0Re074.0
fC
There is a stabile prominent parameter named Strouhalnumber for BCF movement[1]:
UfASt= (6)
where taillengthxxcxcA =+= )(22
21 is the tail-beat peak-to-
peak amplitude and is the oscillating frequency. The St
lies in a specific range (namely 0.25<
-
7/30/2019 IROS04-15
5/6
Second, the Detect Obstacle Model and Pre-procession Model are called to sample the environmentinformation by the sensor models and process it to getthe direction and range to an obstacle in front of therobotic fish.
Third, in the Make Decision Model the robotic fishmakes decisions depending on obstacle information andthe result of task compare model. The decision is limitedin the scope of Fish Behaviors Library which stores allpossible fish-like behaviors.
Fourth, the robotic fish transforms the decision into theexpected linear acceleration and the expected
angular velocity
1 +itA
1+itV
)
for the next period.
Fifth, in the Kinematics and Hydrodynamic Model(see Figure 7), the oscillating frequency , the
deflected angle and the thrust force are
computed in the Hydrodynamic Model from
. Parameters of
the robotic fish are calculated from the Robotic FishKinematics Model and the joints status
1+if
1+id
1+ithrustF
111,,
+++ i
thrust
i
d
iFf
11111,,,, +++++ iii
r
i
t
i
tPHVVA
14
13
12
11
1,,, +++++ = iiiii is obtained from the Joints
Kinematics Model. Here, are
viewed as the final or real i+1 status for the robotic
fish but the position
1111 ,,, ++++ iiri
tit HVVA
1+iP is imported into the Noise
Model for noise computation.
Finally, the Noise Model adds virtual water noise intothe expected 1+iP and generates the real 1+iP for thefish status i+1.
One of big problems in building our 3D simulator is thecollision detection between fishes or between fish and otherobjects because the shape of the robotic fish is changing inswimming. If we adopt the robotic fish model described insection IV for collision detection, the computation cost willbe huge due to so many key points in it. We solved it bysimplifying the fish mode as two convex boxes as shown in
Figure 8.Note that Hr
is the heading vector which is equal
to iH and Tr
is the combined fish joints vector which is
calculated from . The Fast Collision Detection of
Moving Convex Polyhedra [15] method is adopted here.
i
VI. EXPERIMENTAL RESULTSA. The Reality of the Simulator
Figure 9 shows the relationship between the oscillatingfrequency and the max linear velocity of the robotic fish forsome given parameters. One curve is drawn from the realexperiment [9] and another is sampled from the simulator.
Figure 9 Deflected angle vs. angular velocity
z
y
x
Hr
Tr
Figure 8 Simplified robotic fish mode
Expected 11 , ++ irit VA
Fish Status i
Joints Status i Joints Status i+1
11,
++ id
if
111,,
+++ ithrust
id
i Ff
Robotic fishKinematics model
Hydrodynamic
Model
Joints Kinematics
Model
11111,,,,
+++++ iiir
it
it PHVVA
14
13
12
11
1 ,,,+++++
=iiiii
Figure 7 Details of Kinematics& Hydrodynamics Model in
the Update Cycle
Figure 6 Update Cycle for fish and joints
Note: Task is the
difference between current
position and expected task
Expected11 ,++ i
rit VA
TaskSensor Data
Fish & Joint Status i
Fish & Joint Status i+1
Obstacle
Data
Behavior
Task
Detect Obstacle bysensors
Task Compare Model
Decision Explain Model
Kinematics and
Hydrodynamic Model
Fish Behaviors
Library
Pre-procession on
sensor data
Make Decision Model
Real1+iP
Noise Model
Expected1+i
P
Real
1
11
11
,
,,
+
++
++
i
iir
it
it
HV
VA
617
-
7/30/2019 IROS04-15
6/6
Figure 10 reveals the relationship between the deflectedangle and the angular velocity. The curves in such twofigures show that the simulator has high reality and couldbe viewed as a recurrence of the robotic fish.
B. Autonomous Motion Control AlgorithmThere are three types of tasks in the simulator: free
swimming, static trajectory and dynamic trajectory. In thispaper, the experiment is limited in the free swimming task.Its aim is to test the ability of avoiding obstacle and poolborder. The sonar sensor and the bumper sensor are used todetect obstacles and the image sequence at the robotic fisheye viewpoint (i.e. camera model) is generated for futureimage processing. For example, Figure 11 is the images thatfish C could see in frame (a) of Figure 12 at the left eyeviewpoint and right eye viewpoint respectively.
Figure 11 Two pictures at the robotic fish eye viewpoint
(a) (b)
Figure 12 An experiment of free swimming
Figure 12 is two frames of a free swimming experiment.Three robotic fishes (A,B,C) wander in a swimming poolwith two static obstacles (1,2). They tried to finish a FreeSwimming task to test a simple motion control algorithm.
When the virtual fish swims, its joint data is recorded forfuture analysis. The arrow near each robotic fish indicatesthe heading direction of swimming.
VII. CONCLUSION AND FUTURE WORKIn this paper, a 3D simulator is designed for the
autonomous motion control based on a four-joint roboticfish. The complex hydrodynamic model of fish is simplifiedfor the real-time computation of the simulator. For theconvenient and quick applica ethodfrom the sgen
TS
Thanks to L support.
Our
[4] http://www.dac.ne
tion of the control m
imulator to the real world, a servo look-up table iserated for the motion control of the robotic fish. The
experiment results have shown that the simulator is of highreality and is a useful platform for robotic fish research. Ourfuture research will focus on the kinematics model of theup-down swimming and the motion control algorithm forthe autonomous navigation task of robotic fishes.
ACKNOWLEDGEMEN
ondon Aquarium for their financial
thanks also go to Prof. M. Tan, Dr. S. Wang and Dr.J.Z. Yu at IACAS and Ian Dukes and Rob Knight at Essexfor many useful discussions.
REFERENCES
[1] M. Sfakiotakis, etc., Review of Fish Swimming Modes forAquatic Locomotion. Journal of Oceanic Engineering, 1999,24(2), pp. 237-252
[2] K. Streitlien, G. S. Triantafyllou, M. S. Triantafyllou,Efficient foil propulsion through vortex control, AIAAJournal, Vol. 34, 1996, pp. 23152319.
[3] N. Kato. Control performance in the horizontal plane of afish robot with mechanical pectoral fins,. IEEE J. OceanicEngr 2000 25(1), pp. 121-129
u.edu/msc/burp.html
ukuda, Norihiko KATO, K[5] S. Guo, T. F eisuke OGURO.
p. 305317.[8] B. Ayrulu and B. Bars lity measure assignment
to sonar forro bust target differentiation. Pattern
[9]
[10]and Behavior. New
[11]arrett, and M. S.
[13] ion of large amplitudeming power in fish,
Development of Underwater Microrobot Using ICPFActuator. ICRA 2002, pp. 1829-1834.
[6] http://www.nmri.go.jp/eng/khirata/fish[7] M. J. Lighthill, Note on the swimming of slender fish, J.
Fluid Mech., vol. 9, 1960, phan. Reliabi
Recognition 35, 2002, pp. 14031419.J.Z. Yu, S. Wang and M. Tan, A simplified PropulsiveModel of Biomimetic Robot Fish and Its Realization.Accepted by IEEE Transactions on SMC Part C, 2003.X. Tu. Artificial Animals for Computer Animation:Biomechanics, Locomotion, PerceptionYork Springer, 1999.W. F. Gates. Animation of Fish Swimming. U of BritishColumbia, 2001
[12] J. M. Anderson, K. Streitlien, D. S. BTriantafyllou, Form and function in fish swimming, Sci.Amri., vol. 251, 1984, pp. 58-68.C. S. Wardle and A. Reid, The applicatelongated body theory to measure swimFisheries Mathematics, J. E. Steele, Ed., New York:Academic, 1977, pp. 171191.
[14] http://robotics.ee.uwa.edu.au/mobs/[15] Rich Rabbitz, Fast Collision Detection of Moving Convex
Polyhedra, Graphics Gems IV, Academic Press, 1994[16] http://www.mhi.co.jp/enews/e_0898.html
Figure 10 Frequency vs. max linear velocity
618