# Swerve drive 4, 2+2?

Recently, I’ve been looking into omnidirectional drive systems (as defined in the whitepapers by Ian Mackenzie). It seems that my team is leaning toward prototyping a crab/swerve drive for next year.

`````` There seems to be disagreement in terminology in this area, as some consider swerve as a subset of crab and vice versa.  As clarification, I consider crab drive to steer all 4 wheels dependently, keeping them all at same angle (often by running one chain around the whole thing).  I consider swerve to be a case where either all four wheels turn independently of each other or when two pairs of whells turn independently of the other pair.
``````

As this has come around, I have a few questions:

1. On a 2+2 Configuration, is it usually arranged front/back, left/right, or does it really not matter?
2. Are there advantages in terms of performance of a crab as compared to a swerve and vice versa (except weight and complexity of building and programming)?

Well I mean, through code, you can make a 2+2 function the same as a 4 wheel dependent steering system

Just remember, if you’re using a 4 wheel dependent system, your robot will always maintain the same orientation wrt the field.

That is not quite true is it? I mean, you can still drive the cim’s on different victors and could possibly have a 4wd?

-Vivek

p.s. I think our team is going to prototype a swerve this summer too.

While it is true that a 2+2 can function as a 4 wheel, this is made with the assumption that your sensors are reading somewhat accurately (although that would probable be somewhat reasonable) otherwise you might find your wheels at different angles.

Also, while a 4 wheel dependent may maintain orientation on the field by itself (assuming that the motors run correctly), if one happens to be umm… pushed, the orientation may be messed up. However, I suppose it would work to do a crab with a turret to compensate for this.

In response to your first question, if you drive the front and back seperately you could turn on a point like a wide 4 whel drive would. If you turn the front and back wheels seperately, you can simulate car-type steering. An added bonus sf a 2 + 2 is that one pair of wheels can be turned perpendicular to the other, so you can park.

In any case, 1075 tried a 2+2 configuration swerve drive in 2006, and it was a NIGHTMARE. We broke pots, we spent forever trying to code it, and at the end of the day, it wasnt very effective. I would sooner spend the time on a Holonomic/Mecanum drivetrain.

Team 1625’s swerve drive this year has 4 wheel dependent steering, however the front and back sets of wheels are powered separately, 2 cims for the front, 2 cims for the back, through AM transmissions. For our first 2 regionals, if we found ourselves off orientation with the field, we’d have to stop, put it in tank drive (press a button, wheels turned sideways), and slowly turn to reorient. During our 2nd regional, for our 3rd regional, we developed “drift buttons” these buttons would cut power to either the front or the back gearbox so that we could reorient on the fly. It worked amazingly well once our drivers got used to the idea. There’s just something cool about watching your bot come around the back corner off kilter and gradually straighten out on the fly to come into your homezone straight away.

You also have to factor in how your wheels are powered. Some teams (ie 118) power all four wheels together (chains are run from a single transmission to all four wheels). Some teams (ie 111, at least in 2007, haven’t seen their 08 bot in person) power each wheel individually. Some teams (ie 1625) power the wheels in sets of 2.
There are many different ways to create a swerve system, and each has different methods to rotate. Some depend on changing the powers of wheels to rotate (like a tank drive), others depend on re-orienting the wheels (similar to Akerman steering). Others cannot (such as 118) rotate at all, and use a turreted manipulator to compensate.
If you run vector calculations you can figure out what forces you need to make your robot rotate, and you can create a system to produce those forces.

I’m with Sean here. There are many different types of swerve/crab drive.

Methods of driving and turning the wheels (non-split or split):
-Coaxial–the same axle used for turning the wheel assembly also has an axle to power the wheel (118, 148)
-Independent–each wheel has its own motor, no matter what is used to turn the assembly (16)

Then you get the other tricks–how to turn the wheel assemblies.
-Independent–each assembly has its own motor for turning. I believe 16 did this in 2006 with their three-wheel swerve.
-All together–often used with coaxial swerve. The true swerve drive; you can’t turn your robot (well, you could, but it would need some interesting drive software) so you need a turret if you are going to need to score at other angles. (118, 148)
-Half-and-half–two turning motors, one per side/end (depending on setup). (111)

Then you get into some more interesting setups. Team 1565 had a cool one this year–it’s not a true swerve, but it almost acts like one set up to only go at right angles when turning.

basically it comes down to do you want to be able to translate and rotate simultaneously or can those be seperate?

answer that question and it will narrow your field of what you need and how complex you must get…

With a 4WD independent swerve, the software is A LOT harder. Even with a well tuned PID, and good control logic, the robot will still tend to drift, but it is mroe maneuverable than any form of crab (with the exception of 111’s implementation).

The theory behind 4WD independent swerve is usually rotation. The robot always rotates about a point somewhere in space. If the point is “infinitely” far away, the robot goes straight.

When you use all 4 wheels linked, you can translate around the field just fine (118 style) but you cannot turn with ease.

I don’t know if it’s better to link left/right or front/back, but I know 111 links diagonals. By using drop-down casters in front, they can have the ability to have the maneuverability of a full-swerve system.

We use a 4 wheel independently steered system. It takes a lot of work to do, but it’s very fun and maneuverable. Unfortunately, these systems are rather heavy and motor-greedy. We use our 6 most powerful motors (4x CIM, 2x FP) and the two globes on the drive. It’s a lot of powerful motors to lose, but it’s definitely worth it.

that means one motor spins them all, they are mechanically synchronized, i case anyone was wondering.

Is there a difference in pairing the wheels as left/right rather than front/back?

pairing for the actual drive of them? or for steering

We did front and back for the actual drive, so it was easier to do “tank mode” efficiency wise.

but steering wise that depends on what you want the front of your bot to be
skinny ways or wide ways. With dual steering motors you can setup your bot to drive like a car or quadrasteer

A 2+2 drive with the front/back pairing cannot go sideways and turn at the same time (unless you independently power the wheels and let them skid, sort of defeating the point). It can go forwards/backwards and turn, or strafe.

A 2+2 drive with the left/right pairing cannot go forwards/backwards and turn at the same time. It can strafe and turn, or go forwards/backwards.

Pairing the front and back sets of wheels is therefore usually the more intuitive option.

I would definitely go with a 2+2 steering style as opposed to all wheels steered dependently. Our team used a swerve style drivetrain this year, and we used a effective 2+2 system. One disadvantage to the dependent steering is that it makes changing the orientation of the robot very difficult. If you want to have a tank steer mode, you must make sure that the treads on your wheels have a low coefficient of friction. Even with the 2+2 steer this is a problem we encountered this year. In fact, we had to change our treads between the Pittsburgh and Boston regionals in order to allow our tank steer mode to work (even though we never actually used it in competition). The 2+2 steer was effective for Overdrive because we had a variety of useful steering modes.
1. Front steering (for normal “car” style drive)
2. All wheel steering (for very tight turns. This was useful when coming around the center divider)
3. Swerve steering (for translating sideways without changing the orientation of the robot relative to the field)
4. Tank steering (the standard form of steering)

With a system where all wheels are steered together, you only get steering mode number 3. Unquestionably there are great advantages to choosing 2+2. We did encounter problems, however. The robot could not drive straight because the potentiometers did not provide a high enough resolution to make the robot align the wheels perfectly opposite to one another. We are going to experiment with a gyroscope in order to rectify this.
One option I would not leave out of the equation is steering each wheel independently. This would eliminate the need for tank steer and provides almost limitless potential for the robot’s performance. We plan to do something like this next year.
Another thing to keep in mind is the location of your powertrain. If you have a centrally located powertrain, you can save weight and add a multi-speed transmission (another thing we plan to do next year). Otherwise you could mount the motor vertically and use beveled gears. We chose to do a direct drive style this year (you can see our hinged bumpers, they pop up every time we go into 4-wheel or swerve mode) this does tend to leave the motors exposed, however.
Obvioulsy there are other things that must be considered when choosing a drivetrain, but these are some of the basics. It is something into which ALARM puts much thought and energy.

This year our team went with mecanum wheels and I was the driver this year and I found them to be very helpful, alot. Easy to move around obstacles and other robots. I would go with mecanum wheels over omni and we went with the AndyMark 8" wheels. Talking with other teams that went with the 6" ones weren’t as satisfied. To check out some videos of our bot moving in all directions there are videos of it on our website at http://www.whitebearlakerobotics.com

If all of your wheels are moving indepentently then you have all the capability of a 2+2 and more, using a 2+2 you have all the capability of a 4 and more. I would consider that none of these are any more complex than the others and go with each module being moved indepentently. An easy way to make this work is to vertically mount an FP motor and attach it to the wheel module and do this to all of the modules. Make sure the wheels are straight when you start a match because if they are a little off it can mess up hybrid mode. My team ran into this issue, it wasn’t that bad in tele op but we had a good hybrid mode, but if the wheels weren’t perfectly aligned the robot would cross one line and before it could get a second teh unstraightenedness would make it go into a wall.(it didn’t help that our sonars died in eliminations)

A 2+2 system with dependent steering and drive is a lot simpler than a fully independent system. On a fully independent system, you would need to do feedback on 4 modules instead of 2. That means another 4 PIDs (2x forward 2x reverse). It also makes the precise control logic a lot more complicated.

A big challenge for us in previous years was to pack both the motor and any transmission inside the module itself, so we do not suffer efficiency loss through use of bevel gears. That, IMO, was one of the biggest challenges for us in these years. Additionally, remember it is vital to keep the wheel base as large as possible, and therefore, the modules as small as possible.