Rotary encoder for small robot arm servo - Page 1
Forum section: electronics / projects

author: anvoice
author_rank: Frequent Contributor
timestamp: February 04, 2018, 07:03:31 am
content: Hello, I'm designing a small robot arm for which I'd like to use DIY brushless servos. Since I'd like to be as economical as possible on this prototype, I'm hoping to use cheap rotary encoders (such as the possibly-fake ebay Omron ones). However, everything I can find that is relatively inexpensive appears to be a shafted encoder, and I just don't see how I can actually drive my robot with that thing strapped to the motor shaft via huge coupling, and brushless double-shafted motors are much rarer than single shaft ones. There are some really nice-looking encoders such as the RLS RM08 which seem like they could work by gluing them to the back side of a single-shaft motor, but those are way over my budget. Finally, the "Omron" encoders are only rated for 6000rpm, and I'd like to use a motor at 12V or so, which effectively rules that out as the speed of a typical motor at that voltage is usually higher.I did find something interesting at Mouser: the AMT102-V is reasonably priced, has 2048 pulses per revolution, a max speed of 7500rpm, and it appears to mount on the shaft base, leaving the rest of the shaft free to drive my robot.Is that a reasonable choice for an encoder, or am I missing something important that makes the Omron the better choice? The only advantage I see to the Omron is its wider range of power supply voltage (5V to 24V, which is nice admittedly). Am I missing something important? Is there another encoder that someone could recommend that is perhaps better for my intended use than the ones I mentioned? Thank you for reading.Small edit: looks like the AMT102-V has a resolution of only 512 ppr at 15000 rpm, which I'll probably have to settle for since motors like to go fast at 12V. Still, it seems like the best option for now.

author: cowana
author_rank: Frequent Contributor
timestamp: February 04, 2018, 10:20:35 am
content: What are your requirements for speed and resolution (pulses per rotation)?Generally encoders for a robot arm either go directly on the motor before the gearbox, or after the gearbox on the arm itself.On the motorHigh speed requiredAs there is a large gear reduction to the arm itself, the resolution here can be very low - eg 2 to 16 pulses per revolutionEasy to construct with hall sensors and magnets, or opto-isolators and a slotted discOn the arm itselfMovement is slow (<100rpm)Measured after gearbox, so no additional backlash on actual positionRequired resolution is high - eg 1024 pulses per revolutionIt appears you are looking for very high speed, and very high resolution - if that's not actually what you need finding a solution could be much easier!

author: anvoice
author_rank: Frequent Contributor
timestamp: February 04, 2018, 10:48:30 am
content: I was thinking of a speed of around 12000rpm on the motor (less under load) at 12V. Assuming a reduction of about 200:1, the arm would complete one revolution for every 200 on the motor. That gives a resolution per degree of arm movement of 200 x R / 360, where R is the resolution of the encoder in pulses per second, if I mount it on the motor.If I mount it on the arm itself, as you mentioned, I'd need a much higher PPR resolution of the encoder to get the same angular resolution on the arm.Now to try to answer your question: I was assuming that I want as high a resolution as possible, since the spatial resolution of the arm assembly itself will be a (somewhat complicated) function of the angular resolution of the servos. e.g. if I have a 12 inch link, I would have a spatial resolution of (very roughly) 12 inches x (1 / angular resolution) x 2 Pi / 360 = 0.21 / angular resolution. If the resolution of the encoder is 512 PPR, this translates to a spatial resolution of about 0.0007363 inches for that link, which to me seems ok'ish. Maybe I'm too much of a perfectionist, but that or better is the number I was aiming for. So basically yes, I'd like to use a high resolution, high speed encoder on the motor itself, not on the arm.I'll still need endstops of course in order to keep track of position since these are incremental encoders.Edit: Found a 810KV inrunner motor that could be used at 12V for at least the base of the arm. Having more trouble finding smaller low KV inrunners (it's going to be a challenge mounting the encoder to an outrunner) for the other links. Don't think I need the big (36mm diameter, 57mm can length) motor for every part of the arm.