Need a liitle help to tune my rover

I have been trying to manual tune my rover past 2 weeks but just not able to get it right. My rover is a skid drive. For some reason in acro mode it just doesn’t wanna behave correctly. After changing all the possible values of ATC_STR_RAT_FF (i started from 0.1 upto1.2) its still behaves erratically. By erratic behavior i mean at medium throttle when I send rc command to go left or right sometimes it may go in opposite direction or sometimes at low speed it initially goes in the correct direction but eventually after turning 2-3 times it starts to go opposite to rc input directions and sometimes when I continue to input left or right rc input its starts to oscillate.
Things I have done to get better result:-
Followed tuning process according to rovertuning wikia for ardurover
Made sure that servo output is not reversed( as suggested in this thread Pidachieved opposite to piddesired? - #10 by rmackay9)
Tried quick tune was able to complete it but result PID values were not good.(Although this could be more my fault than quicktune lua scrip as i had to do multiple correction during tuning process so it doesn’t collide with surrounding objects, main reason i have been stuck going the manual tuning route)
Trying to match piddesired and pidachieved curve(to no success, Sometimes I am able it get it close but after continuous drive eventually pidachieved goes completely opposite to pidreceived
Tried to use log data to getter better pid ff, P and I values using PIDS graph but to no success. Usually in those graph my FF values line is spiking too frequently (again to be fare i might not be doing it right i was just trying to get the FF graph values to not spike continuously )
Also in my STER graph **desturnrate" and “turnrate” are similar aside from the usual spike is opposite directions, but my steerout value is to high and spikeing in both direction that i found odd. I tired to find out what steerout value is but not able to determine it if someone could explain me that too.
If any one has faced similar problems with ardurover and can give any inputs that they can give me to getter better tune it would be very helpful.

Can you provide a bin log of the rover in ACRO mode?

1 Like

https://drive.google.com/drive/folders/1w1q3nY3bWidmbtPt-lUlWTNX6vKd1pc9?usp=sharing

These are my past few attempts to tune my rover. If you can pinpoint something it would be helpful.
At one point i even tried your robot tune parameters that you shared in one of the quick tune discourse cause my robot is similar in size to yours (and using tune parameters for similar size machines has worked for me in past but that was in arducopter firmware) hoping to get some kind of stabilization but that didn’t work either, it kept oscillating so i went back to manual tuning.

Looking at your logs, it’s not configured as a skid-steer.

You currently have:

SERVO1_FUNCTION  26.000000 # GroundSteering
SERVO2_FUNCTION  0.000000 # Disabled
SERVO3_FUNCTION  70.000000 # Throttle
SERVO4_FUNCTION  0.000000 # Disabled

See Motor and Servo Connections — Rover documentation for the correct configuration details.

I was using mixed input on my RC to control the bot, so left stick for throttle and right for steering. In manual mode everything is working fine so I thought it was okay. I’ll reconfigure my inputs, test it and get back to you with the results.

Manual mode is mostly useless when configuring and tuning a Rover. It needs to run in Acro mode.

I’ll do the necessary changes and test it again and get back to you guys.

I did the necessary changes and what do you know my first attempt in acro mode after changing some minor things it is working much better. No jitters/oscillation or movement in opposite direction of RC input.
Initially in acro mode, the rover was oscillating after 3-4 turns and when I reviewed the pidachieved-piddesired graph in tuning I noticed the pidachieved was rising continuously after few turns, I remember in one of the threads one of the developer was talking about I input adding up over time so I moved the I and P way down and it is working good in acro mode after multiple turns, I do have to test it more before I can say the issue is resolved completely. Will be doing longer runs in acro, circle and auto mode as soon as weather clears ups, rain has cause some issues for my test runs.
One issue I do have is that now pidachieved and piddesired are in opposite directions so pidA is following the similar curve(for current values, will be doing a proper tune) as pidD but in the negative direction of x axis, no issue in bot movements but not according to ardurover tuning wikia. Same issue as the one of the threads I posted in my original post. Will be resolving that issue too but right now its not hindering my rover movement so that will be the last task. I am attaching my log file for last flight for reference(New_log_file), will get back to you guys after doing all the test and tuninng operation, hopefully by the end of this weekend.
https://drive.google.com/drive/folders/1w1q3nY3bWidmbtPt-lUlWTNX6vKd1pc9?usp=sharing

One more question will the quicktune work with my pidachieved and piddesired issue or do I have to first resolve the reversed output issue and then attempt quicktune. If so then I will no longer leave it for last and resolve this issue first.

If I am able to conduct the quicktune before you guys see this post I’ll post result.

Correct - you’ll need to resolve the reversed issue first.

In terms of motor reversal, it could be the following issues:

  • Left and right motors are swapped
  • Motor PWM signals might need reversing (SERVOn_REVERSED = 1)

My problem is resolved. Working good in acro, Circle, auto and guided mode. Was able to quick tune too.

Auto, Circle and guided mode were not working till I resolved the piddesired and pidachieved reversed issue but as soon as I cleared that issue(I interchanged servon_outputs, didn’t wanted to open up the bot) everything worked fine.

One thing left is that in auto mode when it looks for the next waypoint it takes time to match the waypoint heading to current heading but I’m pretty sure that can be resolved by adjusting some waypoint parameters.

Thanks everyone.