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.