Rover navigation with RTK fixes

Hi, I am new to the ardupilot plateform and I’m having a bit of trouble with my rover’s navigation.

I’m working on a project where I need a skid-rover to follow a path made out of waypoint in a polygon. We bought aion robotics’s R1 model and have a reach M2 onboard and a reach RS2 as the base. The challenge here is that we need the rover to complete a parcour with a precision of 10cm and less so our external payload can take good magnetic mesures.

My problem is:
When I’m doing a simple path where the waypoints are at 0.5meters at least from each others, the rover seems to be very precise, but whenever I try to reduce the “distance between lines” (from the simplegrid auto-wp option) at 0.3 meters and under, the rover starts being unprecise and not follow its path.

Here is some pictures of 2 “not so bad” attempts I made today, with wp at 0.5meters min from each other:

And here is what happens when I reduce the “distance between lines”:

There are 2 binary files from today’s test, and the first one has a bit of MANUAL movement since I was tuning the steering pid:

If you have any suggestions or if there is something wrong in my post/rover-configurations, I’m all open to hear it!

Thanks a lot

If the telemetry is going in the pics you posted than you are not in RTK.
Just checked logs, your gps is always in status 3 (3dfix), never RTK FIX, not even FLOAT.
It even goes to 0 sats for few seconds on log 2.

You mean if the rover is connected to MissionPlaner, the telemetry is going there and there is no rtk fixes coming for the rover?

I just checked your logs, You never have an rtk fix or float in those logs. Only 3dfix
If you want precision you need to setup your system to work in rtk fixed.

1 Like

I have seen this documentation, but I was stucked at the " Configuring radio for embedding corrections into telemetry" steps since I’m receiving the rover’s data through wifi.

So, I have my Reach M2 on the rover connected to a LoRa radio and its antenna (to receive the Reach rs2’s corrections) and I connect my PC to the rover’s hotspot through TCP in MissionPlaner.

Except for the “Sik radio” settings, everything else was configure according to this documentation. Do you think I’m doing something wrong here?

Also, I didn’t completed the Inject Gps through Mission Planer thinking the rtk fixes where going directly to the rover. I’m going outside again tomorrow I’ll try this.

Thank you for your answer!

If you have M2 and RS2 connected trough LoRa than RS2 should send corrections to M2 and M2 should be able to go into RTK Fixed.
If the system will go into RTK it will say so on the lower right side of the hud, next to GPS. You can see in the logs too, after your test. Look for GPS status, 6 is RTK Fixed, 5 is RTK Float, you are status 3 at the moment. It means your M2 doesn’t receive any correction from the base and can’t switch to RTK.
Usually F9P based Gps receiver like the M2, go into fixed or float mode really quick and easily, as long as you configure them correctly.

Could this means the LoRa radio is not correctly configure? Because I can confirm that on the lower right side of the mission planer’s hud there is 2 GPS messages one on top of the other (I can’t really read them since I’m on ubuntu and the GUI seems to lagg a bit)

Don’t know about the LoRa. I don’t use a base, i get my corrections from an internet service directly to the M2. If your rover has internet access you can feed directly corrections from a local cors service trough internet. Some are free, some are paying services.
Public service is like having an RS2 but it is public and you get corrections trough internet instead of lora radio (just a semplification to have you understand the basics).

It doesn’t actually have internet access, it acts as a hotspot with the idea to connect through an application and send it Missions through this said app. But I see where you’re going with this!

We have a router with lte access on all our drones lately. We use it for RTK corrections, remote servicing and bvlos flying trough an openvpn server. Having a connection on board opens up to a lot of nice things.

Hi so I tryed to connect trough a server on mission planer, but it is not conecting! I checked my reach rs2 configurations because I find it a bit strange that rtk corrections are not automatically sent through the LoRa radio, here is the Base’s configuration:

And here is the rover’s emlid reach M2’s configurations:

Just realised that for whatever reason, the M2’s LoRa frequency isn’t 902 MHz as it is suppose to be and I can’t seem to change it due to a recv error (104).

Could having a LoRa problem inside the rover explain the hud messages I’m getting?

“GPS2: 3D Fix”

You need grey bars in the rover bar graphic, those grey bars are base reception sats, until you don’t get those it means base and rover do not comunicate.
You really need to read docs and maybe you could find more help on emlid forums.

I’ve read the docs a lot of times, in case i skipped something and was doing everything correctly.

Found one of the problem today concerning the LoRa radio: one wire was shattered IN the connector, so my first quick look didn’t spot it.

After replacing this cable, I was able to adjust the LoRa’s settings and finally see the RTK corrections in the ReachView app. I will go and test outside tomorrow to see if everything works fine on the rover.

Ok great, if you see the correction it’ll most probably go in rtk. Let me know if it works

Now that I’ve got the LoRa fixed, there is other problems coming out.

In the mission planer’s hud, its showed “GPS: No GPS” AND “GPS2: rtk fixed” in red messages. Maybe this is related to any baudrate? All the other wires seems ok. Any idea?


The M2 on the rover is plugged in the “GPS 2” slot on the pixhawk, the correction input is configure correctly (with LoRa radio) and I see the grey bars on the ReachView app.

The RS2 is set as the base (also sending corrections via LoRa).

I can send LOGS later today, as soon as I am back to the office.

Realised that GPS_TYPE should be set to “0” and GPS_AUTO_SWITCH to “3” since my M2 is plug into “gps 2” slot. I’ll go test again tomorrow.

Today’s update:

I changed GPS_TYPE to “0” and GPS_AUTO_SWITCH to “3”, and kept GPS_TYPE2 = 1. With those parameters values, there was just no gps to see, and there was no rover on mission planer’s map.

As of now, the only thing I can do is set GPS_TYPE and GPS_TYPE2 to “1”, GPS_AUTO_SWITCH to “3”, and have red messages on the hud:
Any idea?

And again, thanks a lot for your help, this is very appreciated. :slight_smile:

Hi all,

After a week of searching and testing, we may have found a problem. Right now, our setup is an emlid reach M2 powered by a raspberry pi. And then pluged into a cube px4 in slot “gps 2” (only the four central pins, since the M2 is already powered by th RPi).

Even though I tweeked Ardupilot’s parameter so it would only consider the GPS2, it seems like it was still lookingfor a GPS1. Also, when I changed the parameters to only consider the second GPS, Ardupilot was not able to localize the rover at all on a map (it’s like he was considering the GPS2 as a GPS1 for some parameters).

To find that out, we plugged a Here+ in the “gps 1” slot of the cube px4, and all error messages disapeared (we were laking in precision though).

I’ve tuned a GHR-06V to a GHR-08V by this arrangement:
M2 “s1” slot ------------------------ Px4 “gps 1” slot:
6 - 5V (not connected) ---------- 8 - + (not connected)
5 - RX ------------------------------> 7 - TX
4 - TX -------------------------------> 6 - RX
3 - RTS -----------------------------> 5 - SCL
2 - CTS -----------------------------> 4- SDA
1 - GND (not connected) -------- 3 - SFT (not connected)
------------------------------------------ 2 - LED (not connected)
------------------------------------------ 1 - - (not connected)

Going outside today to test this out!