From plskeggs at noeticdesign.com Wed Oct 5 12:06:29 2005 From: plskeggs at noeticdesign.com (Pete Skeggs) Date: Wed Oct 5 12:06:32 2005 Subject: [WheelWatcher] Robonexus Message-ID: <43442435.102@noeticdesign.com> Hi, folks. I'll be attending Robonexus tomorrow and Friday. If you are in the area and would like to meet me, give me a call at 503-223-9239 -- it will forward to my cell. I will also be at Robothon on Saturday and Sunday in Seattle. Sincerely, Pete Skeggs Nubotics Support From taco_5158 at msn.com Fri Oct 28 16:33:24 2005 From: taco_5158 at msn.com (THOMAS COULOMBE) Date: Sun Oct 30 01:23:04 2005 Subject: [WheelWatcher] (no subject) Message-ID: From rob.stehlik at sympatico.ca Sat Oct 29 20:58:05 2005 From: rob.stehlik at sympatico.ca (rob.stehlik@sympatico.ca) Date: Sun Oct 30 01:23:04 2005 Subject: [WheelWatcher] Help with tuning Message-ID: Hello, I have just installed a couple WW02's on my robot which has custom wheels and motors. I am currently trying to get the advanced velocity and position control code working (I am using a PIC 16F877A with CCS), but am quite confused about the way the feedback controller is tuned. I am used to adjusting gains for P, I and D terms, but this code seems different. Currently I have it so the code functions properly, but the robot's movements are not well controlled. IE when driving in a square, the robot always overshoots, especially in the turns, and sometimes does not recover. Many times the robot will get stuck oscillating around the target really slowly. The positioning accuracy is terrible. I have tried adjusting the divisor in the integral calculation, as well as the acceleration value. And I played with the deceleration term (was originally 150). After running tests for several hours, the robot performs a little better, but it really leaves a lot to be desired. So, I guess my question is what approach should I take when tuning the controller? Which parameters should I vary? And considering my robot is quite heavy and fast, is there anything I should keep in mind when adjusting the parameters? Is there a way to set a minimum PWM duty cycle? Because of my robots weight, it does not move well at slow speeds. I appreciate your help, Rob From plskeggs at noeticdesign.com Sun Oct 30 01:33:49 2005 From: plskeggs at noeticdesign.com (Pete Skeggs) Date: Sun Oct 30 01:33:57 2005 Subject: [WheelWatcher] Help with tuning In-Reply-To: References: Message-ID: <4364856D.504@noeticdesign.com> Rob, Sorry you are having trouble. I do need to update that example to fix some problems in it -- it's not your fault that it is unstable at low speeds. I've been buried with putting finishing touches on the new WheelCommander WC-132, which includes many of the same ideas as the example you refer to, but has a lot more in it, and is a "canned" solution. One big difference internally is that I gave up on having nested velocity and position loops, and made the position loop such that it produces motor commands (PWM values and directions) directly, bypassing the velocity loop. I also found that I had to add an offset to the calculated PWM value to overcome friction and deadbands (in servos at least) at the low speed end. Finally, it helps to have a low loop bandwidth (6 Hz) when slow motions are required. Making low speeds stable was not trivial, but is doable. I'm really busy tomorrow, so it might be a day or two before I get back to you. Thanks. Sincerely, Pete Skeggs WheelWatcher Tech Support rob.stehlik@sympatico.ca wrote: > Hello, > > I have just installed a couple WW02's on my robot which has custom > wheels and motors. I am currently trying to get the advanced velocity > and position control code working (I am using a PIC 16F877A with CCS), > but am quite confused about the way the feedback controller is tuned. I > am used to adjusting gains for P, I and D terms, but this code seems > different. Currently I have it so the code functions properly, but the > robot's movements are not well controlled. IE when driving in a square, > the robot always overshoots, especially in the turns, and sometimes does > not recover. Many times the robot will get stuck oscillating around the > target really slowly. The positioning accuracy is terrible. I have > tried adjusting the divisor in the integral calculation, as well as the > acceleration value. And I played with the deceleration term (was > originally 150). After running tests for several hours, the robot > performs a little better, but it really leaves a lot to be desired. > So, I guess my question is what approach should I take when tuning the > controller? Which parameters should I vary? And considering my robot is > quite heavy and fast, is there anything I should keep in mind when > adjusting the parameters? Is there a way to set a minimum PWM duty > cycle? Because of my robots weight, it does not move well at slow speeds. > > I appreciate your help, > > Rob From rob.stehlik at sympatico.ca Sun Oct 30 21:46:10 2005 From: rob.stehlik at sympatico.ca (rob.stehlik@sympatico.ca) Date: Sun Oct 30 22:09:32 2005 Subject: [WheelWatcher] Help with tuning Message-ID: Pete, I'm glad to hear the low speed instability is a known problem. I have begun working on my own motion control code, and am getting pretty overwhelmed. Programming is not my strong point, which is why I had hoped your sample code would have worked for my robot. I am very interested in the WheelCommander. Let me know if you want a beta tester :) Rob >Rob, >Sorry you are having trouble. I do need to update that example to fix some >problems in it -- it's not your fault that it is unstable at low speeds. >I've been buried with putting finishing touches on the new WheelCommander >WC-132, which includes many of the same ideas as the example you refer to, >but has a lot more in it, and is a "canned" solution. >One big difference internally is that I gave up on having nested velocity >and position loops, and made the position loop such that it produces motor >commands (PWM values and directions) directly, bypassing the velocity loop. > I also found that I had to add an offset to the calculated PWM value to >overcome friction and deadbands (in servos at least) at the low speed end. >Finally, it helps to have a low loop bandwidth (6 Hz) when slow motions are >required. >Making low speeds stable was not trivial, but is doable. I'm really busy >tomorrow, so it might be a day or two before I get back to you. >Thanks. >Sincerely, >Pete Skeggs >WheelWatcher Tech Support >rob.stehlik at sympatico.ca wrote: >>Hello, >> >>I have just installed a couple WW02's on my robot which has custom wheels >>and motors. I am currently trying to get the advanced velocity and >>position control code working (I am using a PIC 16F877A with CCS), but am >>quite confused about the way the feedback controller is tuned. I am used >>to adjusting gains for P, I and D terms, but this code seems different. >>Currently I have it so the code functions properly, but the robot's >>movements are not well controlled. IE when driving in a square, the robot >>always overshoots, especially in the turns, and sometimes does not >>recover. Many times the robot will get stuck oscillating around the target >>really slowly. The positioning accuracy is terrible. I have tried >>adjusting the divisor in the integral calculation, as well as the >>acceleration value. And I played with the deceleration term (was >>originally 150). After running tests for several hours, the robot performs >>a little better, but it really leaves a lot to be desired. >>So, I guess my question is what approach should I take when tuning the >>controller? Which parameters should I vary? And considering my robot is >>quite heavy and fast, is there anything I should keep in mind when >>adjusting the parameters? Is there a way to set a minimum PWM duty cycle? >>Because of my robots weight, it does not move well at slow speeds. >> >>I appreciate your help, >> >>Rob From plskeggs at noeticdesign.com Sun Oct 30 22:11:14 2005 From: plskeggs at noeticdesign.com (Pete Skeggs) Date: Sun Oct 30 22:11:20 2005 Subject: [WheelWatcher] Help with tuning In-Reply-To: References: Message-ID: <4365B582.3040503@noeticdesign.com> rob.stehlik@sympatico.ca wrote: > I'm glad to hear the low speed instability is a known problem. I have > begun working on my own motion control code, and am getting pretty > overwhelmed. Programming is not my strong point, which is why I had > hoped your sample code would have worked for my robot. I am very > interested in the WheelCommander. Let me know if you want a beta tester :) The first batch of WheelCommanders has shipped to Acroname.com. I am hoping they will be able to ship later this week. As for beta testing, we've gone through our beta period already, but I'll keep you in mind for new designs. We will come out with a stackable h-bridge board for it, for example. -Pete