Skip to content

Core Courses: Principles and Practice


This document constitutes the core learning content of the RflySim documentation, fully integrating the theoretical knowledge from the companion book Collaborative Control of Intelligent Unmanned Swarm Systems with the practical teaching of the RflySim toolchain. It is divided into 10 chapters, organized according to the logic of "from bottom to top, from single vehicle to swarm". This course adopts a trinity learning model of "theory–simulation–real hardware". Each chapter includes background theory explanations, toolchain interface introductions, illustrative case demonstrations, accompanying video lectures, and runnable experimental routines, enabling you to progressively master the full development workflow of intelligent unmanned systems. A core strength of the RflySim toolchain lies in its seamless transition capability—from pure software-in-the-loop simulation (SITL) to hardware-in-the-loop simulation (HITL) and finally to real-flight testing. Algorithms and code validated in the simulation environment can be directly deployed onto real hardware, significantly shortening the conversion cycle from theory to practice.


🎯 Course Positioning and Objectives

This course is designed for learners at multiple levels—whether undergraduate students new to unmanned systems, graduate students deeply engaged in related fields, or engineering R&D professionals. All can obtain a systematic knowledge framework and practical development skills. For beginners, we recommend starting with Chapters 1 and 2 to gradually build a foundational understanding of core concepts in unmanned systems and the overall RflySim toolchain, then proceeding sequentially through the chapters to complete the full learning path from fundamentals to advanced topics. For advanced learners who already possess a certain foundation in control theory or unmanned system development, you may selectively focus on specific chapters based on your research direction or project needs—for instance, readers focusing on low-level control can delve deeply into Chapters 4–7, those interested in intelligent perception and decision-making can prioritize Chapter 8, and those dedicated to swarm collaboration research can directly proceed to Chapters 9 and 10.

Through systematic study of this course, you will be able to independently complete the entire development workflow—from 3D scene modeling, vehicle dynamics modeling, filter estimation algorithm design, and low-level control law implementation, to external control interface development, trajectory planning algorithm validation, multi-modal perception processing, communication network simulation, and finally multi-vehicle formation control, swarm collaboration algorithms, and even adversarial game strategy design. More importantly, you will master modern engineering development methodologies based on Model-Based Design (MBD), learning to rapidly validate algorithm designs within the RflySim simulation environment and then deploy the validated algorithms onto real hardware via automatic code generation, truly achieving a plug-and-play seamless transition.

Before beginning this course, it is recommended that you have the following foundational knowledge: first, a foundation in control theory—including classical control concepts such as PID control, root locus methods, and frequency response analysis, as well as modern control methods such as state-space approaches and Kalman filtering—these will help you better understand the content in Chapters 4–7; second, programming proficiency, including basic MATLAB/Simulink operations (for Chapters 3–7) and Python programming fundamentals (for Chapters 6–10); and third, a basic understanding of the Robot Operating System (ROS), which will facilitate more efficient completion of experiments in Chapters 8–10. Of course, even if you do not fully meet these prerequisites, there is no need for concern—each relevant chapter provides necessary background introductions and beginner-level guidance to help you gradually build a complete knowledge framework.


Overview of the Curriculum System

alt text


Table of Contents

Chapter Title Core Topic Development Language
Chapter 1 Introduction and System Architecture Unmanned system concept classification, coordinate system definition Theory
Chapter 2 Configuration and Use of the Experimental Platform RflySim installation, core components, BAT scripts Theory + Practice
Chapter 3 3D Scene Modeling and Simulation RflySim3D/UE5 scene creation UE/3ds Max
Chapter 4 Vehicle Motion Modeling and Simulation Multicopter/fixed-wing dynamics Simulink
Chapter 5 Filtering Estimation and Low-Level Control PX4 control architecture, PID tuning Simulink
Chapter 6 External Control and Trajectory Planning Offboard control, path planning Python/ROS
Chapter 7 Health Management and Safety Assessment Fault injection, automated testing Python/Simulink
Chapter 8 Multi-Modal Perception and Intelligent Decision-Making Object detection, visual obstacle avoidance, SLAM Python/ROS
Chapter 9 Multi-UAV Communication and Intelligent Networking ROS communication, NS-3 network simulation ROS/Python
Chapter 10 Swarm Collaboration and Adversarial Game Formation control, reinforcement learning Python/ROS

Learning Path Guide

To accommodate learners with diverse backgrounds and learning objectives, we have designed three differentiated learning paths:

The first is the Beginner Path, suitable for those encountering unmanned systems for the first time. It is recommended to follow the chapter sequence strictly from Chapter 1 through Chapter 10. This path follows the gentlest learning curve: start with Chapter 1 to establish an overall understanding of unmanned systems and RflySim, then complete software installation and environment configuration in Chapter 2 to ensure smooth execution of subsequent experiments; next, gradually acquire core skills—including 3D scene modeling (Chapters 3), vehicle kinematics and dynamics modeling (Chapter 4), and filtering estimation and low-level control (Chapter 5)—this foundational segment warrants substantial time investment; after solidifying the basics, proceed to Chapters 6 and 7 to study advanced topics such as external control, trajectory planning, and health management; finally, explore advanced themes in Chapters 8–10, including multi-modal perception, communication networking, and swarm collaboration. Following this path enables you to build a comprehensive knowledge framework, where each step is supported by prior learning, resulting in a smooth and coherent learning experience.

The second is the Advanced Path, suitable for learners who already possess foundational knowledge of unmanned systems and wish to quickly get started with application development using RflySim. The recommended sequence for this path is: Chapter 1 → Chapter 2 → Chapter 5 → Chapter 6 → Chapter 8 → Chapter 10. You may quickly skim Chapters 1 and 2 to understand the overall architecture of RflySim and complete environment configuration; then directly proceed to Chapter 5 to study filtering estimation and low-level control—the critical link bridging simulation and real hardware; next, focus on Chapter 6 for external control and trajectory planning, mastering high-level drone control via Python or ROS; subsequently, enter Chapter 8 to learn multi-modal perception and intelligent decision-making, integrating artificial intelligence technologies such as computer vision and deep learning into unmanned systems; finally, explore swarm collaboration and adversarial games in Chapter 10 to achieve coordinated operations of multiple UAVs. This path emphasizes practicality, enabling you to acquire the capability to develop real-world projects using RflySim in a relatively short time.

The third path is the Research-Oriented Path, suitable for graduate students and researchers engaged in algorithmic research related to unmanned systems. The recommended learning sequence for this path is: Chapter 1 → Chapter 4 → Chapter 5 → Chapter 7 → Chapter 8 → Chapter 9 → Chapter 10. As a researcher, you may focus more on algorithm design and validation rather than specific scene modeling or basic operations; thus, you can skip Chapter 3’s 3D scene modeling content and directly use the pre-built scenes provided by RflySim. Chapter 4’s vehicle motion modeling serves as the foundation for designing control algorithms and is strongly recommended for in-depth study to understand the dynamics of different vehicle types. Chapter 5’s filtering estimation and low-level control constitute the core of the entire system—this knowledge is indispensable for both single-vehicle and swarm research. Chapter 7’s health management and safety assessment is crucial for ensuring algorithm robustness in real-world systems; conducting thorough simulation tests and fault injection experiments before real-machine testing can significantly reduce risks. Chapters 8 (multi-modal perception and intelligent decision-making), 9 (communication and networking), and 10 (swarm collaboration and game theory) correspond respectively to three hot research areas in current unmanned systems; you may select the chapters that align with your research interests for in-depth exploration.

Regardless of which learning path you choose, we strongly recommend that you actively complete the experimental routines for each chapter. As the saying goes, “What is gained from books seems superficial”—unmanned systems is a highly practical discipline, and only through hands-on practice can you truly understand how theoretical knowledge is applied in real systems, master the various usage techniques of the RflySim toolchain, and identify and address weaknesses in your knowledge structure. Each experiment is accompanied by a detailed Readme.pdf document; following the steps outlined in the document should allow you to successfully complete the experiments. If you encounter issues during the process, first consult the PPT.pdf (teaching slides) and Intro.pdf (getting-started guide) in the respective chapter directory, as many answers can be found there; if problems persist, refer to the channels provided in the Technical Support and Community section for assistance.


Experimental Routine Structure

Experimental files for each chapter are stored under [installation directory]\RflySimAPIs\, adopting a uniform four-level structure. This hierarchical design considers both the progressive learning needs of beginners and the advanced requirements of users seeking deep customization and extension development. Before starting any chapter, it is recommended that you first locate the corresponding experimental folder for that chapter and browse its overall structure to gain an initial understanding of the experiments ahead. Typically, completing all experiments in one chapter requires approximately 8 to 16 hours; you may flexibly plan your learning schedule based on your available time.

The first level is the API Routines, located in the 0.ApiExps/ folder. These experiments aim to help you quickly grasp the basic usage of core APIs. Each experiment focuses on a specific functional point, featuring concise and clear code accompanied by detailed comments. Completing this level usually takes only 1 to 2 hours, but they form the foundation for all subsequent experiments—strongly recommended not to skip. Through these foundational API experiments, you will become familiar with RflySimSDK invocation methods, understand parameter meanings, and master fundamental data interaction techniques, laying a solid groundwork for more complex experiments. If you are a beginner, we recommend reading the code line by line to understand the function of each line; if you already have some development experience, you may quickly run through them to verify your environment configuration and then focus on APIs you are less familiar with.

The second level is the Basic Experiments, located in the 1.BasicExps/ folder. These experiments combine the individual APIs learned at the previous level into a complete functional workflow, allowing you to experience the full experimental process for a selected feature. Completing this level typically requires 3 to 5 hours and represents the critical step of transforming theoretical knowledge into practical capability. Each basic experiment revolves around a specific application scenario—for instance, in Chapter 5, the basic experiment may guide you through the entire closed-loop process from sensor data acquisition, filter design, control law implementation, to final flight validation; in Chapter 8, it may demonstrate how to integrate an object detection algorithm with drone control to achieve automatic target tracking. When performing these experiments, we recommend not merely following the steps in Readme.pdf mechanically, but rather thinking critically about why each step is performed, attempting to modify certain parameters, and observing the system’s response—only then can you truly grasp the underlying principles.

The third level is the Advanced Experiments, located in the 2.AdvExps/ folder. These experiments target in-depth customization and extension, typically involving collaborative work across multiple modules or improvements and optimizations to algorithms from the basic experiments. Completing this level usually requires 4 to 8 hours and serves as an important pathway to enhancing your engineering practice capabilities. Advanced experiments may require you to modify existing code frameworks, integrate third-party libraries, or implement algorithms described in research papers. For example, in Chapter 6, advanced experiments might ask you to implement a more optimal trajectory planning algorithm; in Chapter 10, they may challenge you to design a novel swarm collaboration strategy. The Readme.pdf for this level typically does not provide step-by-step instructions but instead offers a general framework and key hints, leaving ample room for your own thinking and creativity. If you aspire to pursue R&D in unmanned systems, it is essential to carefully complete these experiments—they will significantly strengthen your ability to analyze and solve problems.

The fourth level is the Custom Experiments, located in the 3.CustExps/ folder (available only in the full version and above). This space is reserved specifically for user-defined experiments. You may place your project code, improved algorithms, or innovative ideas here and utilize the infrastructure provided by RflySim for validation and testing. We encourage you, after completing the previous three levels, to fully leverage this space for exploration and innovation. You may attempt to reproduce the latest academic papers, migrate code you’ve accumulated from other projects, or design entirely new experiments based on your own ideas. The RflySim team eagerly anticipates the impressive creations you will develop in this space; if you are willing, you may also share your work with us through the channels provided in the Technical Support and Community section—we will select outstanding cases for inclusion in future official experimental releases.

Each experimental folder contains a Readme.pdf, which serves as an essential guide for completing the experiment. Before starting any experiment, carefully read the corresponding Readme.pdf to understand its purpose, principles, steps, and expected outcomes. Typically, the Readme.pdf includes a brief explanation of the experimental principle, detailed environment configuration instructions, specific operational guidance for each step, key code analysis, and answers to frequently asked questions. In addition to the individual Readme.pdf for each experiment, we recommend first reading the PPT.pdf (teaching slides) and Intro.pdf (getting-started guide) located in each chapter’s directory. The PPT.pdf contains concise explanations of the core concepts, principles, and methods of the chapter, while the Intro.pdf serves as the chapter’s getting-started guide, outlining the learning objectives, recommended methods, time allocation, and overall experiment overview. Following the reading order of “Intro.pdfPPT.pdf → each experiment’s Readme.pdf” will yield the optimal learning outcome.


Video Course Usage Guide

Each chapter of this course is accompanied by meticulously recorded video lectures, which serve as important supplements and extensions to the written documentation. The video courses typically consist of two parts: the first part is theoretical instruction, where the lead instructor provides clear and accessible explanations of the chapter’s core concepts, principles, and methodologies; the second part is hands-on demonstration, where the instructor operates the RflySim toolchain live, showing how to complete the chapter’s key experiments. Compared to the documentation, video courses offer greater intuitiveness and demonstrability—you can observe the instructor’s actual operations, hear their explanations of key operational points, and witness the real-time performance of experiments—elements that static documentation cannot provide. We strongly recommend combining the documentation with the video courses when studying each chapter to achieve the best learning results.

Regarding the usage of video courses, we offer the following suggestions:

First, regarding the viewing order: For beginners, we recommend the approach of "videos first, documentation second"—start by watching the video lectures for the chapter to build an overall impression and intuitive understanding of the content, then carefully read the documentation to delve into details and complete the experiments. In the videos, instructors explain complex concepts in accessible, easy-to-understand language and demonstrate them live, allowing you to see real-world results—this significantly reduces the difficulty of comprehension. Meanwhile, the documentation provides more systematic and detailed content, including complete code examples, parameter explanations, and supplementary reading materials, enabling convenient reference and review at any time. For learners who already have a certain foundation, the reverse approach—"documentation first, videos as supplement"—may be more efficient: first read the documentation and attempt to complete the experiments independently; when encountering difficulties, refer back to the corresponding sections in the videos to observe how the instructor handles them. This method helps quickly pinpoint your own issues.

Second, regarding viewing strategies, we do not recommend watching videos like a movie from start to finish in one go. Instead, adopt different viewing strategies based on the content type. For theoretical explanations, slow down the playback appropriately, listen attentively, take notes, and pause to consult related materials or replay sections you don’t understand. For operational demonstrations, first watch at normal speed to grasp the overall workflow, then slow down to study each segment carefully—and even follow along with the instructor step by step, performing each action as shown. This hands-on imitation accelerates mastery of operational techniques. For content you are already familiar with, increase playback speed (e.g., 1.5× or 2×) for quick review. For critical operational steps or core algorithm explanations, watch at normal or even slower speed repeatedly to ensure true understanding. Most video platforms provide playback speed adjustment and variable-speed playback features—use them flexibly according to your needs.

Regarding the integration of videos and experiments, we recommend the "segmented video–segmented experiment" approach. Do not attempt to watch all videos first and then start experiments, as many details from earlier videos may be forgotten by the time you begin. Instead, watch a short video segment (typically covering one complete concept or experimental step), pause, immediately locate the corresponding section in the documentation, read the relevant content, and then perform the experiment for that segment. Only proceed to the next video segment once you confirm mastery of the current one. Although this "watch one segment, do one segment" method may seem slower, it actually yields better learning outcomes and stronger memory retention. Each chapter’s video course typically lasts 2–4 hours; you need not watch it all at once—break it into multiple sessions of 1–2 hours each, balancing learning efficiency with comfort.

Finally, regarding common issues during video viewing: First, note-taking. Although video platforms offer subtitles, we still recommend keeping a notebook (paper or digital) while watching to record key points emphasized by the instructor, your own insights and reflections, and any questions that arise. These notes become valuable resources for future review. Second, replaying. Videos can be watched repeatedly—do not expect to fully grasp everything in one viewing. As your learning progresses, revisiting previously watched videos often brings new understanding and insights. Third, peer collaboration. If you encounter difficulties while watching videos or completing experiments, pause first and try resolving them independently by consulting documentation or searching online. If still unresolved, use the channels provided in the "Technical Support and Community" section to communicate with instructors or fellow learners—often, a single sentence from someone else can provide the breakthrough you need.


Companion Textbook Correlation

This course complements the accompanying textbook Collaborative Control of Intelligent Unmanned Swarm Systems (in preparation, coming soon...), together forming a complete learning system. The textbook emphasizes theoretical systematicity and rigor, providing detailed mathematical derivations, in-depth theoretical analyses, and extensive references. In contrast, this course documentation focuses on practical operability and applicability, offering concrete code implementations, step-by-step operational instructions, and runnable experimental routines. We recommend using both resources synergistically: treat the textbook as your theoretical foundation and this course as your practical guide—this dual approach builds solid theoretical grounding while cultivating strong hands-on skills.

Specifically, the chapter correspondence between the textbook and this course is as follows:
- Textbook Chapter 1 ↔ Course Chapter 1: Introduces fundamental concepts, development history, and application prospects of intelligent unmanned systems.
- Textbook Chapter 2 ↔ Course Chapter 2: Explains the overall architecture, installation, configuration, and basic usage of the RflySim experimental platform.
- Textbook Chapters 3–4 ↔ Course Chapter 3: Focuses on methods and techniques for 3D scene modeling.
- Textbook Chapters 5–6 ↔ Course Chapter 4: Details kinematic and dynamic modeling of multirotor and fixed-wing UAVs.
- Textbook Chapters 7–8 ↔ Course Chapter 5: Covers state estimation methods and low-level control strategies.
- Textbook Chapter 9 ↔ Course Chapter 6: Introduces external control interfaces and trajectory planning algorithms.
- Textbook Chapter 10 ↔ Course Chapter 7: Explains fault diagnosis, health management, and safety assessment methods.
- Textbook Chapter 11 ↔ Course Chapter 8: Introduces multi-modal perception and intelligent decision-making methods.
- Textbook Chapter 12 ↔ Course Chapter 9: Explains multi-UAV communication and intelligent networking technologies.
- Textbook Chapters 13–14 ↔ Course Chapter 10: Covers swarm cooperative control and adversarial game strategies.

During learning, you may flexibly select reference materials based on your needs. If a theoretical concept in this course is unclear, consult the corresponding textbook chapter for more detailed explanations and mathematical derivations. Conversely, if an algorithm in the textbook seems clever and you wish to verify its practical implementation, locate the corresponding experimental routine in this course and implement it to observe real-world behavior. For chapters heavy on formula derivations (e.g., dynamics modeling in Chapter 4, filtering algorithms in Chapter 5), we recommend first reading the textbook to grasp theoretical background, then reinforcing understanding through experiments in this course. For highly practical chapters (e.g., environment configuration in Chapter 2, scene modeling in Chapter 3), follow the course steps to gain intuitive familiarity first, then consult the textbook to deeply understand underlying principles.

Beyond main content, the textbook’s appendices include valuable reference materials—such as reviews of mathematical fundamentals, common coordinate transformation formulas, PX4 firmware development guides, and ROS入门 tutorials—serving as handy reference manuals during learning. Meanwhile, the appendices of this course documentation (located in the "Advanced Topics and Appendices" section) provide the complete RflySimSDK API reference, frequently asked questions, and detailed development environment setup guides—practical tools to support your development work. Neither the textbook nor this course documentation is static; we continuously update and improve them based on user feedback and technological advancements to ensure accuracy and timeliness. We recommend following the RflySim official website and GitHub repository to promptly obtain the latest versions.


Technical Support and Community

During your learning journey and use of the RflySim toolchain, you will inevitably encounter various issues. In such cases, remain calm—we provide multi-channel technical support and an active community platform to help you resolve problems, share experiences, and grow together. When facing difficulties, follow this help-seeking sequence: "Self-check documentation → Search historical discussions → Post in community → Contact official support." This approach cultivates independent problem-solving skills while avoiding redundant questions that consume community resources. Additionally, we warmly invite you to join our regular live-streaming training group (scan the QR code below to join via WeChat), where RflySim’s core research team is available to answer any questions you have—we will respond promptly.

alt text