Fall 2016 Biped Experiment- Ankle Servo

Servo Ankle

By: Alan Valles (Electronics and Control Engineer)
Approved by: Ijya Karki (Project Manager)

Table of Contents

Introduction

An unique design of Fall 2016 BiPed is the use of ankle servos. An experiment was done in order to see how much mass/weight can be held up on one ankle servos at a time. This is one of the primary constraints when selecting materials because the entire weight of the robot must be turned with the ankle servos.

Study

All Servo motors have a stall torque which is the amount of torque that causes the servo to be fixed or not move.

Torque = Force * Lever arm and Force = mass*acceleration_due_to_gravity.(9.8m/s^2).

However, the ankle servos are slightly different than conventional servos because the entire weight of the robot is not hanging directly on the lever arm, but rather the force of the object due to gravity is parallel to the shaft of the servo. Under Ideal conditions, the Center of Mass would be Entirely over the shaft which would mean there is no torque. However, the test was done to see how much mass could be put directly on top of the servo.

servo-experiment1

Figure 1

A Centech scale with a maximum reading of 500g was used for measure the weights of various objects. Ultimately, a coffee cup was used as the maximum weight of about 450g. However, the movement of the servo with the weight on top was not stable. 450g was the maximum mass achieved before the material was not stable directly on top of the servo. A plastic plate was fixed to the top of the servo in order to load the plate with various materials.

servo-experiment2

Figure 2

servo-experiment3

Figure 3

servo-experiment4

Figure 4

servo-experiment6

servo-experiment5

/* Sweep
 by BARRAGAN <http://barraganstudio.com>
 This example code is in the public domain.

 modified 8 Nov 2013
 by Scott Fitzgerald
 http://www.arduino.cc/en/Tutorial/Sweep
*/

#include <Servo.h>

Servo myservo;  // create servo object to control a servo
// twelve servo objects can be created on most boards

int pos = 0;    // variable to store the servo position

void setup() {
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object
}

void loop() {
  for (pos = 0; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees
    // in steps of 1 degree
    myservo.write(pos);              // tell servo to go to position in variable ‘pos’
    delay(15);                       // waits 15ms for the servo to reach the position
  }
  for (pos = 180; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees
    myservo.write(pos);              // tell servo to go to position in variable ‘pos’
    delay(15);                       // waits 15ms for the servo to reach the position
  }
}

The Arduino Servo.h library was used in conjunction with the test code above. However, the default delays were modified in order to slow down the motion for test mass stability. I improved the process by using other smaller masses that are more compact and easier to load and balance onto the test plate. Visual inspection showed that the servo motor performed with no noticeable speed decrease even with nearly 500g on it. This was a surprising result and in the future more in depth study will be done to load it past the maximum scale reading of 500g.

Conclusion

In conclusion, various masses were loaded onto the top of a servo. The maximum mass on affixed on top of the servo was 450g. However, based on visual inspection and more mass can be attached as long as it is stable.

Reference

[1] https://www.arduino.cc/en/Tutorial/Sweep