[Top][All Lists]

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

Re: [Paparazzi-devel] ahrs selection

From: Stephen Dwyer
Subject: Re: [Paparazzi-devel] ahrs selection
Date: Thu, 17 Oct 2013 12:00:16 -0600


Check this page, and update as necessary, as well:

Hopefully that helps a bit. As mentioned, managing the damping characteristics and natural frequency of your mount is critical.

-Stephen Dwyer

On Thu, Oct 17, 2013 at 11:37 AM, Jorge Pantoja <address@hidden> wrote:

Thank you for your explanation. I will make my IMU heavier and let you know how my flights go this weekend.

Best Regards,

On 17/10/2013, at 12:29, Christophe De Wagter <address@hidden> wrote:

In vibration theory you have

M mass: f = m xdoubledot
K spring: f = x k
C real damper: f= c xdot

Perturbation F1


Using "vibration damping material" (e.g. foam = spring with damping) you want to reduce the high frequency disturbance (prop) while still showing the low frequency signal (flight).

Choose M/k ( or eigenfrequency) properly

E.g.1 aspirin 8 gr (small m) on full sponge (big k): will only form a low pass for very high frequencies e.g. 200 hz: will not dampen your motor vibrations of 8000 rpm (note that it will help very significantly in the case of hard impact though)

E.g.2 aspirin on large battery (large m) on 4 small corners of foam (small k). Filters much much more vibrations including lower frequencies and should in most cases significantly reduce motor vibration measurement.

Helicopters typically put their whole avionics plus battery in a 4 small damper mounted box to handle the huge and relatively slow freq main rotor vibration.

PS: once the vibration is mechanically well within the measurement range, software filtering could also be applied.

On Oct 17, 2013 2:05 PM, "Reto Büttner" <address@hidden> wrote:
Did you make the IMU heavy or locate the IMU on the batteries? To our experience that is essential. Foam alone with no additional inertia on the IMU will likely not help.
Regards, Reto

2013/10/17 GalapagosUAV <address@hidden>

I am also experimenting some interference due to my aircraft's engine vibration. The IMU I am using is the CHIMU. How can I integrate a way to filter this vibrations? I have my CHIMU mounted on a soft adhesive sponge and my propeller is well balanced to isolate as many vibrations as I can.

Thanks for your help.

Best Regards,

Sent from my iPad

On 16/10/2013, at 12:13, "Prof. Dr.-Ing. Heinrich Warmers" <address@hidden> wrote:

The DCM is affected by vibrations.
Also the DCM needs  zero rate sensors values  +-(0.0 ..0.5°/S) and make the accelerations values correct  (x=0 y=0 z=-9.81m/s*s).
Mount the IMU  exact.
Make the IMU heavy or locate the IMU on the batteries.
Balance the propeller well.


Refik Sever schrieb:



We have been using ahrs_float_dcm in our fixedwing airframe file. We have been experiencing problems due to vibrations in our last 10-15 flights. Although we tried to decrease the vibrations, the attitude drifts after some seconds.


There is not enough documentation about ahrs subsystem in the wiki. I don't know the main differences between ahrs_int_cmpl_quat and ahrs_float_dcm. In what conditions do we select each of them? Since we have a lot vibrations, do you recommend to use ahrs_int_cmpl_quat instead of float_dcm? 


Could somebody write a brief explanation about selection criteria? When to use each of them? When to use GPS_heading or magnetometer heading?


Our airplane is slow, sometimes our ground speed decreases too much (it can be also negative). DO you recommend to use GPS heading in this case?





From: address@hidden [mailto:address@hidden] On Behalf Of Felix Ruess
Sent: Friday, October 11, 2013 5:08 PM
To: Paparazzi devel list
Subject: [Paparazzi-devel] significant improvements merged to master


Hi all,


just merged three larger pull requests with significant improvements to master:


Proper scaling of corrections.


Hence this will also give you correct gains for 100Hz fixedwings, see #240.


Allow tuning of the accel and mag correction natural freqency and damping.

Tunable gravity_heuristic_factor (set to zero to turn it off and replaces the boolean AHRS_GRAVITY_UPDATE_NORM_HEURISTIC)

If you have high vibrations, reduce this factor or completely turn it off...



Main benefits:

Less crappy handler functions in main.c files

Possibility to use multiple sources of sensors (integrated to the board or not)

The filters don't need to know who is sending the raw values (not completely true with the old alt_float filter yet)


The pressure are now standardized in Pascal and the standard atmosphere model is used


The INS_BARO_SENS is hence not needed anymore.

Onboard baros are automatically available in fixedwing firmware as well (use same code as rotorcraft now).


Disable onboard baro with <configure name="USE_BARO_BOARD" value="FALSE"/>

Also all baro_board implementations use the same BARO_BOARD_SENDER_ID,

since there can only be one baro_board at the same time and this provides a good default for INS_BARO_ID.

So if you want to use an onboard baro the INS_BARO_ID is already ok (also if you have additional baro modules).

To use a baro module for INS: <define name="INS_BARO_ID" value="BARO_x_SENDER_ID"/>


Some stuff to check before using: check conversion factor to convert ADC values to Pascal

(mostly older boards/baro, recent digital sensors can output pressure in Pascal already)



Now horizontal guidance returns commands in north/east earth frame and doesn't already rotate it to body frame.

This allows for better handling of them in different controllers.


New and properly working transformations from earth commands to quaternions added.

No proper fixedpoint implementation so far... no change there compared to current master though. Should still be done for efficiency at some point.


IMPORTANT: This does NOT have the feature to "add" roll/pitch setpoints via RC in nav/hover anymore.

Instead you can give velocity commands in hover mode via RC.


Includes max bank improvements proposed in #546:


Split PD and I-gain with separate max bank

- no wind: integrator (trim attitude) = 0, PD maxbank = -20 to 20 extra: total: -20 to 20

- huge wind: integrator (trim attitude) = 20, PD maxbank = -20 to 20 extra: total: 0 to 40

Put gain before integrator to get better insight in the saturation values

Reduce integration overshoots while increasing integration speed by adding the speed error as well.

- no speed error: integrate as before

- counterproductive speed error, integrate faster

If the position error is already decreasing fast, no integrator is needed or it will overshoot.



Cheers, Felix

_______________________________________________ Paparazzi-devel mailing list address@hidden
Paparazzi-devel mailing list

Paparazzi-devel mailing list

Paparazzi-devel mailing list

Paparazzi-devel mailing list

Paparazzi-devel mailing list

reply via email to

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