Sie sind auf Seite 1von 32

1

TEAM BBG

KALEY BOYCE, LAUREN CREADORE, BRICE KLEIN, AND


SABA FAZELI

Puttin dinosaurs back into extinction since January 2015

FINAL PROJECT
ME112 WINTER 2015

EXECUTIVE SUMMARY:
The predicament we found ourselves in here at Gearassic Park was made excessively
clear over the past few days, as you, our executives know. As your engineering team, we were
summoned to design and build a battery powered, walking robot that we would release from our
central compound to distract the surrounding dinosaurs and enable our escape. The robot needed
to traverse a path of paved stone and bark chips, and had to be capable of navigating under the
electric fence surrounding the dinosaur-infested compound in under eighty seconds. Given our
current state of ease on the supply ship, it is safe to say we succeeded.
The first step our team took to ensure that the machines motion resembled something
other than a wheeled robot was to write a Matlab script to prototype the paths of different four
bar linkages. We arrived at a coupler curve that would accurately simulate the path of an
animals foot while walking, and managed to quickly laser cut our links to begin testing. One of

our primary goal in constructing the robot was to make it as robust as possible, so we made sure
to create adequately thick linkages, and to take into consideration the rough terrain the machine
was required to traverse. As a result, we chose to make our creature operate with four legs, as we
believed the advantages of having fewer moving parts and weight would benefit its functionality.
We utilized a Tamiya six-speed gearbox and motor configured at a 196.7:1 ratio, with belts and
pulleys connecting the axles we used to drive each linkage. We also included a system of axle
couplers (complete with set screws) to perfect the machines diamond gait. During testing, we
found that the speed reduction of this gear ratio, along with our six centimeter step size provided
adequately rapid motion while still generating enough torque to help the machine maneuver out
of rough terrain.
An incredibly critical part of our design was the creation of the machines feet, which
needed to be large enough to keep it from falling into the wide-set cracks in the paved stone of

3
the theme park. We 3D printed the first design, and during testing found it to be too small, as one
foot got caught in a crack and ended up breaking a gear in our transmission. In our second
iteration, we made sure to make the feet significantly larger to prevent the same situation from
repeating itself, and were successful: our robot was then able to crawl over all of the cracks in
the path without any trouble.
After spending time testing the crawler, it occurred to our team that the diamond gait we
had chosen, along with the relatively low slung foot path very much resembled the motion of an
infant human. Considering that we aimed to escape from dinosaurs that found humans tasty, we
decided that there would be no better option than an infant-themed robot to distract the dinosaurs
from our escape. We borrowed a doll that we found in the daycare area of the Gearassic Park
central headquarters, and, well the result is grotesque, but there is little doubt in its
functionality given our successful escape: the infant was able to successfully crawl out of
headquarters with ease, creating an adequate diversion for the dinosaurs to allow us to escape
unnoticed.

Table of Contents:
1. Background (pp. 5)
2. Design Description (pp. 5-13)
3. Performance Analysis (pp. 13-16)
4. Motor Characterization (pp. 16)
5. Numerical Analysis of Coupler Curve (pp. 16-17)
6. Redesign (pp. 17-19)
7. Conclusions (pp. 19-20)
8. Appendix A: Coupler Curve and Virtual Work Analysis (pp. 21-26)
9. Appendix B: Motor Curves (pp. 27-29)
10. Appendix C: Drawings of Linkages (pp. 30-31)
11. Fin (pp. 32)

BACKGROUND:
The goal of this project was to design and build a small and legged creature that could
function in a situation that simulated an autonomous machine that would distract dangerous
dinosaurs and lead them to an electric perimeter fence. This battery powered machine which
cannot be wheeled would need to traverse a path consisting of a shortest distance of 3.66m of
paved stones and 1.5m of bark chips in 80 seconds or less, and crawl under a rope of height
20cm above ground. This machine would be bio-inspired, which meant that its outward
appearance would resemble the creature for which its gait was modeled to match. In addition to
needing to fit under the rope, a bounding shoebox of approximately 12 by 18 by 30 cm
determined the shape and size of the machine.
Our group aimed to make a machine that would (1) be robust and stable enough to
successfully navigate the rough terrain of Gibbons Grove (or the Gearassic Park Headquarters),
(2) have a gait that we could easily adjust once the machine was built, and (3) would be easily
adaptable from four legs to six or possibly two legs if our four legged design was unsuccessful.
Our goals were a product of our interpretation of the design requirements. We found the most
important requirement to be building a machine that could successfully navigate from the
starting position to the rope. Since each group member was interested in learning more about
linkages and gait analysis, we focused on mastering movement, and though the time requirement,
size requirement, and outward appearance were things we certainly kept in mind during the
entire design process, we chose to focus our efforts on successful off-road motion.
DESIGN DESCRIPTION:
Our overall design was guided by two principles: robustness and adjustability. Due to the
rocky terrain, frequent changes in height, and unknown obstacles, we wanted our crawler to be
able to survive any obstruction it confronted. Due to the variety of terrain, we wanted the ability
to adjust aspects of the crawler during testing instead of fully determining our design before
production and being unable to easily change it.
To create an easily adjustable, robust crawler, we chose to make a four-legged
contraption where each leg was a four-bar linkage. Using four sets of four-bar linkages was a
distinctly more simple configuration than six legs and or a six-bar linkage, which allowed for
elements such as gait to be more easily manipulated than if there were more components to
worry about. Fewer moving parts also reduced friction within the overall system and diminished
the likelihood of failure. With fewer linkages, there were fewer parts working against each other
and, as a result, a lower likelihood of any given link breaking.

Figure 1: side view of four bar linkage, with clear acrylic drive link on the right.

The legs were made of two different materials: duron and acrylic. As seen in Figure 1,
our drive link was made of acrylic because of its brittle properties: it needed to be able to
withstand the torque applied by our d-shaped drive shaft without deforming. Unlike a more
ductile material such as wood, which would allow the shaft to eventually turn its way completely
through the d-profile, the brittle nature of acrylic prevented the drive axle from slipping and was
able to provide a higher power transfer rate from the shaft to the drive link than duron could. The
brittle nature of acrylic also meant that it was more likely to fracture with repeated loadings than
a more ductile material because the load cannot be distributed throughout the member as well.
To account for this and improve fatigue life, the drive link was 0.25 thick, twice the thickness of
the other links, which were laser cut from 0.125 duron as seen in Figure 2 on the next page.

Figure 2: profile view of linkage assembly, with nylon spacers, acrylic drive link, and drive shaft collar

Duron is much more ductile than acrylic and thus exhibits better fatigue behavior than its
more brittle counterpart. This allowed us to use duron links that were half as the thick as the
acrylic ones but could withstand the repeated loads as well. (We were not worried about failure
from a single load at yield strength, but rather many small, repetitive loads from the babys steps
which could result in fracture). To further improve the fatigue life of our linkages, we cut all our
links with circular ends surrounding the through hole for a shaft or pin as seen in figure 1. The
enlarged heads helped decrease notch stress at potential points of failure and thus helped improve
fatigue life. To connect the links, we used plastic screw-posts. For the small loads experienced
by our crawler, plastic provided plenty of strength and a lightweight alternative to metal. The
plastic posts also cut their own thread, which meant they were much more difficult to unthread
during motion than their metal alternatives. This meant we didnt have to Loctite them as we
would have with metal screw-posts, and thus we had the ability to easily adjust our linkages
without having to finalize our design before securing our screw-posts. To offset the links and
minimize friction, we used nylon spacers which were epoxied together to minimize friction
between the spacers themselves and minimize the degrees of freedom in our linkages.

Figure 3: d-profile shaft running into the belt pulley on the right, and the rear coupler on the left

Our linkages and driveline was centered on the use of 0.25 diameter d-shaped steel
shafts. As seen in Figure 3 above, the d-profile of the shafts allowed for power to be transferred
to our drive links without glue and without the shaft slipping in the link (which would result in
wasted energy). The shafts also provided a flat surface to drive set screws into. Instead of placing
the screw on a round surface where it is prone to slipping and resulting in power losses, by
placing the set screw on the flat surface of the d we were able to minimize slipping.

Figure 4: broken rear shaft and 0.25 coupler for easy gait adjustment

We mounted and connected everything through parts with 0.25 through holes and set
screws to lock them in place with respect to the rotating shaft. We used the shaft collars seen in
Figure 4 and Figure 5 to prevent our shafts from sliding side to side, and to hold our linkages
against our sidewalls. Their black-oxide material allowed for a large torque to be applied to the
set screw without shearing the threads. We used the black-oxide shaft coupler seen above in
Figure 4 to connect our rear axle. Instead of having a connected rear axle that would not allow
for gait adjustment, we sawed the rear axle in half and reconnected it with a shaft coupler. This
allowed us to fix the two rear shafts at any degree of rotation with respect to one another, making
it possible to choose a gait that worked best with the unknown terrain instead of having to decide
before laser-cutting our links. To connect to the 4mm output shafts of the Tamiya HighEfficiency 6-Speed Gearbox we used two stainless steel 4mm-0.25 set-screw based shaft
couplers, as seen in Figure 5. Thanks again to the set-screws, this coupler allowed for a rigid
connection to be made between the 0.25 d-shafts and the drive axle of the motor, and allowed
us to rotate the front legs relative to one another for a variable gait, just as with our rear legs.

Figure 5: 4mm to 0.25 shaft couplers used to connect gearbox output shafts to our drive shafts.

10

Figure 6: Kevlar timing belt and pulley

To power our rear legs, we used a system of timing belts and pulleys to transfer torque
from the output shafts of the gearbox to the rear axles. The 0.375 belts, reinforced with Kevlar
(shown in Figure 6) allowed us to have a robust connection and minimize power losses between
our legs. The belts rode on two 14-tooth, 0.2 pitch pulleys, also pictured in Figure 6. The
relatively large pitch of the pulleys meant that their teeth wouldnt fail, and the low number of
teeth minimized both weight and the moment of inertia about the shaft axis.

11

Figure 7: Skateboard bearing used as belt tensioner

To tension the belts and prevent belt slipping over the rear pulleys, we used the
skateboard bearing seen in Figure 7. The bearings allowed for inaccuracies in mounting because
the outer portion of the bearing rotates about the inner collar without the entire system needing to
rotating on a shaft.

Figure 8: Tamiya High Efficiency 6-Speed Gearbox, with 4mm output shafts

To power the baby, we used a Tamiya High-Efficiency 6-Speed Gearbox, seen above in
Figure 8. The gearbox provided a 6 gear ratios which could be changed as needed during testing.

12
Ultimately, we used a 196.7:1 gear ratio, which provided a comfortable travel speed and a safetyfactor on the amount of torque needed. Because the baby needed to crawl through a variety of
terrain featuring many cracks, we chose to use more torque than the crawler needed to simply
propel itself on flat ground in-case the baby needed to pull its foot out of a crack or dig through
wood chips.

Figure 9: bottom view of foot with epoxied Lego tires and rubber bands

To avoid getting stuck in a crack or under wood chips, we used over-sized ABS
(Acrylonitrile Butadiene Styrene) feet, which were 3D printed from a Solidworks model. Seen
above in Figure 9, the feet had a maximum cross-section of 2.5X3.2, comfortably larger than
any crack present in Gibbons Grove. In order for the large feet not to drag as the baby crawled,
we gave them the concave up elliptical profile seen in Figure 10 such that if they confronted an
elevated surface, they would not butt directly into it but rather slide over it.

Figure 10: inside view of elliptical foot design (front left foot pictured)

13

To minimize the weight of the feet and provide ample strength they were 3D printed with
a two layer sidewall thickness and an 8% infill matrix. The feet splayed outwards, towards the
front and back of the baby so as to not interfere with each other. We also cut, epoxied, and
rubber banded sections of the large Lego tire left over from the crawler project to the bottom of
the feet for added grip across the smooth surfaces of the stone. We applied the tire rubber to the
sections of foot most active in propelling the baby forward, which corresponded to the heel of
each foot, as seen in figure 11.

Figure 11: demonstration of diamond gaits stability due to large foot size

The large feet enabled crawler to stand steadily with only two diagonal feet on the
ground. As seen above in Figure 11, this greatly improved the efficiency of our baby and its
diagonal gait, because it meant that it did not need a third foot on the floor which would
inevitably have a motion opposing the other two feet on the ground. This gait was assisted by a
carefully placed battery pack and motor (the two heaviest elements of the crawler) which aligned
the center of mass of the baby between any the two diagonal feet on the ground at any given
time.

PERFORMANCE ANALYSIS:
When designing our coupler curve, we had three key criteria: a slow horizontal
translation at its base, a fast return, and a gradual step into the ground. Slow movement at the
bottom of curve meant that the foot would have a steady, smooth interaction with the ground.
This would ensure an efficient transfer of power from the foot (the coupler link) to the babys
body as it was propelled forward. If the coupler moved too quickly at the bottom of its motion, it
would slip against the ground resulting in wasted energy as the baby wouldnt crawl but rather
stand in place and rub its feet against the ground. A fast return meant the feet would spend most
of their time propelling the crawler forward instead of pushing the baby in the wrong direction or
having the feet move in opposite directions. The smooth step into the ground was crucial so as to
have the foot strike the ground slowly and not experiences large loads due to the increased
impulse from a rapid foot placement. Overall, making sure all of these requirements were met as
a part of our crawlers foot path was a time consuming process, but once we figured how best to
accomplish it (using Matlab), we knew that our baby would be able to walk.

14

Figure 12: Matlab plot of coupler curve (blue shows original curve, black shows rotated curve)

As seen in Figure 12 above, our actual coupler curve met all of the above requirements
and provided other benefits as well. By examining the density of points on the curve, it is clear
that there are many more on the upper half than the lower half. This indicates that the coupler
spoint spends much more time on the base of the curve than on its return--exactly what we
desired. From the plot, it is also clear that the when the foot strikes the ground (on either side of
the curve) there is an especially large number of points. This meant that the foot would very
slowly contact the ground thus minimizing the forces experienced by the baby. As the foot
contacts the ground, it does so at an angle instead of going directly into the surface. This was
important because not only did it help minimize loads at impact, but it also helped reduce
unnecessary stresses on the links. By contacting the ground at angle there is a much smoother
transition between the foots descent and its horizontal path at its base than if it moved purely
downwards and then purely horizontally (this second motion would result in large loads on the
links due to the rapid change in their velocity vector and thus change in momentum). When
examining the coupler, it is clear that the coupler curve is nearly symmetric about a vertical axis.
We accomplished this by applying a rotation matrix to the coupler code, rotating the original foot
path (shown in figure 12 in blue) by 50 to make the foot sit flat on the ground. Doing this
simplified our assembly because it meant that the baby could crawl in either direction with
effectively no performance difference.

15

Figure 13: Baby crawling using diamond gait


(image URL: http://movement-as-medicine.com/wp-content/uploads/2014/01/baby-crawling.jpg)

With four legs, we ultimately chose to implement a diamond-style gait. This meant that at
any point, two feet across from each other (for example, front left and rear right) would be on the
ground. Our large feet allowed us to have the baby rest comfortably on two legs instead of
falling towards a third for stability as seen on the robot in Figure 11, and pictured with an actual
infant in Figure 13 above. This greatly improved our efficiency because it meant that at any
given time (except for the rare instance where all four feet were on the ground) all the feet on the
ground were moving in the same direction. Instead of needing to rest on a third foot whose
motion would oppose that of the other two diagonal feet, we could have propel the baby forward
with only two feet and minimize the wasted energy from the third foot fighting the others.

16
MOTOR CHARACTERIZATION:
We performed a basic motor characterization on the Mabuchi RE-260A motor that came
with our 6-speed gearbox by testing the Stall and No Load conditions, which produced the
following results (see Appendix () for calculations).
R = 1.786 ohms
k = 0.0022 V*s
Tf = 0.00068 N*m
Using these specifications, we were able to determine the motor efficiency as a function of
current being drawn from the motor for the voltage used with four AA rechargeable batteries,
which we determined empirically by measuring the voltage across our battery pack while it was
powering our motor (V = 4.84 volts).

We also measured the current being drawn from our motor while the machine was running (I =
1.35 amps) to determine how efficiently our motor was running (see operating point (*) on
efficiency curve). While we were not operating at peak efficiency, we were able to achieve a
relatively efficient motor operation with = 38% approximately.

17
NUMERICAL ANALYSIS OF COUPLER CURVE

Figure 12 (repeated for reference to table)

Position
1

Position
2

Position
3

Position
4

Position
5

Horizontal Velocity (m/s)

-2.84

1.48

0.28

1.34

1.56

Vertical Velocity (m/s)

-0.024

-0.095

-0.57

-0.31

0.011

Horizontal Acceleration (m/s^2)

-1.45

-15.2

-8.75

-2.95

-0.21

Vertical Acceleration (m/s^2)

-2.93

4.63

0.53

-2.64

-2.57

Magnitude of Horizontal Force (per


leg) (N)

9.95

10.69

9.20

7.62

6.11

Vertical Force (per leg) (N)

6.86

2.79

4.99

3.11

6.66

Power (Overall) (W)

39.44

31.62

7.70

20.83

19.00

Figure 14: table showing values for numerical analysis of coupler curve

As seen in the table and corresponding Matlab plot of our coupler curve above, the
numbers for the overall power needed to be supplied by the motor are all reasonable. Of the five

18
points shown, the peak power needing to be supplied by the motor occurs at Position 1,
corresponding to a return of the foot. Fortunately, this peak power occurs during the fastest point
of the foots travel meaning that the foot only spends a short amount of time around this point,
and that this peak power is only required for short durations. This is a conservative estimate for
the peak power because the foot at this position in the coupler curve is likely never in contact
with the ground. Because only two feet are ever in contact with the ground at a given time, a foot
will never be on the ground (i.e. bearing a load) and accelerating as much as the point as Position
1 is; thus, we will have a lower peak power than predicted. The actual load bearing feet will
likely only exist at Positions 3 through 5. At these points, there is a much lower power
requirement from the motor than at Positions 1 or 2.
As seen in the table above, the forces for load bearing feet are low--loads easily carried
by the baby. For the loading bearing positions (3-5), the maximum normal force experienced by
a foot is 3.11N. Given that the mass of our baby is 0.5kg, this corresponds to a net vertical
acceleration of 1.26g. Accordingly, the normal force a given foot must support is only slightly
greater than the force it must support when resting in a stationary position (2.45N). The
calculations for acceleration and force on the feet, as well as the curves of acceleration and
velocity versus position can be seen in Appendix A.

REDESIGN:
Our redesign would be centered on the most prominent flaw of our crawler: its inability
to fit in the shoebox. Our baby was roughly 0.5 too tall and barely squeezed into the box width
wise. To reduce the height of our crawler, we would 3D print shorter feet. As seen in figure 11
(repeated for convenience below), the feet are at least 0.5 taller than needed. In order to prevent
interferences, this would require cutting off the bottom portion of our coupler link and using just
the two mounting holes and not the third bottom hold as seen in figure (x). The bottom most
mounting hole is unnecessary as only two holes are necessary to prevent the feet from rotating
with respect to the coupler link.

Figure 11 (repeated): Image showing how much taller our feet are than necessary and the orientation of the
mounting holes between the link and the foot itself.

To decrease the width of baby would require removing one of the two timing belts. The
crawler used a redundant belt system in order to provide power more evenly to the rear axle, and
to help diminish the possibility of a belt slipping over the rear pulley. In order to use only one
belt, we would have needed to be confident that the belt would not slip over the pulleys under
high load. This would require an adjustable tensioning system that was could alter during testing
to find an ideal tension, and to account for the belt loosening from wear (either in the belt itself

19
or in the mounts to the duron). In order to create this tensioning system, we could have cut a slot
in the sidewall of the driving side of the baby. We would then run a 0.25 threaded rod through
the slot, and mount it on either side with a sandwich of flat-steel washers, nylon washers, and
nylock bolts, just as we did with the skateboard bearings, and as seen below in figure 7 (repeated
below for convenience).

Figure 7 (repeated for convenience): clear view of mounting skateboard bearings to sidewalls as tensioners
using 0.25 threaded rod, nylon washers, and nylock bolts.

The two neoprene washers would press against the sidewall and prevent the threaded rod
from sliding down the slot even with repeated adjustment. The nylock bolt would resist
loosening on the rod and help maintain a constant pressure on the washers and sidewall. This
assembly would be placed on the right-side (facing forwards) of the baby such that as the baby
crawls, the belts serve to tighten the bolts on the shaft instead of loosen them. The same
skateboard bearings as before would be used for their low friction and minimal mounting
requirements. With the slot cut for the threaded rod, any slop in mounting could be adjusted for
by loosening the nylock, sliding the rod, and retightening, thus providing a variable belt tension
without unwanted slip, both between the rod and the sidewall and also between the belt and rear
pulley.
CONCLUSIONS:
Aside from the obvious flaw that our machine did not fit within the dimension
specifications dictated by the project guidelines, our crawling baby worked exceptionally well.
The performance of our machine did not come without working to overcome design challenges
and performance issues, all of which required our group to iterate upon our machine design

20
multiple times. One of the biggest challenges we faced was figuring out a foot design that would
allow the machine to pass over large cracks as well as walk through debris without digging into
it. Our first iteration1 included semicircular feet that were 1.5 wide and 1.7 long. While the
semicircular shape allowed the feet to scale interferences well, we found that they easily slipped
into large cracks. At the same time, we found that our timing belts were slipping when there was
significant torque on the feet. We were able to quickly tension our timing belts by adding
bearings to our machine, which solved our slipping problem but quickly created an unforeseen
issue.
Because the feet of our crawler were still too small to pass over large cracks, during a test
of our newly tensioned belts, one of the semicircular feet became embedded in a large crack.
This forced the motor to reach stall torque and caused the gears in our gearbox to fatigue rapidly.
Ultimately, a few teeth in one of the gears fractured. We were able to reconfigure our gearbox
such that we did not require the fractured gear, but realized we needed to redesign the feet to
avoid a similar situation from happening again during later tests of our machine. We chose to
over-design our feet by making them significantly wider (2.5 wide, 3.2 long) so that they
would not fall victim to even the largest of cracks. Once our group attached the large, elliptically
curved feet, the crawler was able to walk over the cracked stone rapidly and with ease.
The over-sized feet not only allowed the machine to walk over large cracks without
getting stuck, but significantly helped the machine stand confidently on two feet, further
improving our performance. The well-balanced machine did not tip with each step, and thus did
not require three feet on the ground at all times. Combining the diamond gait with the over-sized
feet helped the machine to move forward effectively, since the feet never had to work against
themselves. Since our feet were designed with the goal of traversing the stone rather than the
debris field, our crawler did not perform as well in the wood chips as it did walking over the
stone. The machine slowed down significantly in the debris, since our large feel tended to shovel
the debris rather than move over it. However, we would not propose a redesign of our feet since
the machine was still able to move through the debris effectively. We accepted the tradeoff of
speed for functionality in this instance, and believe that we gained quite a bit more than we lost
with the over-sized feet.
The other source of lack of performance, as discussed in our redesign proposal, was the
fact that our machine was too large to fit into the shoebox. Given more time, our group could
have easily decreased the height and width of our machine which would have allowed us to
succeed in all parameters of this project: bio-inspired design, functionality, and meeting
dimension specifications. At the conclusion of this project, our group was able to recognize the
benefit of design iteration, and could have improved our machine given the time and resources
for one more iteration on our machine housing. Each aspect of the machine required at least one
design iteration, whether it was our gearbox, timing belt configuration, linkage configuration,
housing design, or foot design. Spending too much time on any one feature would have crippled
our group, and prevented us from having a functional product, but allowing for a few iterations
of each feature would have propelled our machine to function exceptionally well. Ultimately,
this machine requires many parts to function well individually and perform with other features
when they come together, so each feature should be given its due time. Our group was able to
iterate upon most features to produce a functional product, but did not give enough time to the
housing, preventing our machine from meeting one of the design specifications. While it was a
tradeoff that we deemed necessary given our time constraint, we would suggest to future groups
to pay attention to and spend due time on as many features as possible.

21
Appendix A: Coupler Curve and Virtual Work Analysis
To determine the trajectory of the four-bar-linkage used on this machine, we determined
the position at the ground contact point on the coupler link of the four-bar-linkage at constant
intervals as the input to the crank link. The velocity it each of these coupler curve points was
determined as well.
To calculate the acceleration at each point, the difference of the velocities in the x and y directions of the
point of interest and the one preceding it was taken and divided by the amount of time between the two points.
The equations below were used to calculate the forces at each point. In these equations represents the
coefficient of friction between rubber and dry asphalt, .9. The mass in these equations is the overall mass of the
system halved to account for the fact that the two feet on the ground equally share the load of the crawler. The total
power equation is multiplied by a factor of two to find the total power which needs to be supplied to the two feet in
contact with the ground.

22

23
Matlab Script for Coupler Curve and Virtual Work Analysis:
%ME112
%Four Bar Linkage Position Solver
%Boileplate
clear all
close all
clc
%% Constants
scale = .2;
r1 = 275*scale; %<-- Base Link
r2 = 100*scale; %Rotating (Short) Link
r3= 250*scale; %<-- Long Link (Opposite Base)
r4 = 225*scale; %<-- Opposite Rotating
%Be sure to check the Grashof Condition
theta1 = pi/12; %Before .254
step = .1;
theta2 = 0:step:2*pi; %<-- Vary the intermediate quantity to change the
number of points plotted
omegain = 1104.1; %rad/s
gearRat = 196.7;
omega = omegain/gearRat; %Rad/s
time = step/omega; %time for the drive link to turn .1 rad
%Adding the foot
r5 = 325*scale; %<-- The Extension from r2
phi = pi/3; %<-- The angle of the extension from r3
%Vectors to Plot
x2 = zeros(1, length(theta2));
y2 = zeros(1, length(theta2));
x3 = zeros(1, length(theta2));
y3 = zeros(1, length(theta2));
xc = zeros(1, length(theta2));
yc = zeros(1, length(theta2));
%Translations
x3r = zeros(1, length(theta2));
y3r = zeros(1, length(theta2));
xcr = zeros(1, length(theta2));
ycr = zeros(1, length(theta2));
%Velocities
vxc = zeros(1, length(theta2));
vyc = zeros(1, length(theta2));
%Accelerations
axcr = zeros(1, length(theta2)-1);
aycr = zeros(1, length(theta2)-1);
%% Calculations
for i = 1:length(theta2)
%% Solve for Theta 3 & 4
r7 = sqrt((r1^2)+(r2^2)-2*r1*r2.*cos(theta2(i)-theta1));
numGamma = (r4^2)+(r7^2)-(r3^2);
denomGamma = 2*r4*r7;
gamma = acos(numGamma./denomGamma);
%Calculate theta4
numAlpha = (r1^2)+(r7^2)-(r2^2);

24
denomAlpha = 2*r1*r7;
if theta1 <= theta2(i) && theta2(i) <= theta1 + pi
alpha = acos(numAlpha/denomAlpha);
else
alpha = -acos(numAlpha/denomAlpha);
end
theta4 = pi-(alpha-theta1)-gamma; %<-- The sign on gamma should be
changed for the inversion.
%Calculate theta3
num3 = r4*sin(theta4)+r1*sin(theta1)-r2*sin(theta2(i));
theta3 = asin(num3/r3);
if cos(theta3) < 0
theta3 = pi-theta3;
end
%% Create the Points
x2(i) = r2*cos(theta2(i));
y2(i) = r2*sin(theta2(i));
x3(i) = x2(i) + r3*cos(theta3);
y3(i) = y2(i) + r3*sin(theta3);
%Add a Foot Length (i.e. create the coupler curve)
xc(i) = x2(i)+r5*cos(theta3+phi);
yc(i) = y2(i)+r5*sin(theta3+phi);
%% Rotate the Coupler Curve
thetaGuess = 1.9*pi/3; %<-- Change this value to rotate the coupler
curve.
xcr = xc*cos(thetaGuess)-sin(thetaGuess)*yc;
ycr = xc*sin(thetaGuess)+cos(thetaGuess)*yc;
x3r = x3*cos(thetaGuess)-sin(thetaGuess)*y3;
y3r = x3*sin(thetaGuess)+cos(thetaGuess)*y3;
%% Calculate Coupler Point Velocities
A = -r3*sin(theta3);
B = r4*sin(theta4);
C = r2*sin(theta2(i));
D = r3*cos(theta3);
E = -r4*cos(theta4);
F = -r2*cos(theta2(i));
omega3d2 = (B*F-E*C)/(D*B-E*A); %<-- Omega of Point 3 divided by omega of
point 2
omega4d2 = (A*F-D*C)/(E*A-D*B); %<-- Omega of Point 4 divided by omega of
point 2
vxc(i) = (-r2*sin(theta2(i))-r5*sin(theta3+phi)*omega3d2)/(time*1000);
%Convert to m/s (e.g. give a time value and mm-->m)
vyc(i) = (r2*cos(theta2(i))+r5*cos(theta3+phi)*omega3d2)/(time*1000);
vxcr = vxc*cos(thetaGuess)-sin(thetaGuess)*vyc;
vycr = vxc*sin(thetaGuess)+cos(thetaGuess)*vyc;
end
for i=1:(length(theta2)-1)
axcr(i) = (vxcr(i)-vxcr(i+1))/time;
aycr(i) = (vycr(i)-vycr(i+1))/time;
end
%% Calculate Forces and Power
N = 2; %Number of feet in contact with the ground at a given time
g = -9.81;

25
mass = 1.0764;%kg
m = mass/N;
mu = .9; %Coefficient of friction between rubber and dry asphalt
Positions = [3, 10, 18, 28, 35];
Lp = length(Positions);
Vx = zeros(1, Lp);
Vy = zeros(1, Lp);
ax = zeros(1, Lp);
ay = zeros(1, Lp);
Fx = zeros(1, Lp);
Fy = zeros(1, Lp);
Power = zeros(1, Lp);
P1 = Positions(1);
P2 = Positions(2);
P3 = Positions(3);
P4 = Positions(4);
P5 = Positions(5);
for i = 1:length(Positions)
Vx(i) = vxcr(Positions(i));
Vy(i) = vycr(Positions(i));
ax(i)= axcr(Positions(i));
ay(i)= aycr(Positions(i));
Fy(i) = m*(g+ay(i));
Fx(i) = m*abs(ax(i))+abs(mu*Fy(i));
Px = Fx(i)*Vx(i);
Py = Fy(i)*Vy(i);
Power(i) = 2*(((Px^2)+(Py^2))^.5);
end
Vx = Vx
Vy = Vy
ax = ax
ay=ay
Fx = Fx
Fy = Fy
Power = Power
%% Plots
%Location Plot
figure
%plot(x2, y2, '*')
hold on
%plot(x3, y3, 'c*')
plot(xc, yc, 'b*');
plot(xcr, ycr, 'k*');
plot(xcr(P1), ycr(P1), 'ro');
plot(xcr(P2), ycr(P2), 'co');
plot(xcr(P3), ycr(P3), 'mo');
plot(xcr(P4), ycr(P4), 'go');
plot(xcr(P5), ycr(P5), 'bo');
legend('Original Curve', 'Rotated (Final) Curve', 'Position 1', 'Position 2',
'Position 3', 'Position 4', 'Position 5')
plot(0,0, 'r*')
%plot(x3r, y3r, 'm*');
axis equal
grid on
xlabel('Horizontal Position (mm)')

26
ylabel('Vertical Position (mm)')
title('Coupler Curve')
%Velocity Plot
figure
hold on
plot(vxcr, vycr, 'k*');
plot(vxcr(P1), vycr(P1), 'ro');
plot(vxcr(P2), vycr(P2), 'co');
plot(vxcr(P3), vycr(P3), 'mo');
plot(vxcr(P4), vycr(P4), 'go');
plot(vxcr(P5), vycr(P5), 'bo');
legend('Velocity Curve', 'Position 1', 'Position 2', 'Position 3', 'Position
4', 'Position 5')
axis equal
grid on
xlabel('Horizontal Velocity (m/s)')
ylabel('Vertical Velocity (m/s)')
title('Velocity at Positions along Coupler Curve')
%Acceleration Plot
figure
hold on
plot(axcr, aycr, 'k*');
plot(axcr(P1), aycr(P1), 'ro');
plot(axcr(P2), aycr(P2), 'co');
plot(axcr(P3), aycr(P3), 'mo');
plot(axcr(P4), aycr(P4), 'go');
plot(axcr(P5), aycr(P5), 'bo');
legend('Acceleration Curve', 'Position 1', 'Position 2', 'Position 3',
'Position 4', 'Position 5')
xlabel('Horizontal Acceleration (m/s^2)')
ylabel('Vertical Acceleration (m/s^2)')
title('Acceleration at Positions along Coupler Curve')
axis equal
grid on

27
Appendix B: Motor Curves
We performed a basic motor characterization on the Mabuchi RE-260A motor that came
with our 6-speed gearbox by testing the Stall and No Load conditions. The resistance of the
motor was determined by taking the slope of the V vs. Istall curve.

Using this resistance, the motor constant was determined by taking the slope of the
(V - INo Load*R) vs. curve.

The torque due to friction in the motor was calculated by taking the average of k*INoLoad.

These constants allowed our group to create motor performance curves in Matlab, with
(*) showing the operating point during testing.

28

29
Matlab Script for Motor Characterization:
R = 1.786;
k = 0.0022;
Tf = 0.000688;
V_run = 4.84;
i_nl_run = Tf/k;
i_stall_run = V_run/R;
wnl_run = (V_run - (i_nl_run*R))/k;
w_run = 0: 0.1: wnl_run;
i_run = (V_run - w_run.*k)./R;
Tl_run = (k.*i_run - Tf);
P_run = Tl_run.*w_run;
e_run = P_run./(i_run.*V_run);
count = 0;
for i = 1:length(i_run)
count = i;
if (i_run(i) < 1.35)
break
end
end
%Torque vs Speed
figure(1)
plot(w_run, Tl_run);
xlabel('Speed (rad/s)');
ylabel('Torque (Nm)')
title('Torque vs Speed')
legend('4.84 V')
grid on
hold on
plot(w_run(count), Tl_run(count),'*');
plotfixer
%Power vs Current
figure(2)
plot(i_run, P_run)
xlabel('Current (amps)')
ylabel('Power (Watts)')
title('Power vs Current')
legend('4.84 V')
grid on
hold on
plot(i_run(count), P_run(count),'*');
plotfixer
%Motor Efficiency vs Current
figure(3)
plot(i_run, e_run)
xlabel('Current (amps)')
ylabel('Efficiency')
title('Efficiency vs Current')
legend('4.84 V')
grid on
hold on
plot(i_run(count), e_run(count),'*');
plotfixer

30
Appendix C:

An image of the Solidworks part file for our drive link. Its thickness was .25 and had the dimensions as seen
above. It was ultimately laser cut from acrylic.

An image of the Solidworks part file for the link opposite our drive link. Its thickness was .125 and had the
dimensions as seen above. It was ultimately laser cut from duron.

31

An image of the Solidworks part file for the coupler link. Its thickness was .125 and had the dimensions as seen
above. It was ultimately laser cut from duron.

An image of the Solidworks part file for the babys foot. At its widest point, it had a cross-section of 2.5X3.2. The
foot was ultimately 3D-printed out of ABS with a side-wall thickness of two layers and an infill of 8%.

32

Fin.

Das könnte Ihnen auch gefallen