View previous topic :: View next topic |
Author |
Message |
Stroi
Joined: 17 Oct 2006 Posts: 2
|
How to port the compass library for tilt compensation... |
Posted: Sun Dec 31, 2006 1:47 am |
|
|
Hi,
I need to realise a tilt compensation for my 3-axis compass module (PNI11096). The library only supports a simple 2 axis compass.
As I expect, I'm not the first one who needs a compass with the 3rd axis compensation. So I've been searching for a sample code but I can't find any. Has someone probably allready worked out some working code?
Thanks in advance and a happy new year!
Kind Regards,
Michael |
|
|
PCM programmer
Joined: 06 Sep 2003 Posts: 21708
|
|
Posted: Sun Dec 31, 2006 4:19 pm |
|
|
Most of the documents on the net suggest that an additional device
is needed to measure pitch and roll, in order to do tilt compensation.
Does your compass have the pitch & roll sensors mentioned in the
following web pages ?
Quote: |
For the tilt-compensation this design employs the ADXL202E, a 2-axis
micro-machined accelerometer with digital duty-cycle outputs.
| See page 24:
http://www.ece.ubc.ca/~elec474/reports/dec03/team5.pdf
PNI has this comment:
Quote: | a tilt sensor is required to perform this function in addition to the magnetometers.
| http://www.pnicorp.com/supportProduct?nodeId=c4b19
Quote: |
Generally, the magnetic compass module consists of three magnetic
compass sensors and two inclino-meters, all used to compensate the
tilt error. | See page 1:
http://nesl.snu.ac.kr/publication/papers/j_int/12.pdf |
|
|
Stroi
Joined: 17 Oct 2006 Posts: 2
|
|
Posted: Tue Jan 02, 2007 10:41 am |
|
|
Hello,
thanks a lot for the very informative information.
Am I right, that there is no need for an Z-axis?
So there should only be this ADXL202E and a 2-axis compass circuit.
I've found correction data for tilt errors from Honeywell but not from PNI. Do you think that there is a great difference between those sensors?
Thanks a lot!
Kind Regards
Michael |
|
|
PCM programmer
Joined: 06 Sep 2003 Posts: 21708
|
|
Posted: Tue Jan 02, 2007 1:14 pm |
|
|
I haven't used these sensors before. The only experience I have
with this type of project is because someone here at the company
bought a Sparkfun UAV board.
http://www.sparkfun.com/commerce/product_info.php?products_id=707
I wrote a simple test program for it with CCS, just to prove that all
the senors were working, and that they would display reasonable
output values. I don't have any more experience with the tilt and
roll sensor. The person who bought it finished the project on their own. |
|
|
SherpaDoug
Joined: 07 Sep 2003 Posts: 1640 Location: Cape Cod Mass USA
|
|
Posted: Tue Jan 02, 2007 2:13 pm |
|
|
For a tilt compensated magnetic compass you need either a gymballed or mechanically floating sensor, or a three axis magnetic sensor and 2 axis tilt sensor.
Here on Cape Cod Mass USA the magnetic vector is about 40 degrees from vertical. If you had two fixed magnetic sensors they could tilt such that they were both perpendicular to the magnetic vector. Then neither would see any magnetic field and the compass would have no data to work with.
I designed the hardware of a three axis flux gate and tilt sensor compass a few years ago. Another guy did the software, and the company mathematician came up with the compass algorythms. It ain't easy! _________________ The search for better is endless. Instead simply find very good and get the job done. |
|
|
Ttelmah Guest
|
|
Posted: Wed Jan 03, 2007 3:33 am |
|
|
I suspect the 'difference' between the PNI unit, and the Honeywell, is that the former is available as a complete corrected module, with the calculations already perfromed. People using their seperate chips, tending perhaps to be working in magnetometry, rather than compass applications. The Honeywell sensor, is the simpler/smaller solution, for compass applications, and this has therefore tended to be the more 'common' solution in this area, and hence the amount of code examples existing.
To develop a properly corrected module, you need three magnetometer axes, to give you a compass 'vector', and then either two tilt axes, or a three axis accelerometer, to give the inclination. Mathematically, it is fairly simple, but tends to be bulky, so for smaller PICs, requires some tidy 'shortcutting' on the trig functions, making it harder work.
Best Wishes |
|
|
|