I’m wondering if anyone would be interested in helping me test Rover S-Curves (PR is here)?
A fair bit of work has gone into it already but there are a few known issues (see below). Still, I would like to get some feedback to confirm that we are on the right track. In particular I would like to know:
a) Does it travel in a straight line to the next waypoint?
b) Do you like how it corners?
c) How is the pivot turn compared with master?
d) any other feedback re performance or issues found
Here are the changes:
- In Auto mode S-Curves are used to plan a path (i.e. target position, velocity and acceleration at each moment) to the next two waypoints including the corner. The vehicle should slightly cut the corner instead of passing through the waypoint and then turning. The amount that it cuts the corner will increase as the vehicle speed increases but it will never be more than WP_RADIUS.
- The L1 controller (e.g. NAVL1_ parameters) have been replaced with a position controller (e.g. PSC_POS_P, PSC_VEL_FF/P/I/D parameters) to keep the vehicle on the path to the next waypoint. If the vehicle wobbles or strays from the path it will most likely be the PSC_VEL_P/I/D values that are the problem.
- Pivot turns have been improved a little bit by tightening the completion requirement. They may also perform better because the vehicle will only start the pivot once it has arrived at the waypoint while previously it would start pivoting at up to WP_RADIUS from the waypoint.
Some warnings and known issues
- Guided mode may act a little differently than Auto because it uses the position controller directly but it can be forced to use S-Curves by setting GUID_OPTIONS = 64. SCurves can’t handle fast position target updates which is often what guided mode is used for.
Auto, Guided, RTL and SmartRTL have been affected by this change but other modes including Manual, Acro, Follow, Loiter should be unaffected so if anything odd happens please switch into these modes to retake control.
I’ve placed some pre-build binaries below and I’m happy to provide others if people would like to test.