UAV Systems Engineering
References and documentation
Authoritative sources for the whole track. Tool-specific behaviour (PX4, ROS 2, MAVLink) changes between releases: always check the documentation version that matches your software.
Core documentation and projects
- PX4 Autopilot User Guide (official; pick the version that matches your firmware)
- PX4: ROS 2 User Guide (uXRCE-DDS bridge, px4_msgs, offboard examples)
- PX4: uXRCE-DDS (Micro XRCE-DDS) bridge
- PX4: Offboard mode
- PX4: Using the EKF2 estimator
- PX4: External position estimation (visual odometry and motion capture)
- PX4: Flight log analysis
- PX4: Simulation (SITL and HITL)
- MAVLink developer guide
- MAVLink common message set
- ArduPilot Copter documentation
- ArduPilot developer documentation
- ROS 2 documentation (Humble)
- REP 103: Standard units of measure and coordinate conventions
- OpenCV documentation
- ORB-SLAM3 repository
- VINS-Fusion repository
- OpenVINS documentation
- FAST-LIO / FAST-LIO2 repository
- FAST-LIVO2 repository
- evo: trajectory evaluation tool
- NVIDIA Jetson modules (vendor-published specifications)
- T. D. Barfoot, State Estimation for Robotics, Cambridge University Press, 2017. author’s page
- P. D. Groves, Principles of GNSS, Inertial, and Multisensor Integrated Navigation Systems, 2nd ed., Artech House, 2013.
- Y. Bar-Shalom, X. R. Li and T. Kirubarajan, Estimation with Applications to Tracking and Navigation, Wiley, 2001.
- R. Mahony, V. Kumar and P. Corke, “Multirotor aerial vehicles”, IEEE Robotics & Automation Magazine, 2012
- NASA Systems Engineering Handbook (SP-2016-6105 Rev 2)
M1-T1: Introduction to UAVs and their classifications
- EASA: operating a drone (open, specific and certified categories)
- FAA: commercial small UAS operations (Part 107)
- EASA: specific category civil drones (operational risk assessment, SORA)
- K. P. Valavanis, G. J. Vachtsevanos (eds.), Handbook of Unmanned Aerial Vehicles, Springer, 2015.
M1-T2: Multirotor, fixed-wing and VTOL architectures
- J. G. Leishman, Principles of Helicopter Aerodynamics, 2nd ed., Cambridge University Press, 2006 (momentum theory).
- PX4: airframe reference (multicopter, fixed-wing, VTOL)
- M. V. Cook, Flight Dynamics Principles, 3rd ed., Butterworth-Heinemann, 2013.
M1-T3: Quadrotor mechanical and electrical components
- PX4: assembly and wiring guides
- PX4: flight controller orientation
- PX4: log analysis (vibration)
- IPC-2221 (generic standard on printed board design) and manufacturer wire and connector ratings for current limits.
M1-T4: UAV coordinate frames: Body, World, NED and ENU
- REP 103: Standard units of measure and coordinate conventions (ROS)
- PX4 ROS 2 user guide: frame conventions and px4_ros_com
- R. Mahony, V. Kumar, P. Corke, “Multirotor aerial vehicles”, IEEE RAM, 2012 (modelling and frame conventions)
- P. D. Groves, Principles of GNSS, Inertial, and Multisensor Integrated Navigation Systems, 2nd ed., Artech House, 2013 (frames and rotations).
M1-T5: Six-degree-of-freedom UAV dynamics
- R. Mahony, V. Kumar, P. Corke, “Multirotor aerial vehicles: modelling, estimation and control of quadrotor”, IEEE RAM, 2012
- D. Mellinger, V. Kumar, “Minimum snap trajectory generation and control for quadrotors”, ICRA 2011 (model and differential flatness)
- PX4 documentation: multicopter control architecture
M1-T6: Roll, pitch, yaw and thrust generation
- R. Mahony, V. Kumar, P. Corke, IEEE RAM 2012 (multirotor modelling and control allocation)
- PX4: Control allocation
- PX4: Airframe reference (motor numbering and geometry)
M1-T7: Flight controllers, ESCs, motors and propellers
- R. Mahony, V. Kumar, P. Corke, IEEE RAM 2012
- PX4: example flight controller assembly and wiring (check your board’s page)
- PX4: Peripherals (ESCs, DroneCAN, telemetry)
M1-T8: IMU, barometer, magnetometer and GNSS
- PX4: Using the EKF2 estimator (sensor fusion options)
- PX4: compass configuration and calibration
- P. D. Groves, Principles of GNSS, Inertial, and Multisensor Integrated Navigation Systems, 2nd ed., Artech House, 2013, chapters 4 and 6.
- NOAA: magnetic field calculators (declination and inclination)
M1-T9: Companion computer architecture
M1-T10: NVIDIA Jetson platforms for autonomous UAVs
- NVIDIA Jetson modules (specifications by module)
- NVIDIA Jetson Linux developer guide (nvpmodel, tegrastats, power and thermal)
- NVIDIA Jetson downloads: datasheets and thermal design guides
M1-T11: UAV communication and onboard architecture
- PX4: DroneCAN
- MAVLink developer guide
- T. S. Rappaport, Wireless Communications: Principles and Practice, 2nd ed., Prentice Hall, 2002 (link budgets).
- PX4: peripherals (telemetry radios, GNSS, ESCs)
M1-T12: Complete UAV system architecture and data flow
- PX4: ROS 2 user guide (interfaces and frames)
- NASA Systems Engineering Handbook (interface management)
- REP 105: coordinate frames for mobile platforms
M2-T1: GNSS fundamentals
- P. D. Groves, Principles of GNSS, Inertial, and Multisensor Integrated Navigation Systems, 2nd ed., Artech House, 2013, chapters 8–9.
- GPS.gov: U.S. government GPS information (performance standards and accuracy statements)
- ESA Navipedia: GNSS fundamentals, error budgets and DOP
M2-T2: GPS, GLONASS, Galileo and BeiDou
- GPS.gov (official U.S. GPS information; the IS-GPS-200 interface specification is published by the GPS Directorate: look up the current edition from here)
- European GNSS Service Centre: Galileo OS SIS ICD and reference documents
- ESA Navipedia: GNSS systems and signals
- P. D. Groves, Principles of GNSS, Inertial, and Multisensor Integrated Navigation Systems, 2nd ed., Artech House, 2013, chapter 8.
M2-T3: GNSS receivers and positioning
- PX4: RTK GNSS
- ESA Navipedia: positioning modes (DGNSS, RTK, PPP)
- P. J. G. Teunissen, O. Montenbruck (eds.), Springer Handbook of Global Navigation Satellite Systems, Springer, 2017.
- RTCM: standards for differential GNSS
M2-T4: GNSS errors and multipath
- P. D. Groves, Principles of GNSS, Inertial, and Multisensor Integrated Navigation Systems, 2nd ed., Artech House, 2013, chapter 9.
- ESA Navipedia: GNSS error sources, ionosphere-free combination and multipath
- E. D. Kaplan, C. J. Hegarty (eds.), Understanding GPS/GNSS: Principles and Applications, 3rd ed., Artech House, 2017.
M2-T5: GNSS signal blockage
- P. D. Groves, Principles of GNSS, Inertial, and Multisensor Integrated Navigation Systems, 2nd ed., Artech House, 2013, chapter 9 (urban positioning).
- ESA Navipedia: DOP and GNSS performance
- PX4: EKF2 GNSS quality checks
M2-T6: GNSS jamming and spoofing
- P. D. Groves, Principles of GNSS, Inertial, and Multisensor Integrated Navigation Systems, 2nd ed., Artech House, 2013 (integrity monitoring).
- M. L. Psiaki, T. E. Humphreys, “GNSS spoofing and detection”, Proceedings of the IEEE, 2016
- PX4: EKF2 GNSS checks and fusion parameters
M2-T7: Inertial Navigation Systems
- P. D. Groves, Principles of GNSS, Inertial, and Multisensor Integrated Navigation Systems, 2nd ed., Artech House, 2013, chapter 5.
- J. Solà, “Quaternion kinematics for the error-state Kalman filter”, arXiv:1711.02508
- T. D. Barfoot, State Estimation for Robotics, Cambridge University Press, 2017 (rotations and kinematics).
M2-T8: Dead reckoning and inertial drift
- P. D. Groves, Principles of GNSS, Inertial, and Multisensor Integrated Navigation Systems, 2nd ed., Artech House, 2013.
- IEEE Std 952-1997, Guide for the specification of inertial sensors (Allan variance method; check current revision)
- T. D. Barfoot, State Estimation for Robotics, Cambridge University Press, 2017.
M2-T9: Vision-aided navigation
- PX4: optical flow
- D. Scaramuzza, F. Fraundorfer, “Visual odometry [tutorial]”, IEEE RAM, 2011
- PX4Flow: open-source optical flow sensor (project repository and documentation)
M2-T10: Visual Odometry
- D. Scaramuzza, F. Fraundorfer, “Visual odometry [tutorial]”, IEEE RAM, 2011
- D. Nistér, “An efficient solution to the five-point relative pose problem”, IEEE TPAMI, 2004
- M. Fischler, R. Bolles, “Random sample consensus”, Communications of the ACM, 1981
- OpenCV: epipolar geometry tutorial
- R. Hartley, A. Zisserman, Multiple View Geometry in Computer Vision, 2nd ed., Cambridge University Press, 2004.
M2-T11: Visual-Inertial Odometry
- A. Mourikis, S. Roumeliotis, “A multi-state constraint Kalman filter for vision-aided inertial navigation”, ICRA 2007
- T. Qin, P. Li, S. Shen, “VINS-Mono”, arXiv:1708.03852
- P. Geneva et al., “OpenVINS: a research platform for visual-inertial estimation”, ICRA 2020
- C. Forster et al., “On-manifold preintegration for real-time visual-inertial odometry”, IEEE T-RO, 2017
- J. A. Hesch, D. G. Kottas, S. L. Bowman, S. I. Roumeliotis, “Camera-IMU-based localization: observability analysis and consistency improvement”, IJRR, 2014
M2-T12: Stereo visual odometry
- D. Scaramuzza, F. Fraundorfer, “Visual odometry [tutorial]”, IEEE RAM, 2011
- S. Umeyama, “Least-squares estimation of transformation parameters between two point patterns”, IEEE TPAMI, 1991
- OpenCV: depth map from stereo images
- R. Hartley, A. Zisserman, Multiple View Geometry in Computer Vision, 2nd ed., Cambridge University Press, 2004.
M2-T13: LiDAR-aided navigation
- W. Xu et al., “FAST-LIO2: fast direct LiDAR-inertial odometry”, IEEE T-RO, 2022
- J. Zhang, M. Kaess, S. Singh, “On degeneracy of optimization-based state estimation problems”, ICRA 2016
- J. Zhang, S. Singh, “LOAM: lidar odometry and mapping in real-time”, RSS 2014
M2-T14: LiDAR odometry
- P. Besl, N. McKay, “A method for registration of 3-D shapes”, IEEE TPAMI, 1992
- Y. Chen, G. Medioni, “Object modelling by registration of multiple range images”, Image and Vision Computing, 1992
- A. Segal, D. Haehnel, S. Thrun, “Generalized-ICP”, RSS 2009
- J. Zhang, S. Singh, “LOAM: lidar odometry and mapping in real-time”, RSS 2014
M2-T15: Radar-aided navigation
- S. H. Cen, P. Newman, “Precise ego-motion estimation with millimeter-wave radar under diverse and challenging conditions”, ICRA 2018
- Texas Instruments: FMCW radar fundamentals (application note)
- M. A. Richards, Fundamentals of Radar Signal Processing, 2nd ed., McGraw-Hill, 2014.
M2-T16: Multi-sensor GNSS-denied navigation architectures
- P. D. Groves, Principles of GNSS, Inertial, and Multisensor Integrated Navigation Systems, 2nd ed., Artech House, 2013 (integration architectures and integrity).
- T. Qin et al., “A general optimization-based framework for local odometry estimation with multiple sensors”, arXiv:1901.03638 (the VINS-Fusion local odometry framework)
- PX4: external position estimation
M3-T1: Probability and uncertainty in robotics
- S. Thrun, W. Burgard, D. Fox, Probabilistic Robotics, MIT Press, 2005, chapters 2 and 4
- T. D. Barfoot, State Estimation for Robotics, Cambridge University Press, 2017, chapter 2.
- A. Papoulis, S. U. Pillai, Probability, Random Variables and Stochastic Processes, 4th ed., McGraw-Hill, 2002.
M3-T2: Gaussian distributions and covariance
- T. D. Barfoot, State Estimation for Robotics, Cambridge University Press, 2017, chapter 2.
- Y. Bar-Shalom, X. R. Li, T. Kirubarajan, Estimation with Applications to Tracking and Navigation, Wiley, 2001, chapter 1.
- REP 103 (covariance ordering and units conventions in ROS)
M3-T3: Bayesian estimation
- S. Thrun, W. Burgard, D. Fox, Probabilistic Robotics, MIT Press, 2005, chapter 2
- T. D. Barfoot, State Estimation for Robotics, Cambridge University Press, 2017, chapter 3.
- A. H. Jazwinski, Stochastic Processes and Filtering Theory, Academic Press, 1970.
M3-T4: Kalman Filter
- R. E. Kalman, “A new approach to linear filtering and prediction problems”, J. Basic Engineering, 1960
- T. D. Barfoot, State Estimation for Robotics, Cambridge University Press, 2017, chapter 3.
- Y. Bar-Shalom, X. R. Li, T. Kirubarajan, Estimation with Applications to Tracking and Navigation, Wiley, 2001.
M3-T5: Extended Kalman Filter
- T. D. Barfoot, State Estimation for Robotics, Cambridge University Press, 2017, chapter 4.
- Y. Bar-Shalom, X. R. Li, T. Kirubarajan, Estimation with Applications to Tracking and Navigation, Wiley, 2001, chapter 5.
- PX4: Using the EKF2 estimator
M3-T6: Error-State Kalman Filter
- J. Solà, “Quaternion kinematics for the error-state Kalman filter”, arXiv:1711.02508
- PX4: Using the EKF2 estimator
- T. D. Barfoot, State Estimation for Robotics, Cambridge University Press, 2017, chapter 7.
M3-T7: IMU noise and bias modelling
- IEEE Std 952-1997: Guide for the specification of inertial sensors (Allan variance); check for the current revision
- D. W. Allan, “Statistics of atomic frequency standards”, Proceedings of the IEEE, 1966
- allan_variance_ros: IMU noise parameter estimation tool for ROS
- OpenVINS documentation: IMU noise parameter configuration
M3-T8: IMU preintegration
- C. Forster, L. Carlone, F. Dellaert, D. Scaramuzza, “On-manifold preintegration for real-time visual-inertial odometry”, IEEE T-RO, 2017
- Forster et al. on arXiv:1512.02363
- T. Lupton, S. Sukkarieh, “Visual-inertial-aided navigation for high-dynamic motion in built environments without initial conditions”, IEEE T-RO, 2012
- T. Qin, P. Li, S. Shen, “VINS-Mono”, arXiv:1708.03852
M3-T9: Camera-IMU fusion
- A. Mourikis, S. Roumeliotis, “A multi-state constraint Kalman filter for vision-aided inertial navigation”, ICRA 2007
- M. Li, A. I. Mourikis, “High-precision, consistent EKF-based visual-inertial odometry”, IJRR, 2013
- OpenVINS documentation (tightly coupled MSCKF)
M3-T10: LiDAR-IMU fusion
- W. Xu et al., “FAST-LIO2: fast direct LiDAR-inertial odometry”, IEEE T-RO, 2022
- T. Shan et al., “LIO-SAM: tightly-coupled lidar inertial odometry via smoothing and mapping”, IROS 2020
- FAST-LIO repository
M3-T11: Multi-sensor fusion architectures
- S. Julier, J. Uhlmann, “A non-divergent estimation algorithm in the presence of unknown correlations”, ACC 1997
- Y. Bar-Shalom, X. R. Li, T. Kirubarajan, Estimation with Applications to Tracking and Navigation, Wiley, 2001, chapter 8.
- F. Dellaert, M. Kaess, “Factor graphs for robot perception”, Foundations and Trends in Robotics 6(1–2), 2017.
M3-T12: Observability and consistency
- J. A. Hesch, D. G. Kottas, S. L. Bowman, S. I. Roumeliotis, “Camera-IMU-based localization: observability analysis and consistency improvement”, IJRR, 2014
- J. Kelly, G. S. Sukhatme, “Visual-inertial sensor fusion: localization, mapping and sensor-to-sensor self-calibration”, IJRR, 2011
- T. D. Barfoot, State Estimation for Robotics, Cambridge University Press, 2017, chapter 3.
- C. T. Chen, Linear System Theory and Design, 3rd ed., Oxford University Press, 1999.
M3-T13: Innovation monitoring
- Y. Bar-Shalom, X. R. Li, T. Kirubarajan, Estimation with Applications to Tracking and Navigation, Wiley, 2001, chapter 5.
- T. Kailath, “An innovations approach to least-squares estimation. Part I”, IEEE Transactions on Automatic Control, 1968.
- PX4: innovation test ratios and EKF2 tuning
M3-T14: Normalized Innovation Squared
- Y. Bar-Shalom, X. R. Li, T. Kirubarajan, Estimation with Applications to Tracking and Navigation, Wiley, 2001, chapter 5 (consistency tests).
- T. D. Barfoot, State Estimation for Robotics, Cambridge University Press, 2017.
- PX4: EKF2 innovation checks and tuning
M3-T15: Normalized Estimation Error Squared
- Y. Bar-Shalom, X. R. Li, T. Kirubarajan, Estimation with Applications to Tracking and Navigation, Wiley, 2001, section 5.4 (consistency tests).
- T. D. Barfoot, State Estimation for Robotics, Cambridge University Press, 2017.
- OpenVINS documentation: evaluation and consistency (NEES) tooling
M3-T16: Sensor fault detection and isolation
- M. Basseville, I. V. Nikiforov, Detection of Abrupt Changes: Theory and Application, Prentice Hall, 1993 (free online from the authors).
- E. S. Page, “Continuous inspection schemes”, Biometrika, 1954
- R. Isermann, Fault-Diagnosis Systems, Springer, 2006.
- PX4: EKF2 innovation checks and sensor failure handling
M4-T1: SLAM fundamentals
- C. Cadena et al., “Past, present, and future of simultaneous localization and mapping: toward the robust-perception age”, IEEE T-RO, 2016
- S. Thrun, W. Burgard, D. Fox, Probabilistic Robotics, MIT Press, 2005, chapters 10–13.
- G. Grisetti et al., “A tutorial on graph-based SLAM”, IEEE ITS Magazine, 2010
M4-T2: Visual SLAM
- B. Triggs, P. McLauchlan, R. Hartley, A. Fitzgibbon, “Bundle adjustment: a modern synthesis”, Vision Algorithms 1999
- R. Mur-Artal, J. M. M. Montiel, J. D. Tardós, “ORB-SLAM: a versatile and accurate monocular SLAM system”, IEEE T-RO, 2015
- Ceres Solver documentation: nonlinear least squares and bundle adjustment
M4-T3: ORB-SLAM3
- C. Campos et al., “ORB-SLAM3: an accurate open-source library for visual, visual-inertial and multi-map SLAM”, IEEE T-RO, 2021
- ORB-SLAM3 on arXiv:2007.11898
- ORB-SLAM3 repository and README
- D. Gálvez-López, J. Tardós, “Bags of binary words for fast place recognition in image sequences”, IEEE T-RO, 2012
M4-T4: VINS-Fusion
- T. Qin, J. Pan, S. Cao, S. Shen, “A general optimization-based framework for local odometry estimation with multiple sensors”, arXiv:1901.03638
- T. Qin, S. Cao, J. Pan, S. Shen, “A general optimization-based framework for global pose estimation with multiple sensors”, arXiv:1901.03642
- T. Qin, P. Li, S. Shen, “VINS-Mono”, arXiv:1708.03852
- VINS-Fusion repository and README
M4-T5: OpenVINS
- P. Geneva, K. Eckenhoff, W. Lee, Y. Yang, G. Huang, “OpenVINS: a research platform for visual-inertial estimation”, ICRA 2020
- A. Mourikis, S. Roumeliotis, “A multi-state constraint Kalman filter for vision-aided inertial navigation”, ICRA 2007
- OpenVINS documentation
- OpenVINS repository
M4-T6: LiDAR SLAM
- T. Shan et al., “LIO-SAM: tightly-coupled lidar inertial odometry via smoothing and mapping”, IROS 2020
- G. Kim, A. Kim, “Scan Context: egocentric spatial descriptor for place recognition within 3D point cloud map”, IROS 2018
- W. Xu et al., “FAST-LIO2”, IEEE T-RO, 2022
- KISS-ICP: a simple, robust point-to-point LiDAR odometry pipeline (repository and paper link)
M4-T7: LOAM and A-LOAM
- J. Zhang, S. Singh, “LOAM: lidar odometry and mapping in real-time”, RSS 2014
- A-LOAM repository and README
- T. Shan, B. Englot, “LeGO-LOAM: lightweight and ground-optimized lidar odometry and mapping on variable terrain”, IROS 2018
M4-T8: FAST-LIO2
- W. Xu, Y. Cai, D. He, J. Lin, F. Zhang, “FAST-LIO2: Fast direct LiDAR-inertial odometry”, IEEE T-RO, 2022
- FAST-LIO2 on arXiv:2107.06829
- W. Xu, F. Zhang, “FAST-LIO: A fast, robust LiDAR-inertial odometry package by tightly-coupled iterated Kalman filter”, arXiv:2010.08196
- Y. Cai, W. Xu, F. Zhang, “ikd-Tree: an incremental k-d tree for robotic applications”, arXiv:2102.10808
- FAST-LIO repository (includes FAST-LIO2 code)
M4-T9: Visual-LiDAR-Inertial Odometry
- C. Zheng et al., “FAST-LIVO2: fast, direct LiDAR–inertial–visual odometry”, IEEE T-RO, 2025
- T. Shan et al., “LVI-SAM: tightly-coupled lidar-visual-inertial odometry via smoothing and mapping”, ICRA 2021
- FAST-LIVO2 repository
M4-T10: FAST-LIVO2
- C. Zheng et al., “FAST-LIVO2: fast, direct LiDAR-inertial-visual odometry”, arXiv:2408.14035
- C. Zheng et al., FAST-LIVO2, IEEE Transactions on Robotics, 2025
- FAST-LIVO2 repository and README
- W. Xu et al., FAST-LIO2, IEEE T-RO, 2022
M4-T11: Loop closure
- G. Kim, A. Kim, “Scan Context: egocentric spatial descriptor for place recognition within 3D point cloud map”, IROS 2018
- D. Gálvez-López, J. Tardós, “Bags of binary words for fast place recognition in image sequences”, IEEE T-RO, 2012
- R. Arandjelović et al., “NetVLAD: CNN architecture for weakly supervised place recognition”, IEEE TPAMI, 2018
M4-T12: Pose graph optimization
- G. Grisetti, R. Kümmerle, C. Stachniss, W. Burgard, “A tutorial on graph-based SLAM”, IEEE Intelligent Transportation Systems Magazine, 2010
- g2o: general graph optimisation framework
- GTSAM: factor graphs for SLAM
- ORB-SLAM3 repository (Atlas, loop closing and map merging)
M4-T13: Map-based localization
- S. Thrun, W. Burgard, D. Fox, Probabilistic Robotics, MIT Press, 2005, chapter 8.
- P. Biber, W. Straßer, “The normal distributions transform: a new approach to laser scan matching”, IROS 2003
- Nav2 AMCL (adaptive Monte Carlo localisation)
M4-T14: Mapless versus map-based navigation
- P. D. Groves, Principles of GNSS, Inertial, and Multisensor Integrated Navigation Systems, 2nd ed., Artech House, 2013 (integration architectures).
- C. Cadena et al., “Past, present, and future of SLAM”, IEEE T-RO, 2016
- PX4: external position estimation
M4-T15: Localization failure detection
- PX4: innovation and consistency checks in EKF2
- Y. Bar-Shalom, X. R. Li, T. Kirubarajan, Estimation with Applications to Tracking and Navigation, Wiley, 2001, chapter 5.
- C. Cadena et al., Past, present, and future of SLAM (arXiv:1606.05830)
M5-T1: UAV equations of motion
- R. Mahony, V. Kumar, P. Corke, IEEE RAM 2012
- R. W. Beard, T. W. McLain, Small Unmanned Aircraft: Theory and Practice, Princeton University Press, 2012: the chapter on coordinate frames has the section on airspeed, wind speed and ground speed (the wind triangle and the course and heading angles used here).
- T. Lee, M. Leok, N. H. McClamroch, “Geometric tracking control of a quadrotor UAV on SE(3)”, IEEE CDC, 2010 (uses R and Ṙ = R[ω]ₓ as written here)
- K. M. Lynch, F. C. Park, Modern Robotics: Mechanics, Planning, and Control (free online edition): rotation matrices, angular velocity, rigid-body dynamics
- PX4: controller diagrams (the nested position, attitude and rate loops)
- ROS REP-103: coordinate frame conventions
- FAA: Pilot’s Handbook of Aeronautical Knowledge (the chapter on navigation explains the wind triangle, wind correction angle and groundspeed in plain language)
- B. L. Stevens, F. L. Lewis, E. N. Johnson, Aircraft Control and Simulation, 3rd ed., Wiley, 2015.
M5-T2: Quadrotor dynamic modelling
- R. Mahony, V. Kumar, P. Corke, IEEE RAM 2012
- PX4: simulation (vehicle model parameters)
- R. W. Beard, T. W. McLain, Small Unmanned Aircraft, Princeton University Press, 2012, appendix on parameter identification.
M5-T3: Attitude representation and rotation matrices
- T. D. Barfoot, State Estimation for Robotics, Cambridge University Press, 2017, chapter 6.
- J. Solà, “Quaternion kinematics for the error-state Kalman filter”, arXiv:1711.02508
- J. Diebel, “Representing attitude: Euler angles, unit quaternions, and rotation vectors”, Stanford technical report, 2006.
M5-T4: Quaternion-based orientation
- J. Solà, “Quaternion kinematics for the error-state Kalman filter”, arXiv:1711.02508
- T. D. Barfoot, State Estimation for Robotics, Cambridge University Press, 2017, chapter 6.
- REP 103 (ROS conventions)
M5-T5: Attitude control
- T. Lee, M. Leok, N. H. McClamroch, “Geometric tracking control of a quadrotor UAV on SE(3)”, CDC 2010
- PX4: multicopter PID tuning guide
- R. Mahony, V. Kumar, P. Corke, IEEE RAM 2012
M5-T6: PID controllers
- PX4: Multicopter PID tuning guide
- K. J. Åström, R. M. Murray, Feedback Systems: An Introduction for Scientists and Engineers, Princeton University Press, 2008 (free online at fbswiki.org).
- ArduPilot Copter: Tuning
M5-T7: LQR control
- B. D. O. Anderson, J. B. Moore, Optimal Control: Linear Quadratic Methods, Prentice-Hall, 1990.
- K. J. Åström, R. M. Murray, Feedback Systems, Princeton University Press, 2008, chapter 6.
- R. Mahony, V. Kumar, P. Corke, IEEE RAM 2012
M5-T8: Model Predictive Control
- D. Q. Mayne, J. B. Rawlings, C. V. Rao, P. O. M. Scokaert, “Constrained model predictive control: stability and optimality”, Automatica, 2000
- J. B. Rawlings, D. Q. Mayne, M. M. Diehl, Model Predictive Control: Theory, Computation, and Design, 2nd ed., Nob Hill, 2017.
- OSQP: quadratic programming solver (documentation)
M5-T9: Trajectory generation
- D. Mellinger, V. Kumar, “Minimum snap trajectory generation and control for quadrotors”, ICRA 2011
- mav_trajectory_generation: polynomial trajectory generation (ETH)
- C. Richter, A. Bry, N. Roy, “Polynomial trajectory planning for aggressive quadrotor flight in dense indoor environments”, ISRR 2013
M5-T10: Waypoint navigation
- PX4: Mission mode (multicopter)
- ArduPilot Copter: Auto mode
- ArduPilot Copter: Parameters (WPNAV_* waypoint navigation parameters)
M5-T11: A* and RRT path planning
- Hart, P. E., Nilsson, N. J. & Raphael, B. (1968). A formal basis for the heuristic determination of minimum cost paths. IEEE Trans. Systems Science and Cybernetics
- Karaman, S. & Frazzoli, E. (2011). Sampling-based algorithms for optimal motion planning. IJRR 30(7)
- OMPL: the Open Motion Planning Library
- LaValle, S. M. Planning Algorithms (free online book)
M5-T12: Kinodynamic planning
- Mellinger, D. & Kumar, V. (2011). Minimum snap trajectory generation and control for quadrotors. ICRA
- Liu, S. et al. (2017). Planning dynamically feasible trajectories for quadrotors using safe flight corridors in 3-D complex environments. IEEE RA-L 2(3)
- Zhou, B., Gao, F., Wang, L., Liu, C. & Shen, S. (2019). Robust and efficient quadrotor trajectory generation for fast autonomous flight. IEEE RA-L 4(4)
- LaValle, S. M. Planning Algorithms (free online book)
M5-T13: Obstacle avoidance
- Khatib, O. (1986). Real-time obstacle avoidance for manipulators and mobile robots. IJRR 5(1)
- Fiorini, P. & Shiller, Z. (1998). Motion planning in dynamic environments using velocity obstacles. IJRR 17(7)
- Ames, A. D. et al. (2017). Control barrier function based quadratic programs for safety critical systems. IEEE TAC 62(8)
- PX4: Collision prevention
M5-T14: Trajectory tracking
- Lee, T., Leok, M. & McClamroch, N. H. (2010). Geometric tracking control of a quadrotor UAV on SE(3). IEEE CDC
- Mellinger, D. & Kumar, V. (2011). Minimum snap trajectory generation and control for quadrotors. ICRA
- PX4: Offboard mode (multicopter)
M5-T15: Guidance and control integration
- PX4: Controller diagrams (multicopter control architecture)
- PX4: Architectural overview
- ArduPilot: Copter attitude control (developer documentation)
M5-T16: Disturbance rejection and wind compensation
- Chen, W.-H., Yang, J., Guo, L. & Li, S. (2016). Disturbance-observer-based control and related methods: an overview. IEEE Trans. Industrial Electronics 63(2)
- PX4: Using the EKF2 estimator (including wind estimation)
- PX4: Multicopter PID tuning guide
M5-T17: 3-D path planning on voxel maps
- P. E. Hart, N. J. Nilsson, B. Raphael, “A formal basis for the heuristic determination of minimum cost paths”, IEEE Transactions on Systems Science and Cybernetics, 1968
- A. Hornung et al., “OctoMap: an efficient probabilistic 3D mapping framework based on octrees”, Autonomous Robots, 2013
- K. Daniel, A. Nash, S. Koenig, A. Felner, “Theta*: any-angle path planning on grids”, Journal of Artificial Intelligence Research, 2010 (line-of-sight shortcuts inside the search)
- S. Karaman, E. Frazzoli, “Sampling-based algorithms for optimal motion planning”, International Journal of Robotics Research, 2011 (RRT* in continuous 3-D space)
- S. Liu et al., “Planning dynamically feasible trajectories for quadrotors using safe flight corridors in 3-D complex environments”, IEEE Robotics and Automation Letters, 2017
- B. Zhou et al., “Robust and efficient quadrotor trajectory generation for fast autonomous flight”, IEEE Robotics and Automation Letters, 2019
M6-T1: Introduction to PX4
- PX4 User and Developer Guide
- PX4: Architectural overview
- PX4-Autopilot source repository
- Dronecode Foundation
M6-T2: Introduction to ArduPilot
- ArduPilot Copter documentation
- ArduPilot developer documentation
- PX4 User and Developer Guide
- GNU General Public License v3
- BSD 3-Clause License (Open Source Initiative)
M6-T3: PX4 architecture
- PX4: Architectural overview
- PX4: Controller diagrams
- PX4: Control allocation
- pyulog: ULog parsing library
M6-T4: PX4 modules and communication
M6-T5: PX4 state estimation and EKF2
- PX4: Using the ECL EKF
- PX4-ECL: estimation and control library (history)
- PX4: Parameter reference (EKF2 group)
- PX4: Flight log analysis
M6-T6: Flight modes
M6-T7: MAVLink protocol
- MAVLink guide: Serialization (frames, CRC, truncation)
- MAVLink common message set
- MAVLink guide: Message signing
- pymavlink
M6-T8: ROS 2 and PX4 integration
- PX4: ROS 2 user guide
- PX4: MAVROS installation
- ROS REP-103: Standard Units of Measure and Coordinate Conventions
- px4_msgs repository
M6-T9: uXRCE-DDS
- PX4: uXRCE-DDS (Micro XRCE-DDS) bridge
- PX4: ROS 2 User Guide
- eProsima Micro XRCE-DDS documentation
- px4_msgs repository
M6-T10: External vision and odometry integration
- PX4: External position estimation
- PX4: Using the EKF2 estimator
- MAVLink: ODOMETRY message
- px4_msgs: VehicleOdometry.msg (check the tag for your version)
M6-T11: Offboard control
M6-T12: QGroundControl
M6-T13: Flight logs and debugging
M6-T14: Software-in-the-Loop simulation
M6-T15: Hardware-in-the-Loop simulation
- PX4: Hardware in the Loop simulation (HITL)
- MAVLink: HIL_SENSOR message
- PX4: Debugging and development tools
M6-T16: Companion computer integration
- PX4: Companion computers
- PX4: Pixhawk and companion computer setup
- systemd.service manual (Restart, WatchdogSec)
M7-T1: UAV onboard computing architecture
- Liu, C. L. & Layland, J. W. (1973). Scheduling algorithms for multiprogramming in a hard-real-time environment. J. ACM 20(1)
- PX4: Companion computers
- PX4: Architectural overview
M7-T2: NVIDIA Jetson platforms
- NVIDIA: Jetson developer kits and modules (datasheets and developer guides)
- NVIDIA: Jetson Linux documentation archive (power management, tegrastats)
- NVIDIA TensorRT
M7-T3: CPU and GPU workload management
- ROS 2: Executors
- Linux sched(7): scheduling policies and priorities
- Linux taskset(1)
- Liu, C. L. & Layland, J. W. (1973). Scheduling algorithms for multiprogramming in a hard-real-time environment. J. ACM 20(1)
M7-T4: Real-time operating systems
- Liu, C. L. & Layland, J. W. (1973). Scheduling algorithms for multiprogramming in a hard-real-time environment. J. ACM 20(1)
- Sha, L., Rajkumar, R. & Lehoczky, J. P. (1990). Priority inheritance protocols: an approach to real-time synchronization. IEEE Trans. Computers 39(9)
- Apache NuttX documentation
- Linux Foundation: Real-Time Linux (PREEMPT_RT)
M7-T5: ROS 2 execution and scheduling
- ROS 2: Executors
- ROS 2: Quality of Service settings
- ros2_tracing: tracing tools for ROS 2
- ROS 2 Humble: Real-time programming tutorial
M7-T6: End-to-end latency
- ROS 2: Quality of Service settings
- ros2_tracing: tracing and latency analysis for ROS 2
- K. J. Åström, R. M. Murray, Feedback Systems, Princeton University Press, 2008 (time delay and stability margins).
M7-T7: Jitter and deadline monitoring
- Linux Foundation: cyclictest
- clock_gettime(2): CLOCK_MONOTONIC
- Buttazzo, G. C. (2011). Hard Real-Time Computing Systems: Predictable Scheduling Algorithms and Applications. Springer
M7-T8: Camera, IMU and LiDAR synchronization
- Kalibr: camera-IMU calibration including temporal offset
- IEEE 1588 Precision Time Protocol
- P. Furgale, J. Rehder, R. Siegwart, “Unified temporal and spatial calibration for multi-sensor systems”, IROS 2013 (the method behind Kalibr’s time-offset estimation)
- PX4: camera trigger and capture
M7-T9: Hardware triggering
- PX4: Cameras (trigger and capture)
- Kalibr: camera-IMU calibration including time offset
- Furgale, P., Rehder, J. & Siegwart, R. (2013). Unified temporal and spatial calibration for multi-sensor systems. IROS
M7-T10: Software timestamping
- Linux kernel: Timestamping (SO_TIMESTAMPING)
- Furgale, P., Rehder, J. & Siegwart, R. (2013). Unified temporal and spatial calibration for multi-sensor systems. IROS
- ROS 2 design: Clock and Time
M7-T11: PTP synchronization
- IEEE 1588-2019: Precision Time Protocol
- linuxptp project
- Linux kernel: PTP hardware clock infrastructure
M7-T12: Compute and memory budgets
- Linux kernel: Control group v2 (resource accounting and limits)
- pidstat(1): per-process CPU, memory and I/O statistics
- INCOSE Systems Engineering Handbook
M7-T13: Power and thermal budgets
- Texas Instruments: Thermal design by insight, not hindsight (application report SLVA462)
- PX4: Battery estimation tuning
- SAE ARP4754A: Guidelines for development of civil aircraft and systems
M7-T14: Communication bandwidth
- MAVLink guide: Serialization (frame overhead)
- ROS 2: About discovery (discovery traffic)
- USB-IF: USB specifications
M7-T15: Sensor calibration
- Zhang, Z. (2000). A flexible new technique for camera calibration. IEEE TPAMI 22(11)
- OpenCV: Camera calibration tutorial
- Kalibr: camera calibration wiki
M7-T16: Camera-IMU-LiDAR extrinsic calibration
- Arun, K. S., Huang, T. S. & Blostein, S. D. (1987). Least-squares fitting of two 3-D point sets. IEEE TPAMI 9(5)
- Furgale, P., Rehder, J. & Siegwart, R. (2013). Unified temporal and spatial calibration for multi-sensor systems. IROS
- Kalibr wiki: multi-camera and camera-IMU calibration
- LiDAR_IMU_Init: LiDAR-IMU initialisation and calibration
M7-T17: Interface Control Documents
- INCOSE Systems Engineering Handbook (interface management)
- NASA Systems Engineering Handbook (NASA/SP-2007-6105), interface management
- PX4: VehicleOdometry message definition (example of a documented interface)
M7-T18: Requirements traceability
- NASA Systems Engineering Handbook (NASA/SP-2007-6105)
- INCOSE Systems Engineering Handbook
- SAE ARP4754A: Guidelines for development of civil aircraft and systems
M7-T19: Configuration management
- Reproducible Builds: documentation
- PX4: Parameters
- NASA Systems Engineering Handbook (NASA/SP-2007-6105), configuration management
- Pro Git (version control)
M8-T1: System requirements engineering
M8-T2: Requirements decomposition
- NASA Systems Engineering Handbook (NASA/SP-2007-6105)
- INCOSE Systems Engineering Handbook
- Bar-Shalom, Y., Li, X. R. & Kirubarajan, T. (2001). Estimation with Applications to Tracking and Navigation. Wiley (error statistics and covariance combination)
M8-T3: Verification and validation
- NASA Systems Engineering Handbook (NASA/SP-2007-6105), verification and validation
- NASA-STD-7009: Standard for Models and Simulations (credibility assessment)
- Clopper, C. J. & Pearson, E. S. (1934). The use of confidence or fiducial limits illustrated in the case of the binomial. Biometrika 26(4)
M8-T4: SIL, HIL and ground testing
- NASA Systems Engineering Handbook (NASA/SP-2007-6105), product verification
- PX4: Simulation
- PX4: Test and continuous integration
M8-T5: Flight-test planning
- NASA Systems Engineering Handbook (NASA/SP-2007-6105), test and verification
- EASA: Operating a drone (EU rules; check the rules that apply where you fly)
- FAA: Unmanned aircraft systems (US rules; check the rules that apply where you fly)
M8-T6: Test-case development
- Clopper, C. J. & Pearson, E. S. (1934). The use of confidence or fiducial limits illustrated in the case of the binomial. Biometrika 26(4)
- NASA Systems Engineering Handbook (NASA/SP-2007-6105)
- pytest documentation
M8-T7: FMEA
- SAE ARP4761: Guidelines and methods for conducting the safety assessment process on civil airborne systems and equipment
- EASA: specific category civil drones (operational risk assessment, SORA)
- NASA Systems Engineering Handbook (risk management and FMEA)
- IEC 60812, Failure modes and effects analysis (FMEA and FMECA).
M8-T8: Fault-tree analysis
- Vesely, W. E. et al. (1981). Fault Tree Handbook, NUREG-0492. U.S. Nuclear Regulatory Commission
- IEC 61025: Fault tree analysis (FTA)
M8-T9: Fault detection, isolation and recovery
- SAE ARP4761: safety assessment process (fault trees, FMEA, common-cause analysis)
- PX4: safety configuration (failsafe actions and parameters)
- NASA Systems Engineering Handbook (fault management)
M8-T10: Degraded navigation modes
- NASA Systems Engineering Handbook (operational concepts and fault management)
- PX4: safety configuration (failsafe actions)
- P. D. Groves, Principles of GNSS, Inertial, and Multisensor Integrated Navigation Systems, 2nd ed., Artech House, 2013 (integrity).
M8-T11: GNSS loss handling
- PX4: Safety configuration (failsafes)
- PX4: EKF2 and GNSS fusion
- P. D. Groves, Principles of GNSS, Inertial, and Multisensor Integrated Navigation Systems, 2nd ed., Artech House, 2013 (integrity and integration).
M8-T12: Visual odometry failure handling
- Forster, C., Carlone, L., Dellaert, F. & Scaramuzza, D. (2017). On-manifold preintegration for real-time visual-inertial odometry. IEEE T-RO 33(1)
- Mur-Artal, R. & Tardós, J. D. (2017). ORB-SLAM2: an open-source SLAM system for monocular, stereo and RGB-D cameras. IEEE T-RO 33(5)
- PX4: Visual inertial odometry (VIO)
M8-T13: IMU failure handling
- PX4: Using the ECL EKF (multi-IMU and innovation checks)
- ArduPilot: IMU batch sampling (vibration and sensor diagnostics)
- NASA Systems Engineering Handbook (NASA/SP-2007-6105), fault tolerance
M8-T14: Communication loss and failsafes
M8-T15: Flight incident investigation
- ICAO Annex 13: Aircraft Accident and Incident Investigation
- FAA: Unmanned aircraft systems (reporting requirements; check the rules that apply)
- PX4: Flight log analysis
M8-T16: Technical risk assessment
- ISO 31000: Risk management
- MIL-STD-882E: System Safety
- NASA Systems Engineering Handbook (NASA/SP-2007-6105), technical risk management
M8-T17: System acceptance criteria
- NASA Systems Engineering Handbook (NASA/SP-2007-6105), product validation and acceptance
- Clopper, C. J. & Pearson, E. S. (1934). The use of confidence or fiducial limits illustrated in the case of the binomial. Biometrika 26(4)
- NIST/SEMATECH e-Handbook of Statistical Methods: Lot acceptance (acceptance sampling)