Welcome to Synthiam!

Program robots using technologies created from 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
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.


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?;)

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.
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.
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!
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.
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!:)
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.
Cool! I will try to get this set up right now! Thanks man, this is really really helpful!:D
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*
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.
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!:)
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!
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.;)
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!:)
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...
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.
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!:)

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

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

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
By the way @RichardR the servos are running a lot better if I apply the correct voltage! *eek*
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.