adaptive controller

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
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Christian Christmann wrote:

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.
--

Tim Wescott
Wescott Design Services
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
On Wed, 14 Jul 2004 11:46:07 -0700, Tim Wescott wrote:

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.

I will ;) Thank you
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Christian Christmann wrote:

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...
--

Tim Wescott
Wescott Design Services
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

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
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

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.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

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.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Christian Christmann wrote:

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:
http://www.cs.indiana.edu/robotics/world.html
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.
http://www1.uop.edu/eng/faculty/khughes /
When it comes to 'c' coders, he is the very best!
James
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Christian Christmann wrote:

http://oap.sourceforge.net /
This web site has links to discussion groups that will have working examples of adaptive control for robotic applications.
good luck,
James
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

Polytechforum.com is a website by engineers for engineers. It is not affiliated with any of manufacturers or vendors discussed here. All logos and trade names are the property of their respective owners.