Throw/Drop Mode - To the moon! - with exciting video.. help

Hello,
I am trying to get “Throw/Drop Mode” to work in the drop scenario on a 5" FPV drone using the Matek H743 Slim V3 flight controller.

I have it set to Loiter after throw mode, so I would expect it to drop to a height where it keeps altitude& position. When dropped however, the drone goes full throttle for much too long and goes way too high and I must disarm before it keeps getting too far. Here is video: Drone Drop.mp4 - Google Drive
Here is the log from that drop attempt (file to large to put directly): 2023-04-11 16-24-48.bin - Google Drive
Here is parameter list:
5banshee-20230412.param (20.0 KB)

Any ideas what is going on? What can be changed to have it just drop and then maintain height without going up?

The first advice is ALWAYS the same! Update to ArduCopter 4.3.6

After that tune it properly, without skipping ANY step. And after all that post your questions here.

Hi Amilcarlucas,
I updated to 4.3.6, reconnected, and retuned.
Before dropping it again, I tried to do a normal throw with upwards hand-toss to begin before dropping. For Throw_NextMode, this first test was not set to Loiter as the drop test before. It was only set to Throw, which I guess goes into Alt_hold.
While better, It still seems like the drone tries to gain a lot of altitude after catching itself. Ideally I’d like for the drone to try and hold at the position it rights itself at, like I’ve seen in some example videos.
Please see video: IMG_1135.MOV - Google Drive
Log: 2023-04-19 12-03-10.bin - Google Drive
and parameter list:
5banshee-20230419-ap4-3-6-TUNED.param (20.6 KB)

I would advise setting
ARMING_CHECK,1
and at least one battery failsafe action
BATT_FS_CRT_ACT,1

You can definitely set this
ATC_THR_MIX_MAN,0.5
just maybe this feeds into Throw modes ability to right itself and pick a final altitude too.

It looks like the code sets the target altitude to the altitude where the throw was detected plus 3m, then during the throw the final Z position (altitude) is updated based on the acceleration and velocity. The capabilities of the copter will feed into that final Z position, like it ability to change speed and direction.

The only doubt I’ve got is if the new takeoff controller is affecting Throw mode. Try lowering TKOFF_SLEW_TIME to 0.5 and see if it has any effect. Also test you normal takeoff to ensure there’s no ill-effects.

Other:
It looks like you’ve got a small D term oscillation in the Roll axis.
I advise to set
INS_LOG_BAT_OPT,4
and do another test flight to gather a bit more noise data for the filtering. I see you’ve got two notch filters set up, but not totally convinced you need two - maybe you do. Especially since the primary notch filter is based on motor RPM and there will be a notch per motor. Maybe these filters can be refined a bit, then you can probably run Autotune again just with AUTOTUNE_AGGR,0.10 and see what it does.

Otherwise you probably should manually reduce the Roll D term a bit until that small oscillation goes away. But why I mention all that filter stuff and Autotune is D is already at the lowest value we ever see (or less than typical for small quads) so maybe P and I need to come up a bit, to match the Pitch P and I.
And Angle P’s are very high which might be affecting that rate controller P, I and D too.

Hi Shawn,
Thanks for all this great information.
I’ve re-tuned and made some minor tweaks as suggested. Not done, as in alt hold it’s still got some bad motor vibrations; but the drone sounds/feels decent in loiter.

I attempted many more throw modes and another drop mode. In any scenario, the drone seems to always be going up too much after leveling out.

When I compare the altitude from the GPS and the Barometer, the trends are similar, but the Barometer values are accurate. However, the Barometer indicates a double peak in the area of interest, while GPS only shows 1 peak. I think the 1 peak is more accurate. I was dropping from about 50 meters, and the drone catches itself in 8 meters, but then accelerates up so quickly basically back to the start point and more, which is not ideal obviously.


is this specifically for throw or also drop?

Could more options be integrated into drop mode? It would be ideal for it not to go up at all, and just level out at whatever altitude it drops to and regains control.

Here is my latest parameter list:
5banshee-20230421-ap4-3-6-TUNEandDROP.param (20.6 KB)

Here is the log from that this latest drop which the screengrabs are from: https://drive.google.com/file/d/1a9Dd9xhOb5i6XuWmdlMgiD1TSW-grAtk/view?usp=share_link

Any help would be super appreciated.

Same basic code, one action has positive values, the other action has negative vales as appropriate, there’s not much difference.

Set all of these parameters and do an ordinary flight with AltHold and Loiter

AHRS_EKF_TYPE,3
ARMING_CHECK,1
ATC_THR_MIX_MAN,0.5
EK2_ENABLE,0
EK3_ENABLE,1
INS_ACCEL_FILTER,10
INS_LOG_BAT_OPT,4

I would also recommend giving these alternate PIDs a separate test flight and see how that handles, as I think the attitude control could do with quite some improvement.

ATC_ACCEL_R_MAX,200000
ATC_ACCEL_P_MAX,200000
ATC_ACCEL_Y_MAX,60000
ATC_ANG_RLL_P,12.0
ATC_ANG_PIT_P,12.0
ATC_ANG_YAW_P,6.0
ATC_RAT_RLL_P,0.06
ATC_RAT_RLL_I,0.06
ATC_RAT_RLL_D,0.001
ATC_RAT_PIT_P,0.06
ATC_RAT_PIT_I,0.06
ATC_RAT_PIT_D,0.001

I’m just trying to get a good baseline and improve the copter a bit - then lets see what Throw mode does.
Like you I think it should not rise nearly 10 meters, and I just want to rule out tuning as much as possible so we can tell what’s going on.

I would also set

BATT_FS_CRT_ACT,1
BATT_FS_LOW_ACT,2 or 3

Hi Shawn,
I’ve updated my drone with your above parameters:
5banshee-20230422-ap4-3-6-xfacta.param (20.6 KB)
Here is the log of a quick line of sight flight: https://drive.google.com/file/d/1Znq-zNz9PJT4yQ0Zo74zQYdVxMa02QlQ/view?usp=share_link
In alt hold mode it was relatively the same, and in loiter it was notably worse than previous PID (about same as alt hold). For the vibration, you can see the arms and motors physically moving up and down relative to the center of the frame. Minding that is a Diatone Roma 5 frame, so pretty stiff.

Thanks for getting this done.
Just fix the access control on that log please and I’ll have a look ASAP.

Sorry about that, hopefully it is rectified now: 2023-04-22 17-50-16.bin - Google Drive

That looks reasonable apart from that 5Hz oscillation, mostly in the roll axis.

Loiter can sometimes appear to have worse attitude control than other modes, since it is trying to hold a quite specific position and this can look like oscillations. If we relax the position holding it wont be adjusting attitude control so much. These are just half of default values, so easy to put back if you ever need more accurate position holding (but I doubt it).

PSC_POSXY_P,0.5
PSC_VELXY_D,0.25
PSC_VELXY_I,0.5
PSC_VELXY_P,1.0

Since D term is very low already I would now run Autotune one axis at a time, roll axis first, rather than trying to guess and manually modify the PIDs further. Do yaw last if required.

The earlier log had the same sort of oscillation present on roll axis and similar attitude control.