9
\$\begingroup\$

I have a system arm that free-ranges within a certain area. The arm swings, translates and rotates about a vertical axis which sits atop a mobile base. The mobile base can move any direction in the X-Y plane. It's movements are strictly programmed but I would like to start a new version that is semi-autonomous. This new version would need to receive feedback on 3-axis positioning, speed and rotation relative to a fixed point at the edge of the enclosed system (or relative to the position at which it is initialized). Sensor feedback is completely new to me but I am willing to dive in. Could someone recommend a great starting point for me? Thanks!

\$\endgroup\$
  • 1
    \$\begingroup\$ Maybe I am on the wrong track but Couldn't also use a digital Compass to have your "Fixed point". You may already done this but here is something that might help: sparkfun.com/products/9371 and sparkfun.com/search/results?term=3-axis&what=products for a "general look". Note that if this is what you want I can give you a full answer. \$\endgroup\$ – avitex May 8 '11 at 1:45
  • \$\begingroup\$ @james thanks! that would definitely yield heading info for the base. But I need rotational info and height from the floor for the arm since it rotates about AND goes up/down the vertical axis \$\endgroup\$ – KirkB May 8 '11 at 18:43
  • \$\begingroup\$ I have been looking for similar info for awhile. one place i started looking was en.wikipedia.org/wiki/Path_planning It gave me a basic concept and terminology used. \$\endgroup\$ – jsolarski May 9 '11 at 8:08
1
\$\begingroup\$

What kind of range and accuracy are you looking for?

From a repeated position accuracy standpoint, using a accelerometers and gyroscopes would accumulate errors and drift over time.

Rotary and linear position encoders would probably be the way to go.

If you've opened up a more recent mechanical mouse, you've probably seen the slotted plastic wheel running through the gap of a caliper-like component like this one. You count pulses to keep track of where you are. These are pretty cheap, as long as you have a way of easily making/obtaining the necessary rotary or linear code strip.

There are nicer encoders that cost a bit more. Avago seems to have a bunch of position sensing and motion sensing technologies (led/laser mouse motion detectors, for example).

\$\endgroup\$
4
\$\begingroup\$

Accelerometers and Gyroscopes are going to be good, but not perfect. Depending on what your goal of the feedback is, you might want to consider using something like stepper motors. They will give you more of an absolute position of the current rotation of each motor.

If you want to use accelerometers and gyroscopes you should go take a look at this question: How to determine position from gyroscope and accelerometer input?

\$\endgroup\$
  • \$\begingroup\$ Ugh.... Stepper motors are horrible for any serious motion control. If you're serious, stick encoders on your brushed motors, and use closed-loop servo controllers to move the arm. \$\endgroup\$ – Connor Wolf May 10 '11 at 0:09
  • \$\begingroup\$ @jsolarski @Kellenjb @Fake thanks everyone for the inputs/answers. I am very interested in the forces generated at an impact point by the combined motion of the base and arm, so I am thinking a gyro/accelerometer at the end of the arm in combo with the base vector would give me a good starting point. \$\endgroup\$ – KirkB May 10 '11 at 0:35
  • \$\begingroup\$ @Fake Name - if you pulse a stepper motor at the right frequency it runs as smooth as a brushed motor. \$\endgroup\$ – stevenvh May 10 '11 at 12:14
  • \$\begingroup\$ @stevenvh - Sure, but you can't ever avoid the possibility of dropped steps unless you put an encoder on it, and at that point, you're better off with a brushed motor, because they have far more torque for their size, and you already have everything needed to implement a closed loop servo anyways. \$\endgroup\$ – Connor Wolf May 10 '11 at 21:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.