Asked — Edited

Servo Position Saving

I don't think this has been discussed before and I hope I can explain it correctly.

I have a Robot with two arms with 6 servo's each. I use Auto Position all the time to accomplish actions when called upon. Auto-Position works like magic. What I want to do is physically take my robot arm and hold it in the position I want and save that position as a frame. I think this might be possible by reading the each servo's pots location and saving them as a frame. It would be easier and quicker to create frames if this was possible. Can it be done as I have explained.

It would be like a stop motion snapshot that can be saved as a frame.


ARC Pro

Upgrade to ARC Pro

Become a Synthiam ARC Pro subscriber to unleash the power of easy and powerful robot programming

#1  

Not possible with regular servos as these servos do not have position feedback... That is unless you hack them taking a wire from the wiper pin and reading it with an analog pin from the ezb ... (remember you can only do this with 8 servos as the ezb4 has 8 analog pins)... Then writing some code to convert analog voltage readings to corresponding servo positions ( or 0 - 255)... Then some more code to register them as frames... I can probably do it... but not worth the effort.. By the way this has been discussed here several times before... You can do this with advanced servos like dynamixels... However currently no feedback reporting exists with them either using ARC... For now SOL :)

#2  

Thanks Richard.

I agree with you about each servo not having a feedback. What I am trying to say is that according to my understanding, a servo receives a potentiometer resistance number to let it know where to go to. It is always going to a different ohm on the servo to move to a position. Why wouldn't it be possible to read that potentiometer reading on the servo. Like you said it may have no way to read that but I know when a location is requested the servo receives the ohm reading so it can know which way to move and know when it reaches its desired location.

It may be not available now but it seems that future servo's could be made that would be able to feed back their location. Maybe an external pot add on.

#3  

You can read the pot... As I mentioned just open the servo (hack it) solder a wire from the centre pin (aka wiper pin) of the pot ... Then plug that wire into one of the analog ports... Your servo has 4 wires now and now you can read the pot in order to get positional feedback.... I thought I was clear... Regular servos are one way only (receive only) you have to hack them to get potentiometer feedback

This will give you a value of 1 - 255... Using the 'map' script function you can convert this value to a servo position of 1 - 180

PRO
Canada
#4  

You can do this with the servo's that come with Meccanoid as they have a potentiometer built in. I played with this for a while and got to the point where I could move a servo and relay position to another. Not directly supported by EZ-B but you put an arduino in the middle. https://synthiam.com/Community/Questions/7359&page=7

You could write a plugin for the EZ-B and do this directly. Second hand Meccanoids are on ebay etc for really cheap and make a great full size robot. You could have two, move one and the other one could mimic its moves.

PRO
Synthiam
#5  

The new ARC supports it if you want to make auto position. You’d need to make a plugin or write ezscript that reads the adc values and sets the servo positions accordingly. Then you simply run the Auto Position ControlCommand that creates a frame. This was demonstrated in the last ARC update.

#6  

Thanks that all makes sense.

#7  

Hi Dj.

I just wanted to tell you that your Ez-Robot Hd servos are the best of their type anywhere. They are awesome.

Any thought of making stronger servos for larger robots. Also make a servo with potentiometer feedback as discussed above. Thanks for all you are doing.

Belgium
#8  

potentiometer feedback sounds like a no-brainer to me; the pot is already in the servo, so afaics, its only a matter of adding one more wire?

If you then lay-out a next revision of the controller board so it has one analog pin next to each servo pin, you can use a 4 pin connector and you are all set. The controller would be remain compatible with other servos, but you'd have a nice differentiator for your own servo's (they already appear to be quite good from what I hear, and I will try them soon, but being good is not a "checkbox feature", where as having positional feedback is).