How to improve Ardupilot integration

Improved Ardupilot integration

For an improved ardupilot experience, recompile Ardupilot code using the
extend GPS*_RTK information support pull request and add ERB 0.2.0 information support pull request
in that order or directly from:
git clone --depth 6 -b ERB_0.2.0

and for reach use the following repository instead of the official one mentioned at the recompiling reach RTKLIB source code:
git clone --depth 5 -b IAV

The advantages of this improved ardupilot integration are:

  1. Fixes a couple of bugs in emlid implementation, that prevent proper ardupilot integration

  2. Adds information only present in ReachView into Mavlink. So you no longer need to have ReachView open on your ground station … just use QGroundControl mavlink inspector to get the same info:

Futhermore, if you use a single unified 3DR/RFD900 Mavlink based datalink you get some more advantages. In other words: Reach rover must ONLY be connected to serial4 of ardupilot, reach base MUST ONLY be connected to your GCS PC via USB cable and set up as a TCP/IP RTCM injecting server. These following two extra advantages will not be present if you use a side channel (for example a second set of 3DR radios) to inject RTCM corrections.

  1. Normally the range of the 3DR radios used to carry the Mavlink messages is bigger than the reach WLAN, so your range will increase.

  2. You can disable WLAN on both reach base and reach rover modules, that should prevent and/or reduce interference.


The instructions above improve integration, but do not make it perfect.
To make it perfect Emlid needs to add some missing information like:

  • 3D speed RMS (one sigma) accuracy

  • Current number of integer ambiguity hypotheses

  • Number of satellites received by the RTK base station

  • Time of last baseline in milliseconds

  • GPS leap seconds

That would improve the ardupilot integration a LOT. Thanks

@Amilcar_Lucas, regarding the Ethernet over USB cable approach, have you had any problems problems with the Edison network interface being used first by browsers and other programs attempting to connect to local servers or the Internet. I’ve had to get into the habit of starting the browser or my GCS (which connects to a local database) before plugging in the Reach since they attempt to connect to the Reach’s network rather than the local network interface if the Reach is plugged in before I start my other programs.

My original report is here:

So far I did not have this issue. I’m still using windows 7. I turn off reach WLAN every time after each reboot.
But my mavproxy still gets the corrections via (Eth over USB) without any issues after that.

Have you ever had any hangs from other programs that attempt to connect to local servers running on the laptop as localhost (not on the Reach) or servers on the Internet?

Nope, sorry

Good news:

Reach FW >= 2.7.4 already have this feature, so no need to recompile the Reach FW
Ardupilot from master branch >= 2017.11.1 already has this feature, so there is no need to get a branch.You can get master and compile it.

1 Like