Drivetrain Theoretical Model - RobotCasserole1736/RobotCasserole2015 GitHub Wiki
Wheel Type
The 2015 robot is equipped with five drive wheels. All drive wheels are "omni" wheels, similar to these
These wheels can be modeled as devices which can provide a force parallel to their rotational direction, but offer no resistance to motion in a perpendicular direction.
Furthermore, for all control strategies it is assumed the wheels do not slip relative to the ground.
Robot Wheel Configuration
For 2015, the wheels are arranged in a "U" configuration.
From the below image, it can be seen that wheels A, C, D, and E will provide force enabling forward and backward motion, while wheel B can provide a force causing side-to-side motion.
Model for Wheel Forces
Since wheel sets (A, D) and (C, E) are tied together to a single gearbox, we will assume a simpler model of the drivetrain, wherein each wheel group exerts a point force at some location relative to the robot's center of mass. The magnitude of each force is assumed to be proportional to the motor command set in software.
As seen here, wheel set (A, D) has been combined into motor command M1, (C, E) has been combined to M2, and B is tied to M3. A positive motor command on any of M1, M2, and M3 will exert a force in the illustrated direction.
Inducing Motion through Application of Force
Different combinations of M1, M2, and M3 can induce non-zero forces in any direction. In addition, the fact that all forces act off the center of mass allows for rotation.
Running any single motor in forward or reverse will yield the following motions:
- +M1 = Forward traversal, clockwise rotation
- -M1 = Reverse traversal, counter-clockwise rotation
- +M2 = Forward traversal, counter-clockwise rotation
- -M2 = Reverse traversal, clockwise rotation
- +M3 = Right traversal, clockwise rotation
- -M3 = Left traversal, counter-clockwise rotation
It is assumed that the net motion of the robot is equal to the sum of the net induced motions of all motors.
For example, Forward M1 produces forward traversal and clockwise rotation. Negative M2 produces reverse traversal, and clockwise rotation. If we command both positive M1 and negative M2, the forward and reverse traversals will cancel, while the clockwise rotation will add. Therefore, we expect little forward/reverse motion, but much clockwise rotation.
In the above example, the implication for control strategies is that if we wish to achieve clockwise rotation, one method to do so is to apply positive M1 and negative M2. The general design of our control strategies is to map any desired motion into motor commands.