MAVLINKHUD

CIRCLE Mode (Plane)

Executive Summary

CIRCLE mode is a simple, non-GPS flight mode that forces the aircraft to fly in a circle at a fixed bank angle while maintaining its current altitude. Unlike LOITER mode, it does not attempt to hold a specific geographic position. It is often used as a failsafe behavior or a simple "park" mode when GPS is unreliable.

Theory & Concepts

1. Ground Track vs. Air Track

In fixed-wing flight, wind is a massive factor.

  • Air Track: If you just hold a fixed bank angle (Manual), you will fly in a circle relative to the air. If there is a 20 m/s wind, your circle will drift 20 meters every second relative to the ground.
  • The Circle Mode (Dumb): Plane CIRCLE mode is a "Fixed Bank" mode. It is useful because it doesn't require a GPS, but it is not a "Position Hold." It is a way to stay in a general area while descending or waiting for a signal.

2. Centripetal Force and Lift

When a plane banks, some of its lift is diverted to pull the plane into a turn (Centripetal Force).

  • The Problem: Diversion of lift means there is less vertical lift to fight gravity.
  • The Autopilot: ArduPilot's CIRCLE mode automatically increases the Pitch Angle and Throttle to compensate for this lost lift, ensuring the plane stays at its target altitude throughout the orbit.

Hardware Dependency Matrix

This mode is designed to work with minimal sensors.

Sensor Requirement Code Implementation Notes
GPS NONE Not used. The circle will drift with the wind.
Gyro/Accel CRITICAL Required for bank angle stabilization.
Barometer REQUIRED Required for altitude hold.

Control Architecture (Engineer's View)

The logic is extremely simple compared to Loiter.

  1. Bank Angle:
    • The target Roll is set to ROLL_LIMIT / 3.
    • Example: If your ROLL_LIMIT_DEG is 45, the plane banks at 15 degrees.
    • Direction: Always clockwise by default (positive roll).
    • Code Path: ModeCircle::update() sets nav_roll_cd.
  2. Pitch/Throttle:
    • Uses the standard Altitude Hold controller (calc_nav_pitch / calc_throttle).
    • It attempts to hold the altitude recorded when the mode was engaged.

Comparison: CIRCLE vs LOITER

  • CIRCLE: "dumb" bank. Drifts with wind. No GPS required. Fixed radius (determined by airspeed and bank angle).
  • LOITER: "smart" navigation. Holds 3D GPS coordinate. Adjusts bank angle to maintain a perfect circle over the ground regardless of wind.

Failsafe Logic

  • Long Range Failsafe: CIRCLE is often used as the "Short Failsafe" action because it keeps the plane local without requiring a complex return path logic immediately.

Key Parameters

Parameter Default Description
ROLL_LIMIT_DEG 45 The bank angle in CIRCLE mode is derived from this (Limit / 3).

Source Code Reference