Non-GPS Navigation

These are the available options that allow a vehicle to estimate its position without a GPS. Once enabled this allows all autonomous and semi-autonomous modes just as they do would a GPS is available.

Note

unless added via a custom build (see ArduPilot Custom Firmware Builder), Beacon functionality is not included in standard firmware for autopilots having less than 2MB of flash.

Note

Most of the above systems (except Beacons) require that the ORIGIN be set manually, except if a GPS is present. In order to do this the user must either use the GCS to set Origin, as shown below using Mission Planner, or use a lua script like this one

../_images/setorigin.jpg

Persistent Origin Storage

In ArduPilot 4.7 and later, the EKF origin can be automatically saved and restored across power cycles using the following parameters:

  • AHRS_OPTIONS bit 3 (RecordOrigin): When enabled, the current EKF origin is automatically saved to parameters whenever it becomes valid (e.g. after GPS lock or manual origin set). The saved origin is stored in:

  • AHRS_OPTIONS bit 4 (UseRecordedOriginForNonGPS): When enabled, the AHRS will automatically restore the saved origin on boot when GPS is not being used. This allows position-controlled flight modes (Loiter, Auto, Guided, etc.) to work indoors without GPS after the origin has been recorded from a previous flight.

This eliminates the need to manually set the origin via GCS or Lua script on every power cycle when flying indoors with non-GPS position sources.

Typical setup for indoor flight with optical flow or external navigation:

  1. Enable AHRS_OPTIONS bit 3 to auto-record the origin

  2. Fly outdoors first (or manually set AHRS_ORIGIN_LAT, AHRS_ORIGIN_LON, AHRS_ORIGIN_ALT) to establish a valid origin

  3. Enable AHRS_OPTIONS bit 4 to auto-restore the origin for non-GPS flights

  4. On subsequent indoor flights, the origin will be automatically restored from the saved parameters

Note

ArduSub enables bit 4 (UseRecordedOriginForNonGPS) by default since underwater vehicles typically operate without GPS.

Note

The low cost IMUs (accelerometers, gyros, compass) used in most autopilots drift too quickly to allow position estimation without an external velocity or position source. In other words, low-cost IMUs on their own are not sufficient for estimating position.

Note

Standard firmware for boards with 1MB or less of flash omits many of the AHRS and sensor features used for non-GPS position estimation. This is a compile-time firmware-size limitation, not a single parameter that can be enabled. A custom firmware build may be able to include the required options from the AHRS and Sensors sections, but these boards also have less CPU and memory available. An H7 autopilot is recommended for new non-GPS navigation installations.

Vicon can still be used with a 1MB board by sending GPS_INPUT, which is retained in the reduced firmware, instead of GLOBAL_VISION_POSITION_ESTIMATE. See Firmware Limitations for more information.