Go to Post [Don't] celebrate mediocrity and want the losers to have an equal chance? Please. Work your butt off for six weeks, keep doing it until you have taught yourself how to be excellent, and go and instead of waiting for a handout. - DonRotolo [more]
Home
Go Back   Chief Delphi > Technical > Programming
CD-Media   CD-Spy  
portal register members calendar search Today's Posts Mark Forums Read FAQ rules

 
 
 
Thread Tools Rate Thread Display Modes
Prev Previous Post   Next Post Next
  #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: 361
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
 


Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT -5. The time now is 07:09.

The Chief Delphi Forums are sponsored by Innovation First International, Inc.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi