Go to Post The students who benefit from FIRST are the real "trophies". - David Brinza [more]
Home
Go Back   Chief Delphi > Technical > Technical Discussion
CD-Media   CD-Spy  
portal register members calendar search Today's Posts Mark Forums Read FAQ rules

 
Closed Thread
Thread Tools Rating: Thread Rating: 3 votes, 5.00 average. Display Modes
  #1   Spotlight this post!  
Unread 04-01-2015, 16:33
cad321 cad321 is offline
Jack of all trades, Master of none
AKA: Brian Wagg
FRC #2386 (Trojans)
Team Role: Alumni
 
Join Date: Jan 2013
Rookie Year: 2012
Location: Burlington, Ontario
Posts: 334
cad321 is just really nicecad321 is just really nicecad321 is just really nicecad321 is just really nice
mecanum wheel postioning

Yesterday while talking with one of my mentors about the use of mecanum wheels on our bot this year, he mentioned concern about whether the wheels must be configured in a square. I told him that I was pretty sure that we could have them in a wide configuration as well (to aid in turning) however I wanted to double check here.

Can I place mecanum wheels like this without doing mass amounts of math and programming to compensate:

|--------|

|--------|

Or Must they be square like this:

|--------|


|--------|

Last edited by cad321 : 04-01-2015 at 16:36.
  #2   Spotlight this post!  
Unread 04-01-2015, 16:37
EricH's Avatar
EricH EricH is offline
New year, new team
FRC #1197 (Torbots)
Team Role: Engineer
 
Join Date: Jan 2005
Rookie Year: 2003
Location: SoCal
Posts: 19,803
EricH has a reputation beyond reputeEricH has a reputation beyond reputeEricH has a reputation beyond reputeEricH has a reputation beyond reputeEricH has a reputation beyond reputeEricH has a reputation beyond reputeEricH has a reputation beyond reputeEricH has a reputation beyond reputeEricH has a reputation beyond reputeEricH has a reputation beyond reputeEricH has a reputation beyond repute
Re: mecanum wheel postioning

There should be no change with regards to the programming for a long, wide, or square robot. Ether, you want to chime in here?
__________________
Past teams:
2003-2007: FRC0330 BeachBots
2008: FRC1135 Shmoebotics
2012: FRC4046 Schroedinger's Dragons

"Rockets are tricky..."--Elon Musk

  #3   Spotlight this post!  
Unread 04-01-2015, 16:44
Sparkyshires Sparkyshires is offline
Registered User
AKA: Michael Shires
FRC #0384 (Sparky)
Team Role: Programmer
 
Join Date: Jan 2012
Rookie Year: 2006
Location: Virginia
Posts: 226
Sparkyshires is an unknown quantity at this point
Re: mecanum wheel postioning

From my experience, the only difference it will make is the side with the longer aspect ratio will be more difficult to move directly in that direction. For example:
|------------|

|------------|

would be more diffcult to drive straight vs. strafe left and right, while
|---|


|---|

would have much more difficulty strafing, and would be able to easily drive forwards and back.
__________________
"Measure with a micrometer, mark with chalk, cut with an axe."

Last edited by Sparkyshires : 04-01-2015 at 18:45.
  #4   Spotlight this post!  
Unread 04-01-2015, 16:48
Whippet's Avatar
Whippet Whippet is offline
MIT Class of 2020
AKA: Luis Trueba
FRC #4301 (New Tech Narcissists)
Team Role: Alumni
 
Join Date: Feb 2011
Rookie Year: 2011
Location: Cambridge, MA
Posts: 1,187
Whippet has a reputation beyond reputeWhippet has a reputation beyond reputeWhippet has a reputation beyond reputeWhippet has a reputation beyond reputeWhippet has a reputation beyond reputeWhippet has a reputation beyond reputeWhippet has a reputation beyond reputeWhippet has a reputation beyond reputeWhippet has a reputation beyond reputeWhippet has a reputation beyond reputeWhippet has a reputation beyond repute
Send a message via Yahoo to Whippet
Re: mecanum wheel postioning

Quote:
Originally Posted by Sparkyshires View Post
From my experience, the only difference it will make is the side with the longer aspect ratio will be more difficult to move directly in that direction. For example:
|------------|

|------------|

would be more diffcult to drive straight vs. strafe left and right, while
|---|


|---|

would have much more difficulty strafing, and would be able to easily drive forwards and back.
Also, keep in mind that this becomes fairly easy to compensate for with a gyro and field-oriented driving.
__________________
2010: FRC 3043, Build Assistant
2011: FRC 3043, Head of Minibot subteam; FLL 12762, Team Captain
2012: FRC 3043, Electrical; FLL 12762, Team Captain; FTC 5670, Team Captain
2013: FRC 4301, Electrical, Team Co-Captain
2014: FRC 4301, Electrical/Programming, Team Co-Captain
2015: FRC 4301, Electrical/Programming, Team Captain
2016: FRC 4301, Chief Technical Officer; FTC 10860, 10861, and 11004: Mentor. Winner, Hub City Regional (3310 & 4063)
  #5   Spotlight this post!  
Unread 04-01-2015, 17:06
cad321 cad321 is offline
Jack of all trades, Master of none
AKA: Brian Wagg
FRC #2386 (Trojans)
Team Role: Alumni
 
Join Date: Jan 2013
Rookie Year: 2012
Location: Burlington, Ontario
Posts: 334
cad321 is just really nicecad321 is just really nicecad321 is just really nicecad321 is just really nice
Re: mecanum wheel postioning

That is what I had thought. One other question is do both left wheels have to be collinear with each other, or can they be spaced apart so long as they are parallel.

-|--------|-

|----------|

or must they be like this:

|----------|

|----------|
  #6   Spotlight this post!  
Unread 04-01-2015, 17:18
Ether's Avatar
Ether Ether is offline
systems engineer (retired)
no team
 
Join Date: Nov 2009
Rookie Year: 1969
Location: US
Posts: 8,091
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 wheel postioning

Quote:
Originally Posted by EricH View Post
Ether, you want to chime in here?
Theoretically, if the wheel pattern is not square then trackwidth and wheelbase lengths should enter into the inverse kinematic computation if you want the rotate command to correspond with actual engineering units:

Code:

FrontRight = FWD - STR - K*omega

FrontLeft  = FWD + STR + K*omega

RearLeft   = FWD - STR + K*omega

RearRight  = FWD + STR - K*omega

... where:

FrontRight,FrontLeft,RearLeft,RearRight are wheel tangential speeds, ft/sec

omega is CW rotation around center of area, rad/sec

FWD and STR are driver commands, ft/sec

K is (trackwidth + wheelbase)/2, ft
WPILib and LabVIEW don't support this, so you would have to scale your rotation before calling these methods.

If you don't scale the rotation, it won't cause wheel scrub. It just won't correspond to the rotation you expected.


  #7   Spotlight this post!  
Unread 04-01-2015, 17:23
Ether's Avatar
Ether Ether is offline
systems engineer (retired)
no team
 
Join Date: Nov 2009
Rookie Year: 1969
Location: US
Posts: 8,091
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 wheel postioning

Quote:
Originally Posted by cad321 View Post
One other question is do both left wheels have to be collinear with each other, or can they be spaced apart so long as they are parallel.

-|--------|-

|----------|

or must they be like this:

|----------|

|----------|

The inverse kinematic computations in WPILib and LabVIEW expect the wheels to be colinear on both sides. A small non-colinearity would likely still work, but wouldn't be ideal.



Last edited by Ether : 04-01-2015 at 17:25.
  #8   Spotlight this post!  
Unread 04-01-2015, 19:20
Ether's Avatar
Ether Ether is offline
systems engineer (retired)
no team
 
Join Date: Nov 2009
Rookie Year: 1969
Location: US
Posts: 8,091
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 wheel postioning

Quote:
Originally Posted by Ether View Post
...if the wheel pattern is not square then trackwidth and wheelbase lengths should enter into the inverse kinematic computation if you want the rotate command to correspond with actual engineering units...
Here's a simple example. Suppose your bot has trackwidth 22 inches and wheelbase 26 inches and you want to create a special code to drive around in a 6 ft radius circle at 4 ft/sec speed (see sketch).

Code:
FWD = 4
STR  = 0
omega = 4/6
K = ( (22/12) + (26/12) ) / 2 = 2

FrontRight = FWD - STR - K*omega = 4 - 0 - 2*(4/6) = 2.67 ft/sec

FrontLeft  = FWD + STR + K*omega = 4 + 0 + 2*(4/6) = 5.33 ft/sec

RearLeft   = FWD - STR + K*omega = 4 - 0 + 2*(4/6) = 5.33 ft/sec

RearRight  = FWD + STR - K*omega = 4 + 0 - 2*(4/6) = 2.67 ft/sec
If you didn't take the wheelbase and trackwidth into consideration, the rotation would not match the forward speed and you wouldn't get the expected vehicle motion.

Of course, if the driver interface is simply going to be forward, strafe, and rotate commands, then it doesn't matter. The driver just adjusts the commands (after much practice!) to make the vehicle do what he wants.
Attached Thumbnails
Click image for larger version

Name:	circle_drive.png
Views:	38
Size:	7.1 KB
ID:	17738  
  #9   Spotlight this post!  
Unread 04-01-2015, 20:23
Ether's Avatar
Ether Ether is offline
systems engineer (retired)
no team
 
Join Date: Nov 2009
Rookie Year: 1969
Location: US
Posts: 8,091
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 wheel postioning


Here's another example.

Suppose you want to pivot the bot clockwise around the front right wheel (see sketch) at 90 degrees per second.

Trackwidth = W = 22/12 ft. Wheelbase = L = 26/12 ft.

Code:
ω = π/2 rad/sec

FWD = ω∙(W/2) ft/sec

STR = -ω∙(L/2) ft/sec

K = (L+W)/2
Attached Thumbnails
Click image for larger version

Name:	pivot.png
Views:	31
Size:	4.9 KB
ID:	17743  
  #10   Spotlight this post!  
Unread 12-01-2015, 12:03
goofy173's Avatar
goofy173 goofy173 is offline
Electronics Mentor
FRC #2867 (ElkLogics)
Team Role: Mentor
 
Join Date: Mar 2013
Rookie Year: 2014
Location: Elkhart
Posts: 51
goofy173 is a name known to allgoofy173 is a name known to allgoofy173 is a name known to allgoofy173 is a name known to allgoofy173 is a name known to allgoofy173 is a name known to all
Re: mecanum wheel postioning

Because of stability, I would space them as far from each other as possible. We have ours outboard of the KOP chassis but we'll be raising them up a little from the stock holes as the chassis is dragging just slightly on the scoring ramps.
__________________
  #11   Spotlight this post!  
Unread 12-01-2015, 13:59
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: 351
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 wheel postioning

In case you find a source code example helpful:

Here's a link to some java drive subsystem code that's based on Ether's Inverse Kinematics equations, there are some coefficients in there for the wheel base (length and width) as well as for wheel diameter that account for the issues being discussed.

This code also has optional field-oriented drive in it as well, and support for speed control via quadrature encoders ("traction control"). Team 2465 has found both of these to be helpful, and think they're useful for this year's game. This code is written to work w/black Jaguar motor controllers.

There are other examples posted on ChiefDelphi that you'll find, too.
  #12   Spotlight this post!  
Unread 12-01-2015, 17:24
idahorobot's Avatar
idahorobot idahorobot is offline
Registered User
FRC #2130 (Alpha +)
Team Role: Mentor
 
Join Date: Dec 2006
Rookie Year: 2005
Location: Idaho
Posts: 99
idahorobot is a jewel in the roughidahorobot is a jewel in the roughidahorobot is a jewel in the roughidahorobot is a jewel in the rough
Re: mecanum wheel postioning

Quote:
Originally Posted by slibert View Post
In case you find a source code example helpful:

Here's a link to some java drive subsystem code that's based on Ether's Inverse Kinematics equations, there are some coefficients in there for the wheel base (length and width) as well as for wheel diameter that account for the issues being discussed.

This code also has optional field-oriented drive in it as well, and support for speed control via quadrature encoders ("traction control"). Team 2465 has found both of these to be helpful, and think they're useful for this year's game. This code is written to work w/black Jaguar motor controllers.

There are other examples posted on ChiefDelphi that you'll find, too.
The link did not work.
  #13   Spotlight this post!  
Unread 12-01-2015, 17:40
markmcgary's Avatar
markmcgary markmcgary is offline
Software Mentor
FRC #4322 (Clockwork Oranges)
Team Role: Mentor
 
Join Date: Feb 2012
Rookie Year: 2012
Location: Fullerton, CA
Posts: 175
markmcgary is just really nicemarkmcgary is just really nicemarkmcgary is just really nicemarkmcgary is just really nicemarkmcgary is just really nice
Re: mecanum wheel postioning

Quote:
Originally Posted by idahorobot View Post
The link did not work.
How about this one?
  #14   Spotlight this post!  
Unread 12-01-2015, 17:54
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: 351
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 wheel postioning

Quote:
Originally Posted by idahorobot View Post
The link did not work.
Here's a direct link to the Drive.java file.

The previous link works for me, but it leads to a source code browse view, so you need to navigate around a bit to get to the Drive.java file above.
Closed Thread


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 06:27.

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