I was watching James Bruton's video on his spherical omniwheeled robot and he was explaining how to go directly sideways. He explains this from 6:09 to 7:06. I didn't understand how the velocity of the wheels not facing the direction of movement move exactly the cos(60). I kind of get how the yaw force from the directional wheel need to be counteracted by the other 2 wheels so each wheel spins at half the velocity of the directional wheel but how does this have to do with the cos(60)? Can someone please explain the math behind this?

enter image description here


1 Answer 1


I think this is not really difficult trigonometry. Suppose we want the robot to move in a forward direction? We need to use the two front motors. (I tried to sketch this out in the pictures, I will now explain all this scribble). Due to the fact that the motors are not at right angles to the axis we need, therefore, we need to feed the motors a little higher speed so that it travels at the axial speed we need. To calculate how much you need to increase the speed for the motors so that the axial speed is necessary for us, we need trigonometry. enter image description here

Imagine that we need to move forward at an axial speed of 10. What speed must be applied to the left and right motors so that the entire robot moves forward at a speed of 10? Let's find out. X is the required axial speed. The front wheels are off-axis by 30 degrees. The side is adjacent, so we take the cos of 30 degrees. We get 10 / cos(30) is approximately 11.54. But we have two motors, so we just halve the speed and feed the motors. (I do not take into account the direction of rotation here).
Now it's more interesting how to move to the sides? In this case, all motors must move in the same axial direction. Let's start with the back motor. It stands parallel to the axis we need, so we don't need to change its speed. Well, just split it in half, because the top and bottom parts of the robot must move at the same speed.
enter image description here Now the front motors. They are located at an angle of 60 degrees to the desired axis. The side is again adjacent, we take the cosine. Next, we take half of the required speed, divide it by cosine 60, then divide it in half again, because there are two motors in front and that's it. Well, an example. If we want to move at a speed of 10 to the side, then we need to apply speed 5 to the back motor, and 2.5 to each of the front ones.
So that's why there is a cos(60).

  • $\begingroup$ Bravo, an amazing answer. Thank you so much. $\endgroup$ Commented May 26, 2021 at 14:38

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.