Cutting corners

I’m using waypoint mission commands in auto mode. I want the copter to ‘cut’ a corner (waypoint) with a given radius, but not to report it has reached the waypoint until it passes the point closest to the waypoint (the middle-point of the ‘corner’). I’ve tried all of these:

  • Setting WPNAV_RADIUS,
  • Using param2 (accept radius) in MAV_CMD_NAV_WAYPOINT,
  • Using param3 (pass radius) in MAV_CMD_NAV_WAYPOINT,

In all 3 cases, waypoint reached is reported significantly ahead of reaching the closest point, and while the corner is ‘cut’, it doesn’t seem to be cut at the radius I asked.
If additionally, I also set param1 (hold time) in MAV_CMD_NAV_WAYPOINT (as the docs at seem to imply), the copter doesn’t cut the corner at all.

This is a long standing issue in ArduPilot Copter’s navigation. We’re working on improvements which are blogged about here.

Until this is done the best we can recommend is to add a delay into the waypoint. So for example put “1” into the “Delay” field (the first field) of the waypoint command. The common response to this recommendation is, “but I don’t want the vehicle to stop or slow-down” but you’ll actually find that with a 1sec delay the vehicle doesn’t stop so we still recommend this solution.

The other way to reduce the cutting of corners is to increase the WPNAV_ACCEL parameter.

Sorry we don’t have a perfect solution but we’re working on it.

Txs for using AP!

Hi @rmackay9, I wanted to check if there is any update on this behavior? Or, is there any forecast when this is scheduled for fix/improvement?


Leonard hall is still working on it. He posted another short video (which is difficult to understand without any context) a couple of weeks ago.