I'm working on a vehicle that uses four independent motors to control both the steering and speed for each wheel. I'm using Ackermann steering, and I've already got the steering angles down for the wheels based on Ackermann geometry.

I've also realized though that all the wheels are traveling at different angular speeds. I'm assuming, based on the angles at which the front tires make during a turn that I have to also calculate and assign the correct rotational velocities to the motors during a turn as well. Is this true, or do the Ackermann steering angles take care of this already (I'm assuming you need the correct the combination of both angles and speed to prevent slipping)?

If so, I'm really having trouble calculating the angular speed value for each wheel.

Ackermann Model

I've been trying to do some math off this image of Ackermann steering but I can't seem to solve for the angular speed of each wheel.

Any help is greatly appreciated, thanks!


2 Answers 2


Since the purpose of Ackermann steering is to keep all wheels moving tangentially on circles around the same turning center, you just have to calculate angular velocity of the whole vehicle from its translational velocity, then calculate the translational velocities of all wheels, and finally calculate the angular velocity of each wheel.

Suppose $v_{car}$ is the translational velocity of the car as measured in the center of the fixed rear axle. Then obviously from elementary kinematics $$\omega_{car} = \frac{v_{car}}{R_{ICR}}$$ Each wheel's center of rotation moves with this same angular velocity $\omega_{car}=\omega_{wheel,z}$ on its own circle around ICR. So in order to get the respective translational velocities of the wheel centers, you just rearrange and reapply the above formula accordingly: $$v_{wheel}=\omega_{wheel,z}\cdot R_{wheel}=\omega_{car}R_{wheel}=v_{car}\frac{R_{wheel}}{R_{ICR}}$$ For the rear right wheel you have $R_{wheel,RR}=X$, for the rear left wheel $R_{wheel,RL}=X+D$ for the front right wheel $R_{wheel,FR}=\sqrt{X^2+L^2}$ and for the front left wheel $R_{wheel,FL}=\sqrt{(X+D)^2+L^2}$.

Now that you have the translational velocity of each wheel's center with respect to ICR, you can calculate its "rolling" angular velocity. If the wheel diameter is $\Delta$, you get (the abundant usage of the rotation formula might get tedious...) $$\omega_{wheel,y}=2\frac{v_{wheel}}{\Delta}=2v_{car}\frac{R_{wheel}}{R_{ICR}\cdot \Delta}$$ If you don't want to refer to the car velocity and just want "balanced" wheel velocities, you simply get the ratios $$\frac{\omega_{wheel,y,1}}{\omega_{wheel,y,2}}=\frac{R_{wheel,1}}{R_{wheel,2}}$$ The wheel's angular "rolling" velocities behave like their distances from ICR, which might start looking familiar to you...

  • $\begingroup$ Thanks so much, this makes a lot of sense! What are you referring to though with the subscript of y and y,2, or wheel,2, what does this mean? $\endgroup$
    – Aze
    Mar 11, 2021 at 22:12
  • $\begingroup$ y indicates a rotation around the y axis (the "rolling" of the wheels) as opposed to a rotation around the z axis (the steering movement itself). 1 and 2 are just placeholders for two arbitrary wheels (for example 1=FR=front right, 2=RL=rear left) and the respective distances from ICR. $\endgroup$
    – oliver
    Mar 12, 2021 at 7:51

Here is the easy way to do this.

In a mechanically driven vehicle, a differential gear is used to allow the driven wheels to share the same torque while the wheels rotate at different speeds.

For a multiwheeled vehicle executing a turn with all wheels driven, each wheel will want to rotate at a slightly different speed and so the front axle and rear axle will each have a differential gearset and there will be yet another differential gearset splitting the power output of the engine between the front and rear axles.

Now we note that a DC motor produces a torque output in response to a voltage input. This means that for small rotational speed differences, if we supply the same voltage to each of the four motors turning each of the four wheels (i.e., the four motors are wired in parallel), each motor is free to rotate at its own preferred speed while all four motors develop the same torque or nearly so.

This is exactly what you want for a four-wheel-drive vehicle driven by four independent electric motors. No algebra required!

Then you implement traction control electronically by monitoring the speed of each wheel and prohibiting any wheel from overspeeding (due to slippage) beyond the maximum percent amount it would possibly encounter in normal use (outside wheel, minimum radius turn).

  • $\begingroup$ Wow that's pretty intuitive! So if I just applied the same voltage to each of the wheel motors, the motors would automatically spin at the correct speed? I don't need to pass in or solve for a speed? $\endgroup$
    – Aze
    Mar 11, 2021 at 23:13
  • $\begingroup$ yep. easy to test the idea with radio controlled car parts too. and fun. $\endgroup$ Mar 11, 2021 at 23:28

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.