Flight Control: Part 1

While quadcopters are so easy to build due to their lack of moving parts, this ease comes with a price. Fortunately, the price is largely being paid with great value for the money if you will. A quadcopter has six degrees of freedom (3 translational and 3 rotational) but only 4 inputs, the 4 motor speeds. Frankly, a human is not capable of controlling a quadcopter in real time by himself. He needs electronic help (which is really a human condensing hours of thought process into a machine capable of recplicating those thoughts at a higher speed the next time around). Now, unless you are very strong in coding... this is a great example of an area where there is absolutely no need to try to re-invent the wheel. With the advent of microprocessors capable of assisting flights has come drones even at the toy level with a price point of even around $20 or less. The chances of a person with little coding ability developing a cutting-edge flight control system are quite low.

Now... Quadcopters (all multicopters really) require precise speed control to multiple motors in order to achieve stability. Let's look at the dynamics of a quadcopter. For ease of explanation and source material we will transcribe an article from Wired here. We have decided to transcribe a portion of the article here in case the link were to break in the future. (Wired also did a great article on multicopter thrust and power relationions. See our full treatment for a possible answer to the question Wired left open for its readers.)

Article Transcription Beginning

Vertical Motion Drones use rotors for propulsion and control. You can think of a rotor as a fan, because they work pretty much the same. Spinning blades push air down. Of course, all forces come in pairs, which means that as the rotor pushes down on the air, the air pushes up on the rotor. This is the basic idea behind lift, which comes down to controlling the upward and downward force. The faster the rotors spin, the greater the lift, and vice-versa.

Now, a drone can do three things in the vertical plane: hover, climb, or descend. To hover, the net thrust of the four rotors pushing the drone up must be equal to the gravitational force pulling it down. Easy. So what about moving up, which pilots call climbing? Just increase the thrust (speed) of the four rotors so that there is a non-zero upward force that is greater than the weight. After that, you could decrease the thrust a little bit—but there are now three forces on the drone: weight, thrust, and air drag. So, you will still need for the thrusters to be greater than for just a hover.

Descending requires doing the exact opposite: Simply decrease the rotor thrust (speed) so the net force is downward.

Turning (Rotating) Let's say you have a hovering drone pointed north and you want to rotate it to face east. How do you accomplish this by changing the power to the four rotors? Before answering, I will draw a diagram of the rotors (viewed from above) labeled 1 through 4.

In this configuration, the red rotors are rotating counterclockwise and the green ones are rotating clockwise. With the two sets of rotors rotating in opposite directions, the total angular momentum is zero. Angular momentum is a lot like linear momentum, and you calculate it by multiplying the angular velocity by the moment of inertia. Wait. What is the moment of inertia? It is similar to the mass, except it deals with rotation. Yes, it gets rather complicated, but all you need to know is that the angular momentum depends on how fast the rotors spin.

If there is no torque on the system (the system here being the drone), then the total angular momentum must remain constant (zero in this case). Just to make things easier to understand, I will say the red counterclockwise rotors have a positive angular momentum and the green clockwise rotors have a negative angular momentum. I'll assign each rotor a value of +2, +2, -2, -2, which adds up to zero (I left off the units).

Let's say you want to rotate the drone to the right. Suppose I decrease the angular velocity of rotor 1 such that now it has an angular momentum of -1 instead of -2. If nothing else happened, the total angular momentum of the drone would now be +1. Of course, that can't happen. So the drone rotates clockwise so that the body of the drone has an angular momentum of -1. Boom. Rotation.

But wait! Decreasing the spin of rotor 1 did indeed cause the drone to rotate, but it also decreased the thrust from rotor 1. Now the net upward force does not equal the gravitational force, and the drone descends. Worse, the thrust forces aren't balanced, so the drone tips downward in the direction of rotor 1. Don't worry. I can fix this.

To rotate the drone without creating all those other problems, decrease the spin of rotor 1 and 3 and increase the spin for rotors 2 and 4. The angular momentum of the rotors still doesn't add up to zero, so the drone body must rotate. But the total force remains equal to the gravitational force and the drone continues to hover. Since the lower thrust rotors are diagonally opposite from each other, the drone can still stay balanced.

Forwards and Sideways What is the difference between moving forward or backward? None, because the drone is symmetrical. The same holds true for side-to-side motion. Basically a quadcopter drone is like a car where every side is the front. This means that explaining how to move forward also explains how to move back or to either side.

In order to fly forward, I need a forward component of thrust from the rotors. Here is a side view (with forces) of a drone moving at a constant speed.

How do you get the drone into this position? You could increase the rotation rate of rotors 3 and 4 (the rear ones) and decrease the rate of rotors 1 and 2. The total thrust force will remain equal to the weight, so the drone will stay at the same vertical level. Also, since one of the rear rotors is spinning counterclockwise and the other clockwise, the increased rotation of those rotors will still produce zero angular momentum. The same holds true for the front rotors, and so the drone does not rotate. However, the greater force in the back of the drone means it will tilt forward. Now a slight increase in thrust for all rotors will produce a net thrust force that has a component to balance the weight along with a forward motion component.

Using a Computer By now, you've surely noticed that every movement is accomplished by changing the spin rate of one or more rotors. Doing that simply requires a controller that can increase or decrease the voltage to each motor. That's not too difficult to set up. But just imagine this—you have a drone with 4 controllers. You'd need one controller for each motor power level. It would be crazy difficult to manually adjust each motor power to achieve the desired motion.

However, if you have some type of computer control system, you can simply push a joystick with your thumb and let a computer handle all of that. An accelerometer and gyroscope in the drone can further increase the ease and stability of flight by making minute adjustments in the power to each rotor. Add a GPS system and you can pretty much get rid of the human entirely. So you can see that flying a drone is pretty easy if you let the computer do all the work. But it's still nice to understand the physics behind it.

Article Transcription Ending

Based on the details above, you can imagine you the quadcopter is the easiest to understand and arguably to control of all multicopters. But like we mentioned before, this ease still requires electronic help... which we will discuss in our next section. To lay the groundwork we should define a few terms.

Yaw: spinning the body about its center. Bank: A combination of the forward/backward inclining defined as "pitch" and the lateral inclining defined as "roll". Aileron: Control command commonly used in multirotors to refer to driving a rolling bank. Evelator: Control command commonly used in multirotors to refer to driving a pitching bank. Throttle: Control command commponly used in multirotors to refer to driving ascent or descent. Rudder: Control command commonly used in multirotors to refer to driving yaw.

In the next section we will discuss combining electronic assistance with the above four manual controls to obtain stable, responsive flight.