-
Notifications
You must be signed in to change notification settings - Fork 17.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
AR_WPNav: Rover 4.3+ does not honor WP_RADIUS #23457
Comments
I think you're right. Last year, I conducted a investigation into Scuve NAV for a long time. |
Thanks for the investigation. The SCurves will slow their "time" state to handle slow moving vehicles but it doesn't support speeding up time to handle overspeeding vehicles.. the idea was that a vehicle can always slow down but it may not be able to speed up... maybe that assumption is incorrect and we should allow time to being sped up slowed down... within limits of course. |
Rather than a speed inaccuracy, I think the problem may be that segment time is calculated to the waypoint itself rather than waypoint distance minus radius. I couldn't quite find where the |
We've merged PR #25623 which I think resolves the overshoot issue so I will go ahead and close this as is normal when we merge a fix to master. As a follow-up I will also backport the above fix and release as a Rover beta release in the coming week |
ardupilot/libraries/AR_WPNav/AR_WPNav.cpp
Line 459 in db7fad0
The above referenced line is only ever reached when the vehicle has passed the destination waypoint (a result of
s_finished
remaining false until enough time has elapsed to have arrived at the destination). Thus, there is always an overshoot of the desired waypoint, which necessitates a course correction upon pivot completion.If I change the logic to ignore
s_finished
except during fast waypoints, then_reached_destination
becomes true in a timely manner, but it seems the controller is still awaiting time elapsed on that leg before initiating a pivot, and the resulting behavior is actually worse:On the other hand, if I use a Lua script (workaround) to force the WP ahead when WP_RADIUS is satisfied, the vehicle behaves extremely well, so I'm certain that I'm on the right track.
I suspect this is among the chief reasons that the community has had a hard time tuning the new nav controller. Any vehicle that is slightly "loose" in deceleration will overshoot nearly every waypoint, sometimes by a significant margin, causing path control issues thereafter.
The text was updated successfully, but these errors were encountered: