|
Cellular forums Home > Archive > GPS > October 2007 > Hardware for attitude determination using carrier phase measurements
You are viewing an archived Text-only version of the thread.
To view this thread in it's original format and/or if you want to reply to
this thread please [click here]
| Author |
Hardware for attitude determination using carrier phase measurements
|
|
| vvxvvx@gmail.com 2007-10-12, 4:33 am |
| Hi,
I am going to try and build a GPS based attitude sensing system.
The plan is to use three antennas with baselines around 1 m, the
accuracy needed is about 2-3 degrees, which means the required
accuracy of relative antenna positions < 3 cm.
The mathematics behind integer phase ambiguities, calculations of the
attitude from carrier phase shift data and so forth is not a problem
here.
The main question is what kind of hardware (and possibly software) do
I need to measure the carrier phase shifts between antennas?
I understand, that for instance Magellan AC12 OEM board is capable of
outputting raw carrier phase measurements, but what exactly do I do
with them? Do I need three AC12 boards each connected to one of the
three antennas and then process the results on a separate controller
(processor) or probably there is a simpler solution?
VVX
| |
| SamSvL 2007-10-12, 7:33 am |
| Hi,
vvxvvx@gmail.com wrote in news:1192164608.512665.83220
@v23g2000prn.googlegroups.com:
> Hi,
>
> I am going to try and build a GPS based attitude sensing system.
> The plan is to use three antennas with baselines around 1 m, the
> accuracy needed is about 2-3 degrees, which means the required
> accuracy of relative antenna positions < 3 cm.
>
> The mathematics behind integer phase ambiguities, calculations of the
> attitude from carrier phase shift data and so forth is not a problem
> here.
>
> The main question is what kind of hardware (and possibly software) do
> I need to measure the carrier phase shifts between antennas?
>
> I understand, that for instance Magellan AC12 OEM board is capable of
> outputting raw carrier phase measurements, but what exactly do I do
> with them? Do I need three AC12 boards each connected to one of the
> three antennas and then process the results on a separate controller
> (processor) or probably there is a simpler solution?
IMHO a separate computer accepting the data of your three receivers
and doing the calc is required for non-GPS manufaturers (the latter
add the math to their receiver, e.g. Septentrio).
BTW, which ambiguity fixing strategy will you use?
Bye
Sam
>
> VVX
>
>
| |
| utilsea@aol.com 2007-10-12, 7:33 am |
| A hard job :-)
You have to use a separate processor to decode (Magellan proprietary
format) and process data issued from the A12.
I have just a small remarks about the use of A12, I don't know for
wich kind of application is dedicaced your attitude sensor
but you have to take care of latency and maximum refresh rate (1sec.
for A12).
FYI : Magellan is already offering a sensor similar to wich one you
want to devellop but based on another kind of board and using 4
antennas.
Cheers
Utilsea
http://utilsea.free.fr
| |
| joakim.majander@luukku.com 2007-10-12, 3:33 pm |
| On 12 loka, 07:50, vvx...@gmail.com wrote:
> Hi,
>
> I am going to try and build a GPS based attitude sensing system.
> The plan is to use three antennas with baselines around 1 m, the
> accuracy needed is about 2-3 degrees, which means the required
> accuracy of relative antenna positions < 3 cm.
There are several systems capable of that. The accuracy can be much
better, e.g. for VS100 it is about 0,2 degrees:
http://www.hemispheregps.com/Portal..._WEB
.pdf
You can also buy it as a development kit:
https://www.navtechgps.com/Shop/equ...40-4007-000.asp
Also many marine GPS compasses would do. At least Furuno has models
that use three antennas and does get pitch, roll and heading with just
one unit.
I don't know how hard it is to do the same with three one antenna
boards. Probably not very easy to keep track of the phases without
slips.
A related question: How accurately could one get heading and pitch
with just two cheap GPS receivers calculating from the position
outputs? The position errors are quite large, but how well are they
correlated, if similar units with the same setting are used? What kind
of accuracy would be expected say for 10 m separation.
Joakim
| |
| Terje Mathisen 2007-10-12, 3:33 pm |
| joakim.majander@luukku.com wrote:
> I don't know how hard it is to do the same with three one antenna
> boards. Probably not very easy to keep track of the phases without
> slips.
>
> A related question: How accurately could one get heading and pitch
> with just two cheap GPS receivers calculating from the position
> outputs? The position errors are quite large, but how well are they
> correlated, if similar units with the same setting are used? What kind
> of accuracy would be expected say for 10 m separation.
Pretty horrible!
As long as you're moving, it is probably better to get direction from a
single receiver than to try to calculate it from the offsets between two
individual receivers at each end of your boat.
When standing still, the electronic compass in your boat is definitely
_much_ better than that pair of regular gps'es.
Attitude calculation is at the very least dependent upon being able to
use exactly the same sats to calculate both positions, which means that
a pair of cheap receivers with pseudorange outputs is the way to go.
OTOH, as long as you do have those raw signals, you should probably try
to do the Right Thing, i.e. calculate exact carrier phase offsets.
A small aside:
It seems intuitively right that it should be much easier to determine
the integer offsets when the distance between pairs of antennas is
relatively short:
I.e. with 1 m offset and 1.5 GHz signals, the maximum offset is about 5
carrier periods, right?
Doing the same compare for all visible sats should very quickly result
in a very limited number of possible integer offsets, most probably just
a single solution.
Terje
--
- <Terje.Mathisen@hda.hydro.com>
"almost all programming can be viewed as an exercise in caching"
| |
| joakim.majander@luukku.com 2007-10-12, 3:33 pm |
| On 12 loka, 23:08, Terje Mathisen <terje.mathi...@hda.hydro.com>
wrote:
> It seems intuitively right that it should be much easier to determine
> the integer offsets when the distance between pairs of antennas is
> relatively short:
>
> I.e. with 1 m offset and 1.5 GHz signals, the maximum offset is about 5
> carrier periods, right?
For this reason the data sheet of Vector defines the maximum offset of
2 m for reliable heading. It can also use a gyro to minimize the
possible solutions.
Are there some free programs for doing the math with carrier phase?
What are the requirements for the receivers?
Joakim
| |
| John Bonde 2007-10-12, 10:33 pm |
| vvxvvx@gmail.com wrote:
> I am going to try and build a GPS based attitude sensing system.
> The plan is to use three antennas with baselines around 1 m, the
> accuracy needed is about 2-3 degrees, which means the required
> accuracy of relative antenna positions < 3 cm.
>
> The mathematics behind integer phase ambiguities, calculations of the
> attitude from carrier phase shift data and so forth is not a problem
> here.
>
> The main question is what kind of hardware (and possibly software) do
> I need to measure the carrier phase shifts between antennas?
The only hardware you need is three OEM GPS receivers with carrier
phase data output, three antennas, and a computer to process the data.
It's all software from here though integrated hardware can make things
easier.
You can easily meet your accuracy needs under decent GPS receiving
conditions.
Look at the following link for an introduction:
http://plan.geomatics.ucalgary.ca/p...r />
June06.pdf
| |
| utilsea@aol.com 2007-10-13, 7:33 am |
|
GPS compass and attitude sensors are not using the computed solution
(position) to get heading, pitch and roll but
algorithm similar to RTK with a know baselength.
Accuracy is generally 0.5=B0 on the heading and 0.8=B0 for pitch and roll
on a baseline of 40cm (distance between antenna) and improvement of
this accuracy is more or less a linear function relative to the base
length.That means, if the accuracy is 0.5=B0 at 40cm she will be 0.25=B0
at 80cm, 0.125=B0 at 1.20m .....
After, you have to know the application using informations outputed by
the sensor, a simple automatic pilote is not accepting the same
latency and refresh rate than a multibeam echosounder or integration
of the sensor in machine guidance.
System named is this post are 1Hz refresh rate with unknow latency
who is perfect for automatic pilot but not suitable for machine
guidance.
A very good solution is also to make an hybridation between GPS sensor
and some accelerometers, but it's another story :-)
Cheers
Utilsea
http://utilsea.free.fr
| |
| vvxvvx@gmail.com 2007-10-13, 12:33 pm |
| The sensor is going to be used as a component of an autopilot of a
small UAV under 1 kg flight weight, based on a RC-model.
Mainly the UAV should be a proof-of-concept thing.
So the GPS attitude sensor has to weigh less than approximately
250-300 g (8-10 oz) including antennas,
to have latency less than 0.1-0.2 seconds and update rate at least 5
Hz, and finally :) to cost less than 1000 Euros/Dollars.
As the UAV has an autopilot it does not require very high accuracy
(closed loop systems can adapt to errors if they are sufficiently
small),
but does require quite high update rates and low latency.
> Sam:
> BTW, which ambiguity fixing strategy will you use?
The strategy is to use simple gyros and a kind of Kalman filer to
narrow the search for possible solutions.
> Utilsea:
> You have to use a separate processor to decode (Magellan proprietary
> format) and process data issued from the A12.
BTW what kind of carrier phase data will I get from the GPS boards on
every update?
Is it a sequence of satellite IDs with phases at a certain time
instance or something like that?
> Utilsea:
> I have just a small remarks about the use of A12, I don't know for
> wich kind of application is dedicaced your attitude sensor
> but you have to take care of latency and maximum refresh rate (1sec.
> for A12).
> FYI : Magellan is already offering a sensor similar to wich one you
> want to devellop but based on another kind of board and using 4
> antennas.
Yes, I also have noticed that the maximum update rate of A12 is just 1
Hz, for the autopilot I need at least 5 Hz.
Possibly will have to look at other options (like NovaTel boards).
VVX
| |
| utilsea@aol.com 2007-10-13, 12:33 pm |
| On 13 oct, 18:20, vvx...@gmail.com wrote:
> The sensor is going to be used as a component of an autopilot of a
> small UAV under 1 kg flight weight, based on a RC-model.
> Mainly the UAV should be a proof-of-concept thing.
> So the GPS attitude sensor has to weigh less than approximately
> 250-300 g (8-10 oz) including antennas,
> to have latency less than 0.1-0.2 seconds and update rate at least 5
> Hz, and finally :) to cost less than 1000 Euros/Dollars.
I think that it will be very difficult to find something meeting your
requirement and your budget :-)
then the requested weight if you take in consideration 3 GPS boards,
computing board and ,ecessary power supply....
> As the UAV has an autopilot it does not require very high accuracy
> (closed loop systems can adapt to errors if they are sufficiently
> small),
> but does require quite high update rates and low latency.
>
>
> The strategy is to use simple gyros and a kind of Kalman filer to
> narrow the search for possible solutions.
>
>
> BTW what kind of carrier phase data will I get from the GPS boards on
> every update?
> Is it a sequence of satellite IDs with phases at a certain time
> instance or something like that?
You will get phase, code position and some other informations
including time of observation ephemeris ....
>
>
> Yes, I also have noticed that the maximum update rate of A12 is just 1
> Hz, for the autopilot I need at least 5 Hz.
> Possibly will have to look at other options (like NovaTel boards).
Have also a look on Magellan DG14
>
> VVX
| |
| vvxvvx@gmail.com 2007-10-14, 4:33 am |
| What do you think about u-blox LEA-4T?
The weight is only 22 grams, size 17x22 mm, 10 Hz refresh, it looks
like that's exactly what I wanted :)
| |
| vvxvvx@gmail.com 2007-10-14, 4:33 am |
| A quote from u-blox FAQ section about raw measurement data
> Q7: How can I extrapolate measurements from multiple receivers to a common timetag?
> A7: One needs to extrapolate the carrier phase to the top-of-second by using doppler. This works since the Carrier Phase is nothing else but accumulated dopplers.
I does not make sense to me at the moment :(
Could somebody please explain what it means?
| |
| Preben Mikael Bohn 2007-10-14, 10:33 am |
| vvxvvx@gmail.com skrev:
> A quote from u-blox FAQ section about raw measurement data
>
>
> I does not make sense to me at the moment :(
> Could somebody please explain what it means?
This probably means that if you have _different_ timetags on your
multiple receivers you can interpolate (or extrapolate in the case of
using the Doppler) to a common epoch.
However this is not your (only) problem.
Even if you do not have exactly the same time-tags on your measurements
(for some receivers they can be a few ms off) you can not assume that
the receiver clock errors are insignificant for your application.
In normal GPS based attitude determination the hardware uses the same
clock for it's receivers; this means that you can use single-differences
to compute your phase-differences. In your case however the clocks are
not alligned; this means that all of your measurements will be
contaminated with the clock-differences of your involved receiver clocks.
Depending on the clock-steering technique used in the receiver this can
vary anywhere from some ns to several ms, corresponding to anything from
0 to above 300 km, which obviously is not useful for your purpose. Some
of this may be reduced by estimating the receiver clock error, but this
can not be determined accurately enough so the normal way to proceed is
to make double-differences thus eliminating all involved clocks.
Making double-differences is normal in GPS carrier-phase baseline
processing and you should be able to find a lot of litterature on this.
For low-cost receivers you will usually have to estimate the clock error
roughly based on the pseudoranges in order to remove second-order
effects which will have a significant effect on large clock-errors.
Best regards Preben
| |
|
| >
>
>
You can get clock error from the NAV-SOL records. To interpolate, do
something like:
phase[sat] += (L1Frequency - doppler[sat]) * ClockError
PR[sat] += C * ClockError
The PR adjustment isn't really necessary since it will cancel out in
double differencing, but LEA-4T phase data needs the tweak. There are
probably better ways to do the interpolation, but this one gets you in
the ballpark.
NAV-SOL records can lag behind the raw measurements by a cycle or two,
so you may find yourself interpolating clock error from previous NAV-
SOL records. It seems to work, although there are probably better
ways.
| |
| Preben Bohn 2007-10-15, 4:33 am |
| John wrote:
> You can get clock error from the NAV-SOL records. To interpolate, do
> something like:
> phase[sat] += (L1Frequency - doppler[sat]) * ClockError
> PR[sat] += C * ClockError
I am not aware of the LEA-4T specifics, but you should add the same
corrections to both the carrier phase and the pseudorange (unless of
course these are not sampled at the same time).
> The PR adjustment isn't really necessary since it will cancel out in
> double differencing,
You should always do the correction for the doppler*clock error on both
the pseudorange and the carrier phases; this will not cancel out in the
DD. The normal way is to estimate the clock error from the pseudoranges
(an accuracy of 1 us is enough, so only the largest effects on the
pseudoranges should be considered). But if the LEA-4T estimates the
clock error anyway and the carrier phase is the only one needed this
approach would be easier. :-)
Best regards Preben
| |
| vvxvvx@gmail.com 2007-10-15, 4:33 am |
| Another thing that I am not sure I understand completely is using
double-differences to find all single differences (not the attitude)
from double differences.
Assume we have phase measurement from N satellites on 2 antennas. This
gives us only N-1 double-differences AKA independent equations, while
N single differences are unknown. Apparently we need one additional
equation to complete the system.
| |
| SamSvL 2007-10-15, 7:33 am |
| vvxvvx@gmail.com wrote in news:1192292435.950289.205960
@q5g2000prf.googlegroups.com:
[color=darkred]
AFAK the A-12 does not output carrier data, the AC-12 does !
Sam
| |
| SamSvL 2007-10-15, 7:33 am |
| vvxvvx@gmail.com wrote in news:1192440720.959085.287030
@t8g2000prg.googlegroups.com:
> Another thing that I am not sure I understand completely is using
> double-differences to find all single differences (not the attitude)
> from double differences.
> Assume we have phase measurement from N satellites on 2 antennas. This
> gives us only N-1 double-differences AKA independent equations, while
> N single differences are unknown. Apparently we need one additional
> equation to complete the system.
>
>
In case the receivers all operate on a single clock, you can work with
single differences. If they don't, you'll require double differences in
order to cancel clock errors. And as has been stated earlier, you'll have
to project all (pseudo and carrier) ranges to the same moment in time.
How to do that depends on your receiver.
Have fun !!
Sam
| |
| vvxvvx@gmail.com 2007-10-15, 7:33 am |
| Excuse me for a silly question, but
the LEA-4T datasheet says it has 43 ns granularity of time which
corresponds to 12.6 meters.
How do they get position accuracy of 2 m then? :D
| |
| joakim.majander@luukku.com 2007-10-15, 7:33 am |
| On 15 loka, 13:16, vvx...@gmail.com wrote:
> Excuse me for a silly question, but
> the LEA-4T datasheet says it has 43 ns granularity of time which
> corresponds to 12.6 meters.
> How do they get position accuracy of 2 m then? :D
Even more so how can you get 2 m out of C/A code, which has a
frequency of only 1 MHz (http://users.ictp.it/~radionet/ghana1998/GPS/
PRC.HTM)? In one 1 MHz cycle there are already ~23 43 ns cycles, thus
43 ns is certainly good enough to capture 1 MHz timing.
Joakim
| |
| SamSvL 2007-10-15, 10:33 am |
| vvxvvx@gmail.com wrote in news:1192443365.102704.99430
@k35g2000prh.googlegroups.com:
> Excuse me for a silly question, but
> the LEA-4T datasheet says it has 43 ns granularity of time which
> corresponds to 12.6 meters.
> How do they get position accuracy of 2 m then? :D
>
The output time error may be up to 43 nsec. The signal transit time
however is calculated far more precise, so this error does not
mess up the pseudoranges, only the sat position calculation. And in
43 nsec the sats move a negligible amount.
Sam
| |
| SamSvL 2007-10-15, 10:33 am |
| joakim.majander@luukku.com wrote in news:1192446044.353848.241790
@y27g2000pre.googlegroups.com:
> On 15 loka, 13:16, vvx...@gmail.com wrote:
>
> Even more so how can you get 2 m out of C/A code, which has a
> frequency of only 1 MHz (http://users.ictp.it/~radionet/ghana1998/GPS/
> PRC.HTM)? In one 1 MHz cycle there are already ~23 43 ns cycles, thus
> 43 ns is certainly good enough to capture 1 MHz timing.
>
> Joakim
>
The correlation of received code with the internally generated code
is done with a precision of a fraction of one chip.
Sam
| |
| John Bonde 2007-10-15, 10:33 pm |
| vvxvvx@gmail.com wrote:
> What do you think about u-blox LEA-4T?
> The weight is only 22 grams, size 17x22 mm, 10 Hz refresh, it looks
> like that's exactly what I wanted :)
Yes, that's the one from the article I posted. It's the obvious choice and
on the bench it performs just fine. I got a couple a while back to test for
a similar application. The problem was the RF noise from my UAV,
an electric helicopter, would swamp the Ublox receivers making the
phase data unusable. Even the pseudorange data is affected somewhat.
Older boards I used for testing had no problem, but they were much
bigger.
My UAV power system needed about 1 kw of power to fly. Yours
should need much less so maybe you won't have any RF problems.
It's something to watch for though.
Again, in theory, want you want to do is possible, but with the cost
and weight limitations you will really be pushing current technology.
You can get the basic hardware needed, but will need a great deal
of theory/software/and perhaps hardware integration help to pull
this off.
Good luck.
| |
| joakim.majander@luukku.com 2007-10-16, 4:33 am |
| On 15 loka, 18:22, SamSvL <sam...@nlr.nl> wrote:
> The correlation of received code with the internally generated code
> is done with a precision of a fraction of one chip.
>
> Sam
What do you mean by "with a precision of a fraction of one chip"?
According to this:
http://en.wikipedia.org/wiki/ Globa...g_S
ystem
the accuracy is about 1% of bit time thus about 10 ns with C/A code.
10 ns is about 3 m. With 43 ns clock cycle and some averaging you can
get 10 ns accuracy, but probably this 43 ns clock is not used for this
purpose.
In order to get cm accuracy you need to use higher frequency, which
you get from the carrier signal. Unfortunately there is no code, thus
you need other information to find the correct number of slips.
Joakim
| |
| SamSvL 2007-10-16, 7:33 am |
| joakim.majander@luukku.com wrote in news:1192525972.379885.304370
@v23g2000prn.googlegroups.com:
> On 15 loka, 18:22, SamSvL <sam...@nlr.nl> wrote:
>
>
> What do you mean by "with a precision of a fraction of one chip"?
>
> According to this:
> http://en.wikipedia.org/wiki/ Globa...g_S
ystem
> the accuracy is about 1% of bit time thus about 10 ns with C/A code.
> 10 ns is about 3 m.
Correct. And modrn receivers perform even better.
With 43 ns clock cycle and some averaging you can
> get 10 ns accuracy, but probably this 43 ns clock is not used for this
> purpose.
Again correct. This clock time serves to calculate the satellite position,
not the pseudorange !!
>
> In order to get cm accuracy you need to use higher frequency, which
> you get from the carrier signal. Unfortunately there is no code, thus
> you need other information to find the correct number of slips.
That's called: ambiguity fixing (or a lot of other names)
Sam
>
> Joakim
>
>
|
|
|
|
|