USA
Asked — Edited

Servo Controlled Camera Question

Just a quick question:

I'm having an issue with the face tracking in that if a face moves off screen too quickly, it is, of course, lost. It would seem iRobot's head need to move more quickly to keep up (with a reasonably moving face) but if I set the servo speed over 2 it gets jerky and kind of scary. My frame rate is pretty slow. I don't remember the exact rate but it's under the lowest setting. I have the camera resolution set to 160x120, the lowest res. Would a faster computer help? I'm running it on an old quad-core, win 7 unit. I have an i7 Asus laptop but the vid card went belly-up (I think). I may risk the $70 for a used vid card replacement. I'm assuming the camera is a processor intensive process and that more RAM or better graphics won't help. Thanks:)


ARC Pro

Upgrade to ARC Pro

Your robot can be more than a simple automated machine with the power of ARC Pro!

#9  

@DJ I do appreciate your explanation of how a servo works and the link to an more detailed explanation. However this "jerk" seems to have nothing to the normal behavior of a servo or static induction. It's seems more like a voltage serge. It happens when a series of servos fed from the same power supply are released by ARC. I really don't think it has anything to do with ARC. It's probably the way I have my circuit designed or my scripting. Here's the script that's runs when the most noticeable jerk happens:


release(2.D1) #Release Rt Wrist Up & Down Servo
Sleep(500)
Release(2.D0) #Release Rt Side to side servo
Sleep(500)
release(2.D4) #Release Left Wrist Up & Down Servo
Sleep(500)
release(2.D5) #Release Left Side to side servo
Sleep(500)
release(2.D6) #Release Left Claw
Sleep(500)
release(2.D3) #Release Right Claw   

I know this is Mac's thread so no real need to follow up on this here. I just thought this may be useful to him.

Mac, I would be interested in your very fare offer. Please contact me at [email protected] and we can seal the deal. ;)

PRO
Synthiam
#10  

Again - it is how a servo works. A servo moves into position by the PWM. When the PWM stops, the servo stops holding position. When the PWM returns, the servo moves into position. If there's a jerk or not a jerk, it's irrelevant because the servo is working as designed.

The servo holds position when the PWM starts. When it starts holding position, the motor starts moving. The motor may jerk, it may not jerk. It's irrelevant to the function of Release(). The release does what it does, releases a servo.

If your servo jerks, then it jerks. If it doesn't, then it doesn't. It doesn't matter to the command, because the command and the ez-b are performing exactly what the commands do.

RELEASE -> STOPS THE PWM GOING TO THE SERVO

That's it. There's no magic that can be good or bad. You can't STOP PWM badly. You can't STOP PWM incorrectly. Stopping something is the lack of doing something.

And the opposite is STARTING PWM, which is exactly that. You can't START PWM incorrectly either.

#11  

OK, I can understand that. So that rules out the scripting. That leaves my circuit and possible voltage surge or induction. Weather the command cares if there is a jerk or not, I sure do. I'll continue to try to find out why it's happening but I wont clutter up this thread or forum with it. I'll be bowing out of this thread now. Thanks for the help. Sorry Mac about hijacking your thread.;)

PRO
Synthiam
#12  

No - not surging. There is no surging because power to a servo is always applied. You cannot turn off power to a servo. A servo motor may draw more amperage when it is initializing or holding position, but that will only limit the amount of current available to other servos - resulting in the opposite of what you're describing.

What is happening is the servo is initializing into a position and holding weight. The "jerk" that a servo may or may not experience is due to the servo beginning to "do something". It wasn't doing anything before because it was released.

Perhaps a better example is to provide a experiment example...

  1. Extend your arm out and hold something somewhat heavy

  2. Now ask someone to put pressure under your hand to relieve the weight of holding so your arm no longer feels the weight of the heavy object

  3. Now ask the person to quickly remove their hand from assisting to hold the weight

Your arm is going to jerk. It's going to move. This is because suddenly the force that was supporting your arm is gone. Your muscles have to engage, they have to identify a position. They have to suddenly start doing something, because they weren't doing anything before.

Does that make sense?

#13  

Yes sir it does. Your very patient and a good teacher. Too bad we cant ramp down a servo.

PRO
Synthiam
#14  

You will not need to release the servos with the new ez-robot HDD's in february

PRO
USA
#15  

@DJ, what is the default speed of a servo if there is no script to initiate?

PRO
Synthiam
#16  

the default speed is 0