[Top][All Lists]

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

[Paparazzi-devel] Re: Paparazzi-devel Digest, Vol 61, Issue 16

From: Christophe De Wagter
Subject: [Paparazzi-devel] Re: Paparazzi-devel Digest, Vol 61, Issue 16
Date: Fri, 10 Apr 2009 11:13:53 +0200

While considering the CPU time involved in LatLonHeight computations I would like to suggest the ECEF coordinates (since the Ublox5 does not have UTM). ECEF can be converted to the NED ground-parallel plane (x,y) in meters that is used in the nav code using a single rotation and translation (the rotation matrix contains the Lattitude and longitude arithmetic's but can be computed at init-time or even compile time if the MAV does not travel more than a few 100km).

For the onboard navigation code: UTM is the fastest, followed by rotated ECEF. LatLonH is much heavier to compute, and UTM across zones [utm->llh + llh->utm] is about twice as heavy as that.

I believe that within a UTM zone the NED coordinates and UTM coordinates are only translated (infinite UTM zone). So the only difficulty lies in the ground station.



---------- Forwarded message ----------
From: Pascal Brisset <address@hidden>
To: address@hidden
Date: Tue, 07 Apr 2009 20:06:03 +0200
Subject: Re: [Paparazzi-devel] UTM Zone Management
Hi Gisela,

currently the only way to cross a UTM border is to use the POSLLH message of the GPS receiver, i.e. setting the GPS_USE_LATLONG flag. By the way, it is compulsory if you use a LEA 5H receiver which does not provide the POSUTM message.
The conversion function are available (in latlong.c) so it is possible to still use the POSUTM message, by adding some code (gps_ubx.c:218 or estimator.c:194):
if (gps_utm_zone != nav_utm_zone0) {
latlong_of_utm(gps_utm_east/100, gps_utm_north/100, gps_utm_zone);
latlong_utm_of(latlong_lat, latlong_lon, nav_utm_zone0);
gps_utm_east = latlong_utm_x * 100;
gps_utm_north = latlong_utm_y * 100;
gps_utm_zone = nav_utm_zone0;

I did not test this code (even in simulation) and it could be a good idea to measure the required CPU ... (about 1ms for the latlong_utm_of() conversion at least)


gisela.noci wrote:

I would like to understand how the Paparazzi autopilot manages crossing UTM Zones. I have studied the source code and cannot see that this is catered for, unless one uses the Lat/Long supplied by the GPS. I am reluctant to do that as the conversion of lat/long to UTM loads the processor (it is not a trivial computation). As I understand, the Nav function in Paparazzi works with a coordinate system based on a georef point whose (x.y) is set to be zero. All waypoints, aircraft position etc are then assigned coordinates relative to this point. This is a fantastic way of working – just needs to be able to handle receiving a UTM eastings value from the GPS which is in a different zone.

Hence please if someone can explain how this is managed in Paparazzi it would be much appreciated.

reply via email to

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