Snapdragon: IMU is very sensitive

Hi, I’m trying to build my UAV with snapdragon flight. The motor control and RC input is ready.
Firmware is v1.4.1rc2 and the board is placed on a 3M foam. The frame is QAV150.
However, the UAV started to loose control after manually takeoff.

So I did another test to analysis this issue.
Increasing the throttle and decrease a little back while the UAV is starting to takeoff.
The UAV is on the ground all the time and does not jump.

Plots: http://logs.uaventure.com/view/qBkzZ9VQunNuRRsB6tGNYU#IMU_Acc_PLOT
Log: http://logs.uaventure.com/logmuncher/charts/qBkzZ9VQunNuRRsB6tGNYU/logmuncher.log

The sdlog shows the attitude was tilted while the UAV is horizontally landed
And the IMU (MPU9250) is too sensitive.

I also mount a Pixracer on my QAV250 and starting the log manually with snapdragon’s log.
The Pixracer is only enabling the MPU9250. And the raw data in sensor_combined topic is quite smooth.
But the raw data in Snapdragon flight goes crazy.

MPU9250 on Pixracer:


MPU9250 on Snapdragon flight:

I’m also trying to downgrade the data rate, setting the LPF (A_DLPFCFG) of accelerometer to 460Hz/41Hz.
But it comes with a poor improvement and I thought it might be a bad work around solution.

MPU9250 with A_DLPFCFG=3 (41Hz):

Is there anything I can do for this issue?

The reason you see more noise on the Snapdragon is that there is no additional digital filtering done in the driver which used to be the case on Pixracer. Basically, on Pixracer, an additional 2 pole Butterworth filter was used in software.
I’m writing “was” because we’re trying to switch to delta velocities and let the estimators handle any noise.

You can give this a try, however, not that this means that you’re only sampling at 1kHz instead of 8kHz with these settings. Our goal was to sample as fast as possible to prevent aliasing effects but we haven’t fully finished this investigation.

1 Like