DJI Phantom 4 RTK in PPK processing

From what I understand, yes that is the case. Even with major brand GPS systems PPK and RTK logs are different.
RTK and PPK are two different kinematics technologies that reference data in different ways. Although PPK generally has slightly higher positioning accuracy than RTK, both achieve centimeter-level precision. RTK is recommended for flying in environments that allow for real-time connection via OcuSync or 4G and prefer convenience and efficiency. For users who have no demand on timeliness and/or need to operate in conditions without connectivity, PPK is a better option.

The PPK files are as follows.
EVENTLOG.bin is a binary format that stores exposure, time stamp and log file.
PPKRAW.bin is an RTCM3.2 MSM5 format that stores satellite observation data and ephemeris data.
Rinex.obs is a Rinex file format that is created after transcoding.
Timestamps.MRK is a ASCII format that stores exposure and time stamp.

So here again, from what I understand the Rinex OBS is the base station and the rover (drone) is inside of the Event BIN file so it needs to be extracted. PPK BIN should contain the NAV information, but I do not know if it is from the base or the drone. Typically when I do PPK with a drone I use the NAV data from the drone.

With the P4 RTK you have 2 options:

  1. Buy the Base Station for 2000 Euro and thanā€¦ I dont know, I have not purchased because it is useless for surveys in areas without phone signal.
  2. Purchase a EZSurv license. That is 3000 Dollar once and 300 Dollar annually. RTK needs to be off during the flight and the Data are reliable. The customer service (Stephanie) is amazing helpful (relay she is!).

After 3 month of time wasting with RTK LIB I surrendered. The P4 RTK is not delivering the necessary data for it.

An other commend here is suggesting Klau, maybe they are providing a trial. You can use a EZSurv trial to check if it is working for you.

The whole point of the base is so that you can use a CORS/VRS to correct the base as it provides corrections to the drone, you donā€™t need a service with PPK which is why I would highly recommend a base station. Also, by doing PPK it does not have to be DJIā€™s base as long as it records RTCM3 or at least a format that can be converted.

Straight from the horseā€™s mouthā€¦ I am starting to think they made the PPK process proprietary inhouse. :frowning: The roadblock I have hit is the inability to extract the BIN files.

image

image

image

image

I was going to continue pasting screenshots, but that is the meat of it. There is more Here.

exactly - i can extract bin files using rtkconv - but when using those extracted files in rtkpost i get a pos file with only the header

Haha, you know what? I even think of that. Iā€™ll give it a try as well.

has anyone successfully process the p4rtk data using rtklib - or is this futile like hirschred has stated

i am looking at multirotor addon cause of the major cost difference and will hopefully get some news from them tonight since they are in germany

Hey Mike, take a look at this site and see if this helps you with the processing of P4RTK data using rtklib. This site gives you a step by step process of how to get all th data you need to use the rtklib (if you didnā€™t already know)

This is a result of a flight I just processed so far. Looking at the plot the flight had a gps fix most of the flight. The controller showed I had 30 FIX sats.

image

there is a pic - not a link to a site?

what/where are you getting the nav file and the rover file - are you using the following

****_rinex.obs for the rinex obs: rover

base station - what are you using for that - a cors station output ****.19o

rinex nav/clk
what / where are you getting this file

if you are getting it from the ppkraw.bin - then how/what setting are you using

thanks

Lol, my bad.

Gather PPK correction data

In order to perform PPK corrections, we will need 3 files.

  • A ā€œroverā€ file, which is the RINEX data that comes directly from the Phantom 4 RTK
  • A ā€œbase stationā€ file, which is the RINEX observation data for a fixed base station. For this workflow, we will use publicly available CORS base station data.
  • Broadcast ephemeris data, which is the precise satellite navigation data. For this workflow, we will use data provided by NASA CDDIS.

So far Iā€™ve made it all the way down to processing the files and using the Excel spreadsheet. The output isnā€™t working properly, but it could be a copy/paste error on my side. Iā€™m doing some excel code reading to figure out what the output process is doing.

i have no idea what i am doing wrong - i have all the files and i have followed aerotas before - but the output file is just a header with no data

what am i doing wrong - help

here are the files i am using and the created pos files

We just need to keep hammering on this. Feels like we are getting pretty close. If you donā€™t realize we could be on the brink of something that a processing company could do on the backend automaticallyā€¦

As for looking at an add-on, I would highly recommend it. I am getting 2-3cm absolute with my Emlid, but I still use 4-5 GCPā€™s. My setup was a $400 add-on to a stock P4P.

Donā€™t worry about what you are doing wrong just yet.

What He Saidā€¦

Make sure you are setting the Options correctly:

Settings

Having the settings selected correctly for this workflow is critical to obtaining good results. Below are the settings that Aerotas has found leads to the most accurate results. Only the settings that have been changed from their default are noted.

Setting 1

  • Positioning Mode: Kinematic
  • Frequencies : L1+L2
  • Filter Type: Combined
  • Elevation Mask: 15
  • Rec Dynamics: On
  • Satellites Included: GPS, GLO

Setting 2

  • Integer Ambiguity Res: Fix and Hold

Output

  • Solution Format: Lat/Lon/Height
  • Output Header: Off
  • Output Processing Options: Off
  • Time Format: ww ssss GPST
  • Field Separator: , (comma)

Positions

  • Base Station: RINEX Header Position

The are the settings that need to be changed

I was finally able to get the CSV output file:

PhotoNum Latitude Longidute Elevation (meters)
100_0001_0001.JPG 30.24034697 -97.72583982 146.4987782
100_0001_0002.JPG 30.24031065 -97.72587944 146.4720228
100_0001_0003.JPG 30.24027855 -97.72591547 146.4654744
100_0001_0004.JPG 30.24024518 -97.72594882 146.5066328
100_0001_0005.JPG 30.24021283 -97.72598409 146.440826

The Excel worksheet steps are vague but now I understand how to do it.

This is the Properties for: 100_0001_0001.JPG

GPS
Lat 30; 14; 25.3133999999991
Long 97; 43; 33.1132000000214
Alt 143.311

Timestamp.MRK File:
1 60765.410287 [2052] 33,N 13,E 191,V 30.24036486,Lat -97.72586478,Lon 143.311,Ellh 0.010063, 0.010131, 0.026228 50,Q

Now itā€™s time to verify the data is correct.

1 Like

Thatā€™s some good ish right thereā€¦

Looks like you used CORS Site: PAAP
Date: 20190508
Time: 170118 UTC (2:01:18 EST)

This is the timestamp inside the .obs file

This is the CORS Data you should be using:
image

This is RTKPost Info (Please note 1280 files)
image

This is your Plot of your route:
image

This is a Snippet of your .POS File
image

I think you did something wrong when selecting your CORS info:
image

This shows 1290 and 1280, one is for May 8 and the other is May 9

1 Like