主要内容

Integrating with General ArduPilot Architecture

The UAV Toolbox Support Package for ArduPilot® Autopilots allows you to design controllers in Simulink®and deploy them directly to ArduPilot Autopilot boards. You can integrate the generated code from Simulink models with the ArduPilot stack and deploy it to ArduPilot compatible hardware.

General ArduPilot Architecture

ArduPilot is a modular, multi-vehicle autopilot stack organized around a hardware abstraction layer (HAL), specialized vehicle libraries (such as Copter, Plane, Rover), and shared middleware for sensors, estimation, navigation, and control. ArduPilot's architecture is designed around modularity, portability, and scalability. The core software is structured to separate hardware-specific code from generic vehicle logic, allowing easy adaptation to new platforms and vehicle types.

For more information on ArduPilot architecture, see:

Custom Controller from Simulink

ArduPilot uses a scheduler to run various tasks (controllers, sensor updates, and so on) at specific intervals. Custom control algorithms generated from Simulink can be integrated into ArduPilot by adding the generated code as a separate library. This library is then registered as a new task within the system’s scheduler.

  • The scheduler executes both the standard control logic and the Simulink-based controller at their respective scheduled intervals.

  • The Simulink controller runs after the existing controller has run, but before the control outputs are sent to the actuators. The Simulink-generated code selectively overrides specific control outputs to the actuators according to the design of the Simulink model.

ArduPlane Supported Blocks

To interface Simulink models with ArduPlane hardware, use the dedicated support blocks for data exchange and control. The following blocks are available for ArduPlane integration:

ArduCopter Supported Blocks

To interface Simulink models with ArduCopter hardware, use the dedicated support blocks for data exchange and control. The following blocks are available for ArduCopter integration:

See Also

| |