Hello, I am working on a project which requires precise positioning data. I am looking in to how this might be possible using Mission Planner and Arducopter loaded on my PX4, but I'm having some trouble with the differential GPS part. Here's my scenario:

I set up a local base station using this neo 7P-PPP module. I did this by logging approximately 4 hours of raw GPS using ublox U-center on my PC, then I used RTKlib's RTKconv.exe to convert that .ubx file to the corresponding .obs, .nav, and .sbs files. Using data from a local CORS base station, I was able to determine a precise location of my GPS antenna. The base station is approximately 15 meters from my single mission waypoint where I'm just doing a 15 meter radius circle mode flight then landing. I installed another neo 7P-PPP on the secondary GPS port for the pixhawk (serial 4/5) as well, and I set the GPS_RAW_DATA parameter to 1. This actually causes the pixhawk to log the RAW GPS data at 5 Hz (which is waaaay not what the description says for this parameter in Mission Planner). Ok, so far so good.

Next, once the mission is over I offload the log file and use Mission Planner to create a KML + GPX file. This also outputs a RINEX 3.2 .obs file for the RAW GPS data collected during the flight. During the collection, I'm also simultaneously logging a .ubx binary file at 10 Hz on my PC from my local base station, again about 15 meters away from the circle mode waypoint. 

I'm trying to post-process the RAW data from the copter to get a much more precise position for where my copter was during the flight than what I could get out of the normal log file just using the NMEA messages. I'm using RTKpost to do that. In RTKpost, I'm giving it the .obs file from the pixhawk as my "rover" position file. The base station file is the .obs from my local base station, with the options "position" value set to the determined "precise" location of my local base station in lat, lon, and alt.

Next you have to give it at least a .nav file, so I'm using the .nav that is created from my base station .ubx log file. I think this might be where my error is coming in though because other examples that I have seen on the web for RTKpost always use the .nav file which corresponds to the ROVER's RECEIVER and not the BASE STATION'S RECEIVER!! therein lies the  problem. As far as I can tell, there is no protocol yet built into Mission Planner which creates the corresponding .nav file from the RAW GPS collected data on the  pixhawk, which renders the RAW data kind of useless at this point.  

Here's what I get when I use my local base-station's .nav file for my positional solution of the "rover", a.k.a, my copter during flight:

3691302761?profile=original

The above figure clearly shows that there's something horribly wrong with my solution. I have tried various processing parameters under the options window in RTKpost, but they all give me approximately similar jagged results as shown. 

A potential solution: I did notice that if you take a PX4 binary .bin log file and convert it to a .log file with Mission Planner and open it with notepad++ then you will see the GRAW messages, but you will also see messages labeled UBX#, where # ranges from 1-3. Assuming you're using a ublox GPS module, of course. Is it possible that the data required to create a .nav RINEX file is contained within these messages? After looking over the RINEX format guidebook, I do see that SOME of the .nav messages are contained within the UBX messages, but I guess I'm just wondering if anyone has used these messages to synthesize a .nav file from a PX4 log with the GPS_RAW_DATA param set to 1. It seems kind of dumb to not be able to create a .nav file from the RAW GPS data because you need it to do the kinematic solution with RTKpost....

I've attached the files that I'm using to do this if someone want's to try to use RTKpost with them and see if they can get better results that what I've shown above. The position of my local base station is:

Lat: 39.987816028
Lon: -83.719502591
Alt: 283.0418

The collection was done in Clark County Ohio on 6-4-16, if you wanted to download the CORS base station data to see if you can do better with that. I already tried, but get similar crappy results: 

obs start : 2016/06/04 17:07:47.6 GPST (week1899 580067.6s)
obs end : 2016/06/04 17:09:09.4 GPST (week1899 580149.4s)

Please feel free to leave a comment if you can help me.

Thanks!

Taylor

COM4_160604_170439.nav

COM4_160604_170439.obs

log_0_2016-6-4-13-07-56.bin.obs

You need to be a member of diydrones to add comments!

Join diydrones

Email me when people reply –

Replies

  • Hi Taylor, 

    Any luck with this? I'm trying to do the same with my piksi, to use post-processing o achieve higher accuracy. 

This reply was deleted.

Activity

Santiago Perez liked Santiago Perez's profile
Saturday
More…