Re: [SeattleRobotics] Re: Robotic control algorithms
- On Wed, 2008-04-30 at 20:53 -0700, silverfish_21@... wrote:
> Thank you all for responding!I agree mostly however some people would tune the flat ground Kp to be
> Let me draw the following thought expirement on over
> shoot / undershoot before returning to the original
> vein of the discussion.
> If a P only velocity system is tuned for travel on
> level ground to hit an arbitrary speed S given by PWM
> output = Kp * E where E is the commanded speed minus
> the actual speed, then I think we would both agree
> that the same robot when traveling up hill will never
> achieve the commanded speed because the Kp term is
> sized to achieve speed S for a given loading. Without
> an I term the gain and the error remain constant and
> the feedback loop can not catch up. Imagine then the
> same setup with the robot traveling downhill.
> Interpreting the wording offered up thus far by all
> respondants I believe we are all in agreement on the
> preceeding, it just helps to put it into words.
larger than you assume is wise to get higher accel at the expense of
borderline instability. This would tend to be able to meet the speed
target uphill as well. It may be worth pointing out that precise and
even stable speed control is not very important to most robots.
>I've seen this in books also, but haven't done.
> Back towards the vein of my original posting. Over
> the years I have implemented a number of differential
> drive robots and I have always implemented PI for the
> left side, PI for the right side running
> independantly, and factored 1/4 of the P term from the
> left side into the right and vice versa giving a
> simple linking between. I've noticed in a few places
> (Flynn & others) that they have implemented PID
> between the two sides and I was looking for feedback
> In addition if I find someone out there doing this, IThis would be interesting to learn more about.
> am curious to talk with them about update rates of the
> various systems in relation to each other...
It would also be interesting to get some comments about various
predictive and hybrid predictive/reactive control schemes people have
experience with. I hope that's not too far out of the boundaries you
wanted for this topic.
> In the real world, the D term is low pass filtered for frequenciesI hadn't realised that. I guess it's obvious when someone points it out.
> above the loop response. The effect is to cap the D term gain for
> frequencies above the loop response.
I knew that D was sensitive to noise but I'd always been wary of filtering
it because filters introduce delay and delay causes oscillation.
> > To start with, there is a delay in the system of 1/20 sec at 20 Hz.(That was dpa's statement. And graphs and robot.)
> I took a guess from your statement: "Here is a plot of a PD velocity
> controller, showing the controller variables and output for
> 6 seconds at 20 Hz, 120 samples, for my SR04 robot."
> I jumped to the conclusion that the 20 Hz was the servo pulse updateAh. I was searching for something subtle in the graphs.
> rate. I hope my parachute opened.
> > If you remove the D term, check the overshoot and ringing.I just realised something. You were suggesting in your previous post that "a
> > I bet it will go up.
conventional D term cannot compensate for this [20mS] delay". Therefore the
D term isn't there for that purpose. It's a velocity controller so D is not
there because of momentum. It must be there simply for "balancing the I and
D terms". So if you remove both I and D then you wouldn't expect extra
overshoot and ringing.
And why can't D compensate for a fixed delay?