View Single Post
  #6   Spotlight this post!  
Unread 18-01-2017, 17:26
slibert slibert is offline
Software Mentor
AKA: Scott Libert
FRC #2465 (Kauaibots)
Team Role: Mentor
 
Join Date: Oct 2011
Rookie Year: 2005
Location: Kauai, Hawaii
Posts: 359
slibert has much to be proud ofslibert has much to be proud ofslibert has much to be proud ofslibert has much to be proud ofslibert has much to be proud ofslibert has much to be proud ofslibert has much to be proud ofslibert has much to be proud ofslibert has much to be proud of
Re: Mecanum Drive control

Quote:
Originally Posted by JohnGilb View Post
Our team took a fairly simple approach with regards to controlled mecanum drive.
  1. Measure our angle relative to the field
  2. Measure our instantaneous velocity

For (1), We used a highly accurate gyro. Today, the navX-MXP is a great choice.

For (2), we put three "follow wheels" on the robot to measure our velocity relative to the floor. These were small omniwheels sprung to press against the carpet with encoders on them.

We then broke mecanum drive into two components - rotation and translation.

The rotational PID attempted to keep robot heading constant unless the driver indicated a change via joysticks.

The translational PID compared the ideal velocity (from the driver's joysticks) to the actual robot X/Y velocity.

Between these two, we had a "rotational intent" and "translational intent" that were fed into the WPILib mecanum library.

This ended up being a good approach for us, since we didn't need to worry about wheel slip - the follow wheels were very accurate throughout the match. (This approach doesn't work as well when the playing field isn't level).

By applying PID on the total output of the system (i.e. how exactly is the robot moving) we were able to account for drift, slip, X/Y friction asymmetry, weight distribution, etc... with this one solution.
This is a really sweet solution.

Is there any mechanical design info or pictures you can post of the spring-loaded omniwheels you're using?
Reply With Quote