Go to Post There is almost always more than one solution to any engineering problem. One part of elegant design is picking the one that makes the most sense for a particular design problem, even if that means "breaking" some normally established "rules". - Jeff Pahl [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
  #16   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
  #17   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: 25
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
  #18   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,102
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
  #19   Spotlight this post!  
Unread 22-01-2017, 01:06
Oblarg Oblarg is online now
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,113
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
  #20   Spotlight this post!  
Unread 22-01-2017, 01:16
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

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.


Sure, if you want to discuss it further we can. My main point is that the rollers on mecanum wheels...
... freely spin, which allows a robot to strafe, but results in inconsistent data when used with an encoder.
Reply With Quote
  #21   Spotlight this post!  
Unread 22-01-2017, 11: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: 25
AriMindell will become famous soon enoughAriMindell will become famous soon enough
Re: Mecanum Drive control

Quote:
Originally Posted by TylerHarmon View Post
Sure, if you want to discuss it further we can. My main point is that the rollers on mecanum wheels...
... freely spin, which allows a robot to strafe, but results in inconsistent data when used with an encoder.
Ether posted the following code for determining robot position based on the wheel velocities of mecanum wheels in another thread:
Code:
FWD = r*(w1+w2+w3+w4)/4

STR = r*(w1-w2+w3-w4)/4

Wv  = (1/k)*(w1+w2-w3-w4)/4

r is wheel radius
k is |trackwidth/2| + |wheelbase/2|
w1,w2,w3,w4 are FL,BL,BR,&FR wheel speeds in rads/sec
Wv is robot clockwise rotation rate in radians per second
The implicit assumption is that the velocity vector applied to the robot by a mecanum wheel spinning at constant velocity is constant.

are you arguing that the velocity vector created by a mecanum wheel spinning at a constant velocity is not constant or predictable, therefore that equation provides an unreliable estimate of robot position?
Reply With Quote
  #22   Spotlight this post!  
Unread 22-01-2017, 21:32
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 AriMindell View Post
Ether posted the following code for determining robot position based on the wheel velocities of mecanum wheels in another thread:
Code:
FWD = r*(w1+w2+w3+w4)/4

STR = r*(w1-w2+w3-w4)/4

Wv  = (1/k)*(w1+w2-w3-w4)/4

r is wheel radius
k is |trackwidth/2| + |wheelbase/2|
w1,w2,w3,w4 are FL,BL,BR,&FR wheel speeds in rads/sec
Wv is robot clockwise rotation rate in radians per second
The implicit assumption is that the velocity vector applied to the robot by a mecanum wheel spinning at constant velocity is constant.

are you arguing that the velocity vector created by a mecanum wheel spinning at a constant velocity is not constant or predictable, therefore that equation provides an unreliable estimate of robot position?
I understand all of this logic, but it just doesn't work in practice. You simply cannot achieve the precision of tank drive with mecanum wheels because the rollers on mecanum wheels sometimes spin and sometimes do not. In other words, there is a large amount of slop in the system that cannot be removed with programming.

If you show me an example of you consistently driving a set distance and/or turning a certain amount without a gyroscope, only with encoders then I will accept that mecanums can be well controlled with encoders. However, based on the mechanical nature of mecanum wheels, such motion cannot practically be controlled.
Reply With Quote
  #23   Spotlight this post!  
Unread 22-01-2017, 21:36
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

Yes, that is what I'm saying. The force vectors are not reliable in practice, only in theory. The variable "rolling" of the rollers causes this effect. Because those force vectors change (not only in magnitude, but also in direction) you simply cannot achieve precise motion control of a robot running on mecanums.
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 23:54.

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