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
Germany
Asked — Edited
Resolved Resolved by DJ Sures!

Persistent Servo Calibration

The servos looked almost good, so I skipped the hardware calibration for now. Both arms show a bit to the right, fixed by fine tuning to max. 12 units. Q: what's a unit?

When turned on, the servos move to strange positions. The head is fully thrown back, one arm almost straight, the other one down. This position seems to be reproducable, so I'd guess it's stored somewhere. Q: how to influence the servo turn-on positions?

The "Dance" script seems not to honor fine tuning? The arms seem to have an right offset (like uncalibrated), and the left arm strikes the head while moving. The "Stop" script moves the arms into the expected (straight) position. What am I missing?

Finally, after Stop, the servos tend to produce noise (humming), which sometimes can be reduced or eliminated for a while, by manually lifting the claws a bit. But after some time the noise starts again, well amplified by resonance of the entire body :-(
I suspect that this behaviour will stress the battery, and it also stresses my ears. Are the shoulder servos too weak for supporting the weight of the entire arms?

Apropos noise: the Dance music is very nice, but a bit too loud for me. I'm missing a volume control with the soundboard. Even if I know (now) that SetVolume can be used to influence the sound volume, I'm missing according instructions/settings with the project/controls.

AI Support Bot
Related Content
Synthiam
#1  
@dodi...
1) All hobby servos when power is first applied to them will jump to a random position until a controller sends a first position command....

2) The shoulder servos produce over 200oz in of torque so they are for sure not too weak..Most servos will hum to one degree or another... it's normal unless they are binding on something causing seriously excessive noise and/or smoke is pouring out of them...

2) You won't stress the battery... only thing it may do is drain it faster... The stress is in the servos if they are stuck or as mentioned binding on something... Make sure all the cables are loose so that the servos are not pulling on them...
United Kingdom
#2  
As Richard said...

You are unable to change or specify the positions of servos when you power them up. Follow the tutorial for the robot, these explain this and the correct procedure for powering up.

If the dance script causes parts to collide then your calibration or fine tuning needs looking at. Calibrate properly as per the tutorial then fine tune. 12 "units" is too much for a fine tune! FYI - units are positions, generally 1 position is around 1 degree but it's not an exact thing and will vary from servo to servo.

Noise from servos holding a position is normal, it shows they are working. There is nothing wrong with this.

The soundboard should have a volume control as part of it. If it doesn't, reinstall the latest version of ARC.

Begin by following the required tutorials within the learn section. Most of your questions are answered within them.
PRO
Belgium
#3  
dodi

here is the volume


User-inserted image
Germany
#4  

Quote:

1) All hobby servos when power is first applied to them will jump to a random position until a controller sends a first position command....


AFAIK servos are steered by PWM, so that it's unclear that they do without a signal. But when most of my servos start up near the 90° position, the neck servo is far away from that. Do you think that a replacement should behave better?

Quote:

2) The shoulder servos produce over 200oz in of torque so they are for sure not too weak..Most servos will hum to one degree or another... it's normal unless they are binding on something causing seriously excessive noise and/or smoke is pouring out of them...


The noise indicates to me that they cannot keep the position, instead they keep the arms swinging around the set position. As I mentioned, that noise is so loud that I have to turn off the robot whenever possible.

After another look at the cables I suspect that the cable outlet is too long and too stiff, applying force to the brackets. All my servos deviate from the straight (90°) position as pressed by the cables. May it help to cut off part of the stress relieve, and glue the cables to the servo, so that they keep away from the brackets?

Quote:

2) You won't stress the battery... only thing it may do is drain it faster... The stress is in the servos if they are stuck or as mentioned binding on something... Make sure all the cables are loose so that the servos are not pulling on them...


Sorry for my poor English, I meant draining the battery. As beforementioned, the cables do not affect servo movement, except immediately at the place where they come out of the servos.
Germany
#5  

Quote:

here is the volume


Thanks, the slider color is so light that I didn't notice the control at all :-(
United Kingdom
#6  

Quote:

AFAIK servos are steered by PWM, so that it's unclear that they do without a signal. But when most of my servos start up near the 90° position, the neck servo is far away from that. Do you think that a replacement should behave better?


A replacement will not make a difference as you servos are acting normally. While they are controlled by PWM on initial powering up they will jump to a random position. There is nothing that can be done to avoid this. This is normal behaviour.

Quote:

The noise indicates to me that they cannot keep the position, instead they keep the arms swinging around the set position. As I mentioned, that noise is so loud that I have to turn off the robot whenever possible.

The noise indicates that they are working. Keeping position or not should be the only indication of if they cannot hold position. The more stress the harder they work and the more noise they will make. This is normal and nothing to be concerned about.

If a servo is being used it will drain the battery. There is nothing you can do to avoid this.

Everything you have posted is normal behaviour and you have no issues. All have been explained many times in this forum and also all over the internet for most of your "issues".
PRO
Belgium
#7  
dodi

picture is says more then words.keep asking if you have questions.
i am newbie too.:D
Germany
#8  
About noise and oscillations:
After many experiments I found out that the servos are not incapable of *holding* a position, instead in detail the shoulder servos are incapable of *reaching* certain positions. When a position cannot be reached, the arms can oscillate up-down with an claw amplitude of several mm (the mechanical clearance). By slightly pressing an arm upwards, the shoulder servo can lock into up to 3 discrete positions, before it reaches a stable position. Similar behaviour can be observed in the Fine Tune window, where most servos react only on changes by 2 units.

Thus the noise and oscillation seems not to be a matter of force, but a matter of the closed-loop control inside the servo, with different granularity and phase between the position sensor and the actor. Temparature also may influence the control, making noise (oscillations) appear and disappear over time.

The cable outlets (strain relief) force the cables against the brackets, what may be good or bad. That applied force and friction may e.g. reduce the chance for oscillations. Otherwise the friction could be eliminated by an change of the cable outlet orientation and fixing the cable to the servo in a direction, that does not require two 90° bendings of the cable.
United Kingdom
#9  
The servos supplied by EZ-Robot are strong enough to lift the arms supplied by EZ-Robot without much effort. The arms could be much longer too, my current project uses similar arms however they are very much extended and it has no problems.

If you are showing signs that the servos cannot reach a position you need to check your battery to ensure they are running at maximum voltage to provide the required torque. If you find they are receiving the full 8.4v and still showing signs of struggling then it may be a faulty servo.

I have been using the EZ-Robot servos since they first dispatched my Six, I've since used them in JD and in my own projects, I have not found any issues with them or with the cable causing anything like friction or stress.

Have you gone through and followed all of the tutorials in the learn section? If you are having issues I would suggest checking the tutorials out, especially since I have not had any issues like those you are describing.
Germany
#10  
About calibration:
Only two servos really deserved hardware calibration. Even that didn't really help much, the oscillations seem to be caused by design, and the required fine tuning values still can be quite high. The rest seems to be a matter of the scripts. After fine tuning the arms tend to strike the head during "Dance", and "Stop" leaves the arms in quite asymmetric positions. Is this inteded behaviour?

These are 3 sets of servo profiles, for exactly straight, acceptable Dance and somewhat symmetrical Stop conditions, from top-left to bottom-right of the Profile window:
straight: 11 2 -4 -2 6 0 -6 5 -8 0
dance: 17 0 -6 -2 6 0 -6 10 -8 0
symm.: 17 0 -4 -2 6 0 0 12 -8 0

I wonder why the left arm hangs down so much (11/17), and the right ellbow goes inward so much (5/12), when straight tuning is applied. Can somebody find out whether this difference is built into the scripts, or what could be wrong with my parts or construction?

BTW I'm also missing an indication of the selected servo profile (file name).
United Kingdom
#11  
If fine tuning is still requiring high numbers then the servo requires calibrating properly. Once calibrated the position will not move if reassembly was done correctly.

What you have described signifies incorrect calibration or incorrect fine tuning. Start by recalibrating all servos. Load the project without a servo profile. Fine tune where necessary (any fine tunings about around 6 would indicate calibration was not carried out correctly).

All movements are set in the Auto Position control. You can check if the positions you are getting are as intended by looking in the control. I cannot speak for the Roli robot as I do not have one however both Six and JD are pretty symmetrical when at a stop and I would presume Roli would be the same.

Also, ensure you are using the latest ARC with the latest example projects.
PRO
Synthiam
#12  
1) the servo calibration is a manual process and only needs to be done once. As stated in the lessons, the servo calibration is a process where you set the servo to 90 degrees and manually remove and align the bracket to also be 90 degrees. This one ever needs to be done once per sero, ever. It's a one time thing.

2) servo fine tune is included in all robot products and not unique to ezrobot. Every robot product that requires high resolution for walking, etc requires servo fine tune. The servo fine tune profile is created and saved to your local drive and/or ezcloud. The fine tune helps you set the robot servos to be exactly 90 degrees. This is because even after calibration, they might still be a little off. There is a lesson dedicated to fine tune.

3) if you are not prompted to load servo fine tune profile when loading a project, it is because you are not using a default ezrobot project.

4) if the robot is hitting his face in dance animation, the robot has not been fine tuned correctly or you did not load your fine tune profile.

Please visit the JD project and follow the tutorial for servo calibration and fine tune.
Germany
#13  

Quote:

4) if the robot is hitting his face in dance animation, the robot has not been fine tuned correctly or you did not load your fine tune profile.

I've presented the profiles I used, and mocked about missing an indication which file is in use.

Quote:

Please visit the JD project and follow the tutorial for servo calibration and fine tune.

Been there, done that... before asking here :-(

Please understand that I have 50 year experience in electronics and programming, no need to tell me the obvious. Until now I only wanted to make the Roli demo program work, but if you think that I should write my own test programs for finding out more about servo calibaration and positioning, then please suggest what I should do next.
PRO
Synthiam
#14  
Wait, is this for Roli or JD?

I can take a look at Roli's program. Maybe there is an alignment issue. Stay tuned.

Sorry, I had thought this was regarding JD. Too much going on in my head:)

I'll have someone look at the example program tomorrow for you.
Germany
#15  
What I could find out now, using frames for one arm Up, Down and Horizontal:
The Horizontal position is reached only from Up, while from Down the arm hangs (at least) one "tick" below 90°, producing noise. When I support the claw a bit, a noticeable step into the correct position occurs and the noise stops (mostly).

This behaviour is also reproducable immediately, by changing the shoulder servo position. The shoulder servos respond immediately to upward moves, while downwards they mostly only react on every other increment, with variations over the total movement range.

To end this story, can somebody confirm that this behaviour is by design?
Can it depend on certain settings (Speed, Steps...)? I could not find out yet about the purpose and use of these settings.

BTW the asymmetric positions in Dance are by design (program), not by calibration. It took me a while until I could find out how to inspect the related code (frames). Is it possible that the knocks against the head are caused by slightly different servo resolutions, between the prototype and my robot?
United Kingdom
#16  
The simple answer to solve your problem (to some degree) is to do this;

1. Calibrate all servos to 90 degrees.
2. Fine tune as necessary/required.
3. Modify the positions on any frames where collision occurs.

Calibration should avoid any collisions happening however it doesn't seem like that's solving it for you. All example projects are able to be edited, with some ease too.

The prototype most likely didn't have the Auto Position frames and even if it did I believe the servos didn't change from prototype to retail.
PRO
Synthiam
#17  
He should not need to modify the frames because there should not be any collision. I am having the project looked at and we will make appropriate changes. Again, please wait:)

To clarify, I am having someone look at the project. We will change the project once it has been reviewed.

The project is being reviewed by someone right now. The project will be updated once it has been confirmed.

Please wait a moment while we review the project. Thanks!

@dodi All ez-robot servos have the exact same servo resolution. We are reviewing the project to see what frames are misconfigured. The misconfigured frames will be adjusted and updated.
Germany
#18  
I hope that the update will become available soon. In the meantime I could help myself, with your kind assistance :-)
Germany
#20  
Thanks, I'll update and test :-)