This is a simple comparison of the path that Copter-4.0’s “leash” based navigation takes vs Copter-4.1’s “s-curve” navigation when the target speed is high (i.e. WPNAV_SPEED = 1500) and target maximum acceleration is left low (i.e. WPNAV_ACCEL = 100).
You’ll hopefully notice these three improvements:
the vehicle does not cut corners as much
the path in and out the corners is symmetrical
the vehicle’s heading more closely matches the path the vehicle is following
This enhancement should also reduce some issue that users reported with “do” command executing long before the vehicle reached the corners.
The algorithms and majority of the coding for this important enhancement come from AP’s control expert Leonard Hall (aka @Leonardthall)
In case anyone is interested in looking at the code, the “Pull Request” to include these changes into master ahead of the Copter-4.1 release can be found here: https://github.com/ArduPilot/ardupilot/pull/15896
This looks great! Currently we have to stop at each waypoint with a delay to make sure it doesn’t cut corners like with the “leash” based navigation. With this new “s-curve” navigation it looks like we won’t have to do that anymore!
Yes, that’s right. The WPNAV_RADIUS should give good control of how much corner cutting is acceptable and it will always follow the same path regardless of what the target speed is set to.
Im testing just now with mission planner SITL, its still doing the leash at the waypoints and skipping the photos after the waypoint, is there anything I should apply in the mission setup? THIS IS MY FIRMWARE SITL VERSION ArduCopter V4.1.0-dev
This code it is still being reviewed by other developers so it has not been merged to master yet. It will probably be a couple of weeks before it is complete.
Until it’s merged the only way to get it is to download it from my repo (the exact branch is in this PR: https://github.com/ArduPilot/ardupilot/pull/15896), compile it and then run it. I could produce a binary for you if you tell me which autopilot you are using but I need to warn you that the code has only been flown by two people so far and we know it has some problems still (terrain following doesn’t work properly for example).
S-Curves are still a work-in-progress but we are making progress. The Pull Request with the feature is here but it has not been merged into “latest” or a stable release yet.