Servers by jDrones

Problems With Tuning Steering Controller In Acro Mode

I set the cruise and throttle speed corectly and the throttle response in Acro Mode seems pretty good. The steering controller however is not good at all. I can not get the rover to steer very well at all in Acro Mode. I tried tuning the steering controller with the rover sitting stationary on the floor because it was too eratic to control when vehicle was moving. I got very eratic steering and nothing repeatable. Also got alot of violent oscillation. I tried changing the FF, P, I parameters for over an hour and a half with very little change in steering behavior. I left D at zero. Increasing D incresed the oscillations even more. The other parameter I saw is IMAX which was set to 1. Evidently as its name implies it sets the maximum value you can set the I parameter to. Very discouraged about my first effort to tune the steering controller but ready to go at it again. The very curious thing I noticed is that if I disarm the vehicle in Acro Mode the steering works fairly well in Acro mode, however the wheels don’t turn as far as they do in manual mode. I tried varying Acro Turn Rate with no affect on steering. As soon as I rearm the rover in Acro mode the steering goes crazy again. Any suggestions and help on this are much appreciated !!! Would like to find out why Acro steering seems to work ok when disarmed in Acro mode but goes crazy as soon as rover is armed in Acro mode? Thanks much for the help !!! Rick

You can’t tune it if it’s not moving.

Why does acro steering work when the rover is not armed but goes crazy when armed while not moving. Would this be normal operation? I tried moving the rover inside in a relatively small area so maybe I need to take it outside and run it in a larger area. Even with the steering controller calibrated properly is it normal for the steering to oscillate some while not moving? What are ballpark numbers for FF, P, I,D to start off with? Thanks again for your help…Rick

I’m not real familiar with acro but use steering mode a lot. And the steering will twitch around a lot from slight drifts in the GPS when not moving. My boat is not here at the moment or I would test it in acro inside the house. The default PID values should get you started although probably sluggish in behavior. Try to start with FF .5, P .2, I .2, and D 0. then go from there. You could also post a .bin log,

The general order should be to tune FF till you get “PID desired” and “PID achieved” close together then add “P” and a little bit of “I” last. If your rover goes crazy “P” is most likely to high. “Imax” is not how high you can set “I”, but the positive and negative limit the “I” term is allowed to reach. Without that limit, the “I” term is almost unusable and can be dangerous, because it might become bigger and bigger over time, driving the output to unwanted values.
Randy Mackay has made a video about how to tune acro steering:

1 Like

Yes, I have watched the video several times. Should I leave IMAX set to 1. Does this mean “I” can be set to a negative value per your previous statement? I believe I tried to set “I” to a ngative value but it was not allowed. Thanks again for the help and further clarification on IMAX is much appreciated…Rick

Setting I to a negative number would make no sense, but the I term itself can have a negative sign. P, I and D are factors to tune the influence each term of the PID controller has on the output. So a negative factor would change the correction direction of the I term, making it work with the error, instead of against it.

1 Like

I assume that you are saying leave IMAX at 1 and don’t change it. Would this be correct? Thanks again !!! Rick

Yes. You are right.I never had to change IMAX so far.

I looked at the video for steering tuning. The max turning rate was determined to be 90 degrees per second in manual mode. My question is where in the mission planner flight screen is this max turn rate shown or deduced? Thanks much…Rick

In Missionplanners main screen below the map is a checkbox “Tuning”. If you click this box and doubleclick in the then visible tuning screen, you can select a whole lot of values to be displayed. I forgot the name of the value, which shows the turn rate, but my omnirover is nearly completed and I will have to tune it later. I will tell you as soon as I found the value myself again.
Or you can look for it yourself, of course.

Can you post a bin log? Might get you pointed in the right direction

I have made some good progress thanks to you all !!! Dave was right about not being able to tune without the vehicle moving. At first when I took the rover out on the street and put it in acro mode, the rover went crazy. It went forward and reverse but wouldn’t go straight because the steering was going every which way but not where I wanted it to go. I changed the FF value to .9 with both P and I values at zero. D is also at zero. On the tuning page turn radius is at .9. I still haven’t been able to find max turn rate in degrees per second that the steering video refers to?

I noticed often times when the rover was standing still and I turned the wheels to the left they would actually turn right until I gave it throttle to go forward and then the wheels would turn left as I commanded. Once the rover was moving in forward or reverse the steering commands worked as they should. Only at a stand still would the wheels turn in the opposite direcion until I moved forward or reverse, most of the time. Just wondering what to do to resolve this issue?

I also found that when stopped and I turn them one way or another sometimes they would oscillate back and forth quickly for a short period of time then stop. Are these issues related and what is the best approach to tackle these issues?

I also noticed in manual mode the wheels would turn further left and right than in acro mode. What might be causing this and is it ever possible to get the wheels to turn as far in the acro mode as they do in manual mode?

Making progress and again your continued help is much appreciated !!! Rick

Sill have some questions on previous post. Any comments on my previous post are much appreciated !!! Rick

The outputs in manual mode are just the PWM input values mapped to the output values. The autopilot is not involved beyond that. Acro mode takes all kinds of limits, PID values, etc. into account, to get the turnrate/speed you command through stick input. If you enter really high values/remove the limits, you might get nearly the same outputs as in manual, but the rover may be hard to control.

I am still wondering why when I start out in acro mode (standing still) and I move steering stick to the right does the the wheels turn left until I start moving forward then the wheels go right as originally commanded. It does the same thing when stopped and I move the steering stick left and the wheels go right until I start moving forward and then the wheels go left as commanded?

Also why do wheels sometimes oscillate when stopped and moving steering back and forth. They also sometimes oscillate when standing still and doing nothing?

Do these issues still have something to do with tuning of the vehicle, gps or something else?

I should also note here that when I originally set up the traxxas vehicle, on the transmitter settings I had to reverse the steering because it was backwards. Looking to the front of the vehicle is how I set the steering on this vehicle as it would be when actually driving a real vehicle. It steers fine in manual mode and in acro mode once the vehicle is moving forward or backwards.

Could it be in acro mode things are undetermined unless vehicle is moving forward or backwards? Maybe I am splitting hairs here?

Also, I still haven’t found out how you determine maximum steering rate in mission planner when in manual mode?

Comments on these issues are much appreciated !!! Rick

If the steering oscilates, it is most likely overtuned. If the steering only does it right when the rover stops, P might be just a little bit too high.
I do not have a ackerman steering rover at the moment, but I can think of a few things that might cause the steering to go in the wrong direction. It might all be the EKF not having enough data to work on if the rover stands still. So it thinks the rover turns in one direction initially and as soon as the rover moves, it gets a more data and corrects its estimation.

  1. Do you have set FF higher than P? If not, redo the tuning.
    FF just adds a portion of the steering input
    directly to the output. It should be the main contributor to steering control. With only FF the steering should never go in the wrong direction. This is the point that is most likely, I think.

  2. Did you change PILOT_STEER_TYPE?
    It should only affect skid steering rovers as far as I know, but check it anyways.

  3. It might be the “I” term. This should actually cause creeping of the steering servo in a standstill not steering in the wrong direction, but who knows🤔. My skidsteering rovers start slowly pivoting on their own in acro and steering mode, if “I” is not zero. This is because all calculations are running, even if the rover is not moving and the I term winds up on small sensor errors/noise.

Post your parameter file Rick. My vehicle may be similar enough to yours where something is obvious.

Manual Mode is passthrough. The transmitter/receiver directly control throttle and steering.

Thanks for the reply !!! Currently I have FF set to .9 with P and I set to zero. Should I try increasing FF and adding a small amount of P and I? In the steering video it suggests increasing P and I a bit when increasing FF. Is this a general rule for
all tuning experiences? Thanks again…Rick

If you have P at zero, you are basically not using the error correction of the PID controller. All your tuning does is react on input ( from your TX or the higher navigation controller), but it will not correct for outside error. Switch to acro mode, pick your rover up and make short yaw movements, one time without P and then with P. Without P nothing should happen, with P the steering should move against the yaw movement.

Servers by jDrones