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. 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 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.

  • You can send ArduSub a global origin using your own MAVlink interface 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.

ArduSub is very complicated and does some unintuitive things. If you send NMEA-formatted GPS position information to ArduSub, it will disable the ability 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.

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.

Last updated