GPS based precision landing - How precise can it be?

I’m trying to perform precision landing with aruco tags using a Pixhawk 1 and a Raspberry Pi. Of course, the hardest part is moving the drone in the right spot.
I found this video of a man who does the positioning using GPS, which seems to work well. However, I need very high accuracy (+/-10cm) and I was wondering, if this is possible with this method.

In the video, he gets the marker’s translation in x and y direction with respect to the camera frame and then turns it into NE coordinates, using the drone’s current GPS position as a reference. This gives him the computed NE coordinates of the marker. In this moment, the drone has a NE coordinate system with the GPS position being it’s origin and the marker is x metres east and y metres north of the current position. He then moves the drone using dronekit’s simple_goto. So far, the algorithm is working extremely precise. However, I have 2 worries:

  • The drone’s GPS position constantly oscillates a little bit. When a simple_goto command is issued and the drone is moving to the computed NE coordinates of the marker, could the GPS position change and make the drone move to another place that may be off only by a few centimetres? How does Ardupilot handle shifting GPS positions during movement to certain coordinates?
  • How precise will Ardupilot approach a certain GPS coordinate (reaching the exact coordinate is problably impossible)?

Thanks in advance

Using septentrio’s RTK-GPS,
Arducopter can land at the target point within ±10 cm.

We use aruco markers and a 11Kg copter and get +/-10cm.

septentrio mosaic-x5c?

We use it for rover and base,

Perhaps I’m mistaken, but once you introduce fiducial markers, GPS precision becomes less critical. As long as the GPS is good enough to put the markers in view, it seems to me that accuracy is then determined more by optical means than satellite…


No, you’re right. Once the marker is in sight, the GPS only needs to deliver any position. The accuracy doesn’t matter in that moment because the following movement is relative. If the marker positioning yields a horizontal distance of x metres, the drone will simply move x metres relative to the GPS position it just measured.
Questions are:

  • How does Ardupilot make sure it has moved x metres.
  • Can it guarantee x metres, or will it be more like x+/-10cm or even x+/-50cm. I’m trying to get a feeling about what to expect.
  • If If the drone starts a movement relative to a measured GPS position and during movement, another position is measured that does not correspond with the movement (due to GPS imprecision), will that influence the movement in any way?

Once you start the landing and the Aruco target gets aquired by the camera, the navigation is purely visual. GPS is ignored as the vision closed loop starts to run.
+/-10cm in a well tunned camera and well tunned UAV system.

Our company can tune your system to do that, if you need.

RTK gps, around 10cm. Actual maybe around 20cm and heavily affected by weather. For instance cloud.

Normal GPS. Less than 2 metre. Some of the GNSS multiband antenna seems to be pretty accurate. I got less than 1.2metres.

14 days later and I notice that I actually forgot to give you the video I’m talking about. I wonder no one’s asked…

My question is not so much about GPS and RTK precision, my first question is a little ill-formulated there. It’s mainly about the questions I rephrased here.