Previously, every VRC team implementing odometry with tracking wheels (otherwise known as dead wheels) have used the quadrature encoders to gather their measurements. To those familiar with the algorithm this is a no-brainer. You need 360° tracking, high refresh rates, and good resolution. These encoders have a 10ms refresh rate with the V5 brain through the ADI port and measure 360 ticks/rotation or 1°/tick. This is good, and a lot better than the 20ms for the new rotation sensor.
The trade you make by using the rotation sensor, now that it’s released, is you half your rate, but gain 100x more resolution (360° vs 360.00°). I’ll leave arguments over whether this is a worthwhile trade to other threads. What I’m proposing is a 3rd option that takes the best of both, adds a bit of complexity in, but results in an overall better result.
The new potentiometers are a perfect candidate for use on tracking wheels. Continuous rotation, 333° sensing range, 12 bit precision, and run off the 3-Wire ports.
These sensors return [0,4096) over [0,333), giving us ≈12.3 ticks/degree of resolution, they update every 10ms, and all they need is minimal logic to swap between two sensors to avoid the 27° dead zone as they rotate.
So long as we orient the internals of the potentiometers opposite of each other, guaranteeing both dead zones are as far apart as possible, we give ourselves more than enough buffer to ensure we never spin into a dead zone before switching. You’re welcome to double check my math, but on a 350 RPM 4" wheel drive (1400π inches/minute) with these sensors mounted to a 2.75" wheel, the maximum degrees/10ms window is ≈30.546° which can never cross both dead zones so long as you don’t screw up orientation. When it comes to implementing the switching in code, simply alternating the sensor once it is 50° from it’s deadzone on both sides provides ample buffer and minimal complexity.
Obviously a major priority for this all is the space tracking wheels take up, but using two of these potentiometers doesn’t take up more space than a quadrature encoder or rotation sensor. Excluding hardware these are <1/2 the height of the quadrature encoders and ≈1/2 the height of the rotation sensor. Therefore, with hardware they are better than or equal to the alternatives when it comes to space requirements. In the quick build I made here not much time was put into minimizing space, but easy changes to start with are switching from 2 external collars to 1 internal collar, using thin nylocks, and the wires can be bent back quite a bit to further lower the profile.
So, in summary, these new potentiometers introduce a new alternative for tracking wheels. An alternative that offers 12x the resolution of the traditional method, and 2x the refresh rate of the alternative offered by the rotation sensors. They take up just as much or less space, and they don’t add all that much complexity to the code. Overall they seem like an extremely attractive option.