I am trying to better understand how the EKFs work and integrate within each other/ the parameters that control their POS estimations.
I am configuring a multirotor for indoor flight in a warehouse, I just need the platform to be stable while in AltHold. I am unable to use GPS or a compass, I have been unable to get stable results and have had a few crashes. I m trying to better understand how to configure the EKFs so that they work correctly even without the added information from the GPS and MAG. Copter 3.5.x has been the most unstable for this. the minute I power the system on the POS(Vert) and POS(Horizontal) are already becoming confused. Look at the previous post below.
3.5 Altitude EKF issues
3.4.x has been the most reliable but not perfect, I have still seen many instances where the EKFs become confused and the altitude begins to lose control.
My biggest misunderstanding is the blend between the POS horizontal and Vert estimations. If maneuvering aggressively it is easy to cause the POS horizontal to become completely saturated and confused while the POS Vert stays relatively accurate, however the altitude still becomes unstable and will start to climb away. similar to the link above.
ArduCopter does not allow you to disable the MAG (MAG_ENABLE = 0) as it will not arm even with arming checks set to 0. I have instead set all the MAGs to 0 but still have to set a number for COMPASS_PRIMARY even though there is no primary MAG for the copter to use. the message “Bad Compass Error” displays on mission planner but the vehicle will arm. The yaw does drif a bit as expected because it should only be using the IMUs/Gyro for heading.
I simply need the copter to maintain its altitude without trying to do anything else, this has been harder than expected. are there any suggestions on how to configure the EKFs so the POS estimations remain accurate enough to allow the altitude to hold correctly?
Additional things tried:
EK2_IMU_MASK - trying to place more weight in the Baro measurements (no real luck)
EK2_ALT_SOURCE = 0
EK2_IMU_MASK = 3 but I have tried just 1, no difference
It is also worth noting I have two 3DR X-8M that are my test platforms, one is configured with the PixHawk 1 and the other has a PixHawk 2.1. they both have the same issues.
Any suggestions would be really helpful. I am still waiting for the PRs to include to new EKF fixes which will have the new EK2_OGN_HGT_MASK param. I may create a custom build at test the new changes beforehand.