### Author Topic: servo speed  (Read 1607 times)

0 Members and 1 Guest are viewing this topic.

#### kpmcgurk

• Robot Overlord
• Posts: 152
• Robot Love?
##### servo speed
« on: May 30, 2009, 07:46:51 AM »
I have my my robot complete, And it uses modified servos for the drive. I read somewhere that by adjusting the angle of the servo in the program will change the speed, however, I have been changing the angle, but The speed isn't changing!!

am I doing something wrong?
some people are just Born smart, but some people have to work for it, and those are the people who succeed.

http://www.proboticworld.com

#### Webbot

• Expert Roboticist
• Supreme Robot
• Posts: 2,166
##### Re: servo speed
« Reply #1 on: May 30, 2009, 11:12:19 AM »
I'm assuming that you can still move the motors either backwards or forwards - and its just variable speed thats the issue. In which case....

Here's a simplistic view of how an unmodified servo works. You tell it to go to a certain position (depending on the pulse lenght ie 1.5ms = center, 1ms=full left, 2ms=full right). The servo gear is mounted on top of a potentiometer telling the servo what its current position is. It can then move the gears until actual position = required position (ie the 'error'=0).

Some servos will say: if my current position is 'full left' and I've been asked to move to 'full right' then I will start turning quickly since I've got a long way to go. As the error reduces then it slows down so that it doesn't overshoot the end point.

For a modified servo you've superglued the potentiometer (or used a couple of resistors) so that the actual position is always 'center'. So if you tell it to go full right then it says 'I've got a long way to go' and so starts moving quickly. But since the actual position never changes then it keeps on moving quickly and so you have continuous rotation at full speed. However: if you tell it to go, say, half way to the right then the servo 'may' say 'ok - I dont have that far to go so I'lll start moving at half speed so that I dont overshoot'. So this gives you, in theory, variable speed.

Well thats the theory - but the problem is that different servos (makes/models) work in different ways because with a normal servo you are normally only interested in it reaching the correct position and not the exact time it takes to get there (ie the speed it moves at to get there). So some servos may not give variable speed at all. For those servos that do provide variable speed then there is no guarantee that one speed setting will result in the same rotation speed on another servo. ie they are not matched in any way.

The other consideration is that a small movement setting (ie move 5 degrees to the right) means the servo only has to make a small 'twitch' to get there and because they don't have much torque then the robot doesn't move. So you will find a 'dead zone' either side of the 'center' position.

As a matter of interest: what make and model of servo are you using?
Webbot Home: http://webbot.org.uk/
WebbotLib online docs: http://webbot.org.uk/WebbotLibDocs
If your in the neighbourhood: http://www.hovinghamspa.co.uk

#### kpmcgurk

• Robot Overlord
• Posts: 152