3Wheel OmniDrive
We will adopt the convention in the diagram on the right for our omni-drive robot.
Angles are positive when anti-clockwise
X-direction is positive when moving right side way
Y-direction is positive when moving forward
Note that the 3 wheels need not be exactly 120 deg apart.
In our WSS Robot,
M0 is M2 in diagram
M1 is M3 in diagram
M2 is M1 in diagram
An omni-drive robot can move in any direction while rotating itself.
For ease of control, we can resolve the robot translational and rotational velocities into it's X, Y and W components, as shown in diagram on the right.
We can then easily derive the wheel velocities w.r.t. the robot velocities in term of it's x and y components.
Each wheel movement can also be resolved into two perpendicular components. One is the wheel direction, the other the roller direction.
In the diagram, Vx is the robot X-speed component and Vy is the robot Y-speed component
Note that the equations in the above diagram apply to any of the wheels of the omni-robot. Hence, we can relate the robot wheel velocities to the robot velocities using the the matrix equation below:
Note :
R is the distance of the omni-wheel from robot center.
w is the angular velocity in rad/sec.
Excercise:
Create a program to implement above equation. Display result and verify manually.
Modify above program to control your robot. The wheel speed, S1 to S3 will be the input to your 3 wheels PID control system.