Oscillation in vertical velocity during Guided No-GPS (DroneKit) despite constant setpoint

Hi everyone,

I am using ArduCopter 4.6.3 and operating in GUIDED_NOGPS mode using DroneKit-Python. I am sending attitude quaternion commands combined with a vertical velocity setpoint. The GUIDED_OPTION parameter is configured to handle vertical velocity correctly.

The Issue:

While I am commanding a constant vertical velocity of 12 m/s, the vertical velocity (Vz) feedback is oscillating significantly and fails to stabilize at the requested 12 m/s.

Upon analyzing the logs, I checked CTUN.DCRt (Desired Climb Rate) and CTUN.CRt (Climb Rate). Unexpectedly, CTUN.DCRt is not holding steady at the setpoint; it is fluctuating, and CTUN.CRt is tracking those fluctuations.

Since my command is providing a constant value, I am confused as to why the flight controller’s internal desired climb rate (DCRt) is oscillating.

Additional check:

I have also checked the motor PWM outputs to ensure they are not saturating (as I initially thought the autopilot might be scaling down commands due to a lack of thrust margin). However, in many of these tests, the PWM values are not saturated, yet the issue persists.

Has anyone encountered this behavior in GUIDED_NOGPS? An

y insights into why the controller might be overriding or perturbing the commanded vertical velocity would be appreciated.

Thanks for your help.

Log:

@Leonardthall

Sorry for interrupting. I’m just curious. What is problem?

Very high vibrations making it hard for the EKF to estimate the vertical velocity and vertical position.

TBH it appears that the drone is unable to sustain 12m/s it goes to 12m/s with a current spike and then doesn’t climb as fast at a bit lower current despite throttle being set to 1.


@Leonardthall VibeZ on the first IMU is pretty decent so Z should be passable.

@hamed64618 you must fix the vibration issue before flying this thing as your IMU is clipping (vibrations exceed measurement range). Given that vibrations happen in XY-plane I would suspect unballanced proppelers or in-plane folding mechanism not locking stiffly enough if it is present.

BTW even though your copter appears to match the default PIDs suprisingly well, tuning is mandatory. You should use Ardupilot Methodic Configurator to configure and tune the drone first before you experiment with automatic and autonomous operations.

2 Likes