Links to stuff on this blog

Use the Site Index of Projects page link above for an easier way to find stuff on my blog that you might be looking for!

Sunday, August 30, 2009

Rise of the robot...

Moving forward with the creation of the robot I spent some time this weekend building up more components for the remaining three legs that I'll need. Most of the time was spend duplicating the two main metal parts needed for each leg. I have decided to call one of them a horse and the other a swan - sounds odd but that is what they look like! The horse plates I made out of 0.03" aluminum plate as they don't add much to the rigidity of the leg itself. The initial prototype leg has the same horse part made from 0.06" thick plate but I think that is thicker than it needs to be. Just to save a small amount of weight and to make the fabrication a bit easier I went with the 0.03" Figure out which ones are the horse and swan from the pictures, there will be extra points for folks who guess correctly! Also included in the pics is the first prototype to give an idea as to how each new piece will fit into the leg.
Also the carbon tubes for the legs and the bearing joint connections had to be constructed. For the top ends I cut three pieces of plastic Knex parts, drilled a hole through them and put in a 4-40 socket head cap screw. There is one partly assembled at the top of  the picture above. I screwed the screw into the end of the carbon fiber tube with some Weld-It glue, looped some wire through it as well, wrapped it with fishing line and put some heat shrink over it. This is the same way I made the first prototype and it made a strong connection.
In a similar fashion I connected the middle leg joint plates. They are made from 0.03" AL that I bent at 90 degrees. I sanded the outside of the carbon tubes in the area where the plates will be joined and glued them with the Weld-It. Once the glue had dried for about 20 min and the plates were somewhat secure I applied more glue over the outside of the carbon tubes and plates then wrapped them with fishing  line, getting it really wet with the glue. Over the fishing line and the glue went some heat shrink tubing. Heating the tubing with the weld-It glue still wet causes it to 'carmelize' a bit and turn the gooey mess into a hard solid mass. This also is what i did with the prototype and it is suprisingly strong.
Taking a break from building the legs I dug part of an old color Epson printer/scanner out of the junk pile. I took the broken printer apart a few months ago and threw away most of it, saving the top cover, the glass you set your page to be scanned on, the power supply and all the beat motors, belts and gears that were inside. I'll use it all up on other projects someday.... but today I took the top cover off that used to close down on top of the glass to cover a page being scanned. I figure that this will make a rigid and light base undercarriage to mount the legs on once I get them all built. It is bigger than I needed so i cut it down to about a 7" square on the bandsaw and sanded the edges clean.
There are some other washer spacers that I have to make that are also 0.03" AL with a 0.14 hole in the center and an outed diameter of 0.25" - these are a pain and I was getting tired so I just made 4 so I could assemble a second leg. At this point I have two complete legs built with 2 Futaba s3004 servos in each leg. I have two more servos right now and I'm going to build up the turn mechanisms now for these two legs before I move on to the remaining legs.
I'm getting close to needing to figure out what control system I'm going to use to animate the robot. About the same time I'll have to work out the walking coordination that is required by the linkage system. I wrote briefly about this in the previous post and in thinking about it I believe there is an easy way to do it. I still have some time as there is a lot to do before the legs are ready for a brain....

Friday, August 28, 2009

CAD Model of leg and description of the mechanism

Now that the stability issues have been figured out and I am happy with the amount of force I can get out of the linkage, I think it's time to get a better idea of what I have built. I am reasonably confident that 4 or more of these  mechanical legs mounted to a base of some sort could be controlled well enough to make the entire contraption to walk so I took the time to model in SolidWorks the leg mechanism as it is today. The black carbon fiber leg tubes and the ball joints are all defined so that I can move the leg in the CAD software and accurately measure the rotational angles of the Futaba servo motors at any leg position. To walk smoothly both servos need to move at the same time to take a step due to the linkage mechanism. The tip of the leg (the foot essentially) should move in a reasonably straight line as the leg takes a step otherwise the robot will waddle and jerk as it goes along. Probably not a big problem at first but eventially if the robot gets some kind of sensor system to monitor where it is the waddle and erratic motion could be a problem. I can think of a few other ways than CAD to figure this out like move the actual prototype leg and try to measure the angles or open up the servos and measure the resistance of the position pots that are inside.
The two Futaba servos are mounted on top of one another with the top one causing the entire leg to Rotate down and the bottom one (by linkages) causing the leg and foot to extend. There are two aluminum plates that and on the ends of the servos and spaced apart with aluminum and plastic standoffs. I went with this approach to keep the amount of metal bending to a minimum which should make these more rigid.
The pivots or bearings are made from nylon standoffs that happen to fit nicely into K'nex pieces with a little bit of cutting. The loose fit and the low friction make good bearings. The attach points to the carbon fiber tubes took a bit of experimentation but I settled on bending some metal, wrapping it onto the carbon tube in an area that had been sanded, wrappint it up with fishing line and the spreading clue over both the metal and the line. Before the glue dries sliding heat shrink tubing over all of it and heating - shrinking it down. This seems to have made a reallt strong bond to the tube and is working well.
I have created some relationships in the CAD model that I can control with dimensions and measure the angles as the foot moves. All the angle information and the actual foot position will go into a spreadsheet to define a state machine based on the combination of servo rotations. Put another way the table will be a look up of servo angles with the result being the location of the foot in 3D space. This table or the data simplified to a formula will go into the robot controller that will eventually run this thing. 
This is a lot of information and I am tired so I am sure it's not making a lot of sense the way. Eventually it will all work.... ;-)

Wednesday, August 26, 2009

A Very Very Odd Table Lamp...

This is what happens when I get bored and want to do something different... Awhile back a friend gave me a broken Ionic Breeze air cleaner to fix. I took it apart and the power supply was blown up and had cooked itself.  About the only thing inside that was still working was the transformer. I used that in building my bench top power supply. The other part of the air cleaner that I thought was neat was the plastic base that the entire thing sat on. I took the transformer and the base and threw the remainder of the apparatus away (with my friends permission - I couldn't fix it!) Anyway around the same time I got a cool blue glass flower vase that someone else didn't want. The blue glass vase seemed to fit on the Ionic Breeze base more or less, especially after I cut a groove in the plastic base the same diameter and the vase. Looking at it I thought it would make a neat looking table lamp if it had lights inside it. Besides what doesn't look cool with lights inside it?? How could I go wrong?! After looking around in my garage I found some clear plastic tube and some clear flat plastic. Add a bunch of LED's and WOW what a lamp!!!!
The next fun task was to figure out how to turn the LED's off and on. I added a timer circuit and a CD4017 counter chip to drive the green LED's around the base and the red LED's going up the clear tube. At the very top of the clear tube I put one of the ultra-bright LED's you get from Radio Shack and connected that LED to the 'carry out' of the CD 4017 counter chip. The timer circuit causes the counter chip to count (obviously) and turns on sequentially the red and green LED's, making the green ones light round and round in a circle at the base and the red ones climb up the clear light pole. When the red ones 'reach the top' of the pole the blue ultra bright LED lights up and stays lit until the red ones make it about half way back up the pole. The carry out pin on the CD4017 controlling the blue LED is normally used to connect together multiple counter chips when you want to count higher than one chip can count... anyway to finish it off I got a little hobby kit board that lights LED's based on sound that it picks up from a microphone and I stuck that in there. I drilled a hole in the beautiful Ionic Breeze base and poked the microphone through it. You can see it in the picture. I rewired the sound board to drive a different number of LED's than it came with and put those (yellow) in between the green ones because I couldn't find a better place for them. I put a 9 volt battery inside to power the thing and placed the blue glass vase on top..
The finished lamp is somewhat odd looking as it sits on my desk blinking away. The clicking sound of my keyboard makes the yellow ones blink with the brightness based on the intensity of the sound, louder is brighter (in electronics - not people)... really cool!!! not really cool but it's something interesting and now I'm not bored any more.... I'm sitting here wondering why I built it...

Tuesday, August 25, 2009

Stability problem solved...

After thinking a bit about the Stability Issues with the robotic leg I decided to do some more experiments and try to reproduce it at various angles and orientations of the leg mechanism. I Rotated and Extended the leg to get it into a position that was causing a great deal of instability then held it in my hand. I tried rotating it upside down while poking it with my finger to get it to resonate and shake. It seemed to do that in all orientations and positions... so I get the feeling that it isn't just the balance issue although that is part of it. While moving it around  I noticed that applying some pressure on one of the servos, essentially fighting the motor caused some jitter in the other one. This had to be a power supply issue so I put my oscilloscope on the power then signal wires and could  see the jitter in not only the servo position command signal but in the power supply as well.... Looks like the little Futaba servos pull a lot of current and are messing with the control circuit I built. To isolate the problem I separated the power supply wires for the motors and the control circuit and then powered the control circuit from my home made triple output bench top power supply.
That seems to have fixed the servo jitter problem for the most part! There is still some instability but that appears to be related to the servos and inherent in their design (still learning about these) I should have run a dual supply from the beginning but I'm thinking long term as in a mobile Robot device that would only have one power supply for everything. Although I am reconsidering that now at this point!
In summary I believe that what was going on is a combination of several things:  1) The servos are a bit jittery due to their design and low cost  2) The natural resonating frequency of the leg is near the 'jitter frequency' 3) The single power supply and the common wiring was injecting noise into the control circuit  4) The noise caused the servos to jitter and oscillate more 5) Because of number 1 and 2 above the entire system was feeding back on itself 5) Certain orientations and balance exacerbated the problem.
I'm going to test for that and be sure that the leg will function in all orientations then add the Turn servo to the mechanism.

Monday, August 24, 2009

Leg Prototypes 1 and 2 along with a Servo Exerciser, Power Supply

This is basically the first post documenting the design, construction and testing of a robotic leg mechanism that will (someday) be used in a home made robot. I have been messing around with the idea of building a robot using servo motors commonly used in RC boats and airplanes etc... I am using Futaba S3004 servos and fabricating linkages and bearings out of plastic and some RC ball joints. The idea here is that 4 legs can be built using 3 servos in each leg. These could be mounted to a square base with one in each corner and made to walk etc... using a small single board computer like a Basic stamp or something similar.

Before starting on the base or getting a processor board I decided to pick up a few servos and figure out if the legs would even work. Below is what I have been doing in the leg design so this post is kind of a catch up to where I am today. I'll post CAD files of a finished design once I work out all the bugs.

In each leg one servo will lower the leg in what I am calling a Rotate move. Another servo to extend the leg using a linkage mechanism - an Extend move and eventually a third to turn the leg in a Turn move. Because I started this blog a few days after I started constructing the legs this post will lay out some of the previous work. I have no experience with these types of servos so I am learning about their characteristics.

I built one leg prototype without the Turn servo just to test the linkage mechanism. The picture shows the leg lowered about 45deg. with a Rotate move. The extend linkage is out about half way as well. The total travel with these servos is 180deg. In this design the Rotate servo is held stationary and the Extend servo moves with the linkage in a Rotation. In this way the total mass being moved in a Rotation is the leg mechanism and the Extend servo combined. The center of gravity in this design made it a bit lopsided in the Rotate move as the center of gravity moved over the Rotate axis. The Rotate servo oscillated as the leg went 'downhill' and had gravity helping it. It was stable in the other direction.

Last night and this evening I finished assembling the second leg prototype. I tested it and it exhibits some of the same issues as prto #1 did with stability in the Rotational move. In this design I put both the Rotational servo and the Extend servo in the linkage mechanism. In this way both servo motors and the leg linkage move when a Rotational motion is done. This design is balanced when the mechanism is horizontal as shown in the picture. (Prototype 1 is on the left in the picture for comparison, Prototype 2 on the right) This leg too has some stability issues when it is balanced as shown, the Rotation servo seems to be susceptible to oscillations when touched or poked a bit. Also when the Extend servo is operated and the leg is in this position the motion of the Extend movement can initiate the oscillations.

One thought is that the moment of inertia for both leg prototypes is the about the same and the natural resonating frequency of each mechanism is approximately the same (I'm guesstimating anyway). If this frequency is the same as the internal servo feedback loop that could cause the instability. I experimented with a cantilevered pole attached to one servo on the bench and was able to get it to oscillate by changing the pole length until I found the "sweet spot". In this experiment the axis of rotation was vertical and the pole essentially laying flat and rotating horizontally so gravity/balance wasn't an issue. Another option is to drive the leg mechanism in the Rotation move by using a linkage to connect the Rotation servo to the leg rather than mounting the leg directly to the servo. The linkage will take the mass of the leg off the servo head couple it to the servo through the linkage so the reflected inertia of the leg mass back to the servo can be 'set' by changing the linkage arm length. If I build and test the linkage approach I'll post a picture to explain it better.

Before building the legs I built a small servo control box. You can see it in the picture above, it's the silver metal box behind Prototype 2 with three knobs on it. This box controls up to three servos, turning the knob causes the servo to turn by the same amount. (Because the servo motors only turn 180deg the knobs don't turn all the way around) The schematic is a hand scribbled mess but what I built from it works. There are a billion different schematics on the web showing similar circuits but I built mine mostly using parts I had laying around the garage. There is nothing new or interesting about the circuit but I put a copy here in case it stops working and I can't find the paper I scribbled it on!!!

Sunday, August 23, 2009

A recent lathe project

Here is a bowl that I made awhile ago as a gift for a friend. It is made of laminated bamboo and other misc. hardwood. Pieces were cut on a bandsaw, glued than turned.
I cut some of the interior hollow out before gluing it to make it a bit easier to form the interior. 
You can see the hole between the clamps.
Finished I polished it with wax and sealed it with varnish, light sanding etc...
This is the Home Made Wood Lathe that I designed and turned this bowl on. Check out my post that describes building the Home Made Wood Lathe!!

Second Leg Prototype

Worked on the second leg prototype this evening