The encoder is part of the drive belt hub and is directly connected to the wheels via 2 level planetary gear reducing system. The motor connects via the belt. There is 0 slip between the encoder and the wheel (however, you can have slippage on the wheel and the floor). You get 800 ticks per wheel revolution. Then wheels are ~ 2.5" diameter, and 200mm circumference, you get around 40 counts per CM. To problem with the Roomba's and the inaccurate encoders are the fact they get dirty, wheel slippage, and the way the Roomba Micro returns the information back to the user via it's interface... You don't get direct PID control of the motors.