Mike Grauer's Final Project Report for Bio Inspired Robots Fall 2006

From GICL Wiki
Revision as of 20:36, 18 December 2006 by Mgrauer (Talk | contribs)

Jump to: navigation, search

Contents

Introduction

My robot is modeled on a polar bear, although the lurching and maladroit gait of my creation does little justice to the grace with which that largest of surviving Ursine comports itself. I opted for a four legged creature as it would be simpler to balance than a two legged one, and would require fewer parts than a six legged one. My overall design is fairly simple, with a single drive train and motor that powers all four legs and the offsets of the leg attachments to the body providing the body with stability.

My simulation model was created using the MSC Adams View software, essentially I created an abstracted virtual model of Adams geometric primitives based loosely on the proportions of the Lego pieces in the physical model. My virtual model evolved over time to finally approximate my physical model reasonably well. The rotational speed of the hip gears on the virtual model are closely matched to what I empirically measured on my walking physical model, and the gait of my virtual model is quite similar to the physical one, both in terms of the side to side lurching and the rising and falling of the front and rear body segments. I feel that the virtual model I have created is close enough to the physical model that I can perform parametric tests on the virtual model and feel confident that the findings would apply to the physical model--this idea of simulation and testing the virtual in place of the physical being one of the core ideas in this course. To this end I have actually used my virtual model to find what rotational speed on the hip gears would cause the robot's legs to become unsynchronized, resulting in the robot's loss of leg synchronization and stability, and eventually an overall bodily collapse. This kind of testing can stand in the place of having to try out different motors on the physical robot in order to find the fastest speed sustainable by the robot.


Full robot.JPG

Robot Design and Rationale

My design goals were simplicity and stability for this robot. By creating a four legged robot I didn't have to worry about correcting for the shifting center of gravity as I would in a two legged robot, and as there were only two cross axles to the central drive train I felt that a single motor could power the robot. In offsetting the legs to four different positions, I thought that I could provide stability to the robot by always having two legs diagonally across from each other touching the ground at the same time. This design also made the power distribution simple by allowing a single rotational power source to supply all four legs at the same time, since the offsets in the legs' positions are enough to keep them in the correct order relative to each other. This meant I could simply turn on the motor and have it power the legs without worrying about any kind of control program, though clearly this also limits the robot to walking forwards or backwards only (depending on the polarity of the motor wires connecting to the 9V battery power source). The 9V battery serves a dual purpose, both providing power and a counterweight to the motor.


The drivetrain consists of a single motor that provides rotational output spinning around the long axis of the robot's body. The motor is connected to a long connector axle with two worm-gears set at fixed distances along the drivetrain, these distances corresponding to the 24T gears which are centered on each of the two leg axles. The two leg axles spin in an axis perpendicular to the long axis of the robot, spinning in what would be the Y axis if the drivetrain is the X axis. As the motor spins the central drivetrain, the worm-gears on the drivetrain spin the 24T gears, which are fixed to the leg axes, and thus spin the leg axes. The hip gears are fixed to these leg axes, and provide four different positions to attach the legs. By attaching the legs in an offset position I keep the stability of the robot intact and keep the drivetrain design simple. When looking at a 24T gear, if the four holes of the gear are positioned so that each one is in one quadrant (upper left = 1, upper right = 2, lower right = 3, lower left = 4), I set the legs at offset positions so that legs diagonally opposed to each other would either be on the ground at similar times (rather than the same times, what I mean here by similar is mostly the same times) or in the air at similar times. So for the description of gear holes above, I could position the front right leg at hole 1, the rear left leg at position 2, the rear right leg at hole 3 and the front left leg at position 4.


Simplified Drive Train example
Description Thumbnail Image (click for full size)
An example of a leg axle system, has an axle with one 24T gear fixed to the axle at the center, and a 24T hip gear fixed at either end of the axle.
Mjg robot gears.JPG
Here the leg axle system is set into a frame of two cross beams set along the long axis, the axle can spin freely while being held in place between the two beams.
Mjg robot axlegearsinframe.JPG
Here a drive train axle with worm gear is attached into cross beams that are set along the same axis as the leg axles, the drivetrain can spin freely while being held in place, as the drivetrain turns, the worm-gear spins the central 24T gear.
Mjg robot drivetrainexample.JPG


Actual Drive Train
Description Thumbnail Image (click for full size)
A view of the drive train exposed, with the right side hip gears removed.
Mjg robot fullviewdrivetrain.JPG
A view of the drivetrain down the long axis of the robot, with the hip gears removed

.

Mjg robot drivetraintoplongaxisview.JPG
A view of one of the leg axles with the hip gear removed.
Mjg robot hipgearconnectionaxle.JPG
A view of the hip gear with the leg removed (4 different possible positions of leg can be seen).
Mjg robot leggear.JPG


The legs are attached to the hip gears via two rotational joints, one joint connecting the cylindrical leg extender to the hip gear, and one joint connecting the cylindrical leg extender to the leg itself. These cylindrical hip extenders create additional distance of the legs and feet from the body, which provides extra stability. The legs are fixed into the feet of the robot and are also wide for stability--just like the polar bear's wide feet which help reduce pressure by distributing the weight over a larger area, helping to prevent falls through thin ice (of course this is just wild speculation, but it sounds plausible and I wanted to highlight the bio-inspired theme again).


A 9V battery is connected to the motor through the wire, and depending on the polarity of the battery's attachment to the motor, the motor will spin clockwise or counterclockwise. The central axle then spins, and the worm-gears on the central axle spin the central 24T gears on the leg axles. The leg axles rotate the hip gears, which then lift the legs and feet. Each leg is constantly rotating around the leg axle, which means that it is lifting off the ground and moving forward (or backward), which together with the action of the other legs will propel the robot in a direction along the long central axis of the robot.


Here is a video of my physical robot walking, the book behind it is for a frame of reference.

Media:MJG-walker.AVI

Physical Assemblies

Exlpoded View of All Assemblies


Body and legs.JPG



Leg X 4

Leg Assembly Exploded View

Leg assembly.JPG

Leg Assembly

Mjg robot leg.JPG


Leg Assembly Bill of Materials (x4)
Quantity Description Thumbnail Image (click for full size)
4 4x1 (3 hole) beam
MJG LEGO 4x1x3 hole beam.JPG
3 2x1 (1 hole) beam
2x1x1 hole beam.JPG
1 10x1 (9 hole) beam
MJG LEGO 10x1x9 hole beam.JPG
2 cross axle to round connector
MJG LEGO Cross axle to round connector .JPG
1 cross axle to cross axle collar
MJG LEGO Cross axle to cross axle collar.JPG
1 24T Gear
MJG LEGO 24T gear.JPG


Battery Chamber X 1


Battery Chamber Exploded View

MJG batterychamberexploded.JPG

Battery Chamber

MJG batterychamber.JPG


Battery Chamber Bill of Materials (x1)
Quantity Description Thumbnail Image (click for full size)
1 6x2 (5 hole) plate
MJG LEGO 6x2x5 hole plate.JPG
4 10x1 plate
MJG LEGO 10x1 plate.JPG
2 10x1 (9 hole) beam
MJG LEGO 10x1x9 hole beam.JPG
4 8x1 plate
MJG LEGO 8x1 plate.JPG
5 6x1 plate
MJG LEGO 6x1 plate.JPG
2 2x1 (1 hole) beam
2x1x1 hole beam.JPG
2 4x1 (3 hole) beam
MJG LEGO 4x1x3 hole beam.JPG
1 10x6 plate
MJG LEGO 10x6 plate.JPG





Motor Housing X 1

Motor Housing Exploded View

MJG MotorHousingExploded.JPG

Motor Housing Assembly

MJG MotorHousing.JPG


Motor Housing Assembly Bill of Materials (x1)
Quantity Description Thumbnail Image (click for full size)
1 10x6 plate
MJG LEGO 10x6 plate.JPG
12 6x1 (5 hole) beam
MJG LEGO 6x1x5 hole beam.JPG
2 6x1 plate
MJG LEGO 6x1 plate.JPG
12 3x1 plate
MJG LEGO 3x1 plate.JPG


Drive Train X 1

Drive Train Exploded View

MJG drivetrain exploded.JPG

Drive Train Assembly

MJG drivetrain.JPG


Drive Train Assembly Bill of Materials (x1)
Quantity Description Thumbnail Image (click for full size)
1 Lego Motor
MJG LEGO motor.JPG
2 2x1 (1 hole) beam
2x1x1 hole beam.JPG
2 cross axle to cross axle collar
MJG LEGO Cross axle to cross axle collar.JPG
2 worm gear
MJG LEGO wormgear.JPG
4 3.9 mm width cross axle to cross axle connector
MJG LEGO crossaxle to crossaxle 3-9mm connector.JPG
2 62.8 mm axle
MJG LEGO 62-8mm axle.JPG


Body Frame with Leg Axles X 1


Body Frame with Leg Axles Assembly

MJG bodyframe assembly.JPG


Body Frame with Leg Axles Exploded View

MJG bodyframe assembly frameexploded.JPG


Body Frame with Leg Axles Assembly Bill of Materials (x1)
Quantity Description Thumbnail Image (click for full size)
2 4x2 (3 hole) plate
MJG LEGO 4x1x3holeplate.JPG
6 4x1 (3 hole) beam
MJG LEGO 4x1x3 hole beam.JPG
2 2x1 (1 hole) beam
2x1x1 hole beam.JPG
2 47.4 mm cross axle
MJG LEGO 47-4mm axle.JPG
4 3.9 mm width cross axle to cross axle connector
MJG LEGO crossaxle to crossaxle 3-9mm connector.JPG
2 24T Gear
MJG LEGO 24T gear.JPG
2 12x1 (11 hole) beam
MJG LEGO 12x1x11holebeam.JPG
2 16x1 (15 hole) beam
MJG LEGO 16x1x15holebeam.JPG


Body Frame Top Half Exploded View

MJG bodyframe tophalfexploded.JPG


Body Frame Top Half Assembly Bill of Materials (x1)
Quantity Description Thumbnail Image (click for full size)
4 6x1 plate
MJG LEGO 6x1 plate.JPG
6 10x1 plate
MJG LEGO 10x1 plate.JPG
2 8x1 plate
MJG LEGO 8x1 plate.JPG
3 4x6 plate
MJG LEGO 4x6plate.JPG
1 2x2 plate
MJG LEGO 2x2plate.JPG
2 8x2 (7 hole) plate
MJG LEGO 8x2x7holeplate.JPG


Electrical System Bill of Materials (x1)
Quantity Description Thumbnail Image (click for full size)
1 9V battery with duct tape
MJG 9Vbatterywithducttape.JPG
1 Lego motor wire
MJG LEGO motorwire.JPG

Virtual Model and Physics Based Simulation

I created a virtual model of my robot in the Adams physics based simulation environment. Rather than representing the individual Lego blocks, I created Adams geometric primitives for each of the major parts of the robot. The proportions of the body parts to each other is roughly the same as in my Legos model. Adams allows a user to simulate the reactions of bodies in a physical reality, with forces such as friction and gravity, motions, and various attachments of bodies to each other. Adams is a complex software package, which I only delved a little into, and it has a substantial learning curve. I have posted links below to resources that I found helpful in learning Adams.

Certain abstractions were needed to represent the robot in Adams that do not map to the physical reality. One such example is that the drive train of the physical robot is powered by a motor, which is in turn powered by a battery. The motor turns a long axle, which turns two worm gears, the worm gears then turn two 24T Lego gears, which are fixed to two axles set perpendicularly to the long axle of the drive train. In this way as the motor turns, the leg joints, which are attached to the two cross axles, revolve in a circle and the legs follow suit. When constructing the Adams virtual model, I set individual rotational motions on each of the four hip joints, so there really isn't anything to synchronize the virtual model's hips as there is in the physical model. I set the rotational speed of the virtual model as 88 degrees/sec, which I arrived at by empirically observing that it takes approximately 4.1 seconds for the physical model's legs to perform one complete rotation (360 degrees / 4.1 seconds is roughly 88 degrees per second).

Algthough there were some differences between the physical and virtual model, I feel that the virtual model I created had reasonable fidelity to the physical model, which is bourne out in the simulation video of the virtual model. In the simulation video, the robot appears to walk with much the same lurching gait as the real model, and the head and tail both swing up and down as in the real model. I have included a simulated video of my virtual model walking, as well as the actual file for my virtual model.


Media:Goodwalker.avi

Media:Extrusions.zip


One aspect of virtual simulation I have explored is tolerance and parametric testing on the virtual model. When building a physical prototype, it can be far too expensive in time and materials to perform full testing of a parametric space, so in building a suitable virtual model many more tests can be run in a repeatable and efficient manner. For instance, I only had access to one motor for my robot, so I couldn't tell the top speed supported by my robot's gait. Through using the virtual model, I was able to keep increasing the rotational speed until the legs collapsed from underneath the center of gravity of the robot, which occurs around 300 degress per second. I have included a simulated video of my virtual model collapsing below.


Media:Collapses.avi



I have also created a video tutorial that shows creating part of a robot similar to mine. This tutorial demonstrates creating a robot body, attaching a hip gear as a revolute joint to the body, adding a rotational motion to the hip gear, adding a leg attached to the hip on a rotational joint, adding a foot onto the leg with a fixed joint, creating a ground plane, and adding contact forces between the ground and the foot (I realize now that I forgot to add frictional force, which is just a modification of the contact force between the ground and the leg). I also show how to set a simulation going in this tutorial. Following the tutorial step-by-step will not arrive at robot like mine with four complete legs forward walking motion, but it will demonstrate most of the steps needed to construction such a robot. I have also uploaded the robot model that was created during the tutorial, which can be loaded into an Adams environment.


Note: I had to break up the tutorial into individual parts due to file upload limitations, also, it may be easier to download the files than to play them in a browser--I had some difficulty playing the files myself.

Media:Adamsexamplepart1.avi

Media:Adamsexamplepart2.avi

Media:Adamsexample3.avi

Media:Adamsexample4.avi

Media:Example.zip

Useful Links and Resources

include lego robot book inclue lego robot pdf from handyboard include the adams tutorials