## Abstract

In this paper, we first presented a four-bar linkage mechanism for actuating the wings in a flapping wing flying robot. After that, given the additional constraints imposed by the four-bar linkage, we parameterized the wing kinematics to provide sufficient control authority for stabilizing the system during 3D hovering. The four-bar linkage allows the motors to spin continuously in one direction while generating flapping motion on the wings. However, this mechanism constrains the flapping angle range which is a common control parameter in controlling such systems. To address this problem, we divided each wingbeat cycle into four variable-time segments which is an extension to previous work on split-cycle modulation using wing bias but allows the use of a constant flapping amplitude constraint for the wing kinematic. Finally, we developed an optimization framework to control the system for fast recovery while guaranteeing the stability. The results showed that the proposed control parameters are capable of creating symmetric and asymmetric motions between the two wings and, therefore can stabilize the hovering system with minimal actuation and flapping angle amplitude constraint.

## 1 Introduction

Flapping wing micro aerial vehicles (MAVs) have received significant attention due to the outstanding performance of their biological counterparts (insects, bats, and birds) [1,2]. However, flapping flight is inherently unstable, and thus one of the key challenges in designing these robots is the tradeoff between control authority, weight, and system complexity. In nature, highly-articulated wings in aerial fliers such as bats provide redundant possibilities in choosing control inputs. However, a robot with too many actuators would lead to increased weight and structural complexity. Therefore, recognizing the dominant wing motions in natural fliers (like flapping motion), and exploiting that motion to its utmost potential during a flight mode is critical in designing efficient MAVs. Moreover, the flapping (forward and backward) motion on the wings observed in natural fliers is not preferred to be directly generated by electric motors and requires proper mechanical mechanisms to transform the unidirectional motions from the motors into the desired motion on the wings. In this work, we address these issues by using a four-bar linkage mechanism for a flapping wing system and then proposing a new wing kinematic parametrization to solve the restraining problem imposed by the four-bar linkage mechanism.

Although lightweight and powerful actuators are becoming more affordable, Wood [3] and Tu et al. [2] have pointed out that the actuator can comprise 50–60% of the total vehicle weight. Recently, He et al. [4] introduced a bird-scale flapping wing robot that used three actuators, one used to flap the wings and the other two to actuate the tail. Although they showed successful forward flight, stable operation proved to be challenging, due to the lack of airflow over the tail. They actuated the flapping of both wings by a four-bar linkage with one motor and a tail controlled by two servo motors that by itself took 20% of the weight. Although this robot can accomplish forward flight where airflow allows the tail to control the vehicle, due to lack of forward speed, stabilizing it for hovering (or low forward velocities) would be a challenge. Ramezani et al. [1] designed a tailless bat-scale flapping wing robot equipped with five actuators and demonstrated remarkable capabilities including banking and turning maneuvers. However, partly due to the number of actuators and hence the weight of the robot, the authors didn’t present hovering flight. Doman and Oppenheimer et al. [5,6] stabilized an insect-scale hovering system by introducing asymmetric duration between downstroke and upstroke while keeping the total period constant. Using a more rapid or slower upstroke, they showed it to be effective in controlling the body except for pitch degrees-of-freedom (DoF) for which they used a bob-weight. Later, Oppenheimer et al. [6] extended their previous parameterization, adding wing bias to the wingbeat function to eliminate the need for the bob-weight in the pitch control—effectively demonstrating that the vehicle could be controlled using as few as two actuators. However, in their formulation, for the wing forcing functions to match across cycles, the flapping amplitude of each cycle must vary and be used as a control parameter. In a practical manner, this can only be implemented through the use of a motor undergoing constant braking in order to reverse the direction of spinning, wasting kinetic energy as heat. This approach has been used in designing the hummingbird-scaled robot in [2]. Tijmons et al. [7] designed a mechanical mechanism for their DelFly II to enhance the controllability of the two wings and made it tailless. However, the number of actuators did not reduce significantly while the mechanical mechanism added extra weight.

In this paper, we first introduce a four-bar linkage kinematic design to transform a unidirectional movement of the motor to a flapping motion on the wing. Then, we propose a new wing kinematic function by parameterizing a wingbeat cycle and then explore the possibility of controlling a flapping wing robot with the minimum number of actuators. Notably different than [6], the flapping amplitude does not need to vary, which enables the usage of the four-bar linkage to achieve the flapping motion.

## 2 Mechanism Design

*γ*angle can be calculated based on the geometry of the mechanism as

*γ*= tan

^{−1}(

*L*

_{1}cos

*β*/(

*L*

_{4}−

*L*

_{1}sin

*β*)). Then, the wing gear angle (

*ϕ*

_{i}) can be obtained as

After formulating the kinematic equations, an optimization program is constructed to find the optimal dimensions for the links (*L*_{1}, *L*_{2}, *L*_{3}, and *L*_{4}). This optimization framework minimizes the upstroke and downstroke asymmetries in ($\varphi \u02d9\u2212\varphi $) graph (Fig. 3) with $Jdesign=\u222b(\varphi \u02d9US(\varphi )+\varphi \u02d9DS(\varphi ))2d\varphi $ as the objective function. Here, the subscripts *US* and *DS* denote the upstroke and downstroke respectively. The results showed that the angular velocity of the wings turned out symmetric for downstroke but is not symmetric for the upstroke motion when subjected to a constant motor angular velocity ($\beta \u02d9=const.$). However, $\beta \u02d9$ can be controlled by using Eq. (2) to form the wing angular velocity ($\varphi \u02d9i$) profile into the desired shape.

To confirm the beginning and end of the wings’ upstrokes and downstrokes, we setup two light contact sensing plates at the two ends of the flapping angle range (Figs. 4(a) and 4(d)). These plates send closed circuit signals once the pin on the wing-connected gear touches them. This mechanism allows the controller to know when the wing reaches the flapping range.

## 3 Modeling

**q**

_{b}= [

*x*,

*y*,

*z*,

*ϕ*,

*θ*,

*ψ*]

^{T}) in a global coordinate system

**G**(Fig. 5). The wings’ motion are described with respect to the body in a body-fixed coordinate system

**B**. The left and right wings can flap independently, parameterized by angles

*ϕ*

_{L}and

*ϕ*

_{R}. Note that the wings’ rotation angle,

*θ*

_{L}and

*θ*

_{R}, are assumed to be passive with constant values during upstroke and downstroke independently (‖

*θ*

_{L}‖ = ‖

*θ*

_{R}‖ = 45 deg) [2,10,11]. Incorporating these 8DoF into a Lagrangian formulation, we construct the equations of motion in the following form:

**g**(

**q**) are the mass matrix, centrifugal matrix, and gravitational vector respectively. The motor torques that actuate the flapping motion of the wings are in

**τ**, while

**f**

_{aero}represents the external aerodynamic forces determined based on the movements of the body and the relative motion of the wings with respect to the body [8].

### 3.1 Aerodynamic Modeling.

We use the quasi-steady assumption and the blade element theory to model the aerodynamic effects [1,11,12]. Specifically, the left and right wings are divided into *N* = 10 equal-width segments, with each segment approximating that of a 2D airfoil to generate a local lift and drag force vector on each element. These lift and drag (Δ*L* and Δ*D*) are located on the quarter-chord position of each individual segment and calculated as $\Delta L=1/2\rho ClUG2c\Delta r$ and $\Delta D=1/2\rho CdUG2c\Delta r$ where *ρ*, *c*, Δ*r*, and *U*_{G} are the air density, chord length, width, and airspeed of each segment in the global coordinate system **G**. *C*_{l} and *C*_{d} are the lift and drag coefficients assumed to be *C*_{l} = 1.75sin (2*α*) and *C*_{d} = 1.75 (1 − cos (2*α*)) [13]. Here, *α* is the effective angle of attack seen by each wing segment and, besides geometric angle of attack (that only depends on the body pitch angle and wing rotation at each instant), varies along the wingspan due to the different wing segment velocities.

## 4 Analysis

A hovering limit cycle is a periodic solution of the equations of motion (Eq. (3)) in which the states repeat themselves after one wingbeat period ($[q,q\u02d9]t=[q,q\u02d9]t+T$) where *t* is an arbitrary time instant and *T* is the wingbeat period [9]. To find the limit cycles, we use the multiple shooting method [14]. Therefore, the wingbeat period is divided into multiple time intervals, and to ensure the continuity of the response at the time intervals, we construct an optimization problem with the hovering and continuity conditions as the constraints. The objective function in this optimization determines which characteristic is desired for the limit cycle (e.g., minimum power, minimum wingbeat frequency, etc.).

**x**

_{k+1}, on the Poincare section from the current state,

**x**

_{k}, and the control parameters,

**u**

_{k}, is called Poincare map

**u**

_{k}carries the control parameters at the

*k*th intersection, and will be introduced in Sec. 5. The equilibrium point of this map,

**x***, satisfies $x*=P(x*,u*)$ where

**u*** carries the control parameters that along with

**x*** result in the limit cycle.

The dynamical properties of the system are assumed as given in Table 1.

Parameter | Description | Value | Unit |
---|---|---|---|

m_{b} | Body mass | 8.7 × 10^{−3} | kg |

I_{x}, I_{y}, I_{z} | Inertia | [20, 5, 20] × 10^{−6} | $kg\u22c5m2$ |

s | Wing length | 7.5 | cm |

c | Wing chord | 3.0 | cm |

ϕ_{0} | Flapping amplitude | 70 | deg |

ρ | Air density | 1.2 | kg/m^{3} |

Parameter | Description | Value | Unit |
---|---|---|---|

m_{b} | Body mass | 8.7 × 10^{−3} | kg |

I_{x}, I_{y}, I_{z} | Inertia | [20, 5, 20] × 10^{−6} | $kg\u22c5m2$ |

s | Wing length | 7.5 | cm |

c | Wing chord | 3.0 | cm |

ϕ_{0} | Flapping amplitude | 70 | deg |

ρ | Air density | 1.2 | kg/m^{3} |

## 5 Control

In this section, we explain our choice of control parameters and present the optimization framework to stabilize the system.

### 5.1 Wing Parameterization.

To be able to recover from any type of perturbation, the wing velocity profile is parameterized such that recovery forces and torques can be generated in any direction given the constant flapping angle amplitude constraint imposed by the four-bar mechanism. Figure 6 shows the forces and torques that can be generated by two wings moving symmetrically and asymmetrically. In this figure, the curved arrows represent the wing velocities and straight arrows show the generated aerodynamic forces with the thicker lines representing higher values than the thinner ones. Figure 6(a) shows the movement and forces of the limit cycle (no perturbation). When the two wings move symmetrically, it can generate recovering forces needed for perturbations in *x* −, *z* −, and *θ* (pitch angle) directions shown in Figs. 6(d) and 6(f). The drag during downstroke and upstroke can regulate the *x*-motion and an increase in wingbeat frequency can control the *z*-motion. Recovering aerodynamic forces for other degrees-of-freedom (lateral motion *y*, roll *ϕ*, and yaw *ψ* angles) can be generated by the asymmetric motions of the two wings.

To parameterize the wing kinematics, we use four time intervals for each wing to capture the possible symmetric and asymmetric motions of the two wings (Fig. 7). Additionally, we define the wing velocity profile to be continuous ($C0$) and vary linearly between these time intervals. This assumption allows the wing flapping angle to be continuous and differentiable ($C1$). The flapping cycle starts with the beginning of downstroke, and we divide the flapping cycle into four variable-time segments, *t*_{ij}, where *j* = 1, 2, 3, 4, shows the segment number and *i* = *L*, *R* denotes the left or right wing. Thus, *t*_{L1} refers to the left wing’s first time segment (which falls during the *downstroke*), and *t*_{R3} is the right wing’s third time segment (which falls during the *upstroke*). The instantaneous flapping angle for each wing is denoted by *ϕ*_{L} or *ϕ*_{R} (*ϕ*_{i} for abbreviation), with its velocity indicated by $\varphi \u02d9i$.

*ϕ*

_{0}) and synchronous timing of the beginning and end of the wings’ downstroke and upstroke. First, we require that the start time for the downstroke and upstroke of both wings is synchronized, and since

*t*

_{R1}+

*t*

_{R2}and

*t*

_{L1}+

*t*

_{L2}constitute the downstroke duration while

*t*

_{R3}+

*t*

_{R4}and

*t*

_{L3}+

*t*

_{L4}represent the upstroke duration for the two wings (Fig. 7) therefore:

*T*=

*t*

_{i1}+

*t*

_{i2}+

*t*

_{i3}+

*t*

_{i4}) may change when the controller is active.

Since *ϕ*_{0} (half of the flapping range) is a constant imposed by the four-bar mechanism, it is easy to show that the whole wing kinematic can be uniquely defined by **u** = {*t*_{R1}, *t*_{R2}, *t*_{R3}, *t*_{R4}, *t*_{L1}, *t*_{L3}}^{T} where *t*_{L2}, *t*_{L4} can be calculated as a result of the above constraints. We use these parameters as control inputs to stabilize the system. Intuitively, by manipulating the duration for each time segment, the airspeed experienced by wing segment changes, and hence the instantaneous forces will be different. As shown in Fig. 6(d), if a slightly larger thrust or lift is desired, the controller would choose to elongate the time duration for both wings towards downstroke, when the orientation of the segments is in favor of positive lift and thrust. In another situation, when a nose-down perturbation is applied, a recovering moment is achieved by properly arranging bias inside each downstroke for both wings *t*_{i1} and *t*_{i2}.

### 5.2 Optimization Framework.

**u**= {

*t*

_{R1},

*t*

_{R2},

*t*

_{R3},

*t*

_{R4},

*t*

_{L1},

*t*

_{L3}}

^{T}, we can design a feedback law to stabilize the system while receiving the desired performance for recovery. We aim the fast recovery as our desired performance and therefore, we use the greatest eigenvalue of the closed-loop Monodromy matrix as the objective function (

*J*= max(‖

*λ*

_{i}‖)) to be minimized to recover the system as fast as possible. For this purpose, we construct an optimization problem with this objective function and use the discrete algebraic Riccati equation [16] as a constraint inside the optimization to guarantee the stability (Eq. (5)). The outcome of this optimization problem is the gain matrix

**K**that maps the states of the system ($xkT$) at the beginning of each downstroke to the required time intervals ({

*t*

_{R1},

*t*

_{R2},

*t*

_{R3},

*t*

_{R4},

*t*

_{L1},

*t*

_{L3}}

^{T}) during that wingbeat. Then, these required time intervals along with the kinematic constraints presented in the previous section (Sec. 5.1) uniquely define the required wing velocity profile. After that, the four-bar linkage kinematic equations presented in Sec. 2 determine the required motors’ velocity profile to stabilize the system.

*Ric*(·) returns a symmetric matrix that satisfies the discrete algebraic Riccati equation [16].

## 6 Results and Discussion

In this section, we present the simulation results to stabilize the 3D system in Table 1. Figure 8 shows the normalized control input vector (time intervals) for an initial nose-down pitch perturbation. To recover from this initial perturbation, the time intervals **u**_{k} start to change at the beginning of the first wingbeat and need to update only once per cycle. This sensing update rate is aligned with observations from natural fliers like fruit flies [17] and releases the need for continuous monitoring of the states in robotic systems [18]. This update instant is detected by the flapping amplitude sensing plates. All the time intervals approach their nominal values for the unperturbed periodic cycle after about ten wingbeats which is comparable to [19] but here with less actuation need. The total wingbeat period, which is the summation of the time intervals for each wing, are shown as a dashed black line. The maximum change of the wingbeat period with respect to the reference value (*T*_{ref}) is about 4%.

Next, the generated aerodynamic forces by the proposed controller are shown in Fig. 9. The forces and torques are normalized with respect to the body weight (BW) and wing length (*s*). Due to the coupling nature of the degrees-of-freedom, all of the in- and out-of-plane forces and torques are used to recover the system. This coupling behavior is due to the minimal actuation in this system and unlike [20], that showed low level of cross coupling between pitch and roll moments, the controller engages the torques in other directions for recovery.

## 7 Conclusions

In this paper, we presented the kinematic design of a four-bar linkage mechanism for a 3D hovering flapping wing robot. This mechanism allows the motors to move continuously in one direction while generating flapping motion on the wings. However, this mechanism restrains the wing flapping amplitude and therefore applies higher level of under-actuation to the system. To stabilize such a system, we proposed a new wing kinematic parameterization. The results have shown that the proposed wing parameterization provides adequate control authority to stabilize the 3D hovering system. Additionally, the results showed that an update rate of once per wingbeat is enough to stabilize the system, rather than monitoring the system continuously. These findings expand our understanding of the control authority that a flapping wing system possesses, and offer a way to articulate and control flapping wing robots that can lead to lighter, more cost- and energy-efficient vehicles.

## Acknowledgment

This work is supported by the National Science Foundation Grant 1931122.

## Conflict of Interest

There are no conflicts of interest.

## Data Availability Statement

The datasets generated and supporting the findings of this article are obtainable from the corresponding author upon reasonable request.

## References

*Applied Nonlinear Dynamics: Analytical, Computational, and Experimental Methods*