Friday, November 21, 2014

Continous rotation servos

Back after a small hiatus with a somewhat short post.  So today we talk about continuous rotation servos. What are they exactly?
Well continuous rotation servos look exactly like normal servos. Figure 1 shows you one continuous rotation servo.



Figure 1: Never judge a servo by its looks

Ok, nothing special here. Let's draw the line between a servo and a continuous rotation servo.

SERVO - Feed it some value and it will move to some position/angle. Speed is preset.
CONTINUOUS ROTATION SERVO - Feed it some value and it will rotate at some speed. You can vary both speed of rotation and direction of rotation. Is to servos what the evo is to mitsubishis. A completely different monster.

Right. You can vary both its speed and direction of rotation. That is particularly useful if you are building a differential drive robot. A differential drive robot is based on two motors that are independent of each other. The video below gives you a demo of one differential drive project I have been working on, during calibration phase. 





Calibration is extremely important here. I need to know the pulses that must be fed to each motor so as to obtain a specific motion. After a long phase of testing, you'll have gathered all that data, thereby getting what I call the engine map.
Let's get things clear here. Yes, I can vary the speed and direction of rotation of the continuous rotation servo and the manufacturer will often provide timing pulses for that.
If you are on arduino, commands(manufacturer) would be like:

myservo.writeMicroseconds(1500) =>Full stop
myservo.writeMicroseconds(2000) =>Full speed right
myservo.writeMicroseconds(1000) =>Full speed left

Now, the world would be beautiful if everything followed such brilliant precision. However, it's not. You are gonna have to obtain more accurate values for these data. If you are on a differential drive, double the precision. For making turns, you need for two wheels to be perfectly synced. Now, as you saw, it's not the case. Working with those perpendicular lines was a way of calibrating turns. After a really long and incredibly frustrating testing period, I came up with the engine map. 
Usually, if you vary between the extremes, you can vary the speed. The video below demos the capacity of a continuous rotation servo. I'm just crudely mapping the readings from my potentiometer to my servo.



Now, why do I think they are a good bet for differential drives? After all, dc motors coupled to H bridges and encoders would do the trick. Here's your answer. It's plug and play. No need to cram your design with additional components(like H bridges and encoders).
That's it. Thanks for reading. More next week.




No comments:

Post a Comment