Team 5: Gripper
EGR 557
Dr. Aukes
Team members: Borna M., Awab A., Aman D.
Design Optimization, Experiment Design, Data
Collection, and Analysis
Prototype Procedure:
To provide maximum output force and accommodate for gripper strength, the team decided to
create the four bar mechanism using fiberglass in a 7 layer laminate layer structure. The layers
consisted of 2 fiberglass layers, 2 adhesive layers, 2 plastic sheet layers, and 1 hinge layer.
In order to collect the data, the team set up the gripper vertically with a scale near the end
effector. We placed a block on the scale to help determine the location of the highest output force
on the end effector. The servo motor was controlled through a motor driver in order to accurately
control the position. An L shaped arm with a hinge connected the servo link to the input link of
the gripper. Rubber bands were attached to aid the servo motor in keeping the gripper closed and
increasing output gripping force.
Test Equipment and Setup:
1. Setup the equipment by connecting the power supply to a buck converter. The power
supply is rated for 12-24V DC and 0-50A. This is more than enough to power the servo.
The servo is rated for 6V DC. Hence the buck converter is used to change the 12V power
to 6V.
2. Connect the servo wires to the servo driver prior to powering the driver. This prevents
any accidental shorts from happening. In this step, a digital multimeter (DMM) is
connected in series on the red cable (power ‘+’) between the servo and the driver. This
provides a digital reading of the servo’s current usage. The ground and signal wires of the
servo are then connected to the driver output accordingly.
Figure 1: Servo driver connected to buck converter
3. A carbon fiber lever is fastened to the servo horn. This amplifies the torque acting on the
servo pinion. The appropriate lever length is measured to be 86.5mm. This number will
be rounded to 87mm since the caliper ends are not at the exact center of the screws. A
second screw is added at the end of the lever to hang the weights.
Figure 2: Measuring the lever
4. Mount the gripper to the side of the table using binder clips and very small clamps. After
mounting the mechanism to the table, the servo link is attached to the link A through
using a small piece of fiberglass used as a horizontal link. The servo is then mounted to
the side of the table using zip ties. The springs (rubber bands) are then added connected
link A and link C at the joints.
Figure 3: completed set up with markups
Experiment Results:
The experiment made use of a different number of rubber bands to determine a satisfactory
output force. The team gathered data of the output force of the system with 0 rubber bands, 4
rubber bands, and 8 rubber bands. Rubber bands with the spring constant (determined in
parameter ID assignment) 1.2224 N/cm were selected.
Through the experiment we determined that:
Using rubber bands with higher spring constants meant higher stiffness. This
consequently resulted in a larger gripping force.
8 rubber bands showed signs of over-torquing the servo motor. They were
determined to not be ideal for the system as they may cause system failure.
Additionally, they restricted the range of motion of the gripper.
4 rubber bands was an adequate number of rubber bands to maximize torque
without limiting the range of motor of the gripper.
Number of Rubber Bands (k=1.1224 N/cm)
Gripping Force (of one half of the gripper) (N)
0
3.34 N
4
9.33 N
8
13.34 N
Table 1: Output force based on number of rubber bands
The experiment helped us determine that the center of the end effector is the location with
maximum output force (position B). The further the point of force was from the center the lower
the output force is, however, gripping from near the inside of the end effector (position C) did
produce superior results in comparison to the output from at the outside of the end effector
(position A) (Figure 4).
Fig 4. Force achieved at different gripping positions.
Fig 5. Force achieved by one-half of the gripper using 4 rubber bands.
Fig 6. Force achieved by one-half of the gripper using 8 rubber bands.
Optimization:
Optimization techniques are utilized in the code, to determine the best values for the system
constants that maximize the system output force. The pynamics python package [1] provides us
with tools that solve numerical and symbolic values to measure these parameters. The following
changes were made to system dynamics 2 code to set it up for the optimization process.
Adding optimization constants: New constant variables are defined for the variating
parameters. These constants are iterated throughout the optimization to recalculate. This
is done by passing each iteration of these constants to the nonlinear solve function that
solves for system states, and their position.
Defining virtual links: Virtual links are used to measure the system output for each
iteration of the optimization, and the initial conditions. One is used for defining the spring
(rubber band) that connects point A to point C. And one is used to define the end effector
on the center of mass of the link B. They are both defined as springs so their change can
be used in optimization to calculate the system output.
Defining functions for retrieving initialization parameters: Two functions (ini and
run) are defined and modified to be used for the optimization. The ini function is
responsible for both retrieving the initial conditions of the system, and to re-initialize the
system constant variables with their appropriate value. The run function first uses ini to
initialize the system with the new constant values, then it uses the nonlinear integration
function to solve a valid initial condition everytime the design changes.
Optimization code: For the optimization step initially two measure performance
functions are defined for each variating parameter. The run function is used in
performance functions to initialize and solve the system with each new iteration. The
grasping force variable (change in end effector position) is then collected and divided by
the maximum system torque to evaluate system output force. And finally this data is
stored in a list and passed to the scipy minimize function to optimize the best output for
the system.
Fig 7. Schematic diagram of the gripper optimization
Spring Optimization:
To maintain the closed position and in order to maximize the gripping force, rubber bands are
utilized as compression springs. Since it is crucial to prevent over torquing the motor, an
optimization code is necessary to determine the ideal spring constant needed for the gripper. The
spring is defined by the connection of points A and C (the end of the link position with respect to
the Newtonian frame of reference). The spring constant (the variating optimization parameter) is
defined as “k_virtual”. This parameter is iterated in optimization to redefine the spring each time
and check for the grasping force variable. To check the performance the “k_virtual” variable is
iterated 90 times from numerical values of 1 to 8. The values are then initialized and solved for
the grasping force scalar variable. The maximum system torque is divided by grasping force
scalar to measure the system output force at that iteration. The output force passed to the Scipy
minimization [2]. Since the minimize function solves for the smallest value, and the goal is to
maximize the system output force, the inverse of the output force is stored in a list before being
passed to the minimization function. The result of this optimization provided us with the value of
7.9 ~ 8 as the ideal spring constant that maximizes the system output force without over torquing
the motor. In comparison to the experimental data, 4 rubber bands (equivalent to 4.5 for k)
helped us determine that while the gripping force did increase, the servo motor would have
superior results with a higher spring constant. To maintain symmetrical spring force on both
faces of the gripper, 8 rubber bands (equivalent to 8.9 for k) were utilized and signs of
over-torquing started to appear as the range of motion decreased. This helped us determine that
the optimal spring constant is indeed close but under 8.
Motor Optimization:
From our calculations, the maximum torque of the motor can not exceed 0.555N-m.
Consequently, the maximum force exerted from the end effector is a function of maximum
torque divided by the distance r. The variable “r” is defined as a system constant to variate
throughout the optimization function. The measure performance function for the motor is used to
iterate the link length from 1.5 to 9. The function is used to output the grasping force of the
gripper by dividing the maximum torque of the motor by the displacement of the variable
grasping force scalar. Since the same optimization method of minimization is used for the system
output force based on the variation of the motor link length (same as the spring optimization), the
system output force must be inverted for the scipy minimize function to determine the maximum
output force. The optimization result shows that the ideal motor length to be used is 8.899 ~ 9.
This simulation result indicates that the motor connections made in the prototype are already at
their ideal values for maximizing the gripper grasping force.
References:
[1] Pynamics package: https://pypi.org/project/pynamics/
[2] Scipy.optimize.minimize:
https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.minimize.html