View Single Post
  #15   Spotlight this post!  
Unread 17-03-2010, 14:29
Jared Russell's Avatar
Jared Russell Jared Russell is offline
Taking a year (mostly) off
FRC #0254 (The Cheesy Poofs), FRC #0341 (Miss Daisy)
Team Role: Engineer
 
Join Date: Nov 2002
Rookie Year: 2001
Location: San Francisco, CA
Posts: 3,078
Jared Russell has a reputation beyond reputeJared Russell has a reputation beyond reputeJared Russell has a reputation beyond reputeJared Russell has a reputation beyond reputeJared Russell has a reputation beyond reputeJared Russell has a reputation beyond reputeJared Russell has a reputation beyond reputeJared Russell has a reputation beyond reputeJared Russell has a reputation beyond reputeJared Russell has a reputation beyond reputeJared Russell has a reputation beyond repute
Re: fine control of robot with mecanum wheels

The holonomic drivebases that we have used (in 2007 and 2008) had similar kinematics to mecanum drives, and we were also dissatisfied (at first) with the controllability of the drive at all speeds, and especially at low speeds.

The following solutions helped to get us under control, and each of the aforementioned robots managed to win a regional:

1. Make absolutely sure that all wheels are always touching the ground. Ideally, you should have some sort of suspension or at least a non-rigid frame that lets you deal with non-flat carpet.

2. Use a gyro to help the robot drive straight. We used a proportional-only controller with a feed forward component (meaning we did the holonomic drive kinematics to generate the command, and then added the output of a P controller with "yaw command" as setpoint and gyro rate as input). In general, we found that encoders on the wheels did help, but not nearly as much as the gyro (because of wheel slip, non-level surfaces, etc.) Also, this was back in the IFI era, so CAN speed control was not an option.

3. Limit each joystick to a maximum of two axes. We tried using a 3 axis (X,Y,Twist) joystick with our holonomic drive, but despite plenty of practice our drivers always seemed to do better with a two stick setup without a twist axis (one stick for X/Y and another that just uses the X axis for twist, or one stick for Y and twist - e.g. tank drive - and the other for strafing). Simply put, we found that too often the driver would accidentally use the twist axis when they didn't mean to.

4. Making sure that weight is distributed evenly! The vector math assumes all wheels have equal normal force - if your robot is far off from this assumption, your mileage will vary.