Xref: utzoo comp.robotics:312 comp.lsi:1146 sci.electronics:13443 Path: utzoo!attcan!uunet!clyde.concordia.ca!mcgill-vision!snorkelwacker!ai-lab!jpexg From: jpexg@wheaties.ai.mit.edu (John Purbrick) Newsgroups: comp.robotics,comp.lsi,sci.electronics Subject: Re: velocity sensing for robotic joints Summary: Maybe sine-wave output encoders Message-ID: <9781@rice-chex.ai.mit.edu> Date: 9 Aug 90 04:56:42 GMT References: <1990Aug7.205751.21206@ecf.utoronto.ca> Reply-To: jpexg@rice-chex.ai.mit.edu (John Purbrick) Organization: MIT Artificial Intelligence Laboratory Lines: 39 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