Free Servo force sensor

P1070026.JPG (2148364Bytes)
P1070028.JPG (1987164Bytes)

I soldered a wire to the middle pin of the potentiometer inside the servo that operates my gripper. Using an analog pin, I can tell when the Servo isn't moving. I use a subroutine to slowly close the gripper and check if the potentiometer value has changed since the last time I incremented the servo value. If the value has changed much over the increment, is detects something is inside the gripper and is tightly gripped. this is the arduino code that I used: 

 

void Grip() {

  GripperVal = 80;

  Gripper.write(GripperVal);

  delay(100);

  do {

    lastPos = currPos;

    GripperVal = GripperVal + 5;

    Gripper.write(GripperVal);

    delay(200);

    currPos = analogRead(4);

    delay(5);  

    if(Serial.read() == 'b') {

      GripperVal = 80;

      Gripper.write(GripperVal);

      delay(100);

      break;

    }

  }  

  while(abs(lastPos - currPos) > 5 && GripperVal < 140);

 

  GripperVal = GripperVal - 5;

  Gripper.write(GripperVal);

 

  Serial.print("done - lastPos - ");

  Serial.print(lastPos);

  Serial.print(" currPos - ");

  Serial.print(currPos);

  Serial.print(" Gripper Val - ");

  Serial.println(GripperVal);

}

P1070026.jpg

P1070028.jpg

 

This eliminates the need of a seperate force sensor to be installed into a robots gripper. Some of the values may need to changed for different servos. I ended up spending an hour and a half tuning it to my gripper.

Cool. Collected.

Cool. Collected.

Easy

It would be easy to add it to Grab-E for his gripper. All you need is to solder a wire to the potentiometer and connect it to an analog pin.

Thanks for sharing your

Thanks for sharing your method. Another way to determine the force is employing a current sensor, with a series resistor in the ground terminal (0.33ohm for example). With an apropiated low pass filter (to supress noise and some high frequency signals), the voltage in this resistor will be proportional to the force applied. 

Be careful with the current spikes when the servo begins a rapid movment, this can produce a “false force” that must be filtered by software.

You have read my tiny,

You have read my tiny, transparent mind.