The simplest velocity estimation method is the **Euler approximation** that takes the difference of two sampling positions divided by the sampling period. Typically the position measurements are taken with **encoders or resolvers** which contain stochastic errors which result in enormous noise during the velocity estimation by the Euler approximation when the sampling period is small and the velocity low [1] .

Different alternatives have been tried which utilise more backwards steps to reduce the noise but introducing a small delay. On [3] a first order adaptive method is shown which is able to vary the backward steps depending on the speed. Also, on [2] it has been found that 3 steps is the best for a sampling rate of 2500 Hz in their experiments with an encoder of 655360 pulses per revolution. They also implemented a Kalman observer and non-linear observers, obtaining the same results than an averaging of the Euler formula. On [4] a Kalman filter is tested assuming a normal distribution of the position error. On [1] a dynamic method which varies the samples used for averaging depending on the speed is developed with very good results. For example, given a desired relative accuracy of the velocity calculation, with encoder measurements by the formula below taken from [1] , it is possible to derive the required amount of time for obtaining a velocity measurement. This is assuming that the velocity is not calculated with two consecutive samples, but with two samples separated a certain number of backwards steps in order to increase the velocity resolution. For an incremental encoder with a resolution **R**, if the position **q(t)** is sampled with a sampling period **T**, and for k = 1, 2, …, the discrete sampled position at

time **kT** is given by **θ(k)**. The relative accuracy is given by:

Where is the real velocity and is the estimated with the measurements. For example, in order to obtain a relative accuracy of = 2%, = 100, i.e. 100 past pulses have to be traced back on the velocity calculation. If we want to achieve this with an encoder of 10.000 lines/rev, the elapsed angular space for 100 pulses would result to be: 3.6 °. With a motor running at 1 rpm, the required amount of time for completing that angular slot is 10 ms. This amount of delay is detrimental for a good bilateral performance.

[1] G. Liu. “On velocity estimation using position measurements”. In: Proceedings

of the american control conference, Anchorage, AK May 8-10. 2002, vol. 2, pp. 1115-

1120.

[2] A. Jaritz, M.W. Spong. “An experimental comparison of robust control algorithms on a direct drive manipulator”. In: IEEE Transactions on Control Systems

Technology. 1996, vol.4, no.6, pp.627-640. doi: 10.1109/87.541692

[3] F. Janabi-Sharifi, V. Hayward, C-S.J. Chen. “Discrete-time adaptive windowing for velocity estimation”. In: IEEE Transactions on Control Systems Technology.2000, vol.8, no.6, pp.1003-1009. doi: 10.1109/87.880606

[4] P.R. Belanger, P.Dobrovolny, A. Helmy, and X. Zhang. “Estimation of angular

velocity and acceleration from shaft-encoder measurements.” The International Journal

of Robotics Research. 1998, vol. 17, no. 11, pp. 1225-1233

## Leave a Reply