Don't ad-block us - support your favorite websites. We have safe, unobstrusive, robotics related ads that you actually want to see - see here for more.
0 Members and 1 Guest are viewing this topic.
Am I right in understanding that the only way I will get true PWM with good accuracy would be to use as servo controller as it has dedicated hardware PWM?
I know the Axon can control a lot of servos, but they can't all be controlled via hardware PWM can they? I seem to remember reading somewhere that there were only a few 10 bit and a few 8 bit available.
I am unhappy with the repeatability of asking a servo to go to a position
... biped that I have programmed using the Axon and only the Axon.
You could be using WebbotLib, AVRlib or Admins original lib for the Axon (pre WebbotLib), or something elseSo when you sayCode: [Select]... biped that I have programmed using the Axon and only the Axon. it doesn't actually mean a whole deal as there is no 'one way' to program any controller.
If you are using WebbotLib then I'm rather confused as each servo has a background/interrupt routine to set its position every 20ms.
What is the exact angle error you are getting? (measure the error both with and without anything mechanically connected to the servo)
I'd say about 1deg at worst. Just enough to be a pain in the neck with the hardware connected.
Oh, you aren't going to get better than this. Servo gear backlash alone would give no less than 1 deg error . . . the jittering could be from force being applied to the servo causing it to bounce between encoder positions.
Unless finely tuned each time you change your code then your servos can be very loose/floppy - and that may be what you are seeing ie the knee moves to the correct place, then sags under the weight of the robot, then moves to the correct position again etc etc etc. So it appears to be juddering.
Also I am not sure if this is coming into play here with your servos, but the resolution of webbotlib is not as accurate as the standalone controllers. That is you only have 256 values. If you choose the range of 750-2250us, that implies that each increment is about 5.86us. I have heard the argument that most servos don't have any better resolution than that anyway, but I have also heard others say that the resolution of some digital servos with 1024 values is not sufficient. Who is right? I don't know.
at times I would see some jitter if my pulses would vary a little, that is for example if my pulses were something like: 1450 1452 1448 1450... and my target was 1450 they are all accurate to 2us but the servo may jitter, note: It has been awhile since I worked on this so it may have been a slightly larger delta... So it may very well be the consistency of the signal is more important than the resolution of it. But for those who think it matters, it might be nice if you could configure webbotlib for high resolution. (Yes I know that would eat up more of the data space.
Webbot, since the servos already require 16bit timers, going from 8 bit to 16 bit variables for servos shouldn't take up that much memory. I guess this would require the system clock to be 16 bit? Whats your thoughts? KurtEck/klims are willing guinea pigs.