I’m working on getting my small skid steer rover (tank chain tracks) tuned using the quicktune script. Up front here are the basic specs:
“YP-200” tank frame (common on Amazon) w/ 2x small brushed motors with relatively low torque (hard to purely pivot turn on tall grass)
~2ft/sec max speed (eyeballed… so 0.5m/s max speed)
~160deg/sec rotation rate (pivoting in place on concrete, turn rate is slower when moving forward)
I did the basic steering tune from the guide, setting the max acro rate to match gz (btw, gz appears to be in 0.001rad/sec, not 0.01deg/sec as the guide states). The pid achieved mostly follows desired, with a few jaunts when starting/stopping quickly. Overall acro mode drives well on PI=0 FF=.85… also will work with pi=0.1 but sometimes it oscillates while standing still (pi=0 doesn’t do that).
After doing that basic steering tune (using p-i-ff=0-0-0.85), I loaded up the quicktune script, set circle radius to 1.5m to fit in my patio, and adjusted the max speed in basic tuning to .5m/s. I enter circle mode and it starts turning a circle (somewhat polygon shaped tho… mostly stop/small pivot/go vs smooth radius turns). Enabling the script, I just see it adjusting “steering rate X <10” but X never settles (values from 2-8 in messages… 6 seemed to be a value it liked).
Since that didn’t seem to do anything, I suspected the PI=0 might be an issue for RTUN. So I tried p-i-ff=0.1-0.1-0.85. Now circle mode doesn’t really keep a good circle, and sometimes drives off to random places. GPS and compass are performing well (18sats, no error messages etc). The RTUN messages show changes to several parameters as it goes. I haven’t got it to finish even after a 10min session. Most of the time it randomly veers off, maybe gets a bit loaded up on rougher terrain, and stops almost like it’s disarmed (messages say something like “must move to tune”). Once stuck like that, I pretty much have to exit circle mode, manual to the cement, back to circle mode… but it never finishes.
I read some places that very slow rovers will be hard to get working well. I understand why (sensor errors larger than desired vectors etc), but was thinking since circle worked somewhat OK with 0-0-0.85 I want to proceed getting auto modes to work. Are there alternative tuning procedures for slower rovers that work? I imagine some parameters for such slow skid steers might be universal… like min turn radius etc… any help along those lines is appreciated. What would be considered the slowest rover that would work well with ardurover?
Don’t just shoot in the dark with PID tuning - use that guide to try and manually tune to something reasonable before trying QuikTune for best results. Once it drives a decent circle, give it a shot.
The QuikTune script does not work well on slow speed vehicles. Tighten the circle radius until it’s happy about steering rate, but don’t expect magic results. If it fails to complete (you just get the same messages over and over for multiple laps over several minutes), you’ll have to manually tune. Even if it does complete, you may still need to tweak some values to get it working well.
This is less true than you probably realize. Turns at speed are tuned separately from pivot turns, though we are considering removing that separation (or blurring the line a lot more).
I don’t think there’s much of a lower limit, though very slow speed (maybe under 0.5m/s / 1 mph?) does present some tuning challenges, and you may need to drive the steering gains quite high to get good results.
Don’t even consider tuning navigation parameters (PSC_*) until you can drive well in acro mode. You will only exacerbate issues by changing those from their defaults if the throttle and steering control is poor.
OK I gave up on quicktune as it does not work well for my vehicle. I followed the first drive guide completely, and have the turn rate, cruise, and accelerations done. It will circle reasonably well when the gps is stable. A lot of the “issues” I’ve seen so far with circle/auto modes seem to be caused by gps drift. Driving around with MP telemetry I could see the map misaligned with actual positions now and then, even with like 21 locked satellites (m10 gps).
Following the steering rate tune guide with this slow vehicle, the pidachieved vs piddesired tracks mostly well, but there are sometimes sudden jumps when steering aggressively at higher speeds. I think this is due to the esc throttle non-linearities, that can make for very abrupt changes in angle. When I add very small p/i to steering rate (0.01), I often get oscillations after stopping from a turn. AFAICT running p/i = 0/0 for steering is working reasonably well given the gps drift involved. Is this out of line with what others have done on slow skid steer vehicles?
One thing I’d like to work better is auto modes on tall grass. I had min turn radius set to 0 at first, and on taller grass the motors sometimes don’t make enough torque to complete a pivot turn; the motors stall before reaching the angle because of the tracks catching on the grass. When I drive manually, a little forward motion is all that is needed to finish the turn. I can always get it to turn a 0.5m diameter circle even on taller grass. So I tried setting min turn radius to 0.5m, but auto mode still wants to do a stop/pivot turn (0 radius), vs a 0.5m radius turn to head to the next WP.
IIRC flying copter auto modes a while ago, and there was some spline feature that made rounding waypoint corners smoother. I’m guessing s-curves would be the equivalent for rover. I will try increasing wp radius and min turn radius to get more forward motion during turns on tall grass. I don’t think accelerations will help much here, since it’s too slow to create appreciable radial acceleration around turns, and the 4g max acceleration for throttle takes a split second to go from full speed to stop and back to full speed. I can’t imagine the fc being able to make use of acceleration control at these speeds without an rtk gps at least.