apollo@ecf.utoronto.ca (Vince Pugliese) (08/08/90)
assuming one is using optical encoders (with 2-phase output) to measure position of a (rotary) robotic joint, what should one use to then measure velocity?? two possibilities come to mind: 1) use the position encoders with some sort of digital differentiator 2) a specialized velocity encoder any ideas, suggestions, possibilities, clues as to the feasibility of the above. in fact any we would welcome any sort of discussion with regard to obtaining velocity information. thanks in advance apollo@ecf.utoronto.ca .vp
macminn@powertool.crd.ge.com (Stephen R MacMinn) (08/08/90)
In article <1990Aug7.205751.21206@ecf.utoronto.ca> apollo@ecf.utoronto.ca (Vince Pugliese) writes: >assuming one is using optical encoders (with 2-phase output) >to measure position of a (rotary) robotic joint, what should one use >to then measure velocity?? > >two possibilities come to mind: > >1) use the position encoders with some sort of digital differentiator This is pretty common. You could (for instance) just look at the frequency of the pulse train coming from one channel of your encoder, although that wouldn't give you direction. Its a little more tricky in your application because the joint probably spends a lot of time loitering near zero velocity. In that case there is a minimum speed that you can control to, determined by your encoder resolution, with a stable control system. >2) a specialized velocity encoder ...also pretty common. A DC tachometer is probably well suited to this application. If you wanted to change sensors, you could get both position and velocity information from a resolver with R/D converter at up to 16 bits of accuracy.
bkoball@cup.portal.com (Bruce R Koball) (08/09/90)
re: Vince Pugliese's inquiry on deriving velocity info from quadrature shaft encoders...SGS (and other semiconductor vendors) make a part called the L290 which takes two channels of shaft encoder input and produces a bipolar analog voltage whose amplitude is proportional to shaft speed and polarity to direction of rotation. This part was designed as part of a three chip set for small servomotor applications. The one draw- back is that it requires a shaft encoder which produces pseudo-sinusiodal output pulses of approx. +- 0.5v instead of the normal 0 to +5 TTL square wave pulses provided by garden variety encoders. Such analog output encoders are readily available, however, from a number of manufacturers including Sensor Technology, Sharp and others. The original application for this chip set was for servo control of daisy-wheel print heads. I have often encountered these type encoders in surplus stores. Bruce Koball Motion West 2210 Sixth Street Berkeley, CA 94710 415-540-7503 bkoball@cup.portal.com
jpexg@wheaties.ai.mit.edu (John Purbrick) (08/09/90)
In article <1990Aug7.205751.21206@ecf.utoronto.ca> apollo@ecf.utoronto.ca (Vince Pugliese) writes: > >assuming one is using optical encoders (with 2-phase output) >to measure position of a (rotary) robotic joint, what should one use >to then measure velocity?? 2-phase encoders can work reasonably well (Galil motion control, based in California somewhere, has a range of PC-based controllers which run servos using encoder-only feedback) though most companies sell encoder-plus-tachometer systems. One idea which I'd like to hear of someone trying is to use a 2-phase encoder with sinusoidal output, which actually means a sine and cosine. Take one of the phases and differentiate it using an op-amp circuit, then divide the result by the magnitude of the other phase. The result should be proportional to velocity, because in the case of the differentiated phase, the voltage would be V = A sin(w t), so d(A sin(w t))/dt = A w cos(w t) and the second phase would be V = A cos(w t) Hence dividing one by tother results in w. [V = voltage out for either encoder phase A = max voltage at peak of the sine/cosine wave w = rotation rate t = time (thus speed * time = present position)] This only works if the sine waves are pure, equal in magnitude and properly phased, which may not be true. Plus differentiating analog quantities is a famous way to get in trouble. John Purbrick jpexg@ai.mit.edu
nagle@well.sf.ca.us (John Nagle) (08/09/90)
This is a worthwhile area for exploration. We have direct-drive arms, so we should have direct-drive sensors, ones which produce useful position and velocity data while being rotated through small angles. DC tachometers are not useful at low angular rates, and adding a geartrain to support a tachometer is a messy solution; among other things, you would need antibacklash mechanisms. Shaft encoders have similar problems. Potentiometers seem an obvious choice, but they aren't a good solution. They tend to become noisy as they wear, and this can result in violent arm motions in a servo loop. Differentiating the output of a pot to get velocity is even worse; any noise indicates a big velocity change, and adding a low-pass filter introduces a phase lag. Variable capacitors are a good choice. These are the usual sensors in laser mirror deflection systems. Since there's no physical contact between the plates, the noise and wear problems of pots are eliminated. The usual circuts for sensing capacitor values produce a variable frequency as an output. This can be counted and used digitally with little difficulty. You can use a high frequency, megahertz if necessary, so that you can obtain frequent counter readings and difference for velocity data. Remember to use an enclosed variable capacitor with a grounded, conductive case, so that the readings aren't affected by nearby moving conductive objects. John Nagle
grege@gold.GVG.TEK.COM (Greg Ebert) (08/10/90)
Although non-digital, another method of measuring the rotational velocity is to measure the back-emf of the motor. I've seen this used in closed-loop analog systems for accurate speed control. A degenerate case is the detection of a 'motor-jam' condition. With cheap multichannel ADC's available, methinks this might warrant some consideration.
rick@ameristar (Rick Spanbauer) (08/10/90)
In article <19481@well.sf.ca.us> nagle@well.sf.ca.us (John Nagle) writes: >Remember to use an enclosed variable capacitor with a grounded, conductive >case, so that the readings aren't affected by nearby moving conductive >objects. > John Nagle John, I've got a couple of noisy var caps in my antenna tuner I would like to introduce you to ;-). The mechanical coupling to the variable element seems to have worn, resulting in noise when the shaft is rotated. Anyways, using capacitance to close the loop seems a reasonable solution. Check out the July 1990 Issue of Sky & Telescope for an application that uses a differential capacitative measurement to control the mirror in the Keck telescope. Neat idea! Rick Spanbauer
bkoball@cup.portal.com (Bruce R Koball) (08/10/90)
John Purbrick's suggestion of differentiating sinusoidal signals from a quadrature shaft encoder is precisely what the chip I described in my last posting does. The L290 Tachometer Converter is part of a three-chip set that implements a complete hybrid position/velocity servo system for small DC motors with a direct interface to a micro- processor controller. The L290 requires a shaft encoder with pseudo-sinusoidal outputs (in quadrature of course) of +-0.5V and is remarkably tolerant of phase jitter and amplitude ripple. The sinusoidal signals don't have to be very clean, in fact, most of the encoders I've seen that were designed for use with these chips produce a waveform closer to a triangle wave. The L290 implements the following function: ( dVb CA ) ( dVa CB ) Vtach = ( ----- * ---- ) - ( ----- * ---- ) ( dt |CA| ) ( dt |CB| ) where CA and CB are the two channels from the shaft encoder and Va and Vb are amplified versions of the same signals which are fed into an external RC differentiation network and then returned to the chip, multiplied by the sign of the opposite channel and differenced to produce the Vtach output. Some ripple is produced by this method but it is the 4th harmonic of the fundamental (input) frequency so it is relatively easy to filter out. The encoder signals are also fed into schmitt triggers with open collector outputs to square them up for interface to external logic (e.g. counters or microcontroller). The system does remarkably well even a low speeds and small angular displacements. The other two chips are the L291 DAC/Amplifier which provides a 5-bit DAC plus sign for velocity control, error amplifier and mode strobe input to switch between position and velocity mode. All six of these signals (5-bit DAC, sign, mode strobe) are TTL compatible and so can be driven directly from a microcontroller output port. The final chip is the L292 Switch mode Driver which provides an H-bridge PWM power driver (2A, 36VDC max) with appropriate level shifting, loop gain adj., and current sensing to drive a small motor from a single-ended supply. Bruce Koball Motion West 2210 Sixth Street Berkeley, CA 94710 415-540-7503 bkoball@cup.portal.com
cmcmanis@stpeter.Eng.Sun.COM (Chuck McManis) (08/11/90)
Another area you might consider is using simple inductors. A system which has as much resolution as you'd care to spend on it. The tecnique being to place an inductor on one section of the joint and a moving "core" (in the form of a conductive wire) on the other section. Energizing the inductor and then measuring the emf generated in the core. Note I've never actually implemented one of these so I don't have complete confidence in its viability but I don't see any obvious flaws in it. -- --Chuck McManis Sun Microsystems uucp: {anywhere}!sun!cmcmanis BIX: <none> Internet: cmcmanis@Eng.Sun.COM These opinions are my own and no one elses, but you knew that didn't you. "I tell you this parrot is bleeding deceased!"
jn163051@longs.LANCE.ColoState.Edu (Joel Nevison) (08/13/90)
In article <140483@sun.Eng.Sun.COM> cmcmanis@stpeter.Eng.Sun.COM (Chuck McManis) writes: > >Another area you might consider is using simple inductors. A system >which has as much resolution as you'd care to spend on it. The >tecnique being to place an inductor on one section of the joint and >a moving "core" (in the form of a conductive wire) on the other >section. Energizing the inductor and then measuring the emf generated >in the core. Note I've never actually implemented one of these so >I don't have complete confidence in its viability but I don't see >any obvious flaws in it. My first contribution, neat group! I have seen this implemented on a GCA stepper as velocity feedback to prevent the auto-focus from oscillating. They called it an LVTD which I believe stands for linear velocity difference transducer? Correct me someone. I don't believe the coil was energized, I think they had a magnet moving inside. This was measuring some fairly small velocities as the total travel was less than 1/2" and I never saw it move that distance faster than ~1/3 second (in failure mode). Normally it measured moves on the order of a millimeter. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | Substitution mass confusion / Joel Nevison | | Clouds inside my head / jn163051@longs.lance.colostate.edu | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
whit@milton.u.washington.edu (John Whitmore) (08/14/90)
In article <8441@ccncsu.ColoState.EDU> jn163051@longs.LANCE.ColoState.Edu (Joel Nevison) writes: > >I have seen this implemented on a GCA stepper as velocity feedback to >prevent the auto-focus from oscillating. They called it an LVTD which >I believe stands for linear velocity difference transducer? Correct me >someone. I don't believe the coil was energized, I think they had a >magnet moving inside. There is a position-measuring device called LVDT (Linear Variable Differential Transformer) which is used to measure distance displacement. Our machine shop has a gage using this sort of cell that gives about one microinch resolution. For velocity measurement, we use a Hewlett-Packard gizmo that looks similar, but the bead in the center is a permanent magnet; it is called an LV-Syn, or sometimes LVT (Linear Velocity Transducer). Our machine does Mossbauer measurements, requiring control of velocity to one part in 1000 of 1 mm/sec velocities. It works fine. I have seen similar linear velocity transducers (basically it's just a linear generator) in large hard disk drives, in the head assembly, also presumably to control seek speeds. Unfortunately, this sort of device fails at LOW velocities because of its inductive output impedance; the signal/noise ratio can be guaranteed worse than any given value for some sufficiently small velocity. Creep of the system becomes a problem (so the disk drives had ANOTHER feedback mechanism to control absolute positions). Since the original question was about controlling a rotational velocity (like in an arm joint), I wonder why no one has suggested looking at the motor's back EMF; it gives the same information as a separate electric generator would, and it's ALREADY built in. John Whitmore
bkoball@cup.portal.com (Bruce R Koball) (08/14/90)
The term LVDT mentioned by Joel Nevison stands for Linear Variable Differential Transformer. It typically consists of three windings and a movable core piece. The central, primary winding is excited by an AC signal, typically of several kHz. The two secondary windings are located on either side of the primary. The displacement to be measured is physically connected to the movable core. As the core moves, the coupling between the primary and the two secondaries changes. A phase detector is usually used to difference the two secondary signals and produce a DC output proportional to the core displacement. Its main advantages are excellent linearity and resolution. Bruce Koball Motion West 2210 Sixth Street Berkeley, CA 94710 415-540-7503 bkoball@cup.portal.com
n8243274@unicorn.WWU.EDU (steven l. odegard) (08/22/90)
I read about a new General Electric DC motor that uses back EMF as an signal to trigger the rotor or stator to switch electronically. As anyone used this system as a servo? -- --SLO 8243274@wwu.edu uw-beaver!wwu.edu!8243274 n8243274@unicorn.wwu.edu