Hello, I need elightment on how to fix my EKF issues. I had this odd 7” build for a while and just discovered recently that I triggered vibration compensation while cruising. I had trigered it before during fast vertical descend, but this was the first time I got it trigered while cruising.
Running Arducopter with bdshot V.4.6.1
Hardware:
Matek H743 Slim V3
Matek M9N with CAN bus (it has baro & compass)
Micoair MTF-01 optical flow
I think the vibe is ok-ish? so it cant be vibration issue
when vibration compensation was on I heard the throttle was pulsing, around 1Hz. no visible bobbing from the camera feed. I was in pos-hold mode, then when I heard the motor pulsing I switched back to stabilize mode until it calmed down, then switched back to pos-hold.
I was cruising around 50-60m above ground, with mild cross wind. It’s an open frame (chimera7 without side cover) and all baros have foam cover. BUT this is where it gets interesting, the gps module (with baro) is placed at the tail, so there will be pressure difference between baro0 (from FC) and baro1 (tail). Sun was very bright so rangefinder from mtf-01 returned nothing.
Problem 1: Barometer
I think this is mostly the culprit, when the baro reading dipped the vibration compensation was triggered. Strange is it was the baro0, which I assume is from the FC. I though the tail baro would give worse reading since it may got dirty air from the frame when cruising.
Question 1:
Why wouldn’t EKF switched to other baro source, or even GPS, when the primary baro dipped? Is it because of pressure difference between baro? Is it better to use only 1 baro in my case? If so, shouldnt the FC baro be more accurate, but in this case it was the FC baro that dipped hard.
Problem 2: Optical flow
I think it’s worth mentioning the optical flow as well since I tried to fuse velocity XY on both gps and flow, with the hope of more locked position hold when landing & take off.
Question 2:
Does EKF ignore flow velocity if rangefinder is not healthy or if rngfnd altitude is out of reach? Or is it better to just switch to flow manually according to field condition? or just use the transition lua script?
EK3_FLOW_USE,1
EK3_SRC_OPTIONS,1
EK3_SRC1_POSXY,3
EK3_SRC1_POSZ,1
EK3_SRC1_VELXY,3
EK3_SRC1_VELZ,3
EK3_SRC1_YAW,1
EK3_SRC2_POSXY,0
EK3_SRC2_POSZ,1
EK3_SRC2_VELXY,5
EK3_SRC2_VELZ,0
EK3_SRC2_YAW,1
EK3_SRC3_POSXY,0
EK3_SRC3_POSZ,1
EK3_SRC3_VELXY,0
EK3_SRC3_VELZ,0
EK3_SRC3_YAW,0
Problem 3: Compass
My goal on this flight was to collect log for magfit calibration since I have not calibrate it for almost 2 years. So obviously the compass accuracy is not super great.
Question 3:
How much bad compass affect the EKF? Can bad compass trigger vibration compensation? Let’s say I fly near or above high voltage towers, or near steel construction site, any kind of dangerous failsafe I might trigger, and how to mitigate that?
Thank you for reading and I very much apreciate any help I can get. I also apologize if I missed any solutions that has been mentioned from wiki and other discussion. I’m no expert and may not be the brightest, but I like to thinker alot!
Cheers
p.s. let me know if log is needed, it’s quiet a big log file



