CHAPTER 2


Quadcopter Flight Dynamics


Flight Basics

I will begin this chapter with an introduction to basic flight principles that are applicable to any aircraft with wings. It is important for you to have this knowledge in order to understand how a quadcopter flies and the differences between its flight characteristics and those of a normal aircraft.

Figure 2.1, which is from NASA, shows an iconic Wright 1903 Flyer with all four aerodynamic flight forces that simultaneously and continually act upon it. The four forces shown in the figure are further described in Table 2.1.

image


FIGURE 2.1 Wright 1903 Flyer shown with flight forces. (Courtesy of NASA)

image

TABLE 2.1 Four Aerodynamic Flight Forces

These forces are universally applicable to all aircraft—from the Wright Flyer to the modern F-35 Joint Strike Fighter (JSF). How an aircraft responds to these forces determines whether it is climbing, diving, in level flight, or turning.

The quadcopter design is different from that of regular aircraft in that it has no wings, and thus, cannot generate any lift force. Instead, it depends solely on thrust forces created by the motors attached at the end of each of its booms. Additionally, the upward and forward velocities traveled by a quadcopter are small enough that drag forces are not really a factor. As a consequence, there are only two principal forces affecting the quadcopter: thrust and weight. Now weight is a fixed force that can be changed only by design or by altering the payload. This leaves only thrust as the sole control force for a quadcopter. However, thrust is nearly directly proportional to the rotational speed of the motors, which means that controlling the motor speed totally controls the flight path of the quadcopter. When the rotational speeds are all equal and sufficiently fast, then the quadcopter will rise straight up into the air. A vertical flight path was essentially the only flight path available to the early De Bothezat helicopter discussed in Chapter 1. Varying the rotational speeds of one or more of the quadcopter motors is the only way to alter the quadcopter’s flight path. Altering the quadcopter flight path would be a most daunting proposition for a human pilot who would have to rely on his or her sense of balance and then somehow translate that sensation to actual motor speed changes. It is easy to understand why manned multirotors remained an unachievable goal until the advent of automated flight-control techniques.

Also important to quadcopter flight dynamics are “two additional flight principles of balance and center of gravity (CG), which are directly related to weight, one of the fundamental flight forces. Weight must be properly distributed in order for any aircraft to fly safely. Determining safe weight distribution starts with the basic aircraft design and uses a center-of-gravity concept. CG can be thought of as an imaginary point within an aircraft where it could be suspended in a perfectly balanced position. In the real world, a CG point is used to determine if an aircraft is stable; if the entire payload including the airframe, fuel, passengers, and cargo is within prescribed design limits; and consequently, if the aircraft is safe to fly. A quadcopter CG may be thought of as the point within the copter where a string could be attached to suspend it in a perfectly balanced state. Naturally, one would expect the CG to be collocated with the physical center of the quadcopter. If the CG is located off center, it would tend to make the quadcopter unstable, perhaps to the point of being uncontrollable if it were located too far from the physical center. This is always something to consider when attaching devices to the quadcopter. For instance, attaching a camera module close to the outboard side of a motor boom, which might make sense for a better field of view, would probably upset the CG to the detriment of the quadcopter flight stability.

Flight Axes

In order to fully understand airplane flight dynamics, it is necessary to discuss three physical axes and the three rotations associated with those axes. Figure 2.2 shows a light general-aviation (GA) airplane with its longitudinal axis running fore and aft through the fuselage. The lateral axis is perpendicular and in the same plane as the longitudinal axis and runs through the wing, intersecting with the longitudinal axis at the CG. The third axis, called the vertical axis, is perpendicular to the other two and also goes through the CG. The three rotational motions associated with each of these axes are also shown in Figure 2.2 and are described in Table 2.2.

image


FIGURE 2.2 Airplane principal axes and axial rotation motions.

image

TABLE 2.2 Aerodynamic Rotational Motions

Actual flight path turns are a combination of coordinated roll and yaw rotations that result from pilot initiated motion of both the aileron- (the hinged surface at the edge of an airplane wing) and rudder-control surfaces. Figure 2.3 shows the three rotational motions and the corresponding axes as they apply to a quadcopter. The quadcopter diagrammed in the figure is in an X configuration, which is discussed in the next section. However, it makes no difference how a quadcopter is configured; the pitch, roll, and yaw rotational motions will always be the same for each axis.

image


FIGURE 2.3 Quadcopter principal axes and respective rotational motions.

Basic Quadcopter Configurations

The basic quadcopter is simply a center platform from which booms are extended. Motors with propellers are attached at the end of each boom. A variety of configurations exist based upon this basic form. Some of the most common are shown in Figure 2.4.

image


FIGURE 2.4 Basic quadcopter configurations.

The configuration shown at the top left of the figure is the plus configuration, while the top center is the X configuration. The X configuration is the type used in the Elev-8. The only difference between the plus and X configurations is the forward direction designation. The forward direction is always aligned with a boom for the plus, while it is centered between two booms for the X configuration. It is imperative that the actual quadcopter configuration be input into the flight-control board, or else it will not be able to properly control the copter.

In Figure 2.4, all the motor positions have the rotation designations for clockwise (CW) or counterclockwise (CCW). I will ignore the ones with both for now. When viewed from above, the CW and CCW rotations alternate, which ensures that there is a net zero torque on the quadcopter, and thus, it will not yaw when all motor speeds are equal. A strong yaw rotation would result if all the motors rotated in the same direction, because of Newton’s third law of motion: To every action there is always an equal and opposite reaction. It is possible to start yaw rotation by varying the speeds of the CW and CCW motors separately.

Different propellers are used on the CW and CCW motors. Figure 2.5 shows one of the propellers that is designed to turn CCW. The propeller is part of the Elev-8 kit and is designated as a 10 × 4.7 Slo-Flyer Pusher, model LP 10047 SFP. The 10 in the designation refers to the propeller diameter in inches, while the 4.7 refers to the number of inches that the propeller advances into the air per revolution. This number is also referred to as the propeller’s pitch, not to be confused with the aerodynamic pitch describing an airplane’s attitude. A large propeller pitch number means it takes a large “bite” out of the air for every rotation. Conversely, a small pitch number means smaller “bites” are taken by the propeller. Large pitch also means more torque is required from the driving motor, which translates to more power required for that motor. The Slo-Flyer description refers to the propeller being designed for relatively fewer revolutions per minute (r/min) than higher speed propellers. Slo-Flyer propellers have a top r/min limit of about 7000 r/min, while high-speed propellers can exceed 15,000 r/min. High-speed propellers often have a small pitch because it would be impractical to provide the power needed to drive a large-pitch propeller at such high speeds for any useful length of operating time.

image


FIGURE 2.5 CCW Elev-8 propeller.

The CW-turning propeller has the designation 10 × 4.7 Slo-Flyer, model LP 10047 and is shown in Figure 2.6. The only difference between the two propellers is the pitch angle, which is why it is critical to ensure that you mount the correct propeller on a motor whose rotation matches the propeller’s maximum r/min rating.

image


FIGURE 2.6 CW Elev-8 propeller.

Sharp-eyed readers may have spotted a copter with three booms on the bottom row, center of Figure 2.4. Naturally, this would indicate an unbalanced torque arrangement; however, the “Y6” has a clever trick to counteract the odd number of booms. At the end of each boom is one motor that drives two propellers, one at the top and one at the bottom. The top propeller turns CW, while the bottom propeller turns CCW, thus cancelling the top propeller’s torque effect. Another more complex approach is to have two motors mounted at the end of each boom: one driving the top propeller and the other driving the bottom one. Either approach enables a multirotor copter to have an odd number of booms if so desired.

The quadcopter configuration on the bottom left is known as an “X8” because it has two propellers at the end of each boom. Either one motor drives both propellers, or there are two motors, one to drive each propeller. Having twice the number of propellers increases the available thrust substantially, but at the expense of requiring a lot more power for every motor as compared to a regular four-bladed quadcopter.

Flight Controls

It would be useful now to describe how normal airplane flight controls function before describing how the quadcopter flight path is controlled. The reason is simply that the radio-controlled (R/C) system is set for controlling an airplane, not for controlling the quadcopter, and it is important for you to know the “translation” that takes place when you input a control command. Figure 2.7 shows the external control surfaces that can change the pitch, roll, and yaw of an airplane based upon pilot commanded control movements.

image


FIGURE 2.7 Airplane control surfaces.

Figure 2.8 shows the interior of a modern Cessna 172S equipped with a Garmin G1000 avionics suite, commonly referred to as a “glass” cockpit. For purposes of this discussion, your attention should be focused on the yoke, rudder pedals, and throttle that are pointed out in the figure. The pilot, who is normally in the left seat, changes the pitch attitude by pulling on the yoke to climb and pushing on it to descend. Throttle changes are often needed as part of the climb or descent maneuvers. The external, elevator-control surfaces, shown in Figure 2.7, are the ones involved with climbing and descending.

image


FIGURE 2.8 Cessna 172S cockpit.

To make coordinated turns, turn the yoke left or right, and simultaneously press on the appropriate rudder pedal that matches the turn direction. Using the rudder alone will turn the aircraft, but it would result in an unpleasant turn in which the aircraft would either slip or skid throughout the turn. The external, aileron- and rudder-control surfaces, shown in Figure 2.7, are the ones involved with turning. Turning only the yoke will roll the airplane around the longitudinal axis without changing its direction of travel. The ailerons are used solely as the external control surfaces.


Quadcopter Controls

Now that the basic airplane controls have been discussed, we can begin the discussion of the quadcopter controls. The quadcopter is controlled as if it were a normal R/C guided airplane. The difference in control happens when the quadcopter’s flight-control board intercepts the normal flight-control commands and translates them into appropriate motor speed control signals. That is all that can be controlled on a quadcopter, which lacks the wings, ailerons, rudder, and flaps found on a normal aircraft. Figure 2.9, taken from the Spektrum DX-8 user’s manual, shows the transmitter I used to control the Elev-8.

image


FIGURE 2.9 Spektrum DX-8 R/C transmitter.

The stick on the left controls both the throttle and the rudder, while the stick on the right controls the ailerons and the elevator. Pushing the left stick forward and back increases or decreases the motor speed to all motors, respectively. Increasing all motor speeds simultaneously will send the quadcopter into a vertical flight path that is equivalent to a climb in a normal aircraft. Obviously, an equal simultaneous reduction in power causes it to descend. A somewhat more interesting control action happens when the right stick is moved left or right, a movement that ordinarily controls the elevator of a normal airplane. Changing the elevator changes the pitch attitude in a normal aircraft. The quadcopter change in pitch happens by altering the speed of both motors forward of the CG. Reducing the speed should pitch the quadcopter forward, and it will proceed in a forward direction. However, it is not simply a matter of changing motor speeds because the altitude at which the quadcopter is operating should not change as a result of the pitch command. All the motor speeds must change, both to maintain altitude and to effect a pitch rotation. The following set of equations should help to clarify all of the quadcopter operations. Figure 2.10, which is a modified version of Figure 2.3, shows all the motors with matching equation and rotation identifiers.

image


FIGURE 2.10 Quadcopter diagram with motor identifiers.

          MP1 = Motor speed for the left front motor

          MP2 = Motor speed for the right front motor

          MP3 = Motor speed for the left rear motor

          MP4 = Motor speed for the right rear motor

          T = Throttle setting

Straight up or down vertical flight:

MP1 = MP2 = MP3 = MP4 = T

Pitch change in a hover state:

   The motor speeds for MP1 and MP2 must be changed in order to pitch the quadcopter about the lateral axis. However, only changing these two motor speeds will upset the altitude that is established. Therefore, the flight-control board computes an offset speed that it subtracts from both forward motors, while it adds the same offset to both rear motors, thus allowing for a pitch change but not changing the overall throttle setting. This ensures that the quadcopter does not change altitude.

          MP1 = T – offset

          MP2 = T – offset

          MP3 = T + offset

          MP4 = T + offset

   You should also realize that you could increase the throttle while maintaining a pitch change, which would result in putting the quadcopter into a normal ascent versus a straight vertical climb.

Yaw change in a hover state:

   Placing the quadcopter in a yaw without changing altitude is similar to a pitch change except that the lower speed changes are applied to motors controlling the desired opposite yaw direction. This means that a desired CCW yaw would have an offset subtracted from both CW motors and the same offset added to both CCW motors in order to maintain altitude.

          MP1 = T + offset

          MP2 = T – offset

          MP3 = T – offset

          MP4 = T + offset

Roll change in a hover state:

   Rolling the quadcopter is a matter of increasing the speed of both motors on the side opposite to the desired roll direction and simultaneously decreasing the speed of both motors on the other side. Below are the equations for a roll to the left.

          MP1 = T + offset

          MP2 = T – offset

          MP3 = T + offset

          MP4 = T – offset

The preceding set of equations is very straightforward and is representative of the algorithms that the flight-control board implements. However, the quadcopter flight control is not quite that simple. Automated control of a quadcopter aircraft means that there must be at least one sensor involved that reports the condition and position of the craft back to the flight-control board so that the repositioning can stop as desired. The main sensor used in the HoverflyOPEN board is the Invensense model ITG-3200, MEMS 3-axis gyroscope. Figure 2.11 is a photo of the gyroscope mounted on the HoverflyOPEN board.

image


FIGURE 2.11 Invensense ITG-3200 gyroscope.

This sensor can rapidly detect minute variations in angular velocity changes in all three of the principal axes discussed earlier. Figure 2.12 shows the three predetermined axes that the sensor is designed to measure, which makes it critical to align these axes with the three quadcopter axes. The + Y axis shown on the figure must be aligned with the quadcopter’s forward direction.

image


FIGURE 2.12 ITG-3200 sensor axes.

The dot printed on the upper left hand corner of the sensor is the key to proper alignment on the board. The board itself must also be properly aligned with the quadcopter’s forward direction. Failure to properly align the board means the gyroscope cannot accurately measure the appropriate angular velocities, thus making quadcopter control questionable.

Raw data on each axis is sent in serial format from the gyroscope sensor to the main processor on the flight-control board at a very fast rate. This main processor is the Parallax Propeller chip, which will be thoroughly discussed in Chapter 4. What should be noted now is that a great deal of information is extracted from the raw data by some very involved and complex calculations in order to generate the appropriate motor-control speed commands that reflect what the user wants to do with the quadcopter. There is also a good deal of ongoing real-time filtering to ensure that only the relevant user commands are being followed and are not being disturbed by noise.

PID Control

PID is an acronym for proportional integral derivative and is used in almost all quadcopter control systems. The theory behind PID is relatively simple to understand and begins with the block diagram shown in Figure 2.13.

image


FIGURE 2.13 PID block diagram.

All control systems have process variables that are required to be at a specific value. For example, the thermostat is part of the very familiar home-heating (and maybe cooling) system. The room temperature is the process variable in such a system. We could set a temperature on the thermostat, and if that value was higher than the actual room temperature, the thermostat would direct the furnace to heat the room by using the available heating system (such as hot air or hot water). The system would continue to provide heat to the room until the new temperature was reached. As the room cooled naturally from heat losses through windows and open doors, the room temperature would drop below the set point and cause the control process to repeat. The heat losses are called system disturbances and are the reason why the thermostatic-control system is needed. All real-world systems have their own disturbances, and thus, need a control system to maintain the balance, equilibrium, or set point. Table 2.3, relates the above system operation to the Figure 2.13 elements.

image

TABLE 2.3 System Components Related to PID Block Diagram

The thermostatically controlled room heating system is an example of a closed-loop control system. A sensor continuously reads the room temperature and provides this to the controller, which already has a set point. The difference between the real-time sensor reading and the set point is the error signal used by the controller to actuate the system or plant, such that the error drives toward a zero difference. Sometimes there is an offset value permitted between the sensor value and the set point when it is not realistic to obtain a zero error or the system functions require an offset.

Control systems are normally designed to minimize disturbance effects. Several key parameters that characterize control system performance need to be defined. These are:

      • Rise time

      • Percent overshoot

      • Settling time

      • Steady-state error

Figure 2.14 shows a typical PID response graph with the previously mentioned key parameters annotated within the figure. This graph represents the process variable response to a step input applied to the control system. Time is usually the X axis, while the Y axis will normally be the process variable units, such as the temperature degrees in our thermostat example. The following definitions are commonly but not universally accepted in the control industry:

image


FIGURE 2.14 PID response graph.

      Rise time—The time to go from 5% to 95% after the step is applied.

      Percent overshoot—The peak value of the response expressed as a percentage of the steady-state value.

      Settling time—Time to settle to within a certain percentage of steady state. Often chosen at 5% but not guaranteed.

      Steady-state error—The actual output versus the ideal output.

Several other performance parameters are also used to help characterize control systems. These are:

      Deadtime—A measure of the time delay between a process variable change and system recognition of that change.

      Loop cycle—Time between calls to the control system algorithm.

Both of these parameters will have a significant impact on a quadcopter control system. Minimizing dead time and loop-cycle timing is critical to optimizing the control algorithms. Careful optimization of the source code and incorporation of the assembly language routines, where necessary, will go a long way toward minimizing both of these parameters.

PID Theory

It is time to examine the PID theory now that the system configuration and definitions have been covered. Figure 2.151 shows the classic PID block diagram. Each section will be discussed separately.

image


FIGURE 2.15 Classic PID block diagram.

P Block

The P or proportional block depends only upon the difference between the set point and the process variable. The P block math equation is

Kpe(t)

where Kp is the block gain and e(t) is the error signal as a function of time. This is a simple linear system response. For example:

   Given that the error signal at time t0 is 5 and Kp is 10, then the output from this block is 50. You must be careful in setting the value for Kp. Too high a value will make the system unstable and fall into an oscillation state that would be very bad for system operations. A procedure for setting Kp along with the other block constants will follow this section.

I Block

The I or integral block depends upon a summation of the error signal over time. The I block math equation is

Kite(τ)

where Ki is the block gain and te(τ)dτ is an integral equation of the error signal as a function of time.

The integral equation is additive, which allows the output to steadily increase over time unless the error signal is zero or there are compensating negative error values. The net effect of the integral block is to drive the steady-state value to zero overall during a time period. The nominal value for the I block gain is usually very small, which you might expect since the term acts over a long time period.

There is one issue that arises with this block: the integral term could temporarily increase to a level that saturates the plant block without driving the steady-state value toward zero. This is called integral windup. Windup, while a potential issue, is not expected to happen in the typical quadcopter control system that is discussed in this book.

D Block

The D or derivative block depends upon rapid increases in the process variable to drive the error signal to zero. The D block math equation is

Kdde(t)/dt

where Kd is the block gain and de(t)/dt is a derivative equation of the error signal as a function of time.

This block gain must be chosen carefully to allow the system to respond to rapid process changes, yet not to over respond to noise added to the feedback loop. The practical tradeoff is to set a low value for the Kd gain and a small derivative time Δt that approximates de(t)/dt.

Tuning

Tuning is the process of determining useful gain values to use with the PID algorithm. Two methods will be discussed:

   1. Trial and Error Method

   2. Ziegler-Nichols Method

Trial and Error Method

   Do not be deterred by this method’s name because there is a definitive approach that is followed in this method. The steps are:

   1. Set the Ki and Kd block gains to zero.

   2. Increase the Kp block gain until the system becomes unstable, as determined by observing system oscillation.

   3. Increase the Ki block gain to stop the oscillation induced in step 2.

   4. Increase the Kd block gain to improve the system time response to an acceptable value.

By following the above steps, a reasonable set of block gains should be able to be set. These values should be tweaked to reach acceptable performances in actual operation. For instance, it may be observed that the Kd block gain is set too high because the system is too reactive to noise.

Ziegler-Nichols Method

This tuning method is similar to the Trial and Error method in that the first two steps are identical.

   1. Set the Ki and Kd block gains to zero.

   2. Increase the Kp block gain until the system becomes unstable as determined by observing system oscillation.

   3. Note the Kp block gain at which oscillation starts. This will now be called critical gain or Kc. Also note the oscillation period. This will be called Pc.

   4. Adjust all block gains per Table 2.4.

image

TABLE 2.4 Ziegler-Nichols Block Gains

As you can clearly see from Table 2.4, control systems do not always have to contain all three of the PID blocks. Sometimes only the P block is needed, as we saw in our thermostat example.

Real-world PID control systems often contain an auto tuning capability in which the block gains and response times are both detected and set to optimize system operation. LabVIEW (LV) discussed in the next section contains a PID module that has an auto-tune capability as well as a manual tuning capability.

LabVIEW PID Simulation

I will be using the LV 2012 student edition for my simulation platform. It is the latest student version available at the time of this writing. Be aware that commercial, non-educational versions of LV cost about $1200. It is not a cheap program. However, a student version is available that is very reasonable in cost and even comes with an Arduino microprocessor. This package is available from Sparkfun.com. The student version is not crippled in any way; users are simply not permitted to develop commercial (meaning for sale) products incorporating LV without purchasing a retail LV license.

Every program in LabVIEW (LV) is a called a virtual instrument or VI. This naming system is from the very earliest days (1986) when LV was first created to control electronic test equipment. LV has evolved to far more than instrumentation control, but it still pays homage to its beginnings with the file extension .vi. Clicking on the Blank VI icon will create the next screen, which is shown in Figure 2.16.

image


FIGURE 2.16 Blank VI screenshot.

A careful look at this figure should reveal two screens, one named Front Panel and the other Block Diagram. LV creates these two views for each VI. The Front Panel is the user interactive screen or GUI, while the Block Diagram houses the code. All LV programs consist of Function Blocks interconnected with wires—the kind of wires that carry data not electricity. Functions are selected off a series of palettes, such as the one shown in Figure 2.17. Palettes are selected from the View drop-down menu. The palette selected is the Controls Palette with the Express controls displayed.

image


FIGURE 2.17 Express controls palette.

I did not create a PID VI myself but instead downloaded one named Single Axis Quadcopter.vi developed by National Instrument application engineers to demonstrate LV’s ability to simulate a portion of a quadcopter’s functions. This VI is available at https://decibel.ni.com/content/docs/DOC-22670. There is one limitation that you should be aware of before running this VI. It depends upon two sub-VIs that are part of the LabVIEW 2012 PID and Fuzzy Logic Toolkit. This software toolkit is an expensive add-on to LV; however, you are able to download it from www.ni.com and install it for a limited time in an evaluation mode. This was how I was able to run the single axis simulation. Note that there are only two motors, MP2 and MP4, being simulated in this VI because it is a single-axis demonstration. Figure 2.18 is a screenshot of the VI running.

image


FIGURE 2.18 Screenshot of the single-axis Quadcopter VI running at 50% throttle and 10° angle.

I set the quadcopter setpoint to + 10° for this simulation. After running the simulation for several seconds, the virtual quadcopter settles into a 10° bank, as you can see from both the diagram in the top center and the indicator to the right of the quadcopter diagram. The time-response chart in the lower right shows that the quadcopter smoothly went to the commanded bank in about one second without any overshoot. This is precisely the type of control behavior that you should want from a quadcopter flight-control board. Also, notice that the three PID parameters, Kp, Ki, and Kd may be set to experiment with different values in order to test how they affect overall performance.

I also ran another simulation, which is shown in Figure 2.19 but this time I increased the throttle to 70% and increased the angle to 25° .

image


FIGURE 2.19 Simulation screenshot with throttle at 70% and angle at 25°.

Take a look at the waveform chart in the lower left corner. MP2 is running at 74% while MP4 is at 70%, which causes the 25° pitchover to happen. Compare this waveform to that shown in Figure 2.18, where MP2 is running at approximately 52% and MP4 at 50%, and which causes the shallower bank angle of 10°.

A much more challenging simulation that you can try is the Untethered Quadcopter.vi from the same group that created the first VI discussed. Figure 2.20 is a screen shot of the program running.

image


FIGURE 2.20 Screenshot of the Untethered Quadcopter.vi.

Here the challenge is to try to keep the quadcopter figure in the visible flying box by using a combination of throttle and setpoint angle. Believe me, it is not easy. In fact, this simulation actually provides a bit of insight into the skills needed to pilot the real quadcopter, although I believe the simulation is more sensitive than the real item.


Summary

Because it is important to have a good foundation for studying the particulars of quadcopter aerodynamics, I began with a discussion of the basics of normal airplane aerodynamics. The four principal flight forces were introduced along with the concepts of weight and balance and the closely allied concept of center of gravity (CG).

Basic flight axes were than described along with the corresponding rotations about these axes: pitch, roll, and yaw. A diagram showed how these axes and rotations applied to the quadcopter.

Some of the basic quadcopter configurations were shown, including the X configuration, which is the type used in the Elev-8. The two types of propellers used in this and other configurations were also described.

The detailed discussion that came next focused on quadcopter flight control because it differs significantly from normal airplane control. I presented a series of basic equations that encapsulate how the flight-control system translates normal airplane flight-control commands to the type needed by a quadcopter. A brief discussion was also presented on the MEMS 3-axis gyroscope that the HoverflyOPEN controller uses to sense actual quadcopter movement.

Two sections on proportional-integral-derivative (PID) control and theory were given, as that is the key technology to ensure smooth and positive control for quadcopter operations.

The chapter concluded with two demonstrations of LabVIEW, the first running a single-axis PID simulation and the second an untethered quadcopter flying simulation.

As a reward for making it through this chapter, I will now put aside the heavy theory and go on to show you how to build your own Elev-8 quadcopter.

1Wikipedia PID block diagram.