Final Design & Analysis

Here the final design and analysis are described in further detail.

Sections (in order):

Dynamic Model

FLEXMAG Link

Kinematic Model

Control Interface

The sections titled FLEXMAG Link and Control Interface discuss the design of our deliverables, while Dynamic Model and Kinematic Model discuss the corresponding analysis which lays the groundwork for these designs.

Dynamic Model

A simplified model of the robot was created using SolidWorks. The mass properties were overridden to match the actual robot and then a motion study was conducted to analyze the dynamics of the robotic arm. To simulate the motors at the joints, torsional springs were added in place of the motors. By physically measuring the displacement of the robotic arm when a weight was added to it, the stiffness of the shoulder joint was obtained. Then, the other two joint stiffnesses were found by changing them until their displacements matched the physical displacements. The data was plotted to find stiffness in Figure 12.

Figure 12: Stiffness coefficients found through measuring displacements

After the stiffnesses were found, a motion analysis was conducted to find the natural frequency of the arm. Figure 13 shows the simplified model in two different configurations. The natural frequencies found in the study were compared to physical natural frequency measurements to ensure that our model was valid.

Figure 13: Vibrations of simplified dynamic model

In addition to frequency, the dynamic model is used to determine torques, as seen in Figure 14, and the resulting loads are compared to load readings from the motor in Figure 15. Although the curve shapes are similar, the magnitude is off. This can be partially explained by the fact that the empirical loads are inferred from motor readings, which are inaccurate according to the manufacturer.


Figure 14: Torque as arm is raised from lowered to extended position

Figure 15: Load from SolidWorks compared to empirical load

FLEXMAG Link

The FLEXMAG Link was designed in SolidWorks as well. This design combines the flexible and fused links by creating a link which can use both springs (for flexibility) and magnets (for breaking away) with varying amounts of strength.


Using the simple hand calculation in Figure 16, the compression spring stiffness was found. A buckling calculation was also performed based on Shigley's Mechanical Engineering Design, 10th ed. in Figure 17 to find the critical horizontal deflection. Although the result of 8 lbs was not accurate, we determined that a 3-inch long spring requires a mean diameter of 0.58 inches for absolute stability. Thus, a suitable spring was selected from McMaster's catalog in Figure 18.

Figure 16: Spring stiffness calculation

Figure 17: Spring buckling calculation

Figure 18: Selected spring meeting minimum stiffness requirements

For the breakaway aspect of the link, magnets will be used. Two neodymium magnets are capable of producing significant force and can be easily installed onto the link using a 1/4''-20 bolt. The magnets can be swapped to produce a variety of pulling forces. 

Figure 19: Neodymium magnet

We used McMaster again to find an example magnet which is suitable for the link, shown above in Figure 19. Combining the spring, magnet, and aluminum attachments designed to meet ATA’s specifications, the FLEXMAG link can be easily assembled onto the existing extrusions. Figure 20 & 21 shows the FLEXMAG link.

Figure 20: The FLEXMAG link

Figure 21: Shop drawing for aluminum attachment

Kinematic Model

The MATLAB controller interface requires the use of a kinematic model for the control of the animatronic figure. ATA already uses MATLAB in their offices, so no other software was used. No extra hardware was designed, as the keyboard is sufficient for the interface. The positions of each of the joints are calculated using the following kinematic equations in Figure 22 where p0 is the position of the torso joint, p1 is the position of the shoulder joint, p2 is the position of the elbow joint, and p3 is the position of the wrist joint.

,

Figure 22: Forward kinematic equations

The program can use the kinematic equations to display an animation of a defined motion. Thus the user can preview a motion before executing it. As shown in Figure 23, the animation simply plots the XYZ positions of each of the joints and connects them sequentially with red lines from the torso joint all the way to the wrist joint. The blue lines, which indicate the main body of the animatronic figure, were added for better visualization. Figure 24 shows the locations the hand's endpoint can reach in a 2D plane based on the motors' rotation limits.

 

Figure 23: Kinematics model with p0, p1, p2, and p3 representing the torso joint, shoulder joint, elbow joint, and wrist joint

Figure 24: 2D workspace

The kinematic model also includes the capability to perform inverse kinematics by using an iterative algorithm:

Control Interface

The flow of data in the interface is shown in Figure 25:

Figure 25: MATLAB, Arduino, and the motors working in unison

In MATLAB, the user has 3 control settings to choose from: 

Figure 26: Motion profile controller, step 1

Figure 27: Motion profile controller, step 2

Figure 28: Motion profile controller, step 6

A motion smoothing capability has been added when the arm runs step commands. The motors' default behavior is to move in a trapezoidal profile (Figure 29); that is, the motors' velocity is shaped like a trapezoid when moving from one position to another. The sharp changes in velocity and acceleration cause the arm to jerk and vibrate.


Figure 29: Trapezoidal profile

To slow down changes in velocity and acceleration, we command the motors to move in a more gradual S-shape. We determined that a 5th-order polynomial curve (Figure 30) best reduces vibration even when the arm moves at high speed from one location to another. The results are shown in Figure 31.

Figure 30: Polynomial equation

Figure 31: Polynomial curve