Center Object

Hi, I have a ring with a radius of 50mm which I'd like to be able to center to within 10mm on an object (greater accuracy would be preferred) - but the object will be long (like a pipe) so I cannot look at it from the end to determine the center using a camera or similar.

The objects can be between 20mm and 40mm radius, mostly uniform in shape and can be hard or soft. e.g. could be anything from a metal pipe to a thick rope. I'd prefer not to physically touch the object, but can do if required.

Actually physically moving the ring into position is not of concern at the moment, just detecting how far off-center in the x and y axis the ring is. There are a few methods I've thought of and I wondered what people thought of these approaches before I purchase the hardware needed. Obviously, any other ideas would be greatly appreciated.

1. Distance Sensors

Place four distance sensors, two on each axis (non-interfering), around the ring. The opposing values could then be used to determine the position of the object, with an accuracy dependent on the accuracy of the range sensors.

I've been looking at various sensors for this sort of range and the Sharp GP2D120 IR sensor (40mm -> 300mm range) is the most promising so far. They could be sat back 40mm from the ring to ensure their minimum range is never entered. Would they be accurate enough at these ranges?

2. Directional IR Grid

Set up two arrays of directional IR emitters / receivers forming a grid pattern of beams. Which beams are broken could be used to determine the position of the object, with an accuracy down to the spacing of the beams (depending on how narrow the beams can be).

The main advantage of this is that I can define the accuracy this will provide. The main disadvantage is the number of sensors required. I would think that grouping all the sensors on each axis into one analog value to plug into the arduino would be the best way to approach this, but I'm not sure how you would do that - probably with a DAC (say a 16-bit DAC for each axis) but I don't know much about them at the moment (reading up on them shortly). This system would also scale nicely, if required (it's not at the moment, but you never know!)

I was thinking of using IR emitters / receivers, and setting them in tubes to make them directional.

3. Linear Potentiometers

Four linear pots, two on each axis like with the distance sensors. They could be mounted with springs then held fully back and released to measure the position of the object.

Some minor disadvantages are that they take up the most physical space of all the solutions and retracting them might be tricky. However, I think that they would likely provide the most accurate solution. This is my least favourite solution - it touches the object which ideally I'd like to avoid as it leads to potential problems when trying to move the ring into a centered position.

Current Conclusions

Overall I'm thinking that the Directional IR Grid is my best option at the moment. The main stumbling block being my current lack of knowledge of how to efficently handle that many sensors. If they can be handled correctly - all sensors in one axis merged into one analog input - they would also have the advantage of using the least amount of inputs on the arduino.

So, what do people think of these approaches? Any advice regarding the use of these sensors? Any other ideas?

Thanks in advance,

  • Andy Freeborough.

Sorry, I should have mentioned in my post - this is a home project, so low budget and volumes.

To start with, it would need to be accurate to within 10mm. It wouldn't need to operate too quickly either, having a position update at least every quarter of a second would be sufficient to start with.

I would like a solution that allows me to improve on both of these if required. So increasing accuracy to 5mm or poentially more - increasing speed to 1/10th of a second or more. These are not my current requirements, but if they could be achieved with no excessive cost / complexity increases then I see no reason to not do this.

Corrugated plastic is an excellent idea, it could easily be cut to shape and the sensors sat within. Would it be sufficient to prevent the IR signals from 'leaking'? Can the IR emitters / receivers be tuned to / bought at specific wavelengths to cut down on such things happening?

My main issue with touching the object is that it will make moving the ring to be centered on it more difficult - particularly if I'm likely to move it in one axis then the other. However, this may be down to my view of how touch detection would work - so I would be interested

Thanks,

  • Andy.

What about 2 linear CCDs (or similar) sensors. Bit expensive probably but you might be able to hack some from those really cheap scanners.

Graynomad, I think linear CCD's would be getting a bit complicated - I'd like to keep things reasonably simple for now. It is an interesting option though, and I'm sure I've got an old scanner in the garage somewhere - there would be loads of cool parts to nick from a scanner. It would be interesting to experiment with them to see how well they would work in this sort of application.

Richard, I've just put out the rubbish and noticed that there is an old for sale sign in our bin area which I've taken - very handy. Seems to be ~5mm thick with ~10mm cells, which will do very nicely for starters and to test IR penetration.

I hadn't thought of cycling the emitters/sensors - that's an excellent idea. So, I could use a multiplexer/demultiplexer to decide which beam to test and get its result. I could potentially cycle them in groups too.

I'll order the bits for the IR curtain then - the IR emitters / receivers are cheap and useful enough that if this doesn't work out they'll always find homes elsewhere.

Thanks,

  • Andy.