adaptive controller

If you know control theory, get a good book on adaptive controller design. I'd suggest Karl Astrom's "Adaptive Control".

Ask yourself if you _really_ need adaptive control. It has its applications (and I've written adaptive controllers) but it also have it's pitfalls. Can you do the job with a gain scheduled controller, a robustly-tuned PID, or with some carefully selected non-adaptive nonlinearity?

The biggest "hint" I can give is to make sure that you understand adaptive control _first_. Applying it correctly is more involved even than writing code for it, so make sure you _really_ understand it.

Reply to
Tim Wescott
Loading thread data ...

Hi,

I'd like to replace the PID controller of my robot with an adaptive controller. Currently, the controller is implemented on a Texas Instruments DSP and the source code is written in C.

Now, I'm looking for some examples of an implementation of the adaptive control when possible in C.

Any hints?

Thank you very much.

Christian

Reply to
Christian Christmann

The adaptive controller was a long time ago, for and employer, and not very firmly grounded in mainstream theory (actually I learned formal adaptive control after realizing that I'd just written an adaptive controller! I even did it almost correctly).

If your robot's velocity profile in nonlinear in a way that is predictable and easily modeled then using and adaptive controller is probably _not_ the way to go -- adaptive control is very good at solving the problem of controlling something when its characteristics change in slow and unpredictable ways, but if you already know what's going to happen it can be quite redundant and if the system behavior changes quickly (such as changing dynamics in an articulated structure) it can be difficult to make adaptive control work nicely.

Application of control theory to robotics has its own body of literature, so there may be information there for you to mine. I know that there are problems with articulated structures that lead to dynamics that can vary quite viciously, even to having the structure of your model change as links become lined up.

I've never controlled robotics myself, but if I were in your shoes I'd start by considering a gain-scheduled system. If that didn't work I may extend it, for instance perhaps by keeping track of the angular momentum "seen" by each joint -- so I'd know that if I'm swinging the whole thing around and I draw in the "elbow" joint I'll see increased velocity at the "shoulder" joint if I don't do anything.

I know I'm being a Luddite, but being a servo engineer tends to do that to you...

Reply to
Tim Wescott

Thank you for your answer. Tomorrow I will take a look in our univer- sity library if they have this book available.

Would you mind to send me your code? It would be a big help in the beginning.

Unfortunately, I'm not very familiar with the controller you just mentioned. One of my biggest problem is the nonlinearity of the robot's velocity profile. So, I was hoping the adaptive controller could solve it.

Thank you

Reply to
Christian Christmann

The first question is: Why do you need an adaptive controller? Are you sure an LTI controller cannot do the job? Adaptive Controllers are not for the faint hearted as they are nonlinear time varying control loops, so special care and feeding is required. If you don't have a thorough understanding of adaptive control concepts, I suggest you be careful! I have so often seen people jump to implement a Fuzzy/Neural/add-your-favourite-technique-here controller when a simple well designed and implemented classical controller will suffice.

Fred.

Reply to
Fred Stevens

How about programming the velocity profile into the controller as something of a lookup table. Before making a movement, work out a predicted movement trajectory (location, velocity). After you have the prediction figured out, start the movement, and monitor it to be sure that you are meeting your prediction. Add or subtract force as necessary to stay on course. You could use a PID controller to adjust the force during movements.

Michael

Reply to
Herman Family

Adaptive Control can be used in robotic autonomous path planning. You need to seek out some robotics folks, if you are trying to use/fuse sensor data into useful information for a robot to 'path plan' or navigate based on sensory feedback.

Here is a good site I found at Ken Hughes's web site:

formatting link
I knew this guy back in grad school. He's now a professor, and a really nice guy. He *may* advise you on your robotic efforts, especially if you are doing something interesting that can be published.

formatting link
When it comes to 'c' coders, he is the very best!

James

Reply to
James

formatting link
This web site has links to discussion groups that will have working examples of adaptive control for robotic applications.

good luck,

James

Reply to
James

I'm guessing that when you say "nonlinearity of the robot's velocity profile," you mean that to keep constant speed, the torque command is not constant. This can sometimes be accomplished with a proper controler "type." Usually with robots, however, the relationship between velocity and torque can not be properly resolved by the controller type (integrators). Often there is a position dependent load due to the kinematics of the machine itself. If this is your problem, an excellent solution is to design your control with a position dependent feed-forward gain. If you do this correctly, you can adaptively tune the feed-forward gains to completely eliminate errors due to the position-dependent load variations.

Reply to
Johnny Walker

PolyTech Forum website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.