Asked — Edited
Resolved Resolved by Dave Schulpius!

Jittery Servo Movement

Hey there, I am having an issue with my robots movement here. I build a litte Lego robot consisting of 10 micro servos, they are supposed to have a 4.8Volts input.

http://www.servodatabase.com/servo/towerpro/sg90

But since I just bought a power supply with a fixed Voltage output, I am putting 6Volts in for this is as far as I can lower the Voltage on this particular power supply...they should be able to take up to 8.4Volts I read!

I made an animation cycle using the AutoPostition in ARC and the movements are pretty smooth...but after a little while the whole motion becomes choppy and erratic.

The power supply is a 7.5v 20 amp switching supply that I found with the help of @SteveG, so the servos should be getting enough Amps!

What could be the problem? I had some Wifi connectivity problems with the EZ-B lately...could it be a problem of data transmittance, or is this some issue with AutoPosition in general?

My board is not having any brown outs so I guess power is supplied at any times!

Where would I start searching for my mistake here? ;)


ARC Pro

Upgrade to ARC Pro

Harnessing the power of ARC Pro, your robot can be more than just a simple automated machine.

#1  

Micro servos won't like higher voltages... Servos only rated for 4.8V servo won't tolerate 6V either... Jittering is a sign of over-volting, power issues or just poor quality servos... Use the correct voltage on those servos...

#2  

Those servos are cheap ones....hmmmm if jittering is a sign of having to much Volts put into those servos I guess this is what causes the problem! Power should be supplied sufficiently, I thought overvolting is OK as long as those servos are taking it!

I will do some testing...

PRO
Canada
#3  

What kind of weight are these servos lifting?

Is this Lego robot built like a humanoid, hexapod, etc?

#4  

Hey, thanks for throwing in ideas in this...

The robot is build from Legos to minimize weight and also as a testing platform for me because I am a noob in robotics. It is build with humanoid upper body on tracks to bypass the problem of having it to walk! I could attach a pic if this helps!

The servos I am using, should work fine on 6Volts...I double checked and they are listed to be working from 4.8V to 6V, it seems like the above link is not working... They are those common TowerPro Micro Servos, cheap but I guess good enough to drive some Lego Bricks! ;)

So I unplugged my robot and just hooked up those Ezrobot HD servos that were shipped with the kit...just plain servos no load!

The problem still persists, if I play my animation out of the ARCs AutoPosition I get choppy motion, it runs good for a bit then jerks and gets back into running the animation!

Power Supply is 20Amps, I get get Voltage reading from supplied power straight from the EZ-B v4 info panel!

What could I try to straighten this out? Any ideas... stress

PRO
Canada
#5  

Are you using a laptop or mobile device to connect to your robot? AP mode or client mode?

Have you played with the delay and servo speed values in your AutoPosition action?

#6  

I am using a laptop and the EZ-B is in client mode...I did not mess with the delay and servo speed values in the Autopostion action!

Should I? ;)

#7  

I experienced some Wifi connectivity problems with the EZ-B so this also made me think it could be a problem of data transmitting... but I think I also switched to AP mode and the problem persisted! I could try again just to make sure!

I just took a couple of frames and put them to the AutoPosition and left all the default values untouched...if it is necessary to do some tweaking I will try this, I sort of thought it is some out of the box animation system!

Let me know how I should try to sort out any mistakes on my side here! :)

PRO
Synthiam
#8  

Share your project and we'll take a look. There is a lot of documentation on each question mark in the Auto Position to understand each setting. For example, the STEPS and DELAY settings if configured with high values will present a jitter result.

However, i do need to understand further if the word Jitter is the correct description. Jitter implies the servo is constantly moving and jittering.

  1. Are you saying that even when the servo is still, it is jittering?
  2. Or, are you saying that the servo is jumpy while moving?

If the servo is jumping while moving, that would imply you are using large STEPS and DELAY values. Also, adding SPEED to the action will assist in smoothing the transition.

This is an out of the box animation system. However, you will need to learn how to use anything before it functions for your needs. It is not productive to let your short tempered frustration reflect the platform's capabilities. Cup of a tea and follow the instructions of each option before randomly guessing and changing values will go a long way to help understand how to use the Auto Position control. :)

So, share the project and I can take look.

PRO
Synthiam
#9  

oh, lastly there could be wifi network congestion on the selected channel. Take a look at the FAQ. There is information that presents how to scan for a free wifi channel: https://synthiam.com/Tutorials/FAQ.aspx#9

#10  

Thanks a lot for being so helpful and taking your time for me, I appreciate it a lot... I will research about the AutoPosition ind ARC to understand how things work under the hood! I did not mean to imply at all that AutoPosition is not working properly...you did an awesome job with the tools you are providing!

I never had this much fun for a long time! :D

How would I share my project so you can take a look?

I will check the link on Wifi channels....that could be something, had an Inernet Radio that dropped out of the Wifi all the time until I hardcoded it to another Wifi channel! :)

Thanks DJ Sures EZ-Robot is great! :D

#11  

Oh and I meant the servos are getting jumpy...I will use this term from now on! ;)

#12  

Just read the info in the link on Wifi issues and there was something that said I could always attach my project file right here....so it seems like reading instructions really helps in some occasions! :DLegoRobot.EZB

PRO
Synthiam
#13  

Anytime, @Mickey! Jumpy - okay perfect! That leaves me to believe it can be one of two things...

  1. If the wifi channels are saturated (which is common in populated rural areas), the data transmission speed can be inconsistent and cause spastic jumpy behavior.

  2. if the Auto Position DELAY and STEP values are high, the movement between positions of a frame will result in jumps. The STEP is how many degrees to move between positions of a frame. The DELAY is how long to wait before positions of a frame.

For example, if a servo is moving from position 10 to position 50 and the STEP is 5, the servo will move 10, 15, 20, 25, 30, ,35, 40, 45, 50. And if the DELAY is 30, there will be a 30ms delay between each step.

Lastly, if a high step count is required for desired speed, consider changing the SPEED setting to 1 or 2 in the action. The SPEED will set the ServoSpeed() which will ramp the PWM between each step.

PRO
Synthiam
#14  

Ps, i'm adding some more documentation to the Auto Position control config for the next release as well. I also have some scheduled tutorials regarding the Auto Position which will come in May

#15  

Thanks a lot, @DJSures this give me some options to get things sorted out! ;)

I will check my Wifi Network and see if the AutoPosition needs tweaking!

I hope I can update on my progress soon... :)

PRO
Synthiam
#16  

Awesome - also, if you ever need help... post the project on the forum and myself or someone from the community will take a look for you.

#17  

DJ, Thanks very much for the explanation on the timing settings in the AutoPosition control and scripting. I've been playing around with these settings and it's been hit and miss. It seems like just luck I've been able to smooth out my movements but I haven't really understood what I was doing. Your explanation really helps clear up a lot of my confusion. I'm really looking forward to the documentation and tutorials you mentioned. This will make things much more understandable for me and and help to get better results.

#18  

So I made some testing on my issue here and I found out that the channel the EZ-B and my router were using are cluttered with other networks, so I put them to a different one which seems to be not saturated with connectivity! Also I experienced that my servos are getting jumpy at random points within the animation...it could run well for a good while and then all of a sudden it acts weird, servos are getting jumpy and they are falling back to normal shortly after!

Because of the randomness I was concluding it could be more of a data transmitting problem rather than one from within the Auto Position?

Or could it be that DELAY, STEP or SPEED are interfering and are causing problems at random stages within the animaton?

I tried Client and AP mode with the new channel I found, I am sort of thinking it improved the jumpiness a little, but since it is all random I cannot really tell!

It helped my EZ-B not being kicked out of the network though!

How could I test this better? I was thinking to just make a simple animation just an up/down movement with two servos and have it running for a while...I am a bit stuck here right now!
confused

#19  

Great news, and I think your plan to find this issue is spot on. Having only a couple of servos running will allow you to see if power is the issue or not. It will also let you see if the network is the issue. If this is still happening with only a couple of servos running then it is probably still a network communication issue I would suspect. If it doesn't happen with only 2 of them, I would think that it is a power issue.

Does your robot also have a ping sensor? If it does, you could try to flood the communications channel by running a script that queries this port with a very minimal sleep step while running the limited animation. If the robot starts experiencing similar issues, it is probably your wifi network still. If not, you know that your wifi network is now good and can start looking in another direction.

#20  

Hey, this sounds really helpful...I was thinking that it would be great to have a tool checking the Wifi connectivity, this could be a good addon to the existing EZ-B info panel so one could check if there are connectivity gaps while talking to the EZ-B!

I do have the Ultrasonic Distance Sensor for the EZ-B, would this help to run the script you mentioned? Could you help me writing this script, so I can be sure it works properly?

Thanks for pushing this to the right direction, hope it can be solved soon! :)

#21  

You could just add a ping control and set the settings to something like... User-inserted image

This single control might not flood the channel, but a couple will if setup with a small interval.

#22  

Cool! I will try to get this set up right now! Thanks man, this is really really helpful! :D

#23  

Hmmmmm, I dont know if I got you right here....so I setup 5 of those Ultra Sonic Distance Controls with a 100ms Interval. I put a simple up/down motion to only one of my servos, but nothing really happened!

The sensor script does not seem to be making any difference to the animation running and the animation is also still getting choppy at random times!

I am running the EZ-B on Ap mode and my Laptop sits right next to it! I am using a Wifi channel which should be free of interferrence and I even removed the Power Supply from my desk!

Any other ideas on how to test for connectivity problems or did I make a mistake setting up those ping controls? eek

#24  

The ping controls would only help to flood the communications channel if the 2 servos were working without any issue. This would help to cause the situation to exist if it were an issue with flooding the wifi channel.

So, with 2 servos running, this is happening? I suppose it might be possible that the servos are interfering with wifi but I really doubt it.

Try moving the robot further away, like maybe half way across the room and see if the anamation has an issue with running only 2 servos and no ping sensors.

#25  

Thanks for the info....So the flooding would be an option to test the stable animation to check if it will get choppy once the channel is flooded, right?

It is not a problem of the servos interferring with the Wifi I guess, it also happens when I hook up the original EZ-Robot HD servos...

I will try to move the robot, and let you know if it will make a difference... I am off now for a couple of hours but will make further testing asap! :)

#26  

sounds good. I have been up all night monitoring the move of a data center, which just wrapped up. I think I am going to go get some sleep for a while. I will check back later in the day. With me when a problem exists, my brain wants to keep working on it, so if I think of anything I will let you know.

Good luck!

#27  

If your want to test the Step, Delay, Speed settings you can use the frames you've set up in AutoPosition in an EZ Script. Adding more then one frame inside a EZ Script will create an Action (Just like inside the AutoPostion Control). You may find this approach easier to set the timing then using the Action section of the AutoPosition control. I am using this approach because I get better results when running DC motors and activating other EZ Scripts in tandem with the AutoPosition frames. I know that the AutoPosition control has places to start outside scripts but I found I had more control and better timing results by calling the AutoPostion frames and other scripts from inside a EZ Script.

Here's how: *Add a EZ Script control through the Menu bar; Projuct - Add Control. *Open it and click on the Cheat Sheet Tab on the upper right. *Scroll down till you find the frames you've made in Auto Position *Find the frame you want to use but it needs to have "AutoPositionFrame" in the center of the command. *Double click to add it the the script. *After you add the command you will see at the end the Step, Delay, Speed settings in brackets. Replace these with your timing settings as DJ described in an earlier post. Do not use the brackets. *You can sprinkle other ControlCommands among the AutoPositionFrame commands to get other things to work on your robot.

Hope this helps. ;)

#28  

Thanks a lot for these explicit instructions Dave! I will try to use your approach...this might be a good idea because it also excludes the Auto Position control and might be a way to check where my problem might be!

Will be back home in an hour...can't wait to try out the ideas you threw in here! :)

#29  

I have some of the same servos you have and I have to say they never really worked well at holding position... I think maybe your problem is cheap servos... Sometimes Occam's Razor rules...

#30  

RR has some good advice. It could be as simple as creepy servos. However you may not know until you get the timing of the autopositioner dialed in. How do they run individualy if you set one or two through an ez script?

BTW, the method I laid out above does not exclude the autopositioner. It uses the AP control to execute AP frames individually and sets the timing pramitors from outside the AP control.

#31  

Back home now and on it...to have even more exclusion for anything that might cause problems, and also just to stay within the system that we are all ensured that it should work, I changed the setup. I unplugged my robot and for testing it's now just my EZ-B v4 with one EZ-Robot HD servo attached!

I just put a simple Auto Position animation just from a 1 to 180 movement which repeats, all settings on the Auto Position are default! It plays the animation and I am having the same jumpy servo movements as before!

I was also thinking that it might be a good idea to attach one of those continuous rotation servos for testing, but I guess this does not do anything to read disconnects, it keeps rotating when the HD servo gets jumpy!

I changed the mode from ap to client so now the router is also further away from the robot, and I moved the laptop of the desk too!

I will now try the approach that Dave was pointing out, but it is still kind of awkward that the jumpy servo problem persists...cross your fingers for my guys!

Any clues on how this could be solved would be great! :)

#32  

DAVE YOU ARE THE BEST!

Got it working...:D:D :D

It took a little while to understand how this whole thing works, but being able to change the settings of the AutoPosition within EZ script I tweaked them for a bit and found out that the DELAY values messed up the movement and this caused the servos to get jumpy....so my Wifi connection seems to be OK and now I will plug my robot back in and check if I can tweak the motion so it will run smoothly!

Thank you guys for staying with me and guiding me thru this! All of you were a great help, I am happy this is solved so I can keep on bringing my little K8 to life! :D

:Start Sleep(1000) ControlCommand("Auto Position", AutoPositionFrame, "Down", 0, 10, 0) Sleep(1000) ControlCommand("Auto Position", AutoPositionFrame, "Up", 0, 10, 0) Goto (Start)

:D :D

#33  

I plugged my robot back in and now I am able to run the animations smoothly, it was that I did not use the control settings for the AutoPosition the right way!

Another lesson to be learned on my way building K8, let's see what lies ahead!

Thanks for all the help, this is a great community! :D

#34  

By the way @RichardR the servos are running a lot better if I apply the correct voltage! eek

#35  

Glad everything is working out. You taught me something. I didn't know that you could take the delay down to zero and still have everything work. Thanks for being adventurous.