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?
$\begingroup$ See also this question: robotics.stackexchange.com/questions/7829/… $\endgroup$– Ben ♦May 26, 2021 at 12:06
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.
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
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.
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
$\begingroup$ Bravo, an amazing answer. Thank you so much. $\endgroup$ May 26, 2021 at 14:38