Difference between revisions of "Subsystem/ahrs"

From PaparazziUAV
Jump to navigation Jump to search
Line 19: Line 19:
There is a test program ( sw/airborne/test/ahrs/compare_ahrs.py ) to compare different AHRS implementations on simple test cases.
There is a test program ( sw/airborne/test/ahrs/compare_ahrs.py ) to compare different AHRS implementations on simple test cases.


Other flags of interest are:
*AHRS_PROPAGATE_LOW_PASS_RATES : apply a low pass filter on rotational velocity
*AHRS_MAG_UPDATE_YAW_ONLY : use mag to update yaw only


=== Complementary Euler (fixed point) ===
=== Complementary Euler (fixed point) ===
Line 31: Line 26:
Currently not recommended for fixedwings, as this filter doesn't compensate for centrifugal force when flying turns.
Currently not recommended for fixedwings, as this filter doesn't compensate for centrifugal force when flying turns.
The capability for this is already there (with AHRS_GRAVITY_UPDATE_COORDINATED_TURN), but it isn't fed with the necessary data yet.
The capability for this is already there (with AHRS_GRAVITY_UPDATE_COORDINATED_TURN), but it isn't fed with the necessary data yet.
Other flags of interest are:
*AHRS_PROPAGATE_LOW_PASS_RATES : apply a low pass filter on rotational velocity
*AHRS_MAG_UPDATE_YAW_ONLY : use mag to update yaw only


For the latest integer complementary quaternion filter (int_cmpl_quat):
For the latest integer complementary quaternion filter (int_cmpl_quat):

Revision as of 14:27, 5 December 2011

AHRS subsystem

The AHRS subsystem specifies which attitude estimation filter you are using.

Currently possible AHRS subsystems are

  • int_cmpl_quat
  • int_cmpl_euler
  • float_dcm

e.g. for the complementary filter:

File: conf/airframes/myplane.xml
  <firmware name="fixedwing or rotorcraft">
     ...
    <subsystem name="ahrs" type="int_cmpl_euler"/>
  </firmware>

There is a test program ( sw/airborne/test/ahrs/compare_ahrs.py ) to compare different AHRS implementations on simple test cases.


Complementary Euler (fixed point)

Not recommended for fixedwings, as this filter doesn't compensate for centrifugal force when flying turns.

Complementary Quaternion (fixed point)

Currently not recommended for fixedwings, as this filter doesn't compensate for centrifugal force when flying turns. The capability for this is already there (with AHRS_GRAVITY_UPDATE_COORDINATED_TURN), but it isn't fed with the necessary data yet.

Other flags of interest are:

  • AHRS_PROPAGATE_LOW_PASS_RATES : apply a low pass filter on rotational velocity
  • AHRS_MAG_UPDATE_YAW_ONLY : use mag to update yaw only


For the latest integer complementary quaternion filter (int_cmpl_quat):

File: conf/airframes/myplane.xml
  <firmware name="rotorcraft">
     ...
    <subsystem name="ahrs" type="int_cmpl_quat"/>
  </firmware>

  <section name="AHRS" prefix="AHRS_">
    <define name="H_X" value=" 0.51562740288882"/>
    <define name="H_Y" value="-0.05707735220832"/>
    <define name="H_Z" value=" 0.85490967783446"/>
  </section>


To calculate the normalised local magnetic field insert the relevant location coordinates hereand calculate.


Screenshot of noaa page. Noaa mag data.png


Copy the north(x),east(y),vertical(z) component values into scilab and execute "X/norm(X)".


Screenshot of scilab page. Normalised mag fields.png

DCM (floating point)

Infrared