Introduction to concept

Ornithopters are aircraft that use oscillating wings to stay aloft. Depending on the characteristics of the aircraft, an ornithopter can maintain flight at a constant velocity like a bird, or it can fly in static air like an insect. These scenarios are analogous to an airplane driven by a propeller and a helicopter at hover.

Video A. Bird in horizontal flight

Video B. Insect at hover

There are a few advantages to ornithopters. In horizontal flight, the wings of an ornithopter can sweep over a much larger area compared to a propeller. According to actuator disk theory, this increase in the area can increase the propulsive efficiency of the aircraft. Likewise, oscillating wings do not suffer from dissymetry of lift and gyroscopic precession like a rotary-wing. The absence of these forces can enhance the natural stability of an ornithopter compared to a helicopter.

Initial aircraft design

This project concerns itself with developing a radio-controlled ornithopter powered and controlled by two servos. Each servo is connected to a wing and flapped independently. This allows the motion of the wings to be controlled through software rather than through a specially designed mechanism. There are many advantages to this approach, mainly that it is very easy to adjust the amplitude of the flapping motion, and the wings may be oscillated asymmetrically to achieve directional control.

image

Aircraft Iterations

Iteration 1:
The first version was a test platform to observe how effectively servos could oscillate a long spar. It also served to test springs connected to the servos in series or parallel. These springs can reduce the power drawn by an oscillating mass driven by a motor if tuned correctly. For this design, a a coil spring was connected in series with the servo and a leaf spring was used for a parallel connection.

1 / 2
2 / 2

Iteration 2:
The second iteration was a complete aircraft. The design employed a pair of skewed hinges to hopefully achieve roll and pitch control. Unfortunately, test flights revealed this system did not work and barely redirected the aircraft. In addition to this, the servos were undersized and were under too much load. This resulted in the servos getting very hot to apply the desired torque. The wings were also inefficient and could not generate the required thrust for the aircraft to sustain flight.

1 / 3
2 / 3
3 / 3

Iteration 3:
The third iteration built upon the second version. Control was accomplished separately through a controllable tail, and larger servos with four times the torque were used to reduce the likelihood of excess torque. To complement this, the servos were connected indirectly to the wings via a lever arm to double the torque applied to the wings. While this overcame the issues of driving the wings, the wing design was lacking. To overcome this limitation, different wing designs revealed large wings with a high degree of flexibility allowed the aircraft to maintain powered flight.

1 / 3
2 / 3
3 / 3

Arduino Code

The program is designed to receive 3 PWM inputs from an RC receiver operating in MODE 2 and outputs 2 PWM signals for off-the-shelf hobby servos. The aileron (1) and elevator (2) channels are used to bias the dihedral angle of each wing, with the aileron rotating the wings in unison while the elevator changes the dihedral angle. The throttle channel (3) changes the amplitude of a fixed-frequency oscillation.

There are three wave-forms the user can select: sine wave, triangle wave, and saw wave. The controller also is equipped with a low-voltage cutoff routine. This will disable the throttle channel to prevent over-discharging a battery. The routine uses an analog pin to read the input voltage via a voltage divider. The program was written for an Arduino Nano, but it should be compatible with other boards. It requires the PinChageInterrupt library. For more information on the controller, please see this RCgroups post.

See the attached schematic for an example of the required circuit: image

Github Repo: ServoFlappingControl

Videos

Below are videos of different iterations of the aircraft:

Video 1. Demonstration of servo controller

Video 2. Underpowered servos

Video 3. Inefficient wings

Video 4. Assymetric wing elasticity

Video 5. Segmented wing panels

Construction blog

For much more detailed information on the steps taken to develop this aircraft, see this thread on RCgroups: Attempts at a servo flap ornithopter. The most important posts are shown below:

  1. Very simple math model
  2. Energy and oscillating mass
  3. Elastic actuators - motors and springs
  4. First iteration - the build begins!:
  5. Control via dihedral offset: Pitch-flap coupling
  6. Oscillating wing as 2nd order damped system
  7. Second iteration:
  8. Maximum motor efficiency: Idealized case
  9. A simple model to determine servo speed and torque
  10. Oscillating servo:
  11. Forth iteration:
  12. Measured oscillations - Updated Servo controller code - servoMotor Library
  13. Analysis of the effects of wing elasticity: