Tuesday, February 19, 2008

The Project

My project for the 2008 FIRST Robotics Competition season: Build and program a skateboard that runs Mecanum drive. I was given a budget, and I imposed deadlines. Some tasks are much harder than they seem.

For those that don't know, Mecanum drive is a drive system that relies on a specific type of wheel to move in all directions. Forward, backward, left, right, a combination thereof. When programmed correctly, Mecanum can even "frisbee", or turn while driving in a particular direction.

With this maneuverability comes a new way to move a robot: field-oriented drive. Field-oriented drive means no matter which way the bot is facing, pushing forward on the joystick makes the bot move up the field, and pushing left on the joystick always makes the bot move to your left across the field. Compare this to robot-centric drive, the traditional control system. Push up on the joystick, the bot will move in the direction it considers forward. If the bot is turned to the left 90 degrees, and told to go forward, it will move left across the field, because the robot's forward is pointing to the field's left.

For those that don't quite understand field-oriented vs. robot-centric drive, I'll see if I can get a better explanation up in a while. Until then, just trust me that it's a good thing to have.

I had it driving as of last week Saturday. Forward, backward, strafing, and turning worked. Frisbeeing came along Sunday, if I recall correctly. It has some drift depending on the exact maneuver, and it doesn't drive as fast sideways as forward. I'm tracing most of this back to the motors, but my parents think it won't drive as fast sideways because of the nature of Mecanum. Could be, but I don't see how the physics works out for that.

I had 1.875 people working on it at once. These might have been mentors, fellow team members, mentors from other teams, ex-mentors, pretty much anyone I could justify borrowing. There is no way I could have gotten this far as fast as I did without them.

This post probably leaves a lot of unanswered questions. Some I will answer in future posts (I know there will probably be at least one more post today), others I will need comments asking them before I answer them. So, if you have a question, hold on to it for a while, and see what else I post. If I don't answer it in a couple of days, post a comment.

No comments: