Non-GPS navigation indoors with encoders: possible?

There is already a PR about this. I don’t know the code internals; only think that corrections should minimally consist of only changing a letter (…_ms to …_us).

I also observe that in libraries/AP_WheelEncoder/WheelEncoder_Quadrature.cpp, AP_WheelEncoder_Quadrature::pin_ab_to_phase(…) can be written as:
// convert pin a and pin b state to a wheel encoder phase
uint8_t AP_WheelEncoder_Quadrature::pin_ab_to_phase(bool pin_a, bool pin_b)
{
return (uint8_t)(pin_a?(pin_b?2:3):(pin_b?1:0));
return (uint8_t)pin_a << 1 | (uint8_t)pin_b;
}
more compact and easier to understand; however there are no byte savings.

Apparently, the second return, which is equivalent in logic (seems an alternative), is useless since it will not be reached, but if first return is commented and the second return is used, the code size is reduced in 24 additional bytes. Again: I don’t know the code (perhaps the programmer has a good reason for first alternative), but it is related to quadrature signals, which change thousands of times per second. Code size reduction probably implies faster code, which is important here.