|
Re: Semi-Omni-Arcade Drive
I worked with #1988 doing this two years ago. It's a great concept in that it doesn't require drivers to mentally put themselves "in the robot" to operate the controls. People are amazingly good at this, but it's a coordinate system transform that consumes a fair amount of the brain's "cpu cycles". Our experience was IMO sufficient to validate the concept but the real-life results were severely limited by several factors.
The biggest of these was dealing with the practical constraints of the robot drive system. We used a diamond configuration with differentially steered drive wheels on the side and undriven (slightly raised) omni wheels front and back for balance. The robot was relatively small and essentially round. Though we tried to optimize for manuverability (spin in place, etc) this sort of drive (as do most) requires that the body of the robot be rotated in order to change direction. You don't want to stop to make small course corrections, but you have to stop (or very nearly so) to make large ones. So making it work without slowing down too much means some fairly sophisticated balancing of deceleration/rotation/acceleration rules.
In practical tems the hardest part of this turned out to be dealing with rotational inertia/momentum issues. Going, for example, from high speed at 0 degrees to high speed at 90 degrees means stopping (or almost), rotating exactly the required amount, and taking off again, all as quickly as possible. Linear deceleration/acceleration are not to hard to get right, but making a quick rotation to exactly the right heading without overshoot, undershoot, or time-consuming fine adjustment is not so easy: you have to account for stuff like polar moment of inertia, drivetrain backlash, etc. All possible, but not trivial. We got it working reasonably well on our practice robot, but when the real hardware was done (night before ship, natch) enough things were different that the tuning didn't work well. We didn't have time to readjust the software and the robot turned out to be troublesome in competion.
We used a gyro to track position, and gyro drift was not a big problem. We did relatively straightforward smoothing/averaging and got a system that would stay within a few degrees if you spun the robot through several rotations and back, more than you'd likely ever do in a match. There's also a simple and effective low-tech way to handle drift if it does happen: if you find that "straight downfield" is really going a few degrees to the left, just grab the base of the joystick and rotate it a bit to the right. We replaced the handle on the stick with a straight round handle to keep this from bothering the driver.
My takeaways from the experience were that 1) it's a killer concept if effectively executed 2) it's really hard to effectively execute on a robot without some kind of omnidirectional drive. I want to try this again sometime on a holonomic drive robot, but wouldn't particularly recommend it on more conventional platform.
|