I am working on installing an external GPS. I am looking for information about what data the Pixhawk needs from the external GPS. From reading how other external GPSs are integrated with Pixhawk, some are using NMEA messages. While it’s supposed to be a convention it looks like vendors modify their NMEA message to suit their needs. Where can I find which NMEA messages can be read by the pixhawk and the exact sequence of the message? The plan is to use heading information from the GPS and not use a compass.
Been searching around for this data for a bit, but can’t seem to find it.
The GPS I am using doesn’t support VTG NMEA messages. So I reviewed the code and it looks like VTG is mostly redundant. Based on my reading, the code uses course and speed from VTG messages. But it looks like it has previously populated those variables from the RMC message data. Do you know if this would work if I commented out references to VTG?
Also, I am wondering why they are using speed and course from two messages? Are they validating the RMC information with VTG data?
How can I determine if other programs us VTG data?
We got it to work on the bench but never flew with it. Set GPSTYPE2 (not sure if that is the exact variable name) to NMEA, which I think is 5. From my testing it looks like GGA NMEA is sufficient. We didn’t continue the SBG Ellipse D integration because NMEA doesn’t include vertical velocity information, which helps the EKF generate a better naviagation solution. The main reason we wanted a very accurate GNSS system was for a stable hover - small horizontal and vertical deviations. To capture the benefit of an external GNSS/INS system there needs to be a compatible GPS driver in the ardupilot GPS library, for example, SBF for the Septentrio AsteRX. Yes there is a driver for NMEA but it lacks vertical velocity, which as I understand is only contained in binary files.
My knowledge is limited to my own experince and reading and may not be completely accurate. Hopefully those smarter than me will correct any erroroneous information I provided.
skyvevor, Thats what I am trying to do as well, is get sub meter or better horizontal and vertical hover. I need to be able to keep my drone withing about a decimeter in both directions, and I have a couple RTK systems that can do that, but Im having difficulty determining how to get it into the pixhawk, hence my asking about the strings the gps needs. But Its interesting that NMEA doesnt include vertical velocity, as thats a major direction.
Is the SBF a brand, or a library? Im not familiar with the name
SBF is Septentrio Bin File, which is the file sent to the pixhawk from septentrio boards like the AsteRx. The bin file contains a bunch of postional data the EKF and the Pixhawk use calculate position. I don’t know if NMEA alone will keep you within a decimeter sphere. I am seeing amazing positional stabiliy with the AsteRX
What system are you using to get a SBF file? Our current setup does alright with stability, but it could be better. It seems to change from day to day haha. Im not sure NMEA will get us decimeter accuracy either, unless we output alot of money for an RTK system, but with the 2 systems that I have tried to get setup, one is a little large for a drone, and the other is such a pain to setup for each flight, and doesnt work all that great either.