Odometry using wheel encoder with no differential drive

I am currently looking for a way to do odometry using wheel encoders, for a car that has no differential drive. The two rear wheel would rotate at the exact same speed. I have been looking everywhere for an answer, but unable to find any. I am starting to think that this is not a possible thing to do. I would be very grateful if anybody can point me in the correct direction.

• how does the vehicle turn? Apr 17, 2020 at 16:29
• Do you mean a car with ackermann steering but a locked differential (solid rear axle)?
– Ben
Apr 19, 2020 at 12:29

So long you have a sensor to read the angle of the steering wheel, you can use the bicycle kinematic model to compute odometry for an Ackermann drive platform, e.g. a car:

\begin{align} \\ \dot{x} & = v \; cos(\psi + \beta) \\ \\ \dot{y} & = v \; sin(\psi + \beta) \\ \\ \dot{\psi} & = \frac{v}{l_r} sin(\beta) \\ \\ \beta & = tan^{-1} \left ( \frac{l_r}{l_f + l_r} tan(\delta_f) \right ) \end{align}

Where $$v$$ is linear forward velocity, $$\dot{x}$$ and $$\dot{y}$$ are the linear velocities alongside the Cartesian axes, $$\psi$$ and $$\dot{\psi}$$ are the heading angle and angular velocity, $$l_f$$ and $$l_r$$ are the distances from the center of mass to the front an rear axles, and $$\delta_f$$ is the steering wheel angle.

Assuming $$v$$ and $$\delta_f$$ are retrieved using encoders or other sensors, the vehicle pose can be approximated by:

\begin{align} \\ x_t & = x_{t - 1} + \dot{x} \; \Delta t \\ \\ y_t & = y_{t - 1} + \dot{y} \; \Delta t \\ \\ \psi_t & = \psi_{t - 1} + \dot{\psi} \; \Delta t \\ \\ \end{align}