BLUF (bottom line up front): For mecanum drive, it’s real easy to code up field-centric drive as an option after getting robot-centric drive to work, and then use the one that works best for the combination of your driver, your robot, and your anticipated gameplay.
Thanks for the kudos. The 2015 game, Recycle Rush, with no defense, was a great opportunity for teams to explore mecanum drive. We thought our mecanum drivetrain worked very well for our 2015 game strategy.
It’s practically trivial to have field-centric controls on a mecanum drive robot. After determining the commanded direction vector from the operator’s controls (that’s the hard part, which has to be done already), one simply rotates the vector by the robot’s current field-centric heading (the gyro value). For the actual code, see our mecanum code from 2015, as linked above.
In 2015 with our mecanum drive, we had an OI button that could switch between the sets of controls to allow drivers to experiment with either.
The above pair of comments are important to consider together. The first one faults mecanum drivers for not making sufficient use of mecanum capabilities. That’s a readily-apparent common issue, especially for drivers that are accustomed to driving a tank-drive robot.
However, the second post is just as important, and it’s not just about saving current – it’s about the **speed **of getting from point A to point B! flemdogmillion’s point is particularly important to remember for drivers for whom the mecanum robot is the first one they’ve driven (and thus doesn’t have to unlearn “tank drive habits”) - there are times that it is better to drive the mecanum robot like a tank drive robot!
In particular, mecanum robots strafe much slower than they drive forwards and backwards.
What the speed difference means to the driver is that if the robot is currently pointed perpendicular to the field, and wants to move nearly all the way down the field, the fastest way to get to the other end of the field is not to just strafe 40 feet sideways (which would make “strong use” of the mecanum capability). The critic from the stands, seeing the mecanum bot driven like “a tank drive with expensive wheels” in this circumstance in order to get downfield as quickly as possible, might think the driver was wasting their mecanum capability, without realizing that the driver just executed the fastest maneuver possible for their drivetrain.
For short sideways movements, mecanum strafing is clearly much faster and a big win for mecanum. For long-distance field traversal, driving straight forwards is the fastest way to get there, whether the robot is mecanum or tank.
The crossover point will vary from situation to situation. We found in 2015 that for our mecanum robot that year, there were definitely parts of our routine for which it was faster to get our mecanum robot from point A to point B by “driving like a tank” instead of making “strong use of the [mecanum wheels] every time we move.” There were also short strafing movements that were a key part of our approach to harvesting the landfill and fundamental to our robot design.
But, what does this have to do with field-centric drive? Well, the use of field-centric drive insulates the driver from some of the awareness of whether the robot is strafing and/or going forwards or backwards, making it difficult to drive the mecanum robot in such a way that takes advantage of the strafing capabilities when it matters, yet minimizes the disadvantage of the slow strafing speed when traveling long distances.
For what it’s worth, in the 2015 game with our robot, our drivers found that field-centric drive enabled a novice driver to become a reasonable driver pretty quickly and easily. However, to get to the level of “excellent driver”, the robot-centric drive mechanism was better. Having the field-centric drive abstract away the knowledge of whether the robot needed to move sideways or forwards (but just know that it needed to move laterally across the field) enabled the driver to progress to a reasonable level very quickly, but that knowledge needed to be taken into consideration by the driver in order to decide when to “drive like a mecanum” and when to “drive like a tank.” Using robot-centric drive all the time built that awareness & skill in the driver more easily than that same awareness and skill was developed with field-centric drive, at least in our limited usage.
Your mileage may vary and a lot of the determination of robot-centric vs. field-centric is related to driver preference and prior learned styles.
Bottom line: for mecanum drive, it’s real easy to code up field-centric drive as an option after getting robot-centric drive to work, and then use the one that works best for the combination of your driver, your robot, and your anticipated gameplay.