When I tested vibration failsafe on multiple frames, I noticed that tri frame flies away in LAND mode.
You might reproduce the issue in SITL as the following steps:
./Tools/autotest/sim_vehicle.py -v ArduCopter -f tri --console -w
param set EK3_IMU_MASK 1
loiter
arm throttle
rc 3 2000 (climb to 30m)
rc 3 1500
param set SIM_ACC1_BIAS_Z 2
param set SIM_ACC2_BIAS_Z 2
param set SIM_ACC3_BIAS_Z 2
As you see the below, the drone landed on a location far from the landing position.
I have tested other frames (deca, dodeca-hexa, hexa, octa, octa-quad, quad, and y6), and I could not see the issue. The issue only happens in tri frame. Thanks!
I’ve had a look into this and created this issue. I think the issue is just that the simulated tricopter needs to lean quite a bit (about 6 degrees) to maintain position. In the test you’ve done, I think the EKF failsafe (and vibration failsafe) have triggered which leads to the vehicle switching into a pilot controlled LAND. E.g. the autopilot is not trying to control the horizontal position. The vehicle levels out and descends at the LAND_SPEED. Leveling out in a tricopter though leads to horizontal movement.
So I think this is expected behaviour but we could improve things in two ways:
make the SITL model more realistic so the vehicle only needs to maintain about 2 or 3 degrees to counteract the yaw torque from the mistmatched motor
add the ATC_HOVR_ROL_TRM that helicopters have to allow tuning the required amount of lean angle to compensate for the tail angle.