> For the complete documentation index, see [llms.txt](https://docs.theseus.us/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.theseus.us/cyclops/autopilot-integration/ardupilot/cyclops-v1.x.x/non-gps-ekf-initialization-in-ardupilot.md).

# Non-GPS EKF Initialization in Ardupilot

Properly the EKF is important for two reasons: \
\
1\. Significantly better dead reckoning performance than DCM mode\
2\. Cyclops consumes [LOCAL\_POSITION\_NED (32)](https://mavlink.io/en/messages/common.html#LOCAL_POSITION_NED) which is ≈ only published if the EKF has booted in flight.\
\
Ardupilot's EKF has unintuitive requirements for initialization. If you do not provide a GPS at startup, or an ExtNav input like a VIO or Optical Flow, Ardupilot will not properly boot the EKF. For more technical users, [this forum post](https://discuss.ardupilot.org/t/custom-ekf3-position-wind-reset-for-gps-denied-flight-arduplane-4-4-3/143360) provides a great overview.\
\
Advanced users who are used to flying without a GPS will likely already have a method to bootstrap their EKF. If you are familiar with this problem and have solved it for your platform, we recommend that you continue using your preferred method.\
\
We have tested and provide an Optical flow solution for VTOL fixed wings that works with stock Ardupilot, and a patch for Ardupilot that will enable you to initialize the EKF using only an airspeed sensor.

{% content-ref url="/pages/D1G1LkViS9A0gIYnWC3y" %}
[Optical Flow](/cyclops/autopilot-integration/ardupilot/cyclops-v1.x.x/non-gps-ekf-initialization-in-ardupilot/optical-flow.md)
{% endcontent-ref %}

{% content-ref url="/pages/rZjAmKXYmSpy8xBtdzzC" %}
[Ardupilot Patch](/cyclops/autopilot-integration/ardupilot/cyclops-v1.x.x/non-gps-ekf-initialization-in-ardupilot/ardupilot-patch.md)
{% endcontent-ref %}
