I think there is some confusion about drive systems… and locomotion in general.
On a plane (i.e. the surface of the playing field), describing an object’s position at any instant in time requires three coordinates. For example, a robot can have an x-location, y-location, and direction (angle) which the robot is pointing. You can not describe the robot’s position correctly with less than three coordinates. It is also possible to describe position with polar coordinates and other coordinate systems.
Now, over time, a robot can alter these coordinates. Typically, a robot can move forward and backwards. In other words, it can translate along one axis (move in the direction of the front of the robot). Most robots can also turn at the same time (adjust the angle which their robot is pointing). These two “degrees of freedom” are what you get out of a tank-drive system, which most teams choose to use. The number of degrees of freedom your robot has is defined as the number of coordinates (x-translation, y-translation, and z-rotation) that your robot can adjust simultaneously. A tank drive might be able to turn and translate in another direction, but it can not translate sideways, thus it does not have the third degree of freedom.
Typically, an omni-directional drive system is defined as a drive system with three degrees of freedom. Very few (I can only think of one last year) teams ever have three degrees of freedom. Tank drive only has two. In fact, even if you can turn all your wheels in any direction you like (i.e. swerve drive) you still have only two degrees of freedom, because at any instant in time your wheels are pointed in a given direction, and your robot is restricted to that linear and angular movement, giving you only two degrees of freedom. However, the advantage of the swerve is that you have the ability to change the direction of your prismatic (translational) degree of freedom with respect to your robot. If you can change wheel angles almost instantaneously, your robot is almost as good as one that can go accelerate in any direction at any angle, thus you virtually have three degrees of freedom. Robots that have a set of wheels that drop down perpendicular to your main set also only have two degrees of freedom, since at a given instant in time they can only move in one translational direction and rotate.
Now, a crab-walking robot could be built such that it has three degrees of freedom, but it would be difficult and almost certainly very very slow. The efficiency of an electric motor is far better than the efficiency of a crab-walking mechanism.
There only two mechanical ways I know of to get three degrees of freedom… meaning at any time, you can have any x-acceleration, any y-acceleration, and any angular acceleration. One of these I have posted a brief paper on how to get started on applying it to a FIRST robot (in the white papers) and the other is a little bit abstract and not too likely to work on a FIRST robot. One team had omnidirectional last year, and I forget the number, but I think it was a first or second year team. Basically it entails having three or four omniwheels perpendicular to the center of the robot. With three wheels, each unique combination of independent torques to the three wheels results in a unique direction and angular velocity of the robot.