[Top][All Lists]

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

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

From: Jake Stewart
Subject: Re: [Paparazzi-devel] UBX vs NMEA Protocol Inquiry
Date: Mon, 12 Mar 2012 18:14:01 -0400

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

reply via email to

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