System Components
The stack is composed of a set of functional components that collectively process sensor data, estimate system state, and generate actuator commands. These components are organized to reflect the logical flow of information through the system while maintaining a clear separation of responsibilities.
At a high level, the system consists of the following core modules:
Sensor Interface (BMX160): This module initializes and manages the 6-axis IMU (accelerometer and gyroscope) along with the magnetometer. It acquires raw sensor measurements at high frequency ( kHz) and provides time-consistent data to the estimation module. Future iterations of the system will incorporate redundant IMU configurations to improve reliability and fault tolerance.
RC Command Interface (iBus): This module decodes input signals from the radio receiver (e.g., FlySky iBus protocol) and generates pilot-defined setpoints for roll, pitch, yaw, and thrust. These inputs act as external references for the control system. Support for additional protocols such as PPM and SBUS is planned to improve compatibility with a wider range of receivers.
State Estimation (Sensor Fusion): The estimation module processes raw sensor data to compute the vehicle’s attitude. Lightweight nonlinear observers, such as Mahony or complementary filters, are employed to fuse gyroscope and accelerometer measurements, ensuring robustness against noise and drift. The architecture is designed to accommodate more advanced estimation techniques, such as Extended Kalman Filters, in future iterations.
Cascaded PID Control: The control system is implemented as a cascaded architecture consisting of an outer angle loop and an inner rate loop. The outer loop regulates orientation, while the inner loop regulates angular velocity, enabling fast response and stable control.
Actuation and Motor Output: This module translates control outputs into actuator-specific commands. It applies a mixing strategy to map roll, pitch, yaw, and thrust commands to individual motor PWM signals, supporting configurations such as X4 multi-rotor systems.
These components operate as a coordinated pipeline within the VAIOS execution environment. Time-critical modules such as sensor acquisition, estimation, and control are executed deterministically, while auxiliary functionalities such as telemetry and monitoring operate asynchronously.
Figure 3.2 illustrates the logical organization and interaction of these components within the Vayu control stack.
This component-based organization enables a clear separation between sensing, estimation, control, and actuation, forming a scalable and maintainable foundation for embedded flight control systems.