MAVLINKHUD

Overview

The NO parameter group (specifically NO_GO_ANGLE) is a specialized configuration for ArduRover Sailboats.

In sailing, a boat cannot sail directly into the wind. The "No-Go Zone" is the range of angles relative to the wind direction where the sails cannot generate lift and the boat will stall.

Key Concepts

1. Tacking and Beating

When a target waypoint is directly upwind, the autopilot cannot sail a straight line to it. Instead, it must "Tack" (zig-zag) at an angle to the wind.

  • NO_GO_ANGLE: Defines the angle relative to the wind (e.g., 45 degrees) that the boat will maintain when trying to go upwind.
  • Total Zone: A NO_GO_ANGLE of 45 results in a 90-degree total arc centered on the wind direction where the boat will not enter.

Parameter Breakdown

  • NO_GO_ANGLE: Upwind sailing limit (degrees).
    • Typical: 40 to 50 degrees depending on the efficiency of the boat's keel and sail.

Developer Notes

  • Library: Rover/sailboat.cpp.
  • Logic: Integrated with the L1 navigation controller to generate "Virtual Waypoints" that stay outside the no-go zone.

NO_GO_ANGLE: Sailing no go zone angle

Description

The typical closest angle to the wind the vehicle will sail at. The vehicle will sail at this angle when going upwind.

Values

  • Range: 0 to 90
  • Units: deg
  • Increment: 1
  • Default: 45

Description

This parameter defines the "dead zone" into the wind where a sailboat cannot generate forward thrust.

  • Function: When the autopilot needs to go to a waypoint that lies within this angle of the wind, it will tack (zig-zag) back and forth at this angle instead of trying to sail straight into the wind.
  • Tuning:
    • Performance Boats: Can often sail closer to the wind (e.g., 35-40 degrees).
    • Cruisers/Inefficient Rigs: May need a wider angle (e.g., 50-60 degrees) to maintain speed.

Source Code

ardupilot/Rover/sailboat.cpp