ArduPilot / ardupilot

ArduPlane, ArduCopter, ArduRover, ArduSub source
http://ardupilot.org/
GNU General Public License v3.0
10.99k stars 17.53k forks source link

EKF3 FW launch without a compass is not reliable #14654

Closed priseborough closed 4 years ago

priseborough commented 4 years ago

Issue details

A FW hand launch using EKF3 without a compass and with the following parameter changes to enable non-compass use does not start the EKF-GSF yaw estimator until the isFlying flag is set to true which is after the launch acceleration. Lack of launch acceleration means the EKF-GSF is slow to learn the heading and vulnerable to GPS errors.

Additionally, if there are significant yaw gyro bias errors present, then the EKF-GSF yaw estimator can be affected as it does not use the main nav EKF's learned bias values.

EK3_MAG_CAL = 7 COMPASS_ENABLE = 0 COMPASS_USE = 0 COMPASS_USE2 = 0 COMPASS_USE3 = 0

Version Master at 07ad479

Platform Plane

Airframe type SITL NanoGoblin

Hardware type MatekF765-Wing

Logs Here are the console messages from a SITL test showing the delayed yaw alignment:

2020-06-22 17:17:27 ArduPlane V4.1.0dev (07ad4798) 2020-06-22 17:17:27 842f139c1c526d45bafd9f12e8b4c5f0 2020-06-22 17:17:27 Param space used: 581/3840 2020-06-22 17:17:27 RC Protocol: SITL 2020-06-22 17:17:27 New mission 2020-06-22 17:17:27 New rally 2020-06-22 17:17:27 GPS 1: detected as u-blox at 230400 baud 2020-06-22 17:17:32 Armed AUTO, xaccel = 19.4 m/s/s, waiting 0.2 sec 2020-06-22 17:17:33 Triggered AUTO. GPS speed = 0.0 2020-06-22 17:17:33 Takeoff to 30m at 100.0m to 1.0 deg 2020-06-22 17:17:42 EKF3 IMU0 yaw aligned using GPS 2020-06-22 17:17:42 EKF3 IMU0 is using GPS

SITL was started using "sim_vehicle.py --frame plane-throw --console --map -L CMAC_PILOTSBOX" and launched using RC 7 2000 to trigger the throw.

I have fixes in place for this which are undergoing flight testing.

priseborough commented 4 years ago

See for fix https://github.com/ArduPilot/ardupilot/pull/14191.