Sensing the distance between two balls?

I have an odd project, where I need to sense the distance between two balls. Ideally it would be sensors in the balls themselves, as opposed to an external sensor determining the positions.

Can anyone think of a way to accomplish this?

Since I need to sense a range of 3 meters down to millimeters, I was thinking about using two different RF sensors, one for longer range and one for shorter.

Any tips?

What do you mean exactly by "balls"? What's the context?

Civilian GPS is not precise enough to achive this. Have you thought about sonar sensors?

RF won't work, any nearby metal objects reflect the signal, multipath mayhem. Pulsed IR
would be much more reliable (indoors) but still suffers from reflection, blocked line-of-sight.

A very small LIDAR?

More practically acoustic ping/response ping and time of flight measurement?

LIDAR and IR suffer the same disadventage : they rely heavily on a clear line of sight. Althought for IR, this seems not to be a problem with relatively high power, cf remote controls... If someone have information about it, I'll be glad to read it!

What is the immediate environment like?

Can you paint a pattern on one ball, or place LEDs in one ball, and put a camera in the other? And keep them from rotating? Then you could get an estimate of the distance by measuring how many pixels apart the pattern or lights are.

IR LEDs with a visible block/IR pass filter, and some kind of lens that is not wide.

One issue is that the balls may be in any position. We don't have to sense the position while they're rolling, but after they've stopped. I think that eliminates sonar and IR, but maybe not?

You can always have multiple emitters and receivers on each balls.

Sounds to me like a billiards table ball position sensor problem( 3 meters).

Sometimes it's best to at least provide some detail rather than let the guessing continue.

justone:
it's best to at least provide some detail

Yep: this might be an XY problem 8)

the idea of time of flight seems to be the simplest. each has a transmitter and a receiver. one will ping the other, then get a response. measure the time it takes to respond and you have your measurement.

Can anyone think of a way to accomplish this?

A fairly common forum question without any really good solutions.

Rather than sensing the distance between the balls you could sense the location of each ball and then by mathematics calculate their distance apart.

All you need now is a means of sensing their location.

This could be by pressure sensors or x-y co-ordinate by means of IR but as you haven't given limitations on ball environment cannot offer more help.

I agree with zoomkat there are often lots of fanciful solutions proposed all of which are impracticable. Especially given the range you want:-

I need to sense a range of 3 meters down to millimeters,

Grumpy_Mike:
I agree with zoomkat there are often lots of fanciful solutions proposed all of which are impracticable. Especially given the range you want:-

some applications scream for multiple technologies. there is no reason that one technology cannot be used for one set of distances and another technology be used for an overlapping set of distances.

Use a frequency counter. If the frequency of his voice it too high, then those balls are not in the right place :slight_smile:

Fine just post an example of a successful implementation and maybe I will change my mind about it being not possible.

KenF:
Use a frequency counter. If the frequency of his voice it too high, then those balls are not in the right place :slight_smile:

You made my day xD