MAVLINKHUD

Overview

The FRAME parameter group defines the physical structure and motor layout of the vehicle. This is one of the first and most critical steps in configuring a new drone.

The frame settings tell the autopilot:

  1. Class: What type of vehicle is it? (Quad, Hexa, Octa, Heli, etc.)
  2. Type: How are the motors arranged? (X, Plus, V, H, etc.)
  3. Config: (Sub) Specific motor mixer matrices for underwater vehicles.

Key Concepts

1. Frame Class (FRAME_CLASS)

Sets the number of motors and general physics model.

  • 1: Quad.
  • 2: Hexa.
  • 3: Octa.
  • ...

2. Frame Type (FRAME_TYPE)

Sets the rotation of the motor arms.

  • 1: X-Frame (Standard).
  • 0: Plus-Frame (Motors on the nose/tail/sides).

3. Sub Frame Config (FRAME_CONFIG)

(Specific to ArduSub) Selects from predefined thruster layouts like "Vectored" or "Vectored-6DOF."

Parameter Breakdown

  • FRAME_CLASS: Vehicle architecture.
  • FRAME_TYPE: Geometric layout.
  • FRAME_CONFIG: (Sub only) Thruster mixer.

Integration Guide

  • Setup: Use the "Frame Setup" screen in your GCS. Changing these values usually requires a reboot to load the new mixer matrix.
  • Warning: If you have an X-frame but set it to Plus-frame, the drone will flip immediately on takeoff.

Developer Notes

  • Library: libraries/AP_Motors.
  • Mixers: Each class/type combination loads a specific static matrix that defines how Roll/Pitch/Yaw/Throttle maps to each motor PWM.

FRAME_CLASS

Default 0
Range 0 15

Frame Class (FRAME_CLASS)

Description

Defines the overall architecture of the vehicle (e.g., Quad, Hexa, Octa, Heli, etc.). This setting determines how many motors are used and how they are fundamentally controlled.

Tuning & Behavior

  • Default Value: 0 (Undefined)
  • Common Values (Copter): 1:Quad, 2:Hexa, 3:Octa, 6:Heli
  • Common Values (Rover): 1:Ground Vehicle, 2:Boat
  • Requires reboot to take effect.

FRAME_CONFIG

Default 1
Range 0 7

Frame configuration (FRAME_CONFIG)

Description

This parameter defines the physical arrangement of thrusters on the ROV. It selects the "Mixer Matrix" that translates pilot commands (Forward, Strafe, Vertical, Yaw, Pitch, Roll) into individual motor PWM outputs.

The Mathematics

$$ \vec{\omega}{\text{motor}} = \mathbf{M}{\text{mixer}} \times \vec{u}\_{\text{control}} $$

The Engineer's View

Defined in ArduSub/Parameters.cpp. Values map to AP_Motors6DOF::sub_frame_t:

  • 0: BlueROV1
  • 1: Vectored (BlueROV2 Default)
  • 2: Vectored 6DOF
  • 3: Vectored 6DOF 90deg
  • 4: SimpleROV-3
  • 5: SimpleROV-4
  • 6: SimpleROV-5
  • 7: Custom

Tuning & Behavior

  • Critical: Must be set correctly before the first dive. An incorrect setting will cause the ROV to spin uncontrollably or move in wrong directions.
  • Reboot Required: Changes usually require a reboot to take effect properly.

FRAME_TYPE

Default 1
Range 0 5

Frame Type (FRAME_TYPE)

Description

Defines the specific layout of the motors relative to the nose of the aircraft (e.g., Plus vs. X configuration).

Tuning & Behavior

  • Default Value: 1 (X)
  • Common Values: 0:Plus, 1:X, 2:V, 3:H, 10:Y6B
  • Requires reboot to take effect.