Go to Post In other words, don't count your chickens before they hatch, even if the shell seems broken. - Lil' Lavery [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

 
Reply
 
Thread Tools Rate Thread Display Modes
  #1   Spotlight this post!  
Unread 18-01-2017, 15:39
JohnGilb JohnGilb is offline
Programming Mentor, Drive Mentor
FRC #0488
 
Join Date: Mar 2011
Rookie Year: 2003
Location: Redmond, WA
Posts: 116
JohnGilb has a spectacular aura aboutJohnGilb has a spectacular aura aboutJohnGilb has a spectacular aura about
Re: Mecanum Drive control

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.
Reply With Quote
  #2   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
  #3   Spotlight this post!  
Unread 19-01-2017, 14:26
JohnGilb JohnGilb is offline
Programming Mentor, Drive Mentor
FRC #0488
 
Join Date: Mar 2011
Rookie Year: 2003
Location: Redmond, WA
Posts: 116
JohnGilb has a spectacular aura aboutJohnGilb has a spectacular aura aboutJohnGilb has a spectacular aura about
Re: Mecanum Drive control

Sadly, right now the only image I can find is pretty bad (attached). You can barely see 2 of the 3 follow wheels near the center of the chassis. All the spring attachment points and encoder mounts are occluded.

I'll have to poke some of the people who have CAD access to see if they can share anything. =]
Attached Thumbnails
Click image for larger version

Name:	SideProfile.jpg
Views:	103
Size:	39.0 KB
ID:	21580  
Reply With Quote
  #4   Spotlight this post!  
Unread 20-01-2017, 09:59
TylerHarmon's Avatar
TylerHarmon TylerHarmon is offline
Registered User
no team
 
Join Date: Jan 2016
Rookie Year: 2014
Location: Westminster, CO
Posts: 25
TylerHarmon is an unknown quantity at this point
Re: Mecanum Drive control

Do not use encoders on mecanums. It will not work. Mecanum wheels slip, which completely destroys the value/quality of the ticks that your encoder returns. How many times a mecanum wheel turns cannot directly be translated into distance. Again, don't try to use encoders it will not work.

If you put a gyroscope on your robot, and you know the direction that you want to be going, you could use a PID loop to keep the robot on the heading. All you would need to do is set the PID's setpoint to the angle that the robot should be at, and that should compensate for a lot of drift.

Good luck,

-Tyler
Reply With Quote
  #5   Spotlight this post!  
Unread 20-01-2017, 10:07
AriMindell AriMindell is offline
Registered User
FRC #1389 (The Body Electric)
Team Role: Programmer
 
Join Date: May 2016
Rookie Year: 2015
Location: Maryland
Posts: 28
AriMindell will become famous soon enoughAriMindell will become famous soon enough
Re: Mecanum Drive control

Quote:
Originally Posted by TylerHarmon View Post
Mecanum wheels slip, which completely destroys the value/quality of the ticks that your encoder returns. How many times a mecanum wheel turns cannot directly be translated into distance. Again, don't try to use encoders it will not work.
So I agree with this assertion for trying to determine the position of the robot using encoders, but what I meant was using encoders to ensure that all of the motors are actually spinning the same speed (rather than just recieving the same voltage) for this, I think encoders can be adequate, since slipping does not come into play between the motor and the wheel, only later.

In other words, there is very little error in the encoder reading of the wheel angle relative to the robot (maybe some backlash in the gearbox) however I agree that there is a large amount of error in the encoder reading of the robot position relative to the field. Correct me if I'm wrong, but I think that since we are looking to use the first one, encoders are acceptable.
Reply With Quote
  #6   Spotlight this post!  
Unread 21-01-2017, 13:26
TylerHarmon's Avatar
TylerHarmon TylerHarmon is offline
Registered User
no team
 
Join Date: Jan 2016
Rookie Year: 2014
Location: Westminster, CO
Posts: 25
TylerHarmon is an unknown quantity at this point
Thumbs up Re: Mecanum Drive control

Quote:
Originally Posted by AriMindell View Post
So I agree with this assertion for trying to determine the position of the robot using encoders, but what I meant was using encoders to ensure that all of the motors are actually spinning the same speed (rather than just recieving the same voltage) for this, I think encoders can be adequate, since slipping does not come into play between the motor and the wheel, only later.

In other words, there is very little error in the encoder reading of the wheel angle relative to the robot (maybe some backlash in the gearbox) however I agree that there is a large amount of error in the encoder reading of the robot position relative to the field. Correct me if I'm wrong, but I think that since we are looking to use the first one, encoders are acceptable.
Ah, I see what you mean. I think that could work; if you are only looking at the rotations per wheel and not necessarily how far the wheel drives on the floor, you could get more useful data.

However, if your goal is to drive straight, I would suggest using a gyroscope, because even if you drive all 4 (or 8?) mecanums at the same RPM, they still will likely not operate identically to each other because of various conditions like the consistency of the floor that could cause the rollers to spin more/less.

All that said, the main use of encoders is to see how far a spinning motor or axel has moved (and at what speed), so I still can't recommend using encoders with mecanums because they simply, by design, do not give very useful data. Even if you just looked at how far they wheels turned, that data, while perhaps being accurate, would not be very useful.
Reply With Quote
  #7   Spotlight this post!  
Unread 20-01-2017, 15:57
Ether's Avatar
Ether Ether is offline
systems engineer (retired)
no team
 
Join Date: Nov 2009
Rookie Year: 1969
Location: US
Posts: 8,126
Ether has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond repute
Re: Mecanum Drive control

Quote:
Originally Posted by TylerHarmon View Post
Mecanum wheels slip, which completely destroys the value/quality of the ticks that your encoder returns. How many times a mecanum wheel turns cannot directly be translated into distance.
Whenever I see someone post "Mecanum wheels slip" I always wonder what they think that means.


Reply With Quote
  #8   Spotlight this post!  
Unread 20-01-2017, 16:33
Oblarg Oblarg is offline
Registered User
AKA: Eli Barnett
FRC #0449 (The Blair Robot Project)
Team Role: Mentor
 
Join Date: Mar 2009
Rookie Year: 2008
Location: Philadelphia, PA
Posts: 1,116
Oblarg has a reputation beyond reputeOblarg has a reputation beyond reputeOblarg has a reputation beyond reputeOblarg has a reputation beyond reputeOblarg has a reputation beyond reputeOblarg has a reputation beyond reputeOblarg has a reputation beyond reputeOblarg has a reputation beyond reputeOblarg has a reputation beyond reputeOblarg has a reputation beyond reputeOblarg has a reputation beyond repute
Re: Mecanum Drive control

Quote:
Originally Posted by Ether View Post
Whenever I see someone post "Mecanum wheels slip" I always wonder what they think that means.
Well, their effective COF is decreased by a factor of 1/sqrt(2), so I suppose they are more prone to actually slipping.
__________________
"Mmmmm, chain grease and aluminum shavings..."
"The breakfast of champions!"

Member, FRC Team 449: 2007-2010
Drive Mechanics Lead, FRC Team 449: 2009-2010
Alumnus/Technical Mentor, FRC Team 449: 2010-Present
Lead Technical Mentor, FRC Team 4464: 2012-2015
Technical Mentor, FRC Team 5830: 2015-2016
Reply With Quote
  #9   Spotlight this post!  
Unread 20-01-2017, 17:28
Ether's Avatar
Ether Ether is offline
systems engineer (retired)
no team
 
Join Date: Nov 2009
Rookie Year: 1969
Location: US
Posts: 8,126
Ether has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond repute
Re: Mecanum Drive control

Quote:
Originally Posted by Oblarg View Post
Well, their effective COF is decreased by a factor of 1/sqrt(2), so I suppose they are more prone to actually slipping.
Is that what you meant, Tyler? They're more prone to slipping in a pushing match or hard acceleration? But most of the time, if you're careful, they won't slip?

Or did you mean they slip all the time, which completely destroys the value/quality of the ticks that your encoder returns, and therefore how many times a mecanum wheel turns cannot directly be translated into distance?



Reply With Quote
  #10   Spotlight this post!  
Unread 21-01-2017, 13:30
TylerHarmon's Avatar
TylerHarmon TylerHarmon is offline
Registered User
no team
 
Join Date: Jan 2016
Rookie Year: 2014
Location: Westminster, CO
Posts: 25
TylerHarmon is an unknown quantity at this point
Re: Mecanum Drive control

Quote:
Originally Posted by Ether View Post
Is that what you meant, Tyler? They're more prone to slipping in a pushing match or hard acceleration? But most of the time, if you're careful, they won't slip?

Or did you mean they slip all the time, which completely destroys the value/quality of the ticks that your encoder returns, and therefore how many times a mecanum wheel turns cannot directly be translated into distance?



Hi Ether,

When I say that mecanums slip, what I mean is that the rollers on mecanums do not consistently spin. While you can control how far a mecanum wheel spins, the free-spinning rollers that make up the wheel do not regularly spin.

In both pushing matches and hard acceleration, the rollers on mecanum wheels tend to spin in irregular ways, which essentially results in an inconsistent measure of speed and position.

I think that mecanums can be very useful for strafing and maneuverability, but trying to precisely control their motion can be very difficult if not impossible because of the free-spinning rollers.
Reply With Quote
  #11   Spotlight this post!  
Unread 21-01-2017, 16:22
Ether's Avatar
Ether Ether is offline
systems engineer (retired)
no team
 
Join Date: Nov 2009
Rookie Year: 1969
Location: US
Posts: 8,126
Ether has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond repute
Re: Mecanum Drive control


Hi Tyler,

Thank you for taking the time to respond to my question.

Some of the things you wrote are still a bit ambiguous to me. I think it would be enlightening to discuss it further. Would you be interested in doing that? I don't want to pester you if you don't want to do that.


Reply With Quote
  #12   Spotlight this post!  
Unread 21-01-2017, 20:40
berkleyfanatic's Avatar
berkleyfanatic berkleyfanatic is offline
Registered User
FRC #0247 (Da Bears)
Team Role: Leadership
 
Join Date: Mar 2016
Rookie Year: 2014
Location: Michigan
Posts: 16
berkleyfanatic is an unknown quantity at this point
Re: Mecanum Drive control

In 2015 my team used encoders and a gyro for mecnuam and I'm pretty sure it worked out good for us
Reply With Quote
  #13   Spotlight this post!  
Unread 21-01-2017, 21:01
AriMindell AriMindell is offline
Registered User
FRC #1389 (The Body Electric)
Team Role: Programmer
 
Join Date: May 2016
Rookie Year: 2015
Location: Maryland
Posts: 28
AriMindell will become famous soon enoughAriMindell will become famous soon enough
Re: Mecanum Drive control

Quote:
Originally Posted by Ether View Post

Tyler,
Some of the things you wrote are still a bit ambiguous to me. I think it would be enlightening to discuss it further. Would you be interested in doing that? I don't want to pester you if you don't want to do that.

I, for one, would love to see that discussion
Reply With Quote
  #14   Spotlight this post!  
Unread 22-01-2017, 00:26
Ether's Avatar
Ether Ether is offline
systems engineer (retired)
no team
 
Join Date: Nov 2009
Rookie Year: 1969
Location: US
Posts: 8,126
Ether has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond repute
Re: Mecanum Drive control

Quote:
Originally Posted by AriMindell View Post
I, for one, would love to see that discussion
OK, I'll kick it off with this.

If you make certain simplifying assumptions (which under certain adverse conditions may not be too realistic; more on this if there is interest), mecanum wheels do not "slip" unless they are torqued so hard that they lose traction. And yes, they lose traction more easily than normal wheels because of the nature of the reaction forces between the floor and the rollers.

Under these assumptions, the rollers are rolling, not slipping. The rolling of the rollers is what makes mecanum do what it does.

The computation to turn a driver command of a simultaneous combination of forward/reverse plus strafe_right/left plus rotate_CW/CCW into four wheel speeds is called inverse kinematics. The four wheel speeds resulting from this computation will cause the desired robot motion, if the resulting reaction forces between the roller and floor are less than the available traction so that the rollers roll without slipping.

On the other hand, taking 4 instantaneous measured wheel speeds (one for each wheel) and turning them into the corresponding instantaneous robot motion (forward/reverse plus strafe_right/left plus rotate_CW/CCW) is called forward kinematics.

If the rollers are not slipping, it is possible to do the forward kinematic computation. And in theory, you could integrate the resulting instantaneous robot motion over time to find the robot position and heading. I do not know if any teams have done this with a fruitful degree of success.



Last edited by Ether : 22-01-2017 at 00:47.
Reply With Quote
  #15   Spotlight this post!  
Unread 22-01-2017, 01:06
Oblarg Oblarg is offline
Registered User
AKA: Eli Barnett
FRC #0449 (The Blair Robot Project)
Team Role: Mentor
 
Join Date: Mar 2009
Rookie Year: 2008
Location: Philadelphia, PA
Posts: 1,116
Oblarg has a reputation beyond reputeOblarg has a reputation beyond reputeOblarg has a reputation beyond reputeOblarg has a reputation beyond reputeOblarg has a reputation beyond reputeOblarg has a reputation beyond reputeOblarg has a reputation beyond reputeOblarg has a reputation beyond reputeOblarg has a reputation beyond reputeOblarg has a reputation beyond reputeOblarg has a reputation beyond repute
Re: Mecanum Drive control

I could be wrong, but I believe he's suggesting that mecanum rollers are prone to "sticking" and not rolling freely (this would be consistent with my experience of certain brands/models of mecanum wheel). Under these conditions, the wheels of a strafing mecanum robot could be said to "slip," and throw off the correspondence between encoder readings and movement.
__________________
"Mmmmm, chain grease and aluminum shavings..."
"The breakfast of champions!"

Member, FRC Team 449: 2007-2010
Drive Mechanics Lead, FRC Team 449: 2009-2010
Alumnus/Technical Mentor, FRC Team 449: 2010-Present
Lead Technical Mentor, FRC Team 4464: 2012-2015
Technical Mentor, FRC Team 5830: 2015-2016
Reply With Quote
Reply


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 15:31.

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