Coating a sphere with bumps (golf-ball-ish) for wheel treads

Coating a sphere with bumps (golf-ball-ish) for wheel treads

My goal: a hemisphere coated with kinda-evenly-spaced bumps, for a robot
wheel's treads. I get that this is hard because space-filling spheres on
the skin of a sphere is hard. Is there an easy approximate way to do it
that I'm missing, something like

make a bunch of spheres around the equator
move up in latitude a bit
shrink the sphere-ring
offset the start (rotation) by .5 spheres
reduce the number of spheres so they still fit (might get messy at the end
of each rotation)
continue until you get something reasonable.

I tried it with random rotations, and meh... it was ok. The over-clustering
was annoying, but that is what I get for doing it the lazy way with random
rotations.

Re: Coating a sphere with bumps (golf-ball-ish) for wheel treads

I wrote part of my Master's thesis on this problem ;).

What you want to do is start with the vertices of a platonic solid mapped up to the sphere, then subdivide each face to get more spheres as needed. The subdivision is easiest if you use a solid with triangular faces.

An icosahedron would be best but if you are lazy you can use an octahedron (which is easy since the vertices are just {(-1,0,0), (1,0,0), (0,-1,0), (0,1,0), (0,0,-1), (0,0,1)}

To subdivide a triangle just find the midpoint of each edge, then triangulate them to get four sub-triangles. When you do this on a polyhedron, divide the resulting vector from the origin of the sphere to get a length-1 vector lying on the surface of the sphere. Once you have enough vertices replace them with spheres of a suitable size and subtract them from a base sphere. It's easy to do this kind of thing recursively if you don't mind duplicate spheres, harder if you try to avoid them. But if you are lazy just live with the duplicates; differencing will be a little slower but it *should* still work.

Note that subdivisions will not result in a perfectly even distribution but that's impossible anyway. Starting from an icosahedron will give you a more uniform distribution but try the octahedron first.

My goal: a hemisphere coated with kinda-evenly-spaced bumps, for a robot
wheel's treads. I get that this is hard because space-filling spheres on
the skin of a sphere is hard. Is there an easy approximate way to do it
that I'm missing, something like

make a bunch of spheres around the equator
move up in latitude a bit
shrink the sphere-ring
offset the start (rotation) by .5 spheres
reduce the number of spheres so they still fit (might get messy at the end
of each rotation)
continue until you get something reasonable.

I tried it with random rotations, and meh... it was ok. The over-clustering
was annoying, but that is what I get for doing it the lazy way with random
rotations.

Re: Coating a sphere with bumps (golf-ball-ish) for wheel treads

This post was updated on .

Here some (tricky) code that demonstrates subdivision starting from a regular
octahedron.
Although the code is very lazy and therefore quite slow, the result is
printable. It recursively loops over a dirty polyhedron() call (sorry for
this, Carsten) and employes hull() to avoid all the nasty work usually
connected with subdivison.

Re: Coating a sphere with bumps (golf-ball-ish) for wheel treads

After reading the original post, I felt that geodesic spheres might be useful
in this situation. The foundation for a geodesic sphere is an icosahedron,
which of course, has all vertices on the surface of a sphere. A geodesic
progression splits each edge and moves the split point to the sphere's
surface, then joins them with additional edges.

A 1v is an icosahedron, while a 2v breaks each edge into two sections. The
progression is linear and complex at the higher frequency figures.

I did a quick search for geodesic sphere coordinates and was surprised at
the number of technical documents returned. The math is well beyond my
comprehension, but I suspect one could take the formulae that generates the
coordinates and use those numbers as translate parameters for the bumps.

You'd get as regular a construction as space allowed, especially by allowing
for parametric entry of major sphere diameter and minor sphere diameters, as
well as frequency.

I've assembled a paper 3v geodesic sphere and it's a work of art. Having a
3D model that allows me to place spheres at each vertex would be an
interesting bit of code.

Re: Coating a sphere with bumps (golf-ball-ish) for wheel treads

I wrote some (probably less-than-optimal) subdivision sphere code a while ago
that constructs a list of vertices and faces and calls polyhedron to
generate the sphere. It is quite similar to what others have described in
this thread:

You could just (ab)use the list of points to place smaller spheres to be
subtracted from the main sphere in order to generate dimples. The subdivided
distribution of points probably looks closer to what a real golf ball's
dimple distribution looks like...

Unless specifically shown otherwise above, my contribution is in the Public Domain; to the extent possible under law, I have waived all copyright and related or neighbouring rights to this work. Obviously inclusion of works of previous authors is not included in the above.

Admin - email* me if you need anything, or if I've done something stupid...* click on my MichaelAtOz label, there is a link to email me.Unless specifically shown otherwise above, my contribution is in the Public Domain; to the extent possible under law, I have waived all copyright and related or neighbouring rights to this work. Obviously inclusion of works of previous authors is not included in the above.

The TPP is no simple “trade agreement.”Fight it! http://www.ourfairdeal.org/ time is running out!

Re: Coating a sphere with bumps (golf-ball-ish) for wheel treads

MichaelAtOz wrote
> So was the hemisphere a stylish choice, or is it expected to dig deep so
> the bumps closer to the axle actual get grip?

I was thinking of mounting the motors at a 45 degree angle, but I wasn't
sure that 45 degrees would work and I wanted some flexibility, and I was
kinda hoping that in rougher terrain the rest of the wheel would dig deep as
it spun.