Shop OBEX P1 Docs P2 Docs Learn Events
Engineering A Position Sensor — Parallax Forums

Engineering A Position Sensor

Kirk FraserKirk Fraser Posts: 364
edited 2007-02-22 02:28 in BASIC Stamp
In a larger robot project, the need for·more than 12 bit precision position sensing is great because accuracy losses add at each joint from one end to the other.· The best commercial system I'm aware of is the HP5528A with 0.016 micron or 0.1 arc second accuracy.· How can we re-engineer this thousands of dollars 20 bit·accuracy into something the size and price of a good·potentiometer?·

Laser·pointers·are available for $1 retail so the laser inside must be comparable with LED's now.· Mounting sensors around the pot can to create a laser interferometery system could be·enhanced by putting the laser in a wedge on the shaft to reduce the interferometry calculations to quadrants.·· Hopefully the essential calculus can fit inside a Stamp, giving serial position·output.

First questions:
1) What optical sensors would be best for this application?
2) What is the minimum calculus in integer arithmetic that would work?
3) How can shaft·mechanical effects be·minimized to reduce error?

Comments

  • John R.John R. Posts: 1,376
    edited 2007-02-19 12:54
    Kirk;

    Before going too far down the road, considder the following:

    * Even if you had that much "precision", it doesn't mean that you would have that same amount of "accuracy". All of the following will contribute to "errors" in measurement. Just because you have 20 bits, doesn't mean that they are "meaningful".

    * Down at that level of measurement, think about all the factors that have to be accounted for. Temperature, chances in electronic performance over time, aging of electronic connections, resulting in changes in resistance and capacitance, friction, changes in the mechanical joints, accuracy of mounting, wind, electrical noise, changes in voltage from the voltage regulator, etc., etc., etc.

    * Even if you could measure that accurately, how could you effect any type of control that accurately? All of the same factors above come into play. For starters, how much "backlash" is there in teh robot? What kind of gear reductions are involved? Every joint, gear, linkage, fastener, etc., will all have to have SOME clearnace in order to move. How much movement would even a 0.0005 inch clearance at each joint result in? I would also point out that if you can fabricate a robot that functions with 0.0005 inches of clearance at each joint, then the thousands of dollars for a transducer would not be an issue smile.gif

    * As an excercise, take a series of joints, and assume that you had 20 bit precision AND accuracy, and work through a couple calculations. Move one of the joints by 1 bit. Run a new set of calculations. The question would be: How many singificant figures you you need to do the calculations, and what kind of hardware would be required. How much would you loose with even 32 bit math? I certainly don't think that a STAMP is going to give you the math capabilities you'd need to make a sensor this accurate work.

    * At some point, in addition to all the mechanical accuracy problems, you'll probably have to start dealing with the "statics" of the robot. Depending on what position the robot is in, you'll have to account for different amounts and direction of any strain in the system. You'll also probably need to calculate how this will change as the robot moves to a new position, and how it will change as the materials age.

    The main theme I'm trying to get accross is that we are not just collecting a set of components, we are putting together a system, and all the components interact and affect each other. Any one component only needs to be "good enough" so that it doesn't degrade the others. It is basically one of those "the weakest link in the chain" things. In this case, it may not make sense to measure any more accurately if you can't control the output that accurately. Also a significant point is that just because you have 20 bits, or even 12 bits, doesn't mean that they are all "meaningful". It is very easy to have "false accuracy" in a system like this.

    Having said all that, it is an interesting problem. I don't have any answers, and not trying to be a "wet towel", just putting some of the challenges out there. You haven't really said what specifically you're trying to do. There may be other ways to solve this problem.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    John R.
    Click here to see my Nomad Build Log
  • Beau SchwabeBeau Schwabe Posts: 6,566
    edited 2007-02-19 17:47
    Kirk,

    I agree with John, however there are "smart" methods of differential sensing that can help eliminate factors such as temperature, age etc. With differential sensing methods you can mathematically cancel out ambient
    interference and focus more on a real subject influencing the sensor. For your particular application I would lean toward an LVDT (Linear Variable Displacement Transformer). Similar to what method is often used in a
    digital caliper. As John has indicated, it might help if you provide us with more information.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Beau Schwabe

    IC Layout Engineer
    Parallax, Inc.
  • Kirk FraserKirk Fraser Posts: 364
    edited 2007-02-19 23:48
    John,

    Actually that would be great if I could get strain data in from the position sensor that would eliminate having to use spring compliance methods to stop from crushing humans. The Stamp just has to pass the data on, it doesn't have to also control the valve -- another one can do that if necessary.

    I'm trying to build a hydraulic human style & sized robot. I think it would be of great use on farms. I figure 12 bits is more than enough for finger motions but for repeat positioning of feet and arms with 3' extension, the losses would add up instability without more precision.

    Beau,

    Yes, one guy did show me how that works with strain guages -- mounting 4 in opposite axes cancels out temperature differentials, etc. Can an LVDT get any better accuracy? I guess its a good idea to look into.

    If you need more specific information, tell me what you want.

    Kirk
  • John R.John R. Posts: 1,376
    edited 2007-02-20 00:27
    Kirk;

    I think you missed a couple key points, and we might have crossed wires on stress vs. strain terminology.

    Stress is the force that is applied to a part. Strain is the actual movement caused by the stress. My reference to stain, is the "sag" or movement caused by the forces acting on the robot components.

    That brings us to the main point of all my babbling above. I don't think that more than 12 bits (if that many) will do you any good. Will your control be that fine to make a difference?

    What I'm saying is that let's say you had 20 bits, and you sensed that the arm had to move "1 or 2 bits" worth of position. How would you effect this movement? If your control circuits and mechanical construction can't support that level of control, then trying to sense that level of accuracy is not necessary. I'm also suggesting that if you have a system that offers that fine a level of control, the money for commercial 20 bit sensors will be insignificant to the overall cost of the system.

    Then again, maybe I don't fully follow what you've got happening.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    John R.
    Click here to see my Nomad Build Log
  • WarrlokWarrlok Posts: 77
    edited 2007-02-20 14:49
    Hi some of the arm guys in other forums have talked about this ,,,if u where moving frrom a known position too a known position u could use math to make up for the sag strain flex but with a dynamic robot like ur talking its gonna take alot of math ,,,,but back to ur queastion i was thinking about a laser mouse or just the optics they look to be very accurate ,,,,how to incorporate this is beyond my skills at this time ,,,well let us know how it turns out ,,,u,m thinking ur gonna forget about this once u start trying to figureout hoew to power a 50 pound

    hydralic pumpsmhair.gif·· just remember they still say a bummble bee cant fly

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Problems are the "roads" of life,
    solutions are only "onramps" to the next problem



    ············································· "Brad Smith"
    ·
  • Tom WalkerTom Walker Posts: 509
    edited 2007-02-20 15:12
    I understand where you are trying to get to, but I think that trying to counter "micro" level hardware issues in the hardware is going to lead to serious expense (or maybe, just innovation....you never know). In nature, these kinds of problems are dealt with in the "software"...the average human being does not have either micro-precision sensitivity or movement capabilities (...and, yes, there are examples of each, but let's deal with generalities for the moment), but it can conduct activities that require a high degree of precision....feedback systems, physical adaptablity to conditions, mjultiple sensory/activation routes and practice (updating the software) all contribute to this ability.

    In short, I think your best bet is to counter the inherent "sloppiness" of the system in the software.

    ....just ramblin' ;^)

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Truly Understand the Fundamentals and the Path will be so much easier...
  • WarrlokWarrlok Posts: 77
    edited 2007-02-20 15:41
    This is true ,,, software is a wondermous thing,,i rekon its all in how far do u wont to take this and how far ru willing to go ,,,

    PS i plan on using the optical mouse for wheel incoding and to check actual movment to wheel speed (for off road )to see if i,m stuck /stalled or hung up on oneside might even work as a cliff sensor ,, but first i got to get the wireless figured out ...

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Problems are the "roads" of life,
    solutions are only "onramps" to the next problem



    ············································· "Brad Smith"
    ·
  • John R.John R. Posts: 1,376
    edited 2007-02-20 16:14
    I think Tom hit the nail on the head here.· One specific point is the "multiple sensory/activation routes".· We don't try and put our fingers at position X, Y, Z, we want to grab the cup, so we get to "about" X, Y, Z, and flex a finger until we "touch" the cup, and then adapt our movements based on that feedback.
    Similarly, when we walk or balance in place, we don't worry about what exact position our joints are in.· We sense what way we need to move, or what way we are falling, and react accordingly.· It doesn't matter what specific angle our knee joint is, we just determine if we need to bend it more or less (or move our entire leg/foot).
    Tom Walker said...
    I understand where you are trying to get to, but I think that trying to counter "micro" level hardware issues in the hardware is going to lead to serious expense (or maybe, just innovation....you never know). In nature, these kinds of problems are dealt with in the "software"...the average human being does not have either micro-precision sensitivity or movement capabilities (...and, yes, there are examples of each, but let's deal with generalities for the moment), but it can conduct activities that require a high degree of precision....feedback systems, physical adaptablity to conditions, mjultiple sensory/activation routes and practice (updating the software) all contribute to this ability.

    In short, I think your best bet is to counter the inherent "sloppiness" of the system in the software.

    ....just ramblin' ;^)

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    John R.
    Click here to see my Nomad Build Log
  • Kirk FraserKirk Fraser Posts: 364
    edited 2007-02-21 07:04
    I once read humans are able to detect a bump of 1/32,000 which corresponds to 15 bits. I like your argument for getting rid of the other 5 bits because of flexing something until it touches the target and adapting. Together that cuts my goal under half -- moving up from 12 bits to 15 bits -- since 16 is common, tossing a bit if needed would be acceptable. Yes, thanks guys for the discussion!

    The project is nearly beyond hydraulic design -- I have pumps, just having trouble locating one that doesn't overheat or leak from my vendor so I'm looking into one used in a small excavator made in Japan. I've even got a new computer language for the robot but will have to do a lot of software and hook it up to the electronics network.
  • Tom WalkerTom Walker Posts: 509
    edited 2007-02-21 16:51
    Kirk,
    Without a frame of reference (at least some units), I'm not quite sure how to "represent" the ability "to detect a bump of 1/32,000"...so I would find it difficult to equate that to any number of bits.

    Also, keep in mind that the numan nervous system transmits messages much slower than the speed of light, so, again, the software is what seems to do the trick.

    It's not that I physically can't shoot pool as well as Moscone, it's just that he has spent a lot of time refining his feedback system and building his rule sets...

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Truly Understand the Fundamentals and the Path will be so much easier...
  • Kirk FraserKirk Fraser Posts: 364
    edited 2007-02-22 02:28
    Oh, sorry, it was 1/32,000" (of an inch) which was measured as something that could be detected by your finger moving over an otherwise flat surface.

    Yes, I'm sure all that software work to learn to crawl then walk will be needed. I'm just trying to build a platform that will in the end handle the tasks I want to perform like lifting a bale of hay. I suppose the software could have been done first but both are big projects so I chose to get both going simultaneously. There is likely years more ahead to get any use out of it.
Sign In or Register to comment.