Tom Plick's Course Project
Current simulation: Media:TomsRobot3.zip
Immediately below is my final report for the class.
I built my robots out of K'nex. The first robot had four legs in the style of the windshield-wiper mechanism presented in class. Unfortunately, it did not actually walk; it just moved around in place. Here is a picture.
It would have been possible to get this one to walk by increasing the friction on the back legs (e.g. with rubber feet), but I opted to build a second robot, based on a simpler idea, one that I knew would work. This second robot would also make the computer model simpler; I explain why below.
This idea was to connect two axles in a manner similar to the bars connecting the wheels of a locomotive. However, instead of the typical locomotive motion, this bar would stay horizontal and ensure that the wheels stayed in phase with each other. Also, in place of the wheels, the robot would have a pair of legs. Constructed in this manner, the legs of the robot would travel in a vertical circle, but the feet would always point toward the ground.
This mechanism buckles, but the addition of a third axle makes it work. The locomotion of the robot results from an arrangement of four of these mechanisms, each at a different angle. As you can see below, the final product somewhat resembles a spider; it depends how powerful your imagination is.
In the course of this project, I faced the problem of modeling K'nex by computer. The instructor provided models for Lego pieces, but I had to find my own for the K'nex. Luckily, a set of K'nex pieces modeled in LDraw had already been created by Ryan Farrington and made available link here. After finding these, I foundered for a bit trying to get the pieces out of LDraw format and into a more usable format. I at last found a freeware converter named link dat2dxf and transferred the K'nex pieces into DXF (AutoCAD format).
From DXF format, I wanted to get the files into the DirectX mesh format, so that I could use the models in code I wrote last year. The best solution I found is listed in Week 9 below; it uses a plugin with the Gmax 3D modeler.
The robot is represented as 12 objects: 4 pairs of legs, 2 frame pieces, 3 axles, and 3 sets of gray connectors taken from the axles. (Separating the gray pieces from the rest of the axle allows a bonus feature in the demo app.) The motion of the robot is regular enough that the path of each component can be specified succinctly: each has a center of revolution, a radius of revolution, a phase value (e.g. opposite pairs of legs will be out of phase by 180 degrees), and a flag saying whether the object rotates as it moves (as an axle does) or whether it keeps its orientation (as the legs do).
The finished model is this application: Media:TomsRobot3.zip.
My project is a four-legged robot. Each leg is moved by a joint similar to the windshield-wiper mechanism that Dr. Regli presented in the first (?) week of class.
My robot is somewhat reminiscent of a daddy longlegs with only four legs. My original intent was for the robot to walk like a cat, having three legs on the ground at a time; but in its current configuration, that made it just shuffle back and forth. So, I put little rubber feet on the front legs, and they make the robot drag itself forward. I may change that....
Unlike everyone else in the class, I am using K'nex to build my robot. I have more experience with them and I own a bunch of them already, so this appealed to me more than using Legos. K'nex makes battery-powered motors that one can slip on a rod and have it turn like an axle; currently I am powering the robot with a hand crank. Fortunately, my design doesn't seem to need a lot of torque, so I am fairly confident that the electric motor will drive my beast just as well as my index finger has.
Here are some pictures of the robot:
- I made the legs shorter; the robot was liable to fall down, because I was using gray rods that are all bent from a model I made years ago.
- I found a set of K'nex models for LDraw (http://home.ifriendly.com/~fourfarrs/library.zip) and am going to see how to get them into a CAD program.
I had another idea for a robot, and I built this one during the Eagles game on Sunday. (Note to self: it was the one against New Orleans)
I also received my K'nex motors in the mail and put them onto each robot. The second one walks MUCH better than the first. I also managed to build it without any gears, which really helped since I only own four gears, it seems.
Here are pictures of the second robot:
More to come...
I have managed to convert the K'nex LDraw files into DXF format: Media:knex_parts_dxf.zip
You can get the DAT-to-DXF converter at http://www.geocities.com/Eureka/Gold/3269/dat2dxf.html ; a direct link to the download is http://www.ldraw.org/index.php?name=Downloads&req=getit&lid=29
Week 9 (?)
I found a program named gmax that will convert DXF files into DirectX meshes. It requires using a converter though; the instructions are at http://panda3d.org/wiki/index.php/Converting_from_GMax . I am still wrestling with the lighting; the .X files I have made so far look rather blurry. I will keep experimenting with the materials options.
Here are the .X files: Media:knexmeshes13Nov06.zip
(To-do: insert lame Mulder and Scully joke)
I have started the animation of my robot in DirectX. Right now it has just the legs and a dummy axle; I have yet to build the axles. You can try it (this is EXE, not source): Media:TomsRobot1.zip
These are the controls for the program:
- ESC - exit
- up/down arrow - move closer/back away
- left/right/page up/page down - rotate
- insert - go faster
- delete - go slower
Progress: Media:TomsRobot2.zip (this one really slows down the machine, so don't run it if you're working on something important)