Welcome to Synthiam!

Program robots using technologies created by industry experts. ARC is our free-to-use robot programming software that makes features like vision recognition, navigation, and artificial intelligence easy.

Get Started
Asked — Edited

3Rd Party Servo Questions

Hey guys. Throwing this one out there. I have a low profile servo from Korea called the protek PTK-160T. It’s a 7.4v servo with some good power. But this servo has one issue I’ve not experienced. The degree of steps seems really big to me giving me chunky moves instead of nice smooth degrees. It sounds like someone added a box of rocks to it. Having two I added the second one only to get the same degrees of motion and chunky sound.

My question is the pulse says 1520us/333 htz. Would this have anything to do with compatibility with EZB ? Some how creating larger degrees per step?! I’m at a loss. These were a bit pricey at $110. But more importantly they need to work.
User-inserted image

PRO
USA
#1  
Will,

EZB/Iotiny firmware is tailored for EZ-Robot servos specifications. The specifications are not listed neither are relevant for the EZ-Robot offer.

Quote:


says 1520us/333 htz


1520 us(microseconds) is the center position.

EZB 4 uses the following fixed (firmware) values:
http://www.ez-robot.com/Community/Forum/Thread?threadId=9625

Code:


Position 1 = 0.56 ms
Position 90 (middle) = 1.340 ms
Position 180 = 2.14 ms


So your center position will be > 90 (degrees), if you don't need full 180 degrees it's not an issue.

300 hz is the "update" frequency

https://learn.sparkfun.com/tutorials/pulse-width-modulation

Quote:


Frequency/period are specific to controlling a specific servo. A typical servo motor expects to be updated every 20 ms with a pulse between 1 ms and 2 ms, or in other words, between a 5 and 10% duty cycle on a 50 Hz waveform. With a 1.5 ms pulse, the servo motor will be at the natural 90 degree position.


your servo allows higher frequencies. You can always run a fast rated servo at lower refresh frequencies, but you can't run a slow rated servo at fast refresh frequencies.

no problem here too.

Operating speed:

Quote:


Operating Speed @ 6.0V 0.08/60° sec
Operating Speed @ 7.4V 0.06/60° sec


EZ-Robot servo speed:
https://www.robotshop.com/en/ezrobot-heavy-duty-servo.html

Quote:


Operating speed: 0.24sec/60degree (7.4V)


https://www.servocity.com/servo-power-speed

Quote:


Servo Speed. servo speed is stated in seconds. Just as a car has a 0-60 mph time, a servo has a 0-60 degree time. The lower the 60 degree time the faster the servo operates.


So your servo is fast or very fast. So how you control speed ?

Speed is done by software (firmware), EZB firmware has 10 different speed values. The firmware creates the smooth effect using a different step increment and/or different delay between step increments.

post #4
https://www.ez-robot.com/Community/Forum/Thread?threadId=9081

Quote:


The degree of steps seems really big to me giving me chunky moves instead of nice smooth degrees


So i believe you have the experience of high speed Ferrari through a slow camera rate:)

You mentioned two servos, both have the same behavior, unless both are defective it's my best explanation.
PRO
USA
#2  
@PTP, Thank you for the explanation. I have like hundreds of servos but never had any behave this way. Looks like 200 bucks in the can. We need to catch up soon! Hope you had a great holiday.

I don’t ever use the Auto Position control or speed controls when I do my animations. Every motion is built up over time using the finger pad and two axis at a time. Eventually I have one master animation that contains 10s of animations layered on top of one another.

If anyone is interested in seeing my process I’d be happy to put together a video of the process.
#3  
I would like to see how you do that.
PRO
Canada
#4  
Will, before you toss your servos away I would try to adjust the delay, steps, and speed of each frame you are using (just as @PTP was suggesting). Of course you will have to use the auto-position control to make use of these adjustments. It's likely that your servos are a high frequency digital servos that need some delays and step adjustments in order for them to move smoothly. I have encountered this before with Digital servos.

Also as @PTP mentioned, your center value is going to be off so be prepared to lose some resolution and add some max/min values in order to stop the servo from hitting it's internal end stop.
#5  
@Jeremie, would using a servo controller with ARC help the reported issue instead of direct control through the EZB for these servos?
PRO
Canada
#6  
@Justin Yep, you could program a separate servo controller to adjust the center value to get the resolution back but the smooth motion would be much easier to do in ARC. Trying to change libraries to adjust the step values between positions sounds like a nightmare.
PRO
USA
#7  
Thanks guys. I won’t get throw them away but I might set them aside for this project.

@jeremie can you tell me what not to look for in a Servo, so I don’t make this mistake again. I’m always looking for fast (.06/60sec or below) 7.4v and sometimes non standard servos, as in this case a low profile to fit the space. Finding servos to match my criteria often limits my choices. By knowing not what to pick should narrow my chances for success?! Thanks.

@bob as soon as I assemble alan and alena for their test ( before paint) , I will create a video to show how I build up motions.
PRO
USA
#8  
@bob, and anyone else interested...Here is my system for animation layers. The trick, not shown in this demonstration is if you want to loop the animation finding a beginning and ending position so there is no jump. Its tricky but not impossible. Obviously once you have the animations in the last master recorder, that can be called up via script, when needed.


#9  
Will, that is fantastic, thank you for sharing! I did learn something new!
PRO
USA
#10  
Thanks I think thats the first "How to" Ive done since i arrived here 6 or 7 years ago! Glad it was easy to follow.