Above I sent two logs with the bug present: one for LiftDrag and one for MultiCopterMotorModel. It is much easier to cause it with LiftDrag. To repeat all your actions is enough to catch the bug, but switch to Acro mode instead of Stabilize. Then, the effect will occur at 50-100m and below.
To recreate with LiftDrag:
- mode guided
- arm throttle
- takeoff 100
- rc 3 1150
- mode acro
To recreate with MultiCopterMotorModel:
- mode guided
- arm throttle
- takeoff 30
- rc 3 1150
- mode acro
- Pitch greater than 20 degrees
- Throttle is close to 10%, but definitely not zero.
In real life, we tested the flight of our copter in Acro and it falls the same way it flew. After that, it easily comes out of the fall using the throttle. The rotation effect is absent both during horizontal fall and during pitch installation, which allows you to perform various aerobatics.
Just as I wrote earlier, I tested this bug with following configurations in Gazebo Harmonic:
- Iris + LiftDrag + Ardupilot SITL
- Iris + MultiCopterMotorModel + Ardupilot SITL
- X500 + MultiCopterMotorModel + PX4 SITL
- Our university copter + LiftDrag + Ardupilot SITL
- Our university copter + MultiCopterMotorModel + Ardupilot SITL
- QuadcopterX-flightaxis + RealFlight Simulator + Ardupilot SITL
All of them have this bug. Please note, that the last configuration is rather different, and have only Ardupilot SITL in common with the other ones. Therefore, I conclude that the problem is more global, i.e. either in SITL, or in simulation, which stops the rotation of the motors at low throttle, as you said, while the real autopilot does not.
Therefore, if possible, please study the logs that I sent above. Also, could you explain how to test your model with <disable_braking>? Perhaps this will solve the problem. As far as I know, LiftDrag works with VELOCITY, while your model requires COMMAND. So, it does not work in the current state - the motor just do not react to the commands:
[Wrn] [JointController.cc:285] Failed to find joint [iris_with_standoffs::rotor_0_joint]
[Wrn] [JointController.cc:285] Failed to find joint [iris_with_standoffs::rotor_1_joint]
[Wrn] [JointController.cc:285] Failed to find joint [iris_with_standoffs::rotor_2_joint]
[Wrn] [JointController.cc:285] Failed to find joint [iris_with_standoffs::rotor_3_joint]
Thank you in advance for your help.