start

R. Beard, T. McLain,

Princeton University Press, 2012

Small Unmanned Aircraft: Theory and Practice: Supplement

*Supplemental material is currently under construction. It will be regularly updated during Winter 2019. This file is preliminary and has not been carefully proof read.*

*
The following lecture materials are included as a resource for instructors. The slides closely follow the book. We welcome suggestions on how these slides might be improved. - RWB & TWM*

Chapter | PDF Slides | Powerpoint | Last Modified |
---|---|---|---|

Chapter 1 - Introduction | chap1.pdf | chap1.pptx | 9/10/2014 |

Chapter 2 - Coordinate Frames | chap2.pdf | chap2.pptx | 1/11/2019 |

Chapter 3 - Kinematics and Dynamics | chap3.pdf | chap3.pptx | 1/28/2019 |

Chapter 4 - Forces and Moments | chap4.pdf | chap4.pptx | 1/28/2019 |

Chapter 5 - Linear Design Models | chap5.pdf | chap5.pptx | 2/5/2019 |

Chapter 6 - Autopilot Design | chap6.pdf | chap6.pptx | 2/21/2017 |

Chapter 7 - Sensors | chap7.pdf | chap7.pptx | 2/19/2019 |

Chapter 8 - State Estimation | chap8.pdf | chap8.pptx | 3/8/2017 |

Chapter 9 - Nonlinear Design Models | chap9.pdf | chap9.pptx | 11/4/2014 |

Chapter 10 - Waypoint and Orbit Following | chap10.pdf | chap10.pptx | 3/18/2019 |

Chapter 11 - Path Manager | chap11.pdf | chap11.pptx | 03/29/2017 |

Chapter 12 - Path Planning | chap12.pdf | chap12.pptx | 04/03/2017 |

Chapter 13 - Cameras | chap13.pdf | chap13.pptx | 04/10/2017 |

*
The following files are included to help students with the project outlined in the book. We have found that if students start with these files, that they can generally do the project in about 3 hours per chapter. Full solutions to the project are available to instructors upon request. We respectfully ask that students and instructors do not post full solutions to the project anywhere on the web. The project creates an excellent learning experience and we believe that anyone who works the project for themselves will be much better equipped to make contributions to the state of the art in small unmanned air vehicles. - RWB & TWM*

The template files for Simulink, Matlab OOP, and Python are available at the following github repository:

- There are some issues with the Zagi coefficients given in the book. We recommend that you use the following (slightly modified from the book) coefficients for the aerosonde aircraft. aerosonde.m
- For the Aerosonde model use an initial speed of Va = 35 m/s, and and radius of 250 meters.
- Additional information: The Aerosonde weight is actually 25kg. Also, the cruise speed is approximately Va=35 m/s.

YouTube video showing solution for Chapter 2.

YouTube video showing solution for Chapter 3.

YouTube video showing solution for Chapter 4.

YouTube video showing solution for Chapter 5.

YouTube video showing solution for Chapter 6.

Screen shot of estimation results

YouTube video showing solution for Chapter 10.

YouTube video showing solution for Chapter 11.

YouTube video showing solution for Chapter 12.

*
As you find typos and errors in the book, please send us an email. We will post the errors on this page and work with Princeton University Press to ensure that they do not propagate to future printings. - RWB & TWM
*

**Chapter 1**

**Chapter 2**- Page 19, just above Eq. 2.7: In the wind frame to body frame rotation matrix, the (3,2) and (2,3) entries in the matrix should be swapped. The (2,3) entry should be 0 and the (3,2) entry should be .
- Equation (2.9) assumes that the side slip angle Otherwise, assuming that the roll angle , the right hand side should be

**Chapter 3**

**Chapter 4**- Page 43. The matrices should both be multiplied by 0.5.
- Top of pg. 51. There is a sentence with a string of variables that all equal zero. The last variable should be instead of .
- is used for the Oswald efficiency factor on page 48 and 63. This is an unfortunate and unintended double use of notation since is also used on page 47 and elsewhere throughout the book as the exponential.

**Chapter 5**- page 65. “horizontal component of the ground speed, .”
- page 66. The order of the inputs does not match the order of the inputs in the simulation which is .
- (page 75, line 17),(page 76, lines 6,10,12,15), (page 77, line 4) - the constant multiplying should be
- page 76, line 5, should be .
- page 77, line 4, should be
- page 77, line 9 should be
- In table 5.1, the m in the denominator represents mass and should be the font that represents mass. Same for some elements in Table 5.2.

**Chapter 6**- page 101. The only equation on this page has an error in the numerator of the second term on the right-hand side: It should read instead of .
- page 106. Line 22, “ach” should be “each”.
- page 116. References to line numbers are incorrect.
- (4th line from top) “Line 11” should be “Line 12”
- (5th line from top) “lines 12-13” should be “lines 14-15”
- (9th line from top) “line 11” should be “line 12”
- (10th line from top) “line 15-20” should be “line 19-23”
- (19th line from top) “Lines 22-25” should be “Lines 26-29”
- (page 117, 7th line from top) “line 24” should be “line 28”

**Chapter 7**- Page 128. The conversion from 1 N/m^2 = 3385 inches Hg is backwards. It should be 3385 N/m^2 = 1 inch Hg.
- Page 134. The description of GPS trilateration is not correct. Replace the last paragraph on the page with the following:
*Because of clock synchronization errors between the satellites (whose atomic clocks are almost perfectly synchronized) and the receiver, four independent pseudorange measurements are required to***trilaterate**the position of the receiver as depicted in figure 7.8. Why are four pseudorange measurements required?**One range measurement narrows the receiver position to a sphere around the satellite. A second measurement from another satellite narrows the possible positions to the the intersection of the the two spheres around the satellites, which is a circle. A third measurement narrows the possible positions to the intersection of the three spheres around the satellites, which is two points. The point closest to the surface of the earth is taken as the position.**To resolve position in three dimensions with a receiver clock offset error, at least four measurements are needed. The geometry associated with the pseudorange measurements from four different satellites form a system of four nonlinear algebraic equations in four unknowns: latitude, longitude, and altitude of the GPS receiver, and receiver clock time offset [33].

*Triangulate*in the caption of Figure 7.8 should be*trilaterate.*- Page 140, equation (7.22) should be

**Chapter 8**- Page 151, Line 1 in Algorithm 1 should be and not .
- Page 152. We assume that the process noise satisfies where is the Dirac delta function.
- Page 153, fourth equation from the bottom: there should be a curly bracket at the end of the line after , and the first under the integral should be
- Page 158, For the Jacobian of f for x, the equation in the first row second column should have an addition in the numerator as opposed to a subtraction.
- Page 159. The expression for in the middle of the page can be simplified significantly.
- Page 160. The (3,5) and (3,6) terms of the Jacobian of f should have terms in the denominator.
- Page 161. The definition for should be .
- Page 162, problem 8.2. in the list of states to estimate, should be changed to .

**Chapter 9**

**Chapter 10**- Figure 10.2. in subfigure (b) should be replaced with .
- Figure 10.2 should appear as figure_10.2.pdf.
- page 177. The first equation relating similar triangles should read .
- Equation 10.5 should be changed to read: .

**Chapter 11***- pg. 187, second equation: there should not be a “)” after the
- Figure 11.4 should appear as figure_11.4.pdf. Note that has been changed to .
- pg. 192, lines 8-9: should read “If the MAV has transitioned into ”, not .
- pg. 194, line 3: should read “fillet is ”, not .
- pg. 201, line 32 of Algorithm 7, should be .

**Chapter 12**- In the first two equations on p. 210 (middle of section 12.1.1), the term should be replaced with to give and

**Chapter 13**- Figure 13.1 shows the elevation angle as being defined with respect to the vehicle frame. It should show the elevation angle defined with respect to the
**body frame,**i.e., is measured from and not .

**Appendix A**

**Appendix B**

**Appendix C**

**Appendix D**- The references to line numbers on page 271 are not correct.
*flag is shown in lines 2-11*should be*flag is shown in lines 3-15**initial conditions are shown in lines 13-27*should be*initial conditions are shown in lines 18-31**inputs are defined in lines 16-19*should be*inputs are defined in lines 20-23**feedthrough term on line 20*should be*feedthrough term on line 24**initial conditions are defined on line 24*should be*initial conditions are define on line 28**sample times are defined on line 27*should be*sample times are defined on line 31**f(t,x,u) is defined in lines 30-32*should be*f(t,x,u) is defined in lines 34-36**h(t,x,u) is defined in lines 35-36*should be*h(t,x,u) is defined in lines 39-40*

- The references to line numbers on page 272 are not correct. The paragraph at the bottom of page 272 should read as follows:
- The code listing for a C-file s-function that implements the system defined by equations (D.5) and (D.6) is shown below. The function name must be specified as in Line~3. The number of parameters that are passed to the s-function is specified in Line 19, and macros that access the parameters are defined in Lines 6 and 7. Line 8 defines a macro that allows easy access to the input of the block. The block structure is defined using
*mdlInitializeSizes*in Lines 17-39. The number of continuous states, discrete states, inputs, and outputs is defined in Lines 25-31. The sample time and offset are specified in Lines 41-46. The initial conditions for the states are specified in Lines 53-58. The function is defined in Lines 75-90, and the function is defined in Lines 60-73. The C-file s-function is compiled using the Matlab command*» mex secondOrder_c.c*.

**Appendix E**

**Appendix F**- Page 278, 2nd and 5th lines: should be . See page equation 5.21 on page 67.
- Page 278, Line defining Y0: the gamma term should be replaced with 0 (zero). This is just an initial value for angle of attack, which is an output of the trim function.
- Page 279, 3rd and 4th equations on the page: should be .

**Appendix G**

**Appendix H**

*Our intention is to occasionally add supplemental material to this page. We would also welcome contributions from the broader community. If you are interested in adding material, please contact the authors. *

**Full Longitudinal State Direct and Indirect Kalman Filter**- The Kalman filters presented in the book are meant to be tutorial and are intended for aircraft with very limited processors. Estimating the full state using all available sensors is a much better approach. There are two methods for constructing the Kalman filter: direct state estimation, and indirect state estimation. The following pdf and Simulink model describes and implements both filters for the full longitudinal state. You will note from the simulation, that this method works much better than that described in the book.
- UAVBook Supplement on Kalman Filtering. (updated 3/15/2017)

**Dropping an Object on a Target**- UAVBook Supplement on Object Dropping. (updated 10/25/2017)

**Dubins Airplane Paths**- The Dubins paths discussed in Chapter 11 assume that the MAV is flying at a constant altitude. The associated model is typically called a Dubins car model. The Dubins car can be extended to a Dubins airplane model that includes altitude. An explanation of the associated Dubins airplane paths is discussed in:
- Mark Owen, Randal W. Beard, Timothy W. McLain, “Implementing Dubins Airplane Paths on Fixed-wing UAVs,” Handbook of Unmanned Aerial Vehicles, ed. Kimon P. Valavanis, George J. Vachtsevanos, Springer Verlag, Section XII, Chapter 68, p. 1677-1702, 2014. Preprint.

- Simulink files implementing Dubins airplane paths. Run the Simulink file mavsim_dubins.slx.

**Feedforward term for Orbit Following**- Orbit following can be improved by adding a feedforward term on the roll angle. The description in the wind and no wind case are given here:

**Python Simulator**- A simulator that implements the architecture in the book using Python
- PyUAVSim at https://github.com/savadha2/PyUAVSim/
- Developed by Sharath Avadhanam.
- Currently under development.

**Zagi Coefficients**- zagi_coefficents.pdf The aerodynamic coefficients for the Zagi aircraft as given in the book, come from this paper.

**Total Energy Control**- An alternative to the longitudinal autopilot described in the textbook is the “Total Energy Control System” described here: tecs_autopilot.pdf.
- A nonlinear version of the total energy control system is described in the following paper.
- Matthew Argyle, Randal W. Beard, “Nonlinear Total Energy Control for the Longitudinal Dynamics of an Aircraft,” Proceedings of the American Control Conference, Boston, MA, 2016.PDF

- For more detail, see Chapter 6 of
- Matthew E. Argyle, “Modeling and Control of a Tailsitter with a Ducted Fan,” PhD Dissertation, Brigham Young University, 2016. PDF

- The advantage of the total energy control method is that it is independent of the aerodynamic model.

**Accelerometers and Attitude Control For Multi-rotors**- Accelerometers are often used to estimate the roll and pitch angles of multi-rotor vehicles. It turns out that since the aerodynamics of multi-rotors are quite different than fixed wing vehicles, the method described in the book does not work for multi-rotor vehicles. An detailed explanation of what data can be extracted from accelerometers on multi-rotor vehicles is given in
- Robert Leishman, John Macdonald, Randal W. Beard, Timothy W. McLain, “Quadrotors and Accelerometers: State Estimation with an Improved Dynamic Model,” IEEE Control Systems Magazine, vol. 34, no. 1, p. 28-41, February, 2014. Preprint.

**Kalman Filter**- For a nice introduction to Kalman filtering, view the section chapter of the Udacity course on Artificial Intelligence by Sebastian Thurn:

**Weather and Wind Data**- This is a nice web site for hour by hour wind and weather information:

**Student Projects (sample)**- 2014_nathan_madsen_auto_landing.zip - Nathan Madsen implemented a model of landing gear and runway interactions, together with an auto landing function.
- andrew_hendricks_avl_aero_coefficients.zip - Andrew Hendrick computed the aerodynamic coefficients of a Zagi and a Pelican using AVL. The project files and the coefficients are contained in this zipped file. andrew_hendricks_avl_aero_coefficients.pdf
- 2014_rrtstar_michael_boren.zip - Michael Boren's implementation of the RRT* algorithm.
- 2019. Michael Eyler: LQR control: https://github.com/eyler94/EE674LQR.git
- 2019. Brandon Forsgren. ROS/C++ implementation: https://github.com/b4sgren/mav_simulator
- 2019. Derek Knowles. Path planning Voronoi graphs: https://github.com/betaBison/EC-EN-674-Flight-Dynamics-Controls/tree/master/project

start.txt · Last modified: 2019/07/22 13:31 by beard