# Global Origin

ArduSub is able to accept inputs from several sensors, and it can use these inputs to do dead reckoning navigation.

The Cerulean Tracker 650 is able to provide ArduSub with delta distance messages via mavlink2rest. ArduSub can then do dead reckoning based in the delta distance from the DVL and ROV orientation from other sensors it is monitoring.

In order for ArduSub to do dead reckoning, it needs to be set up as described earlier. It also needs to receive a global origin, which essentially tells ArduSub where to start from. ArduSub accepts one and only one global origin per session (a session is the time period during which the ROV is powered). You can give ArduSub a global origin in several ways:

* The DVL can automatically send a global origin of (0,0) each time it connects to the MAVlink REST server. This allows relative positioning not corresponding to the actual latitude and longitude and thereafter ArduSub will attempt to update this position using dead reckoning.. You can [enable this feature like this](/c/tracker-650/communicating-with-the-tracker-650/commands-accepted-by-the-tracker-650/mavlink-origin.md). Once the origin is set, it is fixed until you cycle power on the ROV.
* You can manually send a position through the DVL using the [SET-POSITION](/c/tracker-650/communicating-with-the-tracker-650/commands-accepted-by-the-tracker-650/set-position.md) command. You can give ArduSub your actual GPS position and thereafter ArduSub will attempt to update this position using dead reckoning. You can only do this once, as once the origin is set, it is fixed until you cycle power on the ROV. If you have enabled automatic origin as described above, SET-POSITION will be too late and have no effect.&#x20;
* You can send ArduSub a global origin using your own MAVlink interface (such as Cerulean's SonarView software or the deprecated capability in CeruleanTracker) and not involve the DVL. Once you have set the global origin, ArduSub will attempt to update this position using dead reckoning with the position delta information supplied by the DVL.

{% hint style="info" %}
ArduSub is very complicated and does some unintuitive things. If you send NMEA-formatted GPS position information to ArduSub, it will disable the ability thereafter to use position hold and dead reckoning based on DVL inputs. NMEA data could come from a GPS on the same network, or it might come from CeruleanTracker if you fail to turn off NMEA outputs as described [here](/c/tracker-650/using-mavlink-and-blueos-for-position-hold-on-a-bluerov2/tracker-650-setup-for-mavlink-support.md).&#x20;
{% endhint %}

{% hint style="info" %}
When the DVL is out of range of a target surface and/or is not accurately calculating velocity and delta distance, ArduSub stops updating the dead reckoning solution.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.ceruleansonar.com/c/tracker-650/using-mavlink-and-blueos-for-position-hold-on-a-bluerov2/global-origin.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
