Can not calibrate servos
trelozakinthinos
Posts: 13
Hello,
I have two servos for my robot and I read that I must calibrate them because it is very difficult to have the same speed both!
So I give them maximum values (500, 1000) and I see for example that the right servo is faster so I reduce its value until it goes straight.
The problem is that while I test the new settings it starts to turn to the opposite way (eg the left servo is faster).
I also made a programm that it turn the wheel only one time. I made a mark and I found the time it needs for the turn. But testing the same settings again and again I found that it is not accurate. Sometimes it was exactly on the spot and other was before or after the spot.
I wonder if this is normal. If it is not what could possibly wrong? The voltage is 5.59 (4*1.5V).
It is my first time I am working with servos
I have two servos for my robot and I read that I must calibrate them because it is very difficult to have the same speed both!
So I give them maximum values (500, 1000) and I see for example that the right servo is faster so I reduce its value until it goes straight.
The problem is that while I test the new settings it starts to turn to the opposite way (eg the left servo is faster).
I also made a programm that it turn the wheel only one time. I made a mark and I found the time it needs for the turn. But testing the same settings again and again I found that it is not accurate. Sometimes it was exactly on the spot and other was before or after the spot.
I wonder if this is normal. If it is not what could possibly wrong? The voltage is 5.59 (4*1.5V).
It is my first time I am working with servos
Comments
Yes I know about the reverse! But it is very odd that sometimes the right it's faster other is slower and other the same.
Except of buying new ones!!
Any open loop system is going to be subject to this. Brand new servos may help, but you won't get it to track perfectly straight without some kind of feedback.
@trelozakinthinos - It occurred to me that I had also seen this once before from someone and what I eventually found out was that they were not pulsing the servos every 20 ms, but rather overdriving them within the main loop. Can you post the code you're using?
Personally, I didn't last long with 4x AA batteries in a servo driven robot. I don't know if that is what you're using. If not I would try to get a 5x AA pack, or LiPo pack and charger.
Do you have a link to the DeAgostini Robot?
First I try to make it go forward, after this backward and then by changing the counter to make exactly 180 left and right.
But when I realise that I couldn't calibrate the forward command I gave up because of the changes every time it was running.
If I give 750 both servos it is not moving.
I have 4*1.5v lr6 bateries that there are also 10 years old (but gives 1.5+volts).
Unfortunattely there is no site of DeAgostini anymore
Here is a video of the Italian (and original) DeAgostini's robot commercial
Power off : 5.69V
Power on(stand by) : 5.59V
Servos on: 5.41V
I guess it is no so bad, Right?
Pretty good, so the problem is not with the batteries. That leaves everything else. Main problem is that mass produced motors, power drivers, etc. have small differences due to manufacturing variations, so without some form of feedback there is no way to make them behave exactly the same. Even with feedback from the wheels small differences in the wheel surfaces and road surface will make a difference. Only thing I can suggest is calibrating forward/reverse travel over a longer distance or adding encoders.
My documentation says that servos can work between 5-6V.
In this case an encoder is a device that measures how fast a wheel turns. That allows you to adjust the power going to the wheels for a more precise control of the speed and direction of the robot.
As for the voltage, the motors may work with 5 or 6 volts in, but the regulator on the BS2 may need 6V or a bit more to regulate that down to a stable +5V.
https://www.parallax.com/product/32501
-Phil
I get it but does the servos purpose is to have feedback and control the turn? Why the encoder is better?
That makes sense. I will check the dropout voltage of the regulator. And try with new batteries
A servo is basically just a motor and gears. Like your car, without gps, it doesn't know where it's at. The encoder mounted on a servo keeps track of the servo's movement.
So encoder's mounted on two servo's can be used to keep both servo's running the same speed, by monitoring the feedback from the encoder's.
Is it different kind of feedback? Sorry for the questions but I try to understand what is wrong
What is described there is a standard servo that turns 90 or 180 degrees. It does have a potentiometer that provides a voltage that is proportional to the angle. The typical motor that drives a robot's wheels are "continuous rotation" motors that may or may not have a feedback signal. IMO if it does not have a feedback signal it should be called a "motor", not a "servo motor".
http://learn.parallax.com/tutorials/robot/activitybot/activitybot