Currently I am building a robots with 2 incremental encoders with a optical mice sensor. The reason to install a optical mice sensor is to provide better feedback when slippage happen on the encoders.

I wonder if I could apply a kalman filter to get a better distance feedback with these 2 kinds of sensors? Especially when the control input is unknown?(For example I push the car with my hand, but not applying a voltage to the motors)

I have read some examples to use kalman filter (gyro+accel / encoder+gps), either one of the variable used is in absolute measurement, while in my case, two feedbacks are dead-reckoning.

Any help is appreciated =] !!!!!


Using a Kalman filter will definitely work to estimate velocity. However you will not be able to estimate position with accuracy. This is because the position is unobservable with just encoders and an optical flow sensor. You will still be able to estimate position but the uncertainty will be unbounded.

  • $\begingroup$ Relative encoders can be used for measuring positions too. The downside is only represented by the need for an initial calibration to find out the proper zero. However, one can just decide to specify as zero the encoder starting value. $\endgroup$ Feb 10 '15 at 17:40
  • $\begingroup$ My incremental rotary encoder can be used to measure displacement by adding up all the relation distance retrieved. But the problem is inaccuracy during drifting. $\endgroup$
    – fasttony
    Feb 13 '15 at 2:17
  • $\begingroup$ Holmeski is correct; the position is unobservable - you can have an estimate of it that is based on the ever-increasing process covariance you specify - but you can't expect it to be accurate past a few cm of movement. $\endgroup$
    – Gouda
    Feb 15 '15 at 0:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.