Rover v1 is a differential drive: two powered wheels and a caster. Not because it’s the most capable geometry, but because it’s the one that gives clean odometry with the least that can go wrong.
Two wheels, two encoders, and the kinematics fit on an index card. That means the state estimate is honest from day one, which is exactly what you want while you’re still learning to trust your own stack.
The payoff is portability. The ros2_control interface I write for v1 (the same command and state topics) ports straight onto v2. The hardware underneath changes completely; the software contract doesn’t.
v1 is a rehearsal you don’t throw away.