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?
Upgrade to ARC Pro
Unleash your creativity with the power of easy robot programming using Synthiam ARC Pro
Power should be supplied sufficiently, I thought overvolting is OK as long as those servos are taking it!
I will do some testing...
Is this Lego robot built like a humanoid, hexapod, etc?
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*
Have you played with the delay and servo speed values in your AutoPosition action?
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!
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.
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!
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!
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.
I will check my Wifi Network and see if the AutoPosition needs tweaking!
I hope I can update on my progress soon...
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!
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.
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!
This single control might not flood the channel, but a couple will if setup with a small interval.
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*
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.
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!
*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.
Will be back home in an hour...can't wait to try out the ideas you threw in here!
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.
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...
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!
ControlCommand("Auto Position", AutoPositionFrame, "Down", 0, 10, 0)
ControlCommand("Auto Position", AutoPositionFrame, "Up", 0, 10, 0)
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!