Identical quads, different takeoff behaviour

Hello, I have two identical Tarot quads, same ESC, motors, batteries etc and identical tuning params.

When taking off manually (RC), both perform absolutely perfect.

When taking off automatically (GCS) one of them rises perfectly while the other one oscillates violently before settling.

In both cases, the automatic takeoff is a fairly brutal procedure, the applied throttle is fairly abrupt, it’s just that one of the two handles it better for some reason. I am wondering, is there a way to set a more mellow throttle application during takeoff?

Probably a loose/weak arm etc. or a different center of gravity (battery position)?

I also encountered the issue that the same esc type has slightly different behavior. E.g. the BLHeli_32 setting ramp up power worked well for 30 ESCs but not for the last 6.

If you can fix the copters on a test rig you could have a look on each motors behavior when ramping up to 75-90 % throttle. If you see differences in the amp draw or the ramp up behavior (no linear ramp up but delayed full throttle) this might be the source of the problem. If you have a problem like mine (which also caused oscillations) it should be far worse with low battery voltage than with a full battery.

Take off must be violent to get out of the dangerous turbulence fast. I would look for the cause of the issue rather than working around the issue by a soft take off.

Can you publish youre setup and settings?

Thanks Tobias, I finally figured it out. The takeoff was programmatic, issuing a mavlink arm command followed by a takeoff command. Because the commands follow each other instantaneously, the motors did not get a chance to spin up before being commanded to very high throttle, often resulting in an imbalance in response. I sorted it out by simply adding a delay of a few seconds between the arm and takeoff commands.

Normally, when taking off via command, e.g. in Mission Planner, the user has to arm the vehicle and then ask it to take off. This means that the have a few seconds to settle as the user navigates the GUI. In my case, this was not happening, which is why I was sometimes getting this behaviour.