[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Paparazzi-devel] UBX vs NMEA Protocol Inquiry

From: Felix Ruess
Subject: Re: [Paparazzi-devel] UBX vs NMEA Protocol Inquiry
Date: Mon, 12 Mar 2012 23:32:24 +0100

Hi Jake,

as stated several times before and as you said, it's not really a technical problem parsing NMEA per se. If someone wants to test/finish the current NMEA parser we would be all very happy and add it to the repo. It's an open-source project after all and anyone can contribute!
And I think Andre already worked on that...

It's just that the core paparazzi developers are mostly using the uBlox GPS for their good performance anyway. And if you already have one of those, you are better of using the binary protocol. And (at least speaking for myself), writing and testing the ugly NMEA is way down the list of stuff I want/need to do for Paparazzi.

Cheers, Felix

On Mon, Mar 12, 2012 at 11:14 PM, Jake Stewart <address@hidden> wrote:
I don't think there's any real technical challenge, just a lack of programming effort.  Despite the potential advantage of a binary protocol, MNEA is about as simple as it gets and you can crank the speed up pretty much as high as you'd ever want.

5Hz NMEA navigation takes 38400 baud according to my manual, so 115200 should be more than enough for 10Hz.  You could probably do less than that if you configure your messages to only what you need.  There shouldn't be any problems matching up messages to the correct fix since most of them have a timestamp. If the message doesn't contain a timestamp it should be safe to assume it goes with the last timestamp recieved.  They're also always in the same order, so it's not like you're getting random mixed up messages.

As far as processing power goes... ArduPilot seems to have no problem reading and processing 8 PWM channels, a NMEA GPS, an I2C IMU, and outputting telemetry and 8 PWM channels.  And it does this with only 8-bit, 16 mhz processors.  The PPZ hardware should have a couple orders of magnitude more processing power.

I think perhaps Paparazzi just doesn't want to appeal to the masses, and deal with all the headaches that go along with that.  ArduPilot is a consumer type autopilot, while Paparazzi is a high-end UAV development platform.  It really shows in the design choices... ArduPilot is designed for the most popular operating system (Windows, 87% market share), while Paparazzi runs on the most powerful and least popular operating system (linux, 1% market share).  Paparazzi uses a fast but esoteric GPS protocol (uBlox, <1% market share), while ArduPilot again uses the most popular and compatible GPS protocol (NMEA, 100% market share).  ArduPilot uses the most popular, but 8-bit and some say obsolete, microcontrollers (Atmega/arduino), while Paparazzi uses the fastest and most powerful 32-bit processors (STM32/LPC).

For some reason I decided early on to use a STM32 processor design, so if I can figure out Paparazzi before ArduPilot switches over to a STM32 based design I'll stick with Paparazzi.  Ardupilot is rumored to be switching over to STM32 in the next year or two, so I still have plenty of time.  

I do have to get a NMEA GPS working since I don't have the luxury of using an oddball, esoteric GPS protocol.

> ----- Original Message -----
> From: Chris Wozny
> Sent: 03/01/12 09:42 AM
> To: paparazzi-devel
> Subject: [Paparazzi-devel] UBX vs NMEA Protocol Inquiry
> All,
> I was wondering if someone had a technical explanation as to why the
> UBX protocol is faster than NMEA parsing. I know in the past people
> have said NMEA sucks and binary protocol's are faster, but I just want
> to make sure I understand the technical reason. I know parsing ASCII
> strings requires more CPU cycles, but don't you still have to parse
> the UBX output as well?
> Best,
> Chris
> _______________________________________________
> Paparazzi-devel mailing list
> address@hidden

Paparazzi-devel mailing list

reply via email to

[Prev in Thread] Current Thread [Next in Thread]