Academia.eduAcademia.edu

Flow-aided path following of an underwater robot

This paper describes an underwater robot navigation strategy in flow. Our aim is to demonstrate that knowing the relative flow speed is advantageous because it permits using more energy efficient and stable control for trajectory following. We use a biomimetic robot that moves in uniform flow using a side-slipping maneuver. Side-slipping permits the robot to move laterally with respect to the incoming flow by exploiting its passive dynamics. The side-slipping maneuver is controlled by adjusting the heading of the robot with respect to the flow. We implement simple PID controllers for controlling the motion of the side-slipping robot laterally and transversely. Also, we compare the performance of the robot in the case where the robot does not know the flow speed. In this latter case the robot’s heading towards the waypoint is controlled and the flow effect is considered as a disturbance compensated by the control algorithm. Comparative experiments demonstrate that it is advantageous for a robot to know not just its speed and orientation with respect to the world’s frame of reference but also its local flow-relative speed. It permits the robot to follow trajectories more stable and using less energy. In the discussion section we propose possible future directions

Flow-aided path following of an underwater robot David S. Jung, Peter P. Pott, Taavi Salumäe, and Maarja Kruusmaa Abstract— This paper describes an underwater robot navigation strategy in flow. Our aim is to demonstrate that knowing the relative flow speed is advantageous because it permits using more energy efficient and stable control for trajectory following. We use a biomimetic robot that moves in uniform flow using a side-slipping maneuver. Side-slipping permits the robot to move laterally with respect to the incoming flow by exploiting its passive dynamics. The side-slipping maneuver is controlled by adjusting the heading of the robot with respect to the flow. We implement simple PID controllers for controlling the motion of the side-slipping robot laterally and transversely. Also, we compare the performance of the robot in the case where the robot does not know the flow speed. In this latter case the robot’s heading towards the waypoint is controlled and the flow effect is considered as a disturbance compensated by the control algorithm. Comparative experiments demonstrate that it is advantageous for a robot to know not just its speed and orientation with respect to the world’s frame of reference but also its local flow-relative speed. It permits the robot to follow trajectories more stable and using less energy. In the discussion section we propose possible future directions for implementing the on board flow-relative control. I. I NTRODUCTION In underwater robotics, waves, wind, and currents are considered as environmental disturbances. In mainstream underwater robotics, those effects are usually not explicitly taken into account as the large heavy vehicles overcome the flow effects due to their inertia. The environmental disturbances can be then just corrected with the vehicles’ control algorithms. Sometimes flow and wave effects are presented using simple models [1], [2]. For example, underwater gliders incorporate models of the effect of flow on the vehicle into algorithms for optimal path planning [3]. Several recent trends in robotics suggest that hydrodynamic disturbances become more relevant for vehicle control. First is the trend of miniaturization that makes smaller vehicles more dependent on flow effects. Second, new application areas in less stable environments are explored. Third, recent developments in soft robotics, flexible robotics, and biomimetic robotics [4] introduce new vehicles with new kinds of dynamics where the interaction between the robot and the hydrodynamic environment is not yet thoroughly investigated. Motion control, trajectory, and path following of This work is supported by European Union 7th Framework program under FP7-ICT-2007-3 STREP project FILOSE (Robotic FIsh LOcomotion and SEnsing), www.filose.eu. D. S. Jung, T. Salumäe, and M. Kruusmaa are with Center for Biorobotics, Tallinn University of Technology, Tallinn, Estonia. [email protected], taavi.salumae, [email protected] D. S. Jung, P. P. Pott are with Institute of Electromechanical Design, Technische Universität Darmstadt, Darmstadt, Germany. [email protected] those vehicles are even more complicated as the undulating motion of the fin actuators is highly non-linear [5]. With an exception in [6] those robots are investigated and tested in still water taking sometimes into account only the selfinduced hydrodynamic effects [7]–[9]. In this paper we present a strategy for underwater locomotion where the effects from the external flow are taken into account to create a flow-related motion of the vehicles. The basic difference here is that flow is not treated as the disturbance that has to be corrected by control algorithms but as the navigational aid that permits robots to take advantage of the environmental conditions and to exploit their passive dynamics to move more efficiently. In particular, we use a side-slipping maneuver of a flexible biomimetic robot. It permits moving perpendicular with respect to flow by controlling the heading of the vehicle. A simple controller for controlling the side-slip angle is developed to drive the robot along the closed path in a flow tank. For trajectory following, the coordinates of the waypoints are given in the global coordinates and also the speed of the robot is calculated with respect to the global frame (ground speed). At the same time, the side-slipping maneuver can be effectively used only if the robot knows its flow-relative speed. We show in our experiments that it is advantageous to know the magnitude and direction of the flow. Though flow-relative dynamics has not gained much attention in underwater robotics, real fish are well known for taking advantage of flow conditions and to exploit the hydrodynamic effects for better maneuverability and swimming efficiency [10]–[13]. The flexible body of fish permits using the relative flow to create the bending and turning moment [14]. Sometimes those maneuvers are believed to be passive while in other cases probably the lateral line flow sensing helps to control the maneuver [15]. In our previous work we have demonstrated local flow sensing of an underwater robot [16], [17]. In this paper we demonstrate that the sideslipping angle can be detected using onboard sensors which in the future can be integrated to the control of a flow-relative navigation of an autonomous robot. The rest of the paper is organized as follows. In the next section we describe the robot and its behavior in flow. We proceed describing our experimental setup in a flow tank and the control algorithms used in the experiments. We develop the controller experimentally as the dynamics of the flexible body interacting with its hydrodynamic environment is to complex to incorporate into a controller. Then we experimentally compare two trajectory following strategies in the flow. In one case the robot is aware of the flow conditions and uses a control algorithm that takes the flow effects into account. In other case the robot is not aware of the flow conditions and simply compensates for the disturbances created by the flow. In the next experiment we demonstrate flow-aided path following along a closed trajectory in a flow tank. Finally, we demonstrate that the side-slip angle can be determined using on-board pressure sensors thus illustrating that local flow conditions can be acquired by the robot autonomously. We finish the paper with remarks about possible future work directions. The robot consists of a rigid head (Fig. 1 (1)) containing five pressure sensors (MS5407-AM, Intersema, Hampton, USA) (2), a microprocessor, and the electronics. A rigid middle section (3) containing a servo motor (4) connects the head to the compliant tail (5) which ends in a rigid fin (6). The stiffness of the tail is chosen according to the properties of a rainbow trout (Oncorhynchus mykiss) to enable the robot to copy fish-like movement [18]. The overall length of the robot is 500 mm and the maximum width is 85 mm. To actuate the robot, an actuation plate (7) is molded into the tail and connected to the motor via steel cables (8). The motor actuates the compliant part by applying a concentrated moment on the plate inside it. The motion has the form of (1) where A is the amplitude of the sinusoidal oscillation, f is the actuation frequency, and ϕ0 is the actuation offset. The swimming speed of the robot is controlled by altering the actuation amplitude and frequency. The swimming direction and turning radius is changed by adding an offset ϕ0 to the actuation. As experimentally determined in [17], the swimming speed Urobot , in the investigated range of 0.2 to 0.4 bl/s (body length per second – size-related speed), is related to actuation frequency and actuation amplitude according to f = −0.62 + 5.50 · Urobot (2) 2 A = −0.04 · Urobot + 1.83 · Urobot − 3.00 (3) whereby for (2) the amplitude is held constant (A = 10◦ ) and in (3) the frequency is constant (f = 2 Hz). An actuation frequency of 2 Hz is used during all experiments as actuation in this mode gives highest thrust while minimizing actuation amplitude and current consumption. All experiments are conducted with a flow speed of 150 mm/s corresponding to a speed of 0.3 bl/s which is the mean speed achievable with the robot. The static hydrodynamic forces acting on the robot during rotation around the yaw axis, lateral movement, and sideslipping are simplified displayed in Fig. 2. The picture displays the simplified situation when the tail is not actuated and the robot is floating against a flow, thus dynamic forces can be neglected. The tail is deflected to turn the robot a), the flow hits the tail on the side to which it is deflected, and slows down. According to Bernoulli’s law, the pressure p1 rises in this region. At the opposite side of the tail the 7 2right 1 5 8 2nose II. T HE ROBOT ϕ = A · sin(2πf t) + ϕ0 6 3 4 2left Fig. 1. Mechanical design of the prototype, [16] pressure p2 is lower resulting in a lateral force F from higher to lower pressure. This force is not only apparent in one point as indicated in the figure but it is a distributed force acting on the whole tail. This force results in a torque M turning the robot about its center of mass. In Fig. 2 b) the robot already turned it’s orientation towards the flow. In this case the flow is dammed left of the nose of the robot. The force resulting from the different pressures p1 and p2 possesses a lateral component resulting in a sideslipping of the robot. In flow, both movements happen in parallel and the robot does not need to actively actuate its tail to turn. Instead, it just needs to float against a flow where the static tail deflection angle determines the side-slip angle. The actual direction of robot’s motion is then determined by superposition of lateral force and drag. Flow p1 Drag F p2 M a) Turning Flow FLateral p2 F Drag p1 b) Lateral Movement Fig. 2. Forces acting on the robot in flow during turning, p1 > p2 III. E XPERIMENTAL S ETUP The experiments are performed in the working section of a transparent flow tank schematically displayed in Fig. 3. The working section has a size of (1.5 × 0.5 × 0.5) m3 and the collimator enables a laminar flow up to 500 mm/s ± 20 %. The camera (Dragonfly ExpressT M , Point Grey Research Inc., Richmond, Canada) is placed above the working section to observe the robot during the experiments. A floater giving the robot a small positive buoyancy is attached to the robot’s middle section using a rod. The camera detects two LEDs mounted on the top of the floater and determines the robot’s position and orientation. x-coordinates are in direction of the flow, y-coordinates are lateral to the flow, and the orientation angle α is measured counterclockwise, as shown in Fig. 3 b). As the robot with the floater has a positive buoyancy the floater touches the ceiling of the working section. The friction between floater and ceiling is small enough to enable a free movement of the robot. The camera provides the global reference frame and the speed of the robot related to the global frame. The flow related speed is given by manually adjusting the speed on the incoming laminar flow. The absolute speed of the robot is given by the sum of the flow speed and relative speed recorded by the camera: Urobot = Uflow + Ucam Camera Collimator Ceiling Floater with LEDs Pressure Sensors Flow y Flow Fish-Robot x Working Section LED Marker Flow α y φ x b) Bird's-eye View Fig. 3. ẏ = f (α, U ) (4) α̇ = g(ϕ) (5) For the trajectory following experiments we implement 3 controllers, for controlling x-position, y-position, and the heading α. x- and y-position control are used for sideslipping while the angle control is only used for comparative experiments. The y-position and heading control use the offset actuation angle ϕ0 and the x-position the amplitude A as process variable. All three controllers use the camera data as feedback. As PID-controllers are implemented in the first place, three variables have to be determined: the proportional gain Kc , the derivative time TD and the integral Time TI .   Z d 1 t e(τ ) + TD e(t) (6) u(t) = Kc e(t) + TI 0 dt u(t) is the manipulated variable, either actuation offset or amplitude, and e(t) is the error between set point and process value, either y-, x-position, or orientation α, depending on the controller and feedback. As the controllers are designed for a flow speed of 0.3 bl/s and the lateral movement changes with the flow speed, the performance of these controllers will decrease when used in other flows. A. Position Control for Side-Slipping a) Side View Flow derivation α̇ in turn depends on the deflection angle of the tail ϕ. Thus the system comprises two integral elements. Structure of the working section, a) side view, b) bird’s-eye view The camera and the robot are controlled and read out by programs written in LabView (National Instruments, Austin, TX, USA) running on an external computer. The data acquired by the camera are the position of both LEDs, the orientation of the robot towards the flow, and the position of the center of mass. This data is used to control and observe the position of the robot during experiments. The data sent to the robot is the desired angle of the motor and the outputs are the pressure sensor signals, temperature signals to compensate the temperature drift of the pressure sensors, and the actual motor angle. IV. C ONTROLLER The problem treated in this paper is to control the movement of the fish-like robot lateral to a flow (y-direction) in a constant laminar flow. The lateral movement speed ẏ depends on the flow velocity Uflow and the orientation angle α. Its The controller described in this section is designed to control the position of the robot taking into account the flow speed. It realizes the side-slipping maneuver described in Section II. Important characteristics of the controller are its rise time Tr , defined as the time the robot needs to reach 90% of the value of a step in the desired position, and the steady state error ess . The rise time Tr is dependent on the lateral movement speed ẏ which in turn is restricted by the maximum deflection angle of the tail ϕmax and the robot’s mass m. According to experiments, the minimum rise time without overshoot (aperiodic case) is 11 s. This is achieved when the lateral deflection of the tail is set to a maximum to accelerate the fish and after half of the distance the deflection is inverted to slow down the movement. At the beginning of the experiment characterizing the controllers performance the fish is orientated in the middle of the flow tank (y0 = 225 mm), then a step function of ∆y = 75 mm is applied to the desired position and after 100 s the desired position y is set back to y0 . Then the same procedure is repeated with a step function to the other direction (∆y = −75 mm). The step function is restricted to ±75 mm to avoid collision of the robot with the wall of the working section and to avoid boundary layer effects near the wall. The actuation offset is restricted to ϕ = ±8◦ to prevent the robot from being destroyed by high actuation angles. The rise time Tr as well as the steady-state error ess are determined to characterize the controller. 450 8 4 400 350 Actuation Angle [°] y−Position [mm] 0 −4 −8 300 250 200 Offset Angle φ0 8 Desired Angle α d 6 Actual Angle α 4 2 0 −2 −4 −6 160 Fig. 5. 180 200 220 Time [s] 240 260 280 Performance of the camera based angle control Actual Position y Desired Position yd 150 100 Fig. 4. The camera based controller is a simple P-controller with a gain KC = −4. Fig. 5 shows the performance of this controller. The desired angle is shown as dashed and the actual angle as solid line. The robot follows the desired orientation with a mean error of 1◦ . Orientation Angle [°] Fig. 4 shows the performance of the best controller found during experiments with the proportional gain Kc = 0.2, integral time TI = 24 s and derivative time TD = 12 s. The desired position is illustrated by the dashed black line, the actual position by the solid black line, and the controller output, the offset actuation angle, is given by the gray solid line. After each step the desired value is held constant for 100 s to observe the steady state behavior. 150 200 250 300 Time [s] 350 400 450 500 Controller performance for step changes of the desired position The rise time Tr of the system is about 12 s, the average steady state error ess,av and maximum steady state error ess,max have values of 2 mm and 10 mm, respectively. Due to asymmetries of the robot, the actuation offset is not centered around zero but shows an offset as the robot is drifting to the left side, which is compensated by the controller. The actuation offset reaches its maximum value of ±8◦ after the step function is applied. This means that the rise time can not be decreased as long as the maximum offset is restricted to ±8◦ . This is acknowledged by the fact, that the minimal theoretical rise time without overshoot of 11 s is almost reached. Parameter proportional gain Kc integral time TI derivative time TD average steady-state error ess,av maximum steady-state error ess,max rise time for a step of 75 mm Tr Value 0.2 24 s 12 s 2 mm 10 mm 12 s TABLE I C ONTROLLER PARAMETERS During this experiment the x-position is controlled by changing the actuation amplitude using a camera feedback PI-controller with parameters Kc = −0.3 and TI = 12 s. The amplitude is approximately 16◦ . B. Orientation Control using Camera Feedback The controller in this section controls the global orientation and speed of the robot. It is used in comparative experiments where the heading of the robot is towards the next trajectory waypoint and the environmental disturbances are compensated by the camera feedback. V. R ESULTS In this section we describe 3 experiments: 1) comparative experiments between side-slip control and orientation angle control to show the importance of knowing the flow parameters, 2) closed trajectory following with the side-slip control, and 3) side-slip orientation feedback using pressure sensors to show the scope of onboard flow sensing. A. Control Strategies for Environments with and without Flow First, we compare trajectory following strategies with and without the external flow. The task of the robot is to follow two diagonal trajectories (x- and y-position as a function of time) across the flow tank’s working section (Trajectory 1: the longest possible straight line, Trajectory 2: straight line with higher angle towards flow). If there is no external flow the fastest way to reach a way point is to head directly towards this point, the absolute speed of the robot then equals the relative speed with respect to the flow. For this case we use the orientation control described in Section IV-B. In the case of a flow we can use the side-slipping effect to produce the lateral component of motion along the diagonal line. For this case we use the controller described in Section IV-A. Fig. 6 shows the paths of the robot when following the trajectories given as dashed line. Using the control strategy for still water (black p line) the deviation from the desired (xdesired − xreal )2 + (ydesired − yreal )2 = trajectory eav = 10.1 and 64.6 mm, respectively, is higher than the average deviation of the side-slipping control (9.8 and 11.2 mm). Also the trajectory for the side-slipping control (gray line) is more stable. The angle control also has somewhat higher energy consumption (6 and 8 % more average current consumption Iav ) than the side-slipping control. The difference in the current consumption as well as the position error increases as the path gets more perpendicular to the flow. Obviously, the side-slipping maneuver is a viable alternative when the trajectory goes perpendicular to the flow while 350 Still Water Strategy Desired Trajectory Flow Strategy y−Position [mm] 300 320 C 300 Flow 280 y−Position [mm] going in direction of the flow the difference is small. A robot in a flow could then use several motion primitives for path following in the flow and change them depending on the shape of the path. Actual Position Desired Position Errors 260 240 220 B D 200 180 250 160 200 140 520 540 560 Trajectory 1 150 Trajectory 2 Fig. 7. A 580 600 620 x−Position [mm] 640 660 680 Closed trajectory following 100 Fig. 6. 400 500 600 x−Position [mm] 700 800 900 Trajectory following for the different strategies strategy Trajectory 1: Trajectory 1: Trajectory 2: Trajectory 2: eav eav Iav Iav no flow heading towards the target 10.1 mm 0.35 A 64.6 mm 0.35 A flow side slipping 9.8 mm 0.33 A 11.2 mm 0.32 A TABLE II C OMPARISON OF DIFFERENT STRATEGIES TO FOLLOW A TRAJECTORY B. Following a Closed Trajectory This experiment demonstrates using the side-slipping control on a more complicated, closed, trajectory, where the relative flow speed varies on various sections of the trajectory. The PID controller for implemented y-position as well as a controller for the position in direction of the flow (xdirection) as described in Section IV-A, are tested in parallel. The experimental results presented in Fig. 7 show the desired (dashed line) and actual (black solid line) trajectories. Each leg of the diamond is traversed in 60 s starting from position A over B, C, and D back to A. For the edges AB and DA the relative speed of the robot is smaller than for the edges BC and CD as the robot simply floats now backward in the flow. The relative speed is adjusted by the amplitude of the tail beat as described in Section IV-A. The deviation is shown by the gray lines connecting desired and actual position at the same time. It can be seen that the robot can very accurately follow the trajectory in the flow by adjusting its flow-relative speed and using the side-slipping effect. The average deviation from the original path is 6 mm but increases as the trajectory is run faster. C. Orientation Control using Pressure Feedback As shown in Fig. 2 b) the pressure at the left side of the robot’s head is higher than the pressure right of it during lateral movement to the right side. We conducted experiments to find out whether we are able to determine the side-slip angle from the readings of the pressure sensors mounted on the robot. Fig. 8 shows the correlation of the pressure difference ∆p = (pright,1 + pright,2 ) − (pleft,1 + pleft,2 ) and the orientation. The offset shown in Fig. 8 is a result of inaccurate offset compensation of the pressure sensors. In this section, a controller using this information as feedback is implemented and tested. 60 Pressure Difference [Pa] 300 40 20 0 −20 −40 Measurement Linear Model −60 −40 −30 Fig. 8. −20 −10 0 10 Orientation Angle [°] 20 30 40 Correlation of pressure difference to orientation The upper graph of Fig. 9 shows the orientation angle α (dashed line) and the pressure difference ∆p (solid line) when controlling the robot’s heading using pressure feedback. The relation of pressure difference to orientation angle is smaller than shown in Fig. 8 as the noise filtering also damps the signal components. The controller recognizes the direction of movement of the robot by comparing the pressure difference with zero. When the pressure difference is higher or less than zero for more than 6.5 s this indicates that the robot is moving to one side and the moving direction is inverted. This is a 2-pointcontrol, either the motor offset is −8◦ to move the robot right and if the movement to the right side is recognized the offset is set to 8◦ to move the robot left. The gray areas indicate the time intervals that indicated a lateral movement. The lower graph of Fig. 9 shows the corresponding lateral position of the robot as solid line and the actuation offset 10 30 6 4 10 2 0 0 −2 −10 −4 Orientation Angle α −6 −8 y−Position [mm] −20 Pressure Difference ∆ p Movement Recognized −10 400 −30 300 8 0 200 −8 Actuation Offset φ0 100 0 Fig. 9. Orientation Angle [°] 20 Actuation Offset [°] Pressure Difference [Pa] 8 Position y 200 220 240 Time [s] 260 280 300 Orientation angle and pressure difference using pressure control as dashed line. In the beginning, the robot moves to the right, when the movement is detected (t = 202 s), the desired movement direction is changed by inverting the offset actuation angle (ϕ0 = 8◦ to −8◦ ). The robot’s movement slows down and it turns to the left side (t = 209 s). This sequence is repeated several times in both movement directions. The results show that while the simple feedback control through pressure sensors can be realized, the performance of such a controller is yet rather inaccurate due to the low sampling rate, signal-to-noise ratio, and robot’s self motion. In future, a more sophisticated control using sensors with higher accuracy, higher sampling rates and more sophisticated control will be implemented. VI. D ISCUSSION AND C ONCLUSION Currently, the standard means for flow sensing for underwater vehicles is the Doppler Acoustic Current Profiler (DACP) which has been demonstrated to work successfully in various real-world applications [19]. The downside of DACP is that those devices are bulky and therefore not suitable for usage on board of small biomimetic vehicles. Also, they measure the bulk flow around the vehicles rather than the local flow at robot’s boundary, from which the sideslipping angle actually depends on. Some evidence of local flow related control is demonstrated in our previous work [16], [17]. Recently, there are several technological solutions proposed to implement the artificial lateral line [20]–[22]. Though none of those sensors have yet been demonstrated to work onboard of an underwater vehicle, they offer new perspective for flow related control for both biomimetic and conventional underwater vehicles. In this paper we have introduced a flow-relative path following strategy using a side-slipping maneuver. The results show that knowing the magnitude and direction of flow permits developing more efficient ways of exploiting the passive dynamics of the vehicle. Side-slipping in the flow results to more stable trajectories, smaller deviations, and lower energy consumption. We also demonstrate that it is possible to determine the heading of the robot with respect to flow with onboard pressure sensors. Implementing the onboard flow-related control is the direction of our future work. R EFERENCES [1] T. Fossen, Marine Control Systems, Marine Cybernetics Ed., Trondheim, Norway, 2002. [2] L. Lionel, Underwater Robots Part II: Exisiting Solutions and Open Issues, Mobile Robotics – Towards New Applications, pp. 362-398, 2006. [3] R. E. Davis, N. E. Leonard, D. M. Fratantoni, Routing strategies for underwater gliders, Journal of Deep-Sea Research II, vol. 56, 2009. [4] R. Pfeifer, M. Lungarella, F. Iida, Self-organization, embodiment, and biologically inspired robotics, Science 318, pp. 1088-1093, 2007. [5] F. Boyer, M. Porez, A. Leroyer, Poincaré-Cosserat Equations for the Lighthill Three-dimensional Large Amplitude Elongated Body Theory: Application to Robotics, Journal of Nonlinear Science, vol. 20, no. 1, pp. 47-79, 2010. [6] C. Zhou, Study and implementation of station-holding performance on a fish robot in adverse unsteady flow, IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), pp. 928-933, 18-22 Oct. 2010. [7] C. W. Chong, Z. Yu, K. H. Low, Robust gait control for steady swimming of a carangiform fish robot, IEEE/ASME International Conference on Advanced Intelligent Mechatronics, AIM, pp. 100-105, 2009. [8] J. Yu, M. Tan, S. Wang, and E. Chen, Development of a biomimetic robotic fish and its control algorithm, IEEE Transactions on Systems, Man, and Cybernetics – Part B: Cybernetics, vol. 34, no. 4, pp. 17981810, 2004. [9] A. Crespi, D. Lachat, A. Pasquier, A. Ijspeert, Controlling swimming and crawling in a fish robot using a central pattern generator, Autonomous Robots, vol. 25, pp. 3-13, 2008. [10] C. L. Gerstner, Use of substratum ripples for flow refuging by Atlantic cod, Gadus morhua, Environmental Biology of Fishes, vol. 51, pp. 455460, 1998. [11] C. L. Gerstner, P. W. Webb, The station-holding performance of the plaice Pleuronectes platessa on artificial substratum ripples, Canadian Journal of Zoology, vol. 76, no. 2, pp. 260-268, 1998. [12] P. W. Webb, Entrainment by river chub Nocomis micropogon and smallmouth bass Micropterus dolomieu on cylinders, Journal of Experimental Biology, vol. 201, pp. 2403-2412, 1998. [13] J. C. Liao, A review of fish swimming mechanics and behaviour in altered flows, Philosophical transactions of the Royal Society of London, vol. 362, pp. 1973-1993, 2007. [14] K. Singh, T. J. Pedley, Modeling lateral manoeuvers in fish, J. Fluid Mechanics, vol. 697, pp. 1-34, 2012. [15] H. Bleckmann, Role of the lateral line in fish behaviour, Chapman and Hall, ch. 7, pp. 201-235, 1993. [16] T. Salume, I. Rano, O. Akanyeti, M. Kruusmaa, Against the flow: A Braitenberg controller for a fish robot, IEEE International Conference on Robotics and Automation, St. Paul, USA, May 14-18, 2012. [17] M. Kruusmaa, T. Salume, G. Toming, J. Ježov, A. Ernits, Swimming Speed Control and on-board Flow Sensing of an Artificial Trout, In Proceedings of the Int. Conf. of Robotics and Automation (IEEE ICRA), Shanghai, China, May 9-13, 2011. [18] T. Salume, Design of a Compliant Underwater Propulsion Mechanism by Investigating and Mimicking the Body of a Rainbow Trout (Oncorhynchus mykiss), Master Thesis, Tallinn, 2010. [19] J. A. Farrell, S. Member, S. Pang, W. Li, Chemical Plume Tracing via an Autonomous Underwater Vehicle, vol. 30, pp. 428-442, 2005. [20] Y. Yang, N. Nguyen, N. Chen, M. Lockwood, C. Tucker, H. Hu, H. Bleckmann, C. Liu, D. L. Jones, Artificial lateral line with biomimetic neuromasts to emulate fish sensing, Bioinspiration & Biomimetics, vol. 5, 2010. [21] G. Krijnen, T. Lammerink, R. Wiegrenik, J. Casas, Cricket-inspired flow sensor array, in Proc. IEEE 6th Sensors Conference, pp. 539-546, 2007. [22] A. Qualtieri, F. Rizzi, G. Epifani, A. Ernits, M. Kruusmaa, M. D. Vittorio, Parylene-coated bioinspired artificial hair cell for liquid flow sensing, Microelectronic Engineering, Elsevier, to appear.