bump-free mecanum wheels

There’s two things that are necessary to have bump-free mecanum wheels:

  1. The contact surface of consecutive rollers must overlap.
  2. The contact surface of the roller must correspond to the radius of the wheel.
    It’s the second one that I’m having trouble creating a drawing for, and I’m not sure that it’s possible with Inventor. (Note that all drawings shown are in orthographic view)

The way I tried to create the contour was by slicing a cylendar at a diagonal.

However, when I radially extrude the profile, it extends outside the intended radius.
http://content.screencast.com/users/kamocat/folders/mecanum%20protrusion/media/c37ad909-4f85-4568-ad95-d65399c076dd/slice%202.png http://content.screencast.com/users/kamocat/folders/mecanum%20protrusion/media/99872745-a57b-4116-8f1f-8c3f84968db2/roller%20protrusion.png
http://content.screencast.com/users/kamocat/folders/mecanum%20protrusion/media/78a709c9-7e74-432a-b865-690d1b8ff599/roller%20protrusion%202.png

I grabbed a copy of the AndyMark wheels, and found they had a similar issue. This is shown with a circle drawn to one of the ends of the rollers. (The circle is concentric to the center of the wheel, parallel to the aluminum plates)

The issue, it appears, is slice needs to be non-linear. Are there 3-dimensional constraints that could be used instead of a slice?

(Sorry about the large pictures. I’m assuming that no-one is doing CAD on a screen smaller than 1024x800)

Not all of us are doing CAD. Plus a 240x320 image will give us the same info - there’s not a lot of detail in the images.

Anyway: A diagonal slice of a cylinder isn’t what you want; as you found, it ‘leaks out’ of the wheel radius. That’s because the large cylinder, when viewed at “the” angle, does not follow a circular profile; it is an oval.

What you need is an oval shape, which looks perfectly circular when turned to the angle of the roller wheels; then take your slice (does that make sense?).

You can check out the thread I started here:

Let me know how that approach works out for you since I haven’t tried it myself.

-Leav

the curve of the mechanum rollers is the profile of an elipse where one dimension is the diameter of the wheel, and the other is that diameter divided by the sin of 45 degrees. the topic is discussed in this post,

http://www.chiefdelphi.com/media/photos/35736

hope i helped

From the side, the slice appears perfectly circular.
The rollers only protrude once they are radially extruded.

Which also happens to be a circle projected onto a 45 degree plane (or whatever angle your rollers are at). I just tried this in AutoCAD 2011. I made a 1/8 helix turn (circular arc projected up to the angle of the the helix) and revolved it around the endpoints of the arc. The important part here is that the line of revolution must be at the same angle of the roller. This puts the outermost part of the revolution at the profile line, so that the roller fits inside a cylinder (circular wheel) perfectly. Correct me if I’m wrong, but from my observation it seemed to be working very nicely. Unfortunately, I do not currently have Solidworks (the platform I’m familiar with), so I can’t make a complete wheel to verify just yet.

A helix? That’s an interesting way to do it, and might work better than the linear slice I’ve been doing.
Seeing as the helix isn’t on any one plane, how do you revolve it? I was under the impression the axis of revolution had to be on the same plane as the profile to be revolved.
Are you using a 3D drawing? (I’ve only worked with 2D drawings so far)

Hmm, now that I investigate further my post is making less and less sense. First, you are absolutely right when say a helix isn’t in any one plane, so it certainly is NOT a circle projected 45 degrees back. I tried recreating the revolved helix in Solidworks, and it wouldn’t let me, since it’s a 3-dimensional curve… any ideas there (AutoCAD seemed to do it fine…)? Anyways, I can’t confirm what I posted earlier.

A projected circle would be an ellipse with a=r and b=r*sqrt(2). The problem with using this ellipse as a profile is that you are rotating around an axis 45 degrees offset from the wheel. Looking at the profile of the wheel (along its axis of rotation) part of the elliptical profile will be revolved to be in front of the profile, so the profile is not always necessarily the point of contact or the farthest point from the center of the wheel. See what I’m saying? This inspired to do some insane algebra to find a curve that, when revolved, would satisfy this. Lots of circle to ellipse tangency, differentiating, and disgusting algebra that wolfram alpha couldn’t solve, so that got me nowhere as well.

There seems to no easy solution to this problem, but that doesn’t I’m going to stop trying! :stuck_out_tongue:

Awesome! I’m glad you’re seeing the same problem as me.

Well, I got it to work.
Since I can’t revolve a helix, I did an approximation of that. I took several points along the ellipse, and I drew a line tangent to the ellipse, and then a line tangent to the ellipse starting at each point. I then drew a lines perpendicular to the tangents, from the points on the ellipse to the axis of my roller. I drew vertical lines off of the point where the perpendicular-tangent lines contacted the axis, and constrained the verticals to the same length as the perpendicular-tangent lines.
Now I have an approximation of the curve I want, defined by the end-points of the vertical lines. I used a spline curve to connect them.

I then radially extruded it. Here’s a comparison of this new roller to the old one. The new one is the left half in green, the old one is the right half in red.
http://content.screencast.com/users/kamocat/folders/Jing/media/d8d79488-c968-421e-8b43-91521e04ff64/view%201.png http://content.screencast.com/users/kamocat/folders/Jing/media/71973073-663e-4105-863e-fcc929719f0c/view%202.png

I realize, because this is a spline curve, it is only an approximation. However, it is a much closer approximation than an ellipse.

NOTE:
In this example, I happened to make the roller too big for the wheel. Please disregard that fact for the moment. It makes it easier to show the roller in detail, yet still display the entire elipse.

I concurrently found the exact same solution in Solidworks. Basically, all the algebra I had tried involved a circle tangent to the circular profile but centered around the roller axis (off kilter 45 degrees as well). The point on the desired curve is on this circle but straight above the axis. Since I couldn’t do the math to find a continuous function to map it perfectly, I approximated with 4 points, actually drawing out the desired geometry and then creating a spline between the resulting points. It looked to be correct within Solidworks’ polyhedral rendering error, so I decided to be satisfied. Here are some pictures:

Here is the initial cut of the elliptical roller (bumpy) with the circular profile.
https://netfiles.umn.edu/users/siekm008/Shared/mecanum/extrudecut.PNG

This creates the profile surface to which the circles around the roller axis must be tangent. I then created four planes evenly placed along the roller.
https://netfiles.umn.edu/users/siekm008/Shared/mecanum/planes.PNG

On each of these planes, I sketched (shown next) a circle centered on the roller axis and tangent to the profile surface. The black line is along the profile and the circle is tangent to it. Then, on the circle I created a point straight up from the axis. The idea here is that this point, when revolved, will never go beyond the circular profile surface. If the roller profile is consists of such points, the roller will match the wheel profile. Here’s the sketch:
https://netfiles.umn.edu/users/siekm008/Shared/mecanum/sketch.PNG

I did that on each plane and got the four resultant points, all directly above the roller axis. I then created the following sketch, with a spline over the four points (actually I left the fourth out because I didn’t want the roller that long), and then then rest of the roller shape. I mirrored it over to the other side to get a complete profile (and save work!)
https://netfiles.umn.edu/users/siekm008/Shared/mecanum/profile.PNG

And then I revolved it around the roller axis! (the centerline in the sketch)
The grey curve is the circular profile, showing that the roller does not extend beyond it.
https://netfiles.umn.edu/users/siekm008/Shared/mecanum/revolved.PNG

Ta da! Hopefully this helps Solidworks people see what kamocat did. We had a little adventure working on this and hurting our brains together.

Edit: Sorry about the images taking so long. My internet is being quirky so I haven’t been able to actually upload them yet.

Brilliant work, both of you. :slight_smile:

This question has been bugging me ever since kamocat started this thread over 2 weeks ago. So this afternoon I had a block of free time and worked out the math.

I wrote a short paper “equation for bump-less mecanum roller” and posted it here:

http://www.chiefdelphi.com/media/papers/2390

The paper presents the derivation of a set of parametric equations for designing the roller profile.

Much thanks to compwiztobe and kamocat for verifying the output of the equations in their CAD programs.

~

A 3D curves get more complicated, you may represent the functon in SolidWorks with the Sketch Tool, Equation Driven Curve. If the curve is a function of x, y an theta, use the Parametric option.

If the curve is developed through another mathematically program through x, y, and z points, save the file output as a text file. Then use Insert, Curve, Through X, Y, Z points and select the text file. The cuver will be inserted into SolidWorks.

Use Convent Entities to project the curve onto a sketch plane.

Marie

kind of off topic, but does anyone know how to determine to exact length that the rollers should be? the jitter effect on mechanums could also be caused by a gap between rollers or by overlap as the rollers would have slightly different angles. anyone know how to do that?

Yes, you need overlap between your rollers.
I’ll use the term “tread width” here to mean the distance (perpendicular to the wheel axis) that the rollers contact the ground when the 'bot is moving forward. On many two-plate designs, this is also the distance between the plates.
If your rollers are at a 45 degree angle, then your roller length is the tread width multiplied by √(2).
I believe determining what angle of the wheel that will cover is an inverse sine function of (tread width)/(wheel radius).
So take 360 divided by that angle, and round up. That’s how many rollers you need on your wheel.

I think you meant “parallel”.

I believe determining what angle of the wheel that will cover is an inverse sine function of (tread width)/(wheel radius).

Yes, you can get a good-enough answer just by dividing the tread_width by the wheel_radius and that gives you the angle in radians that is subtended by each roller. Pedantically, the calculation should be 2*asin(tread_width/2/wheel_radius)

So take 360 divided by that angle, and round up. That’s how many rollers you need on your wheel.

If there is overlap, that has to be subtract from the angle before dividing.

thanks, using that i updated my mechanum wheels. i don’t think overlap is good, i think that what is ideal is an infinitesimal amount of overlap. just as when you slide to pieces of tile together with no overlap for a smooth surface, a smooth ride must have no overlap, but no gap either.

thanks, using that i updated my mechanum wheels.

If you’re changing the rollers and looking for a quick and easy way to shape your rollers so that they form a perfect circular outline when mounted at 45 degrees, there’s a simple calculator program at this link:

http://www.chiefdelphi.com/media/papers/2390

Just enter the desired wheel radius and the radius of the roller at its midpoint, and you’ll get an output file (in CSV format) of X,Y data pairs that you can load into your CAD program and rotate around the x-axis to form the surface of the roller. CSV files can be opened directly in Excel, or you can open with any text editor.

i don’t think overlap is good, i think that what is ideal is an infinitesimal amount of overlap. just as when you slide to pieces of tile together with no overlap for a smooth surface, a smooth ride must have no overlap, but no gap either.

If you don’t want the rollers to overlap that’s fine, but the analogy is a little off. If two pieces of tile overlap that creates a bump. If the rollers “overlap” there is no bump. Just a seamless transition period during which two rollers are touching the floor. If the rollers are contoured properly, this handoff from one roller to the next is smooth.

it is correct that they do not create a bump, however all of the rollers are not at 45 degrees relative to the ground, due how one roller is at the begging of its for lack of a better word contact zone, and the other is at the end, they are at a slightly different angle relative to the ground. while going forward or backward, or while strafing, this should not be very noticeable, but while going close to diagonal it causes the robot to move in more of a very small zig zag pattern, which causes accelerometer white noise. this caused problems for our attempt at a robot that could stay parallel to the field at all times. it did not work while going diagonally.