4
\$\begingroup\$

I'm building an arduino-based robotic arm which is meant to pick some objects with a two-finger-like structure. The problem is I need to detect the servo stress (the moment when the servo really holds the object) to stop the servo and prevent it from squeezing the object. Is there any way to do this with an Arduino Uno?

\$\endgroup\$
5
  • 1
    \$\begingroup\$ "Is there any way to do this with an Arduino Uno?" No, those devices are meant to collect and process data and control things, they make pretty bad force sensors. You need to either add some sort of force/strain sensor to the "fingers" or measure and detect the current the servo is drawing when obstructed. You can process that information with a UNO if you want. \$\endgroup\$ – Trevor_G Jan 15 '18 at 18:00
  • 1
    \$\begingroup\$ Some servo's have a feedback pot that can be used to determine position. You would use this to incrementally set your servo and read the feedback. If the feedback doesn't change, increasing the servo position just adds force. Note though that this just tells you when the servo stops moving, it doesn't tell you that you are using enough gripping force to hold the object. \$\endgroup\$ – Ron Beyer Jan 15 '18 at 18:30
  • 1
    \$\begingroup\$ @Trevor_G , sorry, my mistake, I know I can't do it with just the Arduino, my question was rather about the possible approaches. I will edit the last sentence. Thanks for the suggestion \$\endgroup\$ – artus90 Jan 15 '18 at 19:00
  • 1
    \$\begingroup\$ @RonBeyer thanks, I think I will go for the current measurement approach \$\endgroup\$ – artus90 Jan 15 '18 at 19:02
  • 1
    \$\begingroup\$ You may find answers to Appropriate control scheme for gripper end-effector and Position Control vs Velocity Control vs Torque Control over on Robotics useful. \$\endgroup\$ – Mark Booth Jan 17 '18 at 11:52
1
\$\begingroup\$

Force/pressure sensors will be more "real life" accurate, reporting directly the force being applied to the object. Whereas current measurement only gives you one piece of data for extrapolation among many other parameters which may be variable. Precise pressure sensor are pretty expensive. The current "sensors" may be much cheaper and possible smaller.

\$\endgroup\$
1
\$\begingroup\$

Many variables must be defined to specify and realize this problem. e.g. max acceleration, max force, max velocity, max displacement, spring constant in grip, range of distance for grip spring, minimum grip force, maximum grip force, maximum actuator time. Come back when you have defined these.

Current is proportional to torque which can be "no load" acceleration or static motion load torque. So some surface spring constant is suggested in the mechanism to detect a rise in contact load, otherwise you would have to move very slow. Then the servo dynamics must model the velocity of overshoot with this and determine a steady state current profile that will maintain an acceptable grip with current translated into torque into contact force or pressure.

Then the servo actuator needs a design for maximum acceleration, maximum velocity for any displacement seek and a maximum contact force with a minimum holding force. Then it may be possible to find open source software to meet these input criteria with input for system constants like; servo current controlled motor force and voltage controlled max velocity constants and current sense feedback.

With the appropriate mechanical design it could be a BLDC or stepper motor both with gear, belt or nylon string pulley reduction.

\$\endgroup\$

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