During the build season, I programmed a basic field-centric mecanum drive on a previous robot. Our driver had driven in both Logomotion and Rebound Rumble using a robot-centric mecanum drive. His biggest complaint about the field-centric drive was that the robot could never move as fast strafing as it did moving forward and backward. For example, when the robot was facing forward and he wanted it to go left, the field-centric code would strafe left, and if he wanted the robot to go forward, the robot would drive forward. The problem came from a difference in maximum velocities. The strafing would always move more slowly at max than the forward/backward movement.
To the best of my knowledge, this is an omni-directional drive issue unique to mecanum drive. I don’t think that either swerve or omni drive encounter this because there is no appreciable difference in force when moving in distinct directions for these drive systems.
Our driver ended up using standard robot-centric drive because he was often moving at full speed, and he wanted to know how fast the robot would move when going forward/backward or left/right. His concern came from the fact that, with field-centric mecanum, he would not know at what velocity the robot would drive when he pushed the joystick completely in one direction if he didn’t know exactly which way he was facing.
I’ve been dreaming up a field-centric mecanum drive system that nullifies this problem, and I wanted to see if anyone has done anything similar. Essentially, the driver would use only one joystick, and the direction that he moves the joystick, the robot will move on the field (field-centric). In addition to moving in that direction however, the robot would also slowly turn to face that direction (or 180 degrees off) simultaneously. The advantage to standard mecanum omni-directional drive would be that the robot should be able to move more quickly when the front-back line of the wheels is parallel to the desired direction of motion.
For example, when the robot is facing forward, and the driver pushes the joystick left, the robot will:
- strafe left and turn CCW simultaneously
- continue moving left relative to the field as in standard omni-directional drive but simultaneously continue turning CCW
- eventually stop turning and drive straight relative to the robot
Essentially, this drive system would allow maximum velocity in any direction (after a short period of time) while also taking advantage of mecanum’s unique ability to move and turn the robot at the same time. It also opens up more capability for the driver with a simplification down to a single joystick instead of two. The driver could also have preset angles programmed into buttons which would cause the robot to switch from my drive system to basic field-centric so that the robot could line up for things like the feeder station or shooting.
In another light, this is similar to a 6-wheel robot field-centric code, in which the robot first turns to the desired direction and then drives that way. The only distinction would be that the mecanum wheels could have the robot already moving in that direction while it is turning.
Has this been done before?