Mike Grauer's Robot Project

From GICL Wiki
Revision as of 17:29, 26 October 2006 by Mgrauer (Talk | contribs)

Jump to: navigation, search



Version 1.0 Manual Power

I started with the idea of making a 4 legged robot, as that seemed easier to stabilize and balance than a 2 legged creature, and a bit simpler than a 6 legged robot in that 4 legs are fewer than 6. This robot has a single axle down its center axis that powers 2 separate 24T gears, each of which is attached to an axle that powers front or rear legs. The legs are attached to the axle with another 24T gear, which allows for 4 different offset positions of the leg attachments, though in this version of the robot I didn't really play around with that. When I built this robot, the kit I was working with had no motors, so I couldn't really design around the motors, and subsequently when I saw the motors I realized that I'd have to change the design as there was no place to attach a motor. In my mind I had thought that a single motor could drive both gears, and as a result, both sets of legs, and that I would simply be able to swap in a motor for the manual turning of the central axle, but this didn't work out. Part of the problem was that the motor took up too much space on this robot and had to be pushed far out to the head/tail so that it could properly attach to the central axle (I'll start calling this the drivetrain from now on), and once I attached a motor at this position the weight of the motor threw the entire robot off balance. At this point I realized I needed a partial tear down and redesign.


Mjg-snakerobot-v1-small.jpg


Version 2.0 9V battery powered Lurch

I attached a single lego motor to the drivetrain, which meant I needed to first extend the length of my robot to accommodate the motor, and the motor's weight set the robot off balance. I extended the robot in the other direction (both extensions were along the central axis) and at first used what I planned to be an unpowered motor to balance the weight, but once I found out that the motors could be powered by a regular 9V battery I realized that I could just put the battery opposite the main drive motor and the weight of the battery would balance that of the motor. Now that the overall length and weight of the robot had been increased, the original legs were not up the the task of holding the robot. I set the legs on pegs that were attached to the 24T gears so that the legs were seated at a greater distance from the center of the robot, which gave the robot a wider base, and I also widened the feet to give a more stable platform overall. The robot actually walked in this configuration, though lurch is probably a more accurate description of its motion. Shawn had told me that in watching a dog walking he noticed that there was a progression of different legs contacting the ground, e.g. left front, right rear, right front, left rear, so I set my robot legs to be attached in such a configuration based on the 4 different pin positions available on the gears. The offset is reasonably well upheld on legs on the same axle, but the offset isn't that tightly maintained between the two axles, and even so, this smoothed out the motion enough for the robot to make noticable forwardish progress. I took video of the robot at this stage moving across a tabletop, the book behind it is for a frame of reference.


Media:MJG-walker.AVI


CAD model work

I am attempting to make a model of my robot using the Adams software, and have run through some of the tutorials that Rich P put into his project page. I have also explored importing step files into CAD, for which I created a page CAD_Info. There are many Lego parts modeled in CAD environments, but some of them are unlabeled, so I spent some time importing them into Adams and creating a map of part labels to parts.


I've spent quite a bit of time with Adams now, using some of the various tutorials that are posted around the wiki. My general pattern seems to be: start using Adams, make some progress (monitonically increasing with the number of times I use Adams), get to some point where my simulation no longer works and I cannot revert back to a working model and cannot figure out which pieces are breaking the model, get frustrated and leave.

For a while I was trying to import the CAD models of the Lego pieces, but Adams will convert STP and STL files to shells, which rids them of solid properties like mass, center of gravity, and watertightness (notions of inside and outside). Parasolid files can be imported as solids. After this experimentation with the Lego pieces, I decided to try building an abstraction of my robot in Adams using Adams's geometric primitives.

Here I have built a portion of my robot: the back is represented, as are revolute jointed legs and feet; however, I have only attached legs and feet to one side (left/right) of my robot. I'm having a lot of trouble getting objects oriented in the Z axis. All of my XY objects work fine, which is why I can set up legs on one side, but when I tried to setup legs on the other side of the back of the robot, I couldn't get the pieces alligned properly and then my simulations started breaking.

Here is a simulation of the 2 legged robot, note that there is rotational motion on the two hip joints, and there is a contact force between the feet and the ground block, but not between any other two components.