1 Introduction

Traditional underwater operating systems, such as submarines, Autonomous Underwater Vehicles (AUV), Remotely Operated Vehicles (ROV), are mainly driven by screw propellers, which suffer from high noise, poor concealment, low efficiency, etc. With millions of years of evolution, fish swimming has possessed significant advantages over man-made vehicles, like fast speed, high efficiency, and excellent maneuverability. This inspires researchers around the world to study fish’s skeleton structure and muscle arrangement, imitate its locomotion and develop fish-like robots, commonly known as biomimetic robotic fish. This kind of robot overcomes the shortcomings of propeller-driven underwater robots and is particularly suitable for certain practical applications, e.g., environment monitoring, patrol, and narrow-space navigation.

However, the biomimetic robotic fish is still not widely used at present, one of the main reasons is the instability of its motion, especially the instability of yaw motion. During the rectilinear locomotion, the body of the biomimetic robotic fish flaps periodically. As a result, the reaction force from the surrounding fluid environment is generated and exerted onto the robotic fish, which causes the head to swing from side to side. This is known as the head-shaking problem. Head-shaking of the biomimetic robotic fish increases the drag force, which results in lower propulsion speed and efficiency [1, 2]. At the same time, this instability strongly affects the usage of electronic modules inside the robot, such as the camera, the sonar, and the depth sensor [3, 4]. Dealing with this problem, researchers make efforts by optimizing the mass distribution [5], the body shape [6], and the flapping pattern [7], but the effect is still limited. In nature, various fins have an important influence on the swimming speed, efficiency, and stability of live fish. Thus, introducing various fins into the design and control of biomimetic robotic fish has a solid biological foundation, and it is believed that by the aid of it, performances of the biomimetic robotic fish, especially the stability of the yaw motion, can be improved. As shown in Fig. 1, the fins of a live fish can be roughly divided into the pectoral fin, the ventral fin, the dorsal fin, the anal fin, and the caudal fin. Among them, the dorsal fin and anal fin are most influential in the yaw stability of fish during rectilinear locomotion.

Fig. 1
figure 1

Various fins of fish [8]

The morphology and function of the dorsal fin and anal fin are similar, and their function is mainly reflected in the process of rectilinear locomotion. Using Digital Particle Image Velocimetry (DPIV), Drucker et al. found that the dorsal fin of the sunfish moved ahead of its caudal fin, which produced an Inverse Von Karman Wake. This resulted in a 12% increase in the driving force [9]. Tytell [10] and Standen et al. [11] observed the fluid flow of cruising sunfish and brook trout, respectively, and proposed that the fish’s tail would adapt to the vortex generated by the dorsal and anal fins, thereby promoting the improvement of the driving force. Through Computational Fluid Dynamics (CFD), Mignano et al. found that the amplitude and shape of the driving force were affected by the phase difference among the dorsal fin, anal fin, and caudal fin [12]. Zhong et al. studied the effect of the sharpness of the dorsal and anal fin on the rectilinear swimming performance, finding that the sharpness of the dorsal fin and anal fin could improve the speed and efficiency of rectilinear swimming up to 15% and 50%, respectively [13]. Han et al. found that due to the collision between the posterior body vortex, produced by the movement of the anal fin and dorsal fin, and the caudal fin leading-edge vortex, the latter was strengthened. Thus, the thrust and efficiency were increased by 25.6% and 29.2%, respectively. In addition, the anal fin and dorsal fin also had a significant effect on reducing drag force, which could be up to 22.2% [14]. Wen et al. installed two dorsal fins and an anal fin fabricated by fluidic elastomer actuators on a self-driving robotic fish experimental platform, finding that erecting the soft dorsal/anal fins significantly enhanced the linear acceleration rate up to 32.5% over the folded fin state, while the lateral force decreased by 24.8% [15].

Overall, working principles of dorsal fins and anal fins have been studied to some extent, but most only performed CFD simulations or conducted experiments on a fixed/semi-fix (rail type) robotic fish platform. Taking advantage of these assistant fins, and integrating them into the design and control of a free-swimming untethered robotic fish have not been realized yet. In this paper, we develop a robust, economy-efficient, free-swimming biomimetic robotic fish with Central Pattern Generator (CPG) control, and conduct an experimental study on the improvement of yaw stability by coordination control between the caudal fin and anal fin. The contributions of this paper are twofold. On one hand, how the movement of an anal fin (e.g., flapping amplitude, flapping frequency, phase difference with the caudal fin) influences the yaw stability is first studied on a free-swimming untethered robotic fish platform. On the other hand, using the method of coordination control between the anal fin and the caudal fin, the yaw stability of the biomimetic robotic fish is increased. In addition, it should be noted that because the morphology and function of the dorsal fin and the anal fin are similar, this paper only focuses on the anal fin.

The rest of this paper is organized as follows. Section 2 introduces the design of the biomimetic robotic fish. Section 3 describes the CPG control method to coordinate movements of different parts of the biomimetic robotic fish. Section 4 presents three sets of experiments, including laboratory tests and field tests, and Sect. 5 provides a discussion. Finally, Sect. 6 concludes this article and gives an outlook on the future research direction.

2 The Design of the Biomimetic Robotic Fish

At present, the biomimetic robotic fish are mainly divided into three categories [16]: the single-joint/multi-joint robotic fish [17,18,19], the robotic fish using smart materials [20,21,22], and the flexible robotic fish [23,24,25,26,27]. In this paper, the design of this biomimetic robotic fish combines the first and last ones, which is rigid-soft coupling. As shown in Fig. 2, the robotic fish mainly consists of the following parts: (1) the rigid head; (2) the active body, and (3) the compliant tail. The rigid head has a sealed cabin with all the electronic devices inside (such as a control module, communication modules, power modules, an inertial measurement unit, and a battery), a pair of pectoral fins, an anal fin, and three waterproof servo motors (two motors drive the pectoral fins and one motor drives the anal fin). The active body has one waterproof servo motor, a flange, two floating blocks and a soft cover with an accordion fold. The compliant tail is connected to the end of the flange, and two rigid floating blocks are used to keep the robotic fish neutrally buoyant. Finally, the compliant tail is made of silicone gel through 3D printing, so the stiffness of the tail can be modulated using silicone gel of different hardness. In this paper, the Shore’s hardness of the silicone gel is 30. As for the anal fin, it is directly driven by a servomotor, which is as shown in Fig. 2c. This module is installed on the robotic fish through a flange. In this paper, the anal fin is assumed to be rigid, and its area is fixed. To maximize the fin-to-fin interactions and, at the same time, keep the balance of the structure, the anal fin is mounted in the middle of the robotic fish.

Fig. 2
figure 2

The design of the robotic fish: a The CAD model of the overall robotic fish. b The internal structure of the robotic fish. c The design of the anal fin. d The front view of the prototype. e The top view of the prototype. f The lateral view of the prototype

The design specifications of the robotic fish are detailed in Table 1. The biomimetic robotic fish is 810 mm in length, 380 mm in width, and 181 mm in height. Its mass is 5.5 kg in total. The maximum cruising speed is 438.4 mm/s. The sealed cabin, inside the rigid head, is made of organic glass materials, and its diameter, length, and thickness are 110 mm, 200 mm, and 5 mm, respectively. It provides a waterless environment for all the electronics devices, like the control module, the communication modules, the battery, etc., ensuring the robotic fish work safely underwater for a long time. In addition, the control module includes a microcontroller (STM32F407), an inertial measurement unit (MPU6050) which is used to obtain the orientation and the angular velocity, a 7000mAh Li-battery, and a wireless communication module (APC220) for receiving control commands and sending experimental data. In addition, there are four waterproof servomotors mounted on the fish body. One (Hitec D845WP) drives the active body and others (Hitec D646WP) drive the assistant fins, including two pectoral fins and an anal fin. Due to the complex surface, most parts of the robotic fish are fabricated by 3D printing. The rigid parts are made of resin, while the soft parts are made of silicone gel. In addition, the robotic fish is designed to be neutrally buoyant, and the overall density is close to the water.

Table 1 The design specifications of the robotic fish

3 The Control of the Biomimetic Robotic Fish

In this section, the central pattern generator-based control method is employed to achieve coordinated motion between the anal fin and caudal fin of the biomimetic robotic fish. Here, we adopt Ijspeert's CPG model. The reasons are twofold. On one hand, this model is first used in the salamander robot, and is proved to be effective in the control of various kinds of biomimetic robotic fishes, like the wire-driven robotic fish [28], the amphibious robot from Institute of Automation, Chinese Academy of Sciences [29], etc. On the other hand, this CPG model meets our requirement of outputting coupled sinusoidal signals, easily modulating the flapping frequency, the flapping amplitude, and the phase difference among different CPG notes. The model is as shown below:

$$\dot{\phi }_{i} = 2\pi f_{i} + \sum\limits_{j} {(\rho_{ij} z_{ij} \sin (\phi_{j} - \phi_{i} - \varphi_{ij} ))} ,$$
(1)
$$\ddot{d}_{i} = p_{d} \left( {\frac{{p_{d} }}{4}(D_{i} - d_{i} ) - \dot{d}_{i} } \right),$$
(2)
$$\ddot{z}_{i} = p_{z} \left( {\frac{{p_{z} }}{4}(Z_{i} - z_{i} ) - \dot{z}_{i} } \right),$$
(3)
$$\alpha_{i} = d_{i} + z_{i} \cos (\phi_{i} ),$$
(4)

where the subscripts i and j represent the ith oscillator and the jth oscillator, respectively,\({\varnothing }_{i}\) represents the phase state, \({f}_{i}\) is the control command of frequency, \({\rho }_{ij}\) indexes the coupling weight between the ith oscillator and jth oscillator, \({\varphi }_{ij}\) is the phase difference between the ith oscillator and jth oscillator. \({d}_{i}\) is the offset state, \({p}_{d}\) represents a positive constant value defining the degree of convergence of \({d}_{i}\) to \({D}_{i}\), \({D}_{i}\) is the offset command; \({z}_{i}\) is the amplitude state, \({p}_{z}\) represents the positive constant value of the degree of convergence of \({z}_{i}\) to \({Z}_{i}\), \({Z}_{i}\) represents the amplitude command; \({\alpha }_{i}\) is the oscillator output. In this paper, the phase difference between oscillators corresponds to the motion phase difference between the anal fin and the caudal fin. Figure 3 illustrates the motion of the anal fin and the caudal fin when the phase difference is 0 T, 1 T/4, 2 T/4, and 3 T/4.

Fig. 3
figure 3

Phase difference between the anal fin and the caudal fin

Figure 4 shows the motion control framework of the robotic fish. There are totally four waterproof servo motors driving the left pectoral fin, right pectoral fin, anal fin, and caudal fin, respectively. All servo motors receive pulse width modulation (PWM) signals and are in position control mode. Two pectoral fins are used for ascending and descending, which are independent of the anal fin and the caudal fin. The anal fin and the caudal fin use the CPG control method. The caudal fin corresponds to CPG oscillator 1 (CPG1), while the anal fin corresponds to CPG oscillator 2 (CPG2). There are four control command (\({f}_{1}\), \({Z}_{1}\), \({D}_{1}\), \({\varphi }_{12}\)) for CPG1 and four control command (\({f}_{2}\), \({Z}_{2}\), \({D}_{2}\), \({\varphi }_{21}\)) for CPG2. In this work, the caudal fin and the anal fin perform symmetrical flapping movements, so the offset commands, \({D}_{1}\) and \({D}_{2}\) are set to 0. Moreover, the flapping frequencies of the anal fin and caudal fin are kept in consistent, and \({\varphi }_{12}\) is set to -\({\varphi }_{21}\). Thus, the total control command for this CPG network is (\(f\), \({Z}_{1}\), \({Z}_{2}\), \(\varphi\)) where \(f\) is the control command of the flapping frequency, \({Z}_{1}\) and \({Z}_{2}\) are the control commands of flapping amplitudes of the anal fin and the caudal fin, respectively, \(\varphi\) is the phase difference between the anal fin and the caudal fin. The output of CPG1 (\({\alpha }_{1}\)) and output of CPG2 (\({\alpha }_{2}\)) correspond to the flapping angles of the anal fin and the caudal fin. A typical example is as shown in Fig. 5, where \({p}_{d}\)=\({p}_{z}\)=20, coupling weight \({\rho }_{12}\)=\({\rho }_{21}\)=0.5. Originally, the control command (\(f\), \({Z}_{1}\), \({Z}_{2}\), \(\varphi\)) = (1, 30, 20, \(\pi\)). At t = 4, it is changed to (1, 20, 10, \(\pi\)), (0.5, 30, 20, \(\pi\)), and (1, 30, 20, \(\pi /4\)), respectively, which corresponds to the modification of the flapping amplitude, the flapping frequency, and the phase difference. It is seen that when the control command changes, the CPG network can modify its oscillation and output signals satisfying the control requirement.

Fig. 4
figure 4

The motion control framework of the robotic fish

Fig. 5
figure 5

Outputs of the CPG network. The control command changes at t = 4 s. a The control command (f, Z1, Z2, φ) changes from (1, 30, 20, π) to (1, 20, 10, π); b the control command (f, Z1, Z2, φ) changes from (1, 30, 20, π) to (0.5, 30, 20, π); c the control command (f, Z1, Z2, φ) changes from(1, 30, 20, π) to (1, 30, 20, \(\uppi /4\) π /4)

4 Experiments

The experimental platform is as shown in Fig. 6a, which mainly includes the biomimetic robotic fish, a computer where the user interface runs on, wireless transceiver modules, and a handler. Figure 6b shows an image of the robotic fish swimming in a water tank of the size of 549 (L) × 274 (W) × 132 (H) mm. During experiments, the IMU mounted on the robotic fish obtains orientation and data are sent back to the computer through a wireless communication module (APC220) in real-time. To minimize the experimental errors, each experiment starts when the water surface is close to stationary.

Fig. 6
figure 6

The experimental setup: a The robotic fish platform. b The robotic fish swims in a water tank of the size of 549 (L) × 274(W) × 132(H) mm

Three sets of experiments are conducted to explore how the anal fin’s flapping amplitude, flapping frequency, and its phase difference with the caudal fin affect the yaw angle in cruising. Both the anal fin and the caudal fin follow a sinusoidal pattern. The first two experiments are laboratory tests, while the last experiment is a field test. In Subsection 4.1, the actuation frequency of the anal fin and the caudal fin is set to 0.5 Hz, and the flapping amplitude of the caudal fin is 20°. Then, the flapping amplitude of the anal fin is set to 10°, 20°, 30°, 40°, respectively, while the phase difference between the anal fin and the caudal fin varies from 0 to 7 T/8. In subsection 4.2, the actuation frequency of the anal fin and the caudal fin is set to 1.0 Hz, while the rest of the parameters stay unchanged with Subsection 4.1. Subsection 4.3 is a field test carried out in open water at Shenzhen, Guangdong Province, China. Yaw angle of three scenarios (without an anal fin, with a stationary anal fin, and with coordination control of the anal fin) are compared.

4.1 Head-shaking of the Robotic Fish (Frequency = 0.5 Hz)

In this experiment, the flapping frequency of the anal fin and the caudal fin is set to 0.5 Hz, the flapping amplitude of the caudal fin is fixed at 20°. The flapping amplitude of the anal fin is set at 10°, 20°, 30°, 40°, respectively, and the phase difference between the anal fin and caudal fin varies from 0 to 7 T/8 with an interval of 1 T/8. Figure 7 describes the yaw angle of the biomimetic robotic fish in one typical experiment, in which Fig. 7(a) to Fig. 7(d) correspond to 10°, 20°, 30°, and 40° of the flapping amplitude of the anal fin. The experimental result shows that the yaw angle changes in the range of − 10° to 10°. One general trend is that the amplitude of yaw angle (which is also known as head-shaking) decreases as the flapping amplitude of the anal fin increases.

Fig. 7
figure 7

The yaw angle of the biomimetic robotic fish at the flapping frequency of 0.5 Hz: a The flapping amplitude of the anal fin is 10°. b The flapping amplitude of the anal fin is 20°. c The flapping amplitude of the anal fin is 30°. d The flapping amplitude of the anal fin is 40°

Table 2 shows the peak-to-peak amplitudes of yaw angle. Each experiment is conducted 5 times. It is found that when the flapping amplitude of the anal fin is 10°, the smallest peak-to-peak amplitudes of yaw angle is 10.66°, reached at the phase difference of 3 T/8, and the largest peak-to-peak amplitude of yaw angle is 17.32° reached at the phase difference of 2 T/8. When the flapping amplitude of the anal fin is 20°, the smallest peak-to-peak amplitudes of yaw angle is 10.79°, reached at the phase difference of 6 T/8, and the largest peak-to-peak amplitude of yaw angle is 14.83° reached at the phase difference of 5 T/8. When the flapping amplitude of the anal fin is 30°, the smallest peak-to-peak amplitudes of yaw angle is 4.32°, reached at the phase difference of 7 T/8, and the largest peak-to-peak amplitude of yaw angle is 16.12° reached at the phase difference of 2 T/8. When the flapping amplitude of the anal fin is 40°, the smallest peak-to-peak amplitudes of yaw angle is 5.39°, reached at the phase difference of 6 T/8, and the largest peak-to-peak amplitude of yaw angle is 15.14° reached at the phase difference of 2 T/8. Overall, the peak-to-peak amplitude of the yaw angle is in the range from 4° to 18° when the flapping frequency is 0.5 Hz. In addition, the smallest head-shaking (4.32°) can be obtained when the flapping amplitude of the anal fin and the phase difference are 30° and 7 T/8, respectively.

Table 2 Comparison of peak-to-peak amplitudes of yaw angle (0.5 Hertz)

Figure 8 shows screenshots of fish swimming without anal fin (Fig. 8a) and with proper anal fin movement (Fig. 8b). In Fig. 8b, the flapping amplitude of the anal fin is set to 30°, and the phase difference between the anal fin and caudal fin is set to 7 T/8. It is seen that by setting the proper anal fin movement parameters, the head-shaking of the biomimetic robotic fish can be significantly reduced.

Fig. 8
figure 8

Screenshots of fish swimming without anal fin and with proper anal fin movement: a Fish swimming without anal fin. b Fish swimming with the phase difference and flapping amplitude set to 7 T/8 and 30°, respectively

Table 3 shows the comparison of the amplitudes of yaw angle under three different scenarios, i.e., the robotic fish without an anal fin, the robotic fish with a stationary anal fin, and the robotic fish with proper anal fin movement. The flapping frequency is 0.5 Hz. It is seen that the amplitudes of the yaw angle are 12.37°, 10.03°, and 4.32°, respectively. The robotic fish with proper anal fin movement has the smallest head-shaking, which sees a 65% improvement compared to the one without an anal fin, and a 57% improvement compared to the one only with a stationary anal fin.

Table 3 Comparison of amplitudes of yaw angle in three scenarios (0.5 Hertz)

4.2 Head-shaking of the Robotic Fish (Frequency = 1.0 Hz)

The flapping frequency of the anal fin and the caudal fin is set to 1 Hz in this experiment, and the rest of the parameters are kept consistent with subsection 4.1. Table 4 shows the average peak-to-peak amplitudes of yaw angle. Each experiment is conducted 5 times. It can be seen from the table that when the flapping amplitude of the anal fin is 10°, the smallest peak-to-peak amplitudes of yaw angle is 10.23°, reached at the phase difference of 2 T/8, and the largest peak-to-peak amplitude of yaw angle is 14.68° reached at the phase difference of 5 T/8. When the flapping amplitude of the anal fin is 20°, the smallest peak-to-peak amplitudes of yaw angle is 10.21°, reached at the phase difference of 2 T/8, and the largest peak-to-peak amplitude of yaw angle is 13.74° reached at the phase difference of 6 T/8. When the flapping amplitude of the anal fin is 30°, the smallest peak-to-peak amplitudes of yaw angle is 10.24°, reached at the phase difference of 1 T/8, and the largest peak-to-peak amplitude of yaw angle is 13.88° reached at the phase difference of 6 T/8. When the flapping amplitude of the anal fin is 40°, the smallest peak-to-peak amplitudes of yaw angle is 8.78°, reached at the phase difference of 3 T/8, and the largest peak-to-peak amplitude of yaw angle is 13.56° reached at the phase difference of 5 T/8. Overall, the smallest head-shaking (8.78°) can be obtained when the flapping amplitude of the anal fin and the phase difference are 40° and 3 T/8, respectively.

Table 4 Comparison of peak-to-peak amplitudes of yaw angle (1 Hertz)

Table 5 compares the yaw angle amplitudes under three different scenarios when the flapping frequency is 1 Hz. It is seen that the amplitudes of the yaw angle are 14.06°, 13.53°and 8.78° when the robotic fish is equipped with no anal fin, with a stationary anal fin, and with proper anal fin movement, respectively. The robotic fish with proper anal fin movement has the smallest head-shaking, which sees a 38% improvement compared to the one without an anal fin, and a 35% improvement compared to the one only with a stationary anal fin.

Table 5 Comparison of amplitudes of yaw angle in three scenarios (1 Hertz)

4.3 Field Test

This set of experiments is conducted to examine how the biomimetic robotic fish performs in the field, which is shown in Fig. 9. Figure 9a exhibits the robotic fish swimming in a lake in Shenzhen, Guangdong Province, China. The robotic fish is capable of three-dimensional multimodal swimming, including cruising, turning, ascending and descending. Figure 9b shows the experimental setup. A workstation on land is used to send commands and receive data from the robotic fish. A safety rope connects the robotic fish with the fence in case of an accident. Figure 9c shows the yaw angle when the flapping frequency is 1 Hz. The green, blue, and red solid lines represent the robotic fish with no anal fin, with a stationary anal fin, and with proper anal fin movement. It is found that the robotic fish with proper anal fin movement has the smallest head-shaking, only 4.59°, which sees a 56% improvement compared to the one without an anal fin, and a 44% improvement compared to that only with stationary anal fin.

Fig. 9
figure 9

The field tests: a The robotic fish swims in a lake. b An image of the experimental setup. c Comparison of yaw angle when the robotic fish is equipped with no anal fin, with a stationary anal fin, and with proper anal fin movement

5 Discussion

In this paper, we explored the effect of proper control of the anal fin on the head-shaking of the robotic fish. Both laboratory tests and field tests are carried out, which verifies the feasibility of the scheme. It is found that when the flapping frequency is 0.5 Hz, with proper control of the anal fin, the amplitude of yaw angle can be as small as 4.32°, which sees a 65% improvement compared to the scenario without an anal fin, and a 57% improvement compared to the scenario only with a stationary anal fin. Moreover, when the flapping frequency is 1 Hz, the smallest amplitude of yaw angle is 8.78°, which also sees a 38% and 35% improvement. But why can the involvement of the anal fin reduce the swing amplitude of head-shaking?

As shown in Fig. 10, the fish swims leftwards with a speed of U. During rectilinear locomotion, counterclockwise, and clockwise vortexes appear in the trailing edge of the caudal fin, and these vortexes shed rapidly when the caudal fin swings back and forth, which forms the inverse Von Karman wake. Then, the inverse Von Karman wake generates backward-facing jet, and the reaction force (F) of the jet is the driving force of the robotic fish. However, this reaction force of the jet also has a lateral component (FL), namely the lateral force, acting on the fish body. Finally, the lateral force forms a yaw moment (M), which causes the head of the robotic fish to swing from side to side.

Fig. 10
figure 10

Fish swimming with inverse Von Karman wake

In nature, the head-shaking can be actively suppressed by live fish’s own body. However, the biomimetic robotic fishes at present do not possess this function due to the limitations of current actuation and sensor technologies. So this work deals with this problem by adding additional control of the anal fin. The effects of the anal are twofold. On one hand, the hydrodynamic force generated by flapping of the anal fin also has a lateral component, which can be used to resist the lateral force generated by the caudal fin. On the other hand, since the anal fin and the caudal fin flap asynchronously, the lateral jet generated by the upstream anal fin interacts with its counterpart generated by the downstream caudal fin, which corrects the vortex generated by the caudal fin, causing the lateral force generated by the caudal fin to decrease. As a result, the head-shaking of the biomimetic robotic fish can be reduced by coordination control between the caudal fin and anal fin.

According to [30], the fin-to-fin interaction increases with the decrease of the distance between them. Thus, one general trend may be that the head-shaking can be reduced with proper coordination control when the distance between the anal fin and the caudal fin falls. One extreme example is the double-caudal-fin robotic fish [18]. It can be regarded that the distance between the anal fin and caudal fin is zero, so the anal fin becomes the caudal fin. For the double-caudal-fin robotic fish, the amplitude of the yaw angle is as small as 2°. However, please note that maneuverability of it is compromised.

6 Conclusion and Future Work

This paper presents a method to reduce head-shaking of a biomimetic robotic fish by coordinately controlling the flapping of the anal fin and caudal fin. Systematic experiments, including laboratory tests and field tests, are carried out on a free-swimming untethered robotic fish platform. Through proper control of the anal fin, head-shaking can be reduced by 65% compared to the robotic fish with no anal fin, or by 57% compared to that with a stationary anal fin. It is an effective approach to increase the yaw stability of biomimetic robotic fish, and helpful to push them into practical applications.

In the future, more factors of the anal fin, such as the shape, the stiffness and the position, will be taken into consideration. Moreover, how the coordination control between the anal fin and the caudal fin affects the other swimming indexes of robotic fish, like the speed, thrust, and efficiency, will also be investigated.