Vertical Control (climbing / descending) in Auto mode + others

just make that conversion official:

What I observed:

Problem 1: there is no way to increase climb/descend rate in Loiter Mode

Problem 2: there is no way to increase climb/descend rates in auto mode

I was looking at these parameters
1 WPNAV_SPEED_DN 150.000000000000000000 9
1 WPNAV_SPEED_UP 250.000000000000000000 9

I increased WPNAV_SPEED_UP several times…no change!
Climb Speed was jumping between 1.x m/s and 2.5m/s; don’t know what exact climb rate was achieved.
But it was far away from the climb speed I can command in STABILIZE Mode.

During a side discussion with @ChrisOlson he mentioned that there are hard coded limits.
There were also limits mentioned regarding L1 controller (@Leonardthall).

so I wonder what you guys think.

most probably people don’t look at climb rates so much, but imagine you try to lift something in a distance with significant altitude delta, you definitely look into that performance.

cheers Patrick

If speed didn’t increase, then the waypoints are too close together to achieve it within the accel limits. The same thing happens with vertical speed. If the gradient is too steep to stay within the programmed limits, it will not achieve it.

Leonard has hinted that he can implement of a form of the L1 Nav Controller used in plane for Copter. But this is primarily for waypoint fly-thru and handling.

–>I will do more tests with larger xy separation.

If waypoints separation in latitude and longitude is small compared to altitude delta - whats the criteria for achieving the waypoint?
–> WP NAV Radius is still at 200 = 2m. I assume this is xy only?

I did an altitude climb from 20m to 100m giving enough delta in altitude for vertical acceleration… but xy separation was only some meters…

I’m not totally sure. In Copter there is a “glitch” at every waypoint where the helicopter will slow down, unless you use all spline. I typically deal only with waypoints that are 400-800 meters apart for high-speed flight > 20m/s. But spline waypoints are 3D and the spline path applies to the altitude as well as the x/y position. So you have to be careful to not experience CFIT with spline waypoints.

I increased my WPNAV_SPEED_UP a few months back to decrease time at the start of mission and it definitely works :). Granted, this was straight vertical, with no horizontal component.

I did some more testings this morning.
The effect is not reproducable…
I got higher climbrates this time but only with horizontal separation between the waypoints.

I will do more tests and summarize with some logs.

What is wrong with my setup?

I did several tests with waypoint for CLIMB and DESCEND.


wp_speed3+alt and wp_speed4+alt were scheduled with QGroundControl.

I set

1 1 WPNAV_SPEED_DN 400.000000000000000000 9
1 1 WPNAV_SPEED_UP 1000.000000000000000000 9

and used a slider to tune WPNAV_SPEED from 800 to 3000.

But the helicopter does not really climb fast.
In addition, it shows very slow ground speed during climb!
I know that there is a certain speed. But when I go to stabilize mode and do it on my own, I can easily reach high climb rates and better ground speed…

any hints welcome.

I wonder if this setting could cause some misbehavior:


= Waypoint missions use rangefinder for terrain following
This was enabled from the beginning on and I still see slow climbings combined with low horizontal speed.

in this test flight, I had about 6m/s climb rate, but horizontal speed went down to 3 …9 m/s

is there really no chance to increase the performance?
this is definitely not the limit of the airframe!

To summarize up and give some hints to others:

I could increase climb and descend rate
–> set wpnav_speed_up to a higher value…
The limit of “1000” gave me a result of 3m/s
At “2500” I got 7m/s.

This also works for other parameters like wp_nav_speed.
You can fly faster than 20m/s by setting a higher value…
Although there might be other side effects… so better test safely

Hi Pat,
Yeah, you’re finding that the system will keep the aircraft inside the limits of both the horizontal and vertical accelerations and speeds. It generally requires waypoints a long ways apart to get maximum performance, and use spline instead of regular. But there is dangers with spline on long runs, especially with altitude, because you have to be able to visualize the effect of the spline path in 3D space. So if you set three spline waypoints the path the aircraft takes at the middle one will be roughly the average of the two on each side of it in both altitude and heading. And you may not get the performance you intended to program for in doing the flight plan. Or may even fly into terrain if you make a critical mistake in estimating the vertical component of the spline.

I have a figure 8 flight plan I like to use for testing that is about a 1/4 mile between waypoints, and using a DO_JUMP command to continuously fly the figure 8. It has altitude change between two of the longest waypoints. It is all spline. I can dial in a speed of 60kts (~30m/s) on that figure 8 flight plan but the helicopter never exceeds about 32kts because the turns are too tight. So the system sacrifices the desired speed to stay within the vertical and horizontal limits, and bank angle limits in the turns, and that’s all she’ll do on autopilot. Where otherwise, manually, I can fly that figure 8 at 60kts no problem. But I’m using full collective in the turns with the throttle wide open and banking at 75-80 degrees. The autopilot won’t do that. It won’t go beyond 45 degrees of bank in auto even if you set it to 80.

So the point is, the autopilot is a typical autopilot. Autopilots are designed to be a tool to reduce pilot workload. But they are not designed to fly an aircraft to its performance limits. Good ones are designed to stay within a safe flight envelope where the aircraft has some performance reserve. They do not have the situational awareness, training or computing power of a human pilot. If you need to make a maximum performance climb at best autorotation speed, or whatever, fly it manually and don’t use the autopilot. At longer ranges where visual references are difficult, a good FPV system works quite well for this.