Difference between revisions of "Subsystem/ahrs"
Line 35: | Line 35: | ||
=== Complementary Quaternion (fixed point) === | === Complementary Quaternion (fixed point) === | ||
If you are **NOT** using the dev branch, this is currently not recommended for fixedwings, as this filter doesn't compensate for centrifugal force when flying turns. | |||
In the dev branch this is fixed (but untested) and the needed AHRS_GRAVITY_UPDATE_COORDINATED_TURN already set by default for a fixedwing firmware. | |||
Other flags of interest are: | Other flags of interest are: | ||
Line 71: | Line 71: | ||
Screenshot of scilab page. | Screenshot of scilab page. | ||
[[Image:Normalised_mag_fields.png|240px]] | [[Image:Normalised_mag_fields.png|240px]] | ||
=== DCM (floating point) === | === DCM (floating point) === |
Revision as of 13:17, 7 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 latest complementary filter:
File: conf/airframes/myplane.xml |
<firmware name="fixedwing or rotorcraft"> ... <subsystem name="ahrs" type="int_cmpl_quat"/> </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.
File: conf/airframes/myplane.xml |
<firmware name="fixedwing or rotorcraft"> ... <subsystem name="ahrs" type="int_cmpl_euler"/> </firmware> <section name="MISC"> <define name="FACE_REINJ_1" value="1024"/> </section> |
Complementary Quaternion (fixed point)
If you are **NOT** using the dev branch, this is currently not recommended for fixedwings, as this filter doesn't compensate for centrifugal force when flying turns. In the dev branch this is fixed (but untested) and the needed AHRS_GRAVITY_UPDATE_COORDINATED_TURN already set by default for a fixedwing firmware.
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.
Copy the north(x),east(y),vertical(z) component values into scilab and execute "X/norm(X)".