Archive for category Robotics

First Assembly of all Four Legs

Leg Parts straight from waterjet sized

Parts from water jet cutting

I received the remaining water-jet cut parts from Big Blue Saw a couple of weeks ago, and have slowly been working on taking them from rough water-jet cut pieces, to parts that will actually fit into the robot. The water-jet cuts are fairly rough when looking for precision parts, which is why a lot of work goes into the rough parts in order to get things to piece together nicely. To be honest, though.. I wish I had a CNC mill/router that I could have used to precisely cut the parts myself.

Waterjet edges sized

Water Jet Edge Finish

This isn’t to say that water-jet cutting is bad, but it is what it is. You have to account for the fact that water-jet cut parts aren’t 100% perfect to minute tolerances. Some of the issues I have with these parts are that the water-jet seems to have cut at a bit of an angle, which causes tolerance issues requiring some filing work to make sure everything fits together nicely. That said, I’m still happy overall with the water-jet cutting, and would recommend it to anyone trying to make more complicated shapes or numerous parts. I wouldn’t have been able to make all of the more complicated/curvy cuts by hand as precisely and quick as the water-jet service does. Plus, the edge finish has a pretty cool rough effect (Although I will be smoothing it out for this particular robot)

Four Legs in progress

Four Legs!

After a lot of work machining the parts, I finally put togethor the frame of the robot with all four legs for the first time (minus the robot’s feet, which I haven’t gotten to yet). There’s still a lot of tweaking and some machining I have to do on these parts before they’re finished, and then there are a lot of small parts that I still have to make. It’s been around 5 months since I started this project, and things are really starting to come togethor, but I’m thinking it’ll still be another few months at least before the robot even moves, let alone moves in a fashion resembling autonomous walking. At least it’s finally starting to look like an actual quadrupedal walking robot.

Stepping the shaft from 4mm to 3mm sized

Stepping the Axles

I also turned the axles on the lathe recently. Eight of the axles are simply straight 3mm shafts, however the four hip/base axles are 4mm in the center, and 3mm on either end with a center groove to hold an e-ring which is used to keep the flat-flex cable in place, and out of the gears. I still need to put the axles on the mill in order to flatten them out to keep set screws in place, and to drive the potentiometers I am using for axle position sensing. I’ll post more on those in the future when I get to that stage of the build

One of the other things I still need to complete are the motor controllers, and the actual robot’s brain (likely a Gumstix Overo, but I would have to make my own carrier baord). I have tweaked and fixed small bugs in the design of h-bridge prototype I built in the fall, however I want to move the same circuit into a shape that will fit into the actual upper-leg side piece. Luckily that gives me more space to work with than the current itteration of the board (which will be used for controlling the inner four motors), so it should be a relatively easy task once I find the time.

, ,

3 Comments

Mini Sumo Beginnings

As with many projects, a mini sumo has been several years in the making, and has undergone several design revisions without actually having time to begin construction. But, finally, I took a bit of a break from the quadruped to start work on a mini sumo robot in the past couple days.

Aluminum Wheel Stock sized

Start of a wheel

I had some round aluminum stock sitting around, and felt like playing around with the lathe. I got my trusty hack-saw out, cut off a chunk of aluminum, chucked it up on the lathe, and started spinning. Over the course of one evening, I came up with a basic wheel and hub assembly to go with the Maxon 17:1 gear motors I’ve had lying around for almost a year now, waiting for a sumo robot to be built around them. This is the same Maxon motor many people use, and I had to contend with the same issue, that the motor length itself is half the maximum width of a mini sumo robot (About 50mm). This called for making a hollow wheel that would slide over the motor.

I made a two piece assembly, with a hub that is attached to the motor with a set screw, and a wheel that is attached to the hub with several 2-56 screws.

Wheel Bore Action Shot sized

Boring in Action

Overall, the boring went well on the lathe, but was definately a learning experience. The process itself was tedious, starting with drilling out a center hole using drill bits of incremental sizes until I had a center hole large enough to fit the boring tool, then slowly boring out a 21mm depth, 0.1-0.2mm at a time, slowing down as I approached the desired tolerance.

The tool itself chatters easily if you’re not careful, but I managed to produce a mostly clean bore. I’ll have to experiment/research a bit more on the best chip rates for turning aluminum stock…

Making the inner hub itself was easy to do, simply turning down the outside of a piece of aluminum, then using a couple drill bits to center drill a hole to about 2.85mm, then using a reamer to finish the center hole at a nice, clean 3mm to fit the shaft. A 4-40 set screw fit nicely, though I did have to file down a fraction of a millimeter that was sticking out from the hub itself, as that part of the hub fit with close tolerance into the wheel itself.

Wheel Assembly Parts sized

Prototype Wheel Parts

[caption id="" align="alignright" width="150" caption="Prototype Wheel Assembly"]Wheel Assembly Assembled sized[/caption]Using a milling machine to precisely drill the holes that I would then use to tap and mount the actual wheel to the hub helped keep everything nice and accurate. Once finished, the wheel and hub aligned very well, and I had a completed wheel assembly.. Now to finish the other wheel, make a tire mold, mold the tires, mount the motors to a chassis, and make a brain for it all.. Hopefully I can have a basic robot ready in time for this year’s Robot Games.

, ,

No Comments

Upcoming 2009 IEEE Robot Games

The 2009 IEEE/WCRG Robot games have been announced for May 9th, 2009. I used to be an avid participant, but first school and then work travel got in the way and as such I’ve only managed to make it out once in the past few year.

This year, I’m hoping to have a mini-sumo ready in time, one that I’ve been designing in the back of my head for several months (years?) now. I’ve had some tiny Maxon motors sitting around that I bought a year ago with the hopes of finding time to start this robot, and today took a break from the quadruped to finally start machining the wheels. I’ll try and post details later.

Anyways, if you can make it out to Calgary for May 9th, it’s definatley worth checking out the Robot Games. If you have spare time, make a robot to compete! It doesn’t have to be perfect, it’s more fun building a robot than winning…

, ,

No Comments

Boring Head Adventures

(Just a disclaimer, I wrote this late at night, so if may not make perfect sense. I’ll edit it for clarity when I get a chance)

Center Finder

Aligning with a Center Finder

Rewinding a few months back to the design phase of my robot, I had the issue that I wanted to use both radial ball bearings, as well as Teflon/bronze washers thrust bearings in the robot’s leg joints in order to provide as smooth motion as possible. Sounds easy right? I found some 8mm diameter bearings that I got for a really good price, and still but needed to find a large outside diameter Teflon washer with a small inside diameter to fit over the shaft. I couldn’t find such a washer at low volume and low cost. After some thought, I decided that I could get some standard 1/4″ ID washers, with a .750″ OD, which is slightly less than the diameter of the robot’s frame at the joints. The theory being that I could then bore out the inside diameter to 8mm, and have that slip over the bearing which I would then only seat part way into the frame. Sounds easy, right? To do it well, I needed to make a jig.

Boring the washer jig

Boring the hole for the washer

With the arrival of my new boring head for my Sherline mill today, I figured what better way to learn how to actually use it than by making a jig for boring my washers out. This was a better option than trying to make the bearing seats in the frame without having ever done any real boring before, and risking ruining some parts I’ve already put a lot of time into. I did a few quick tests on some scrap metal, and then got down to business. I cut two pieces of some thin bar stock aluminum, drilled, tapped and screwed them together, and then began to make the center hole, which was to be 8mm. I drilled a rough hole approximately 6mm in diameter into the aluminum, and then put it into the mill’s vice. Using the center finder, I (obviously) found the center of the hole to line it up, and proceeded to bore out the 8mm center hole. After that was done, simply unscrew the two pieces of metal that make up the jig, and in the bottom piece I made a flat bottomed hole 0.750″ diameter, and a bit under 1mm deep to seat the washer in place. The key, I discovered, is to do it slowly and patiently. I ended up cutting the recommended 20mil at a time, then smaller and smaller increments as I got closer to my desired final diameter for the hole.

Finished Washer Boring Jig

Finished Washer Boring Jig

The end result turned out perfect. The teflon washers are simply seated into the jig, and held in place with the top plate. Since the material is soft, I can use just an exact-o knife to cut away the excess material on the inside, to a perfect 8mm diameter using the jig. For the bronze washers, I chose to re-align the jig in the mill and use the boring head to to bore out the center, a few washers at a time. The reason I’m using both Teflon and bronze is due to the fact that the Teflon washers are approximately 0.63″ thick, and the bronze washers are thin. I use the Teflon as the main thrust bearing washer, and then have the bronze washers to act as shims to make sure the joint is nice and snug, despite any tolerance issues in machining the frame. (I am far from an experienced machinist, so several parts of the robot are designed such that I can make mistakes and can recover from them instead of having to rebuild complicated parts)

First Bearing Seat sized

First Bored Bearing Seat

[caption id="" align="alignright" width="150" caption="Perfect Fit of Bearing assembly"]First Bearing Seat - Perfect fit sized[/caption]After seeing how well the boring head worked out on the jig, I decided to try it out to bearing seat for the leg joints. After carefully measuring with the center finder, I began to make the 8mm diameter x 3mm deep cut to seat the bearing into the frame. It came out surprisingly well, and aligned concentrically with the 3mm reamed shaft/pilot hole I had to start with. I can run a shaft through both bearing and 3mm hole without binding. Now I only have another 23 bearing seats to go… On that note, the rest of the parts have been water-jet cut, and should arrive later this week. A lot of work goes from turning the water-jet cut roughs into final parts, but progress is definitely being made. I have also gotten some work done on the motor controllers in the past little while, but still need to finish up the design revision before sending out to get more PCBs made. When those get back, I have to build them and finish programming them. If all goes well, I’m hoping to have the robot workign with a very basic walking gate in a few months. Then the fun begins with experimenting with more complicated control algorithms, although I have a feeling progress will slow down as the weather turns nicer and the diving season kicks back into high gear.

, ,

3 Comments

Carbon Fiber: Sometimes it’s Just Gotta Look Cool

Base_Plate

Carbon Fiber Base Plate

Today I got my sheet of Carbon Fiber in the mail, which I’m using for some structural and cosmetic parts on the Quadruped. I whipped up the base plate/battery tray this evening, which worked out awesome. The picture to the left does not do it justice! Carbon fiber just looks plain old cool.

Although I haven’t had too much time to do more work on the robot since my last post, I have done up the axles for the joints in the prototype leg. I still need to get the boring tool for the mill (it’s on order) to properly seat the bearings and gears to finish the leg, however. Even without the bearings, the motion is very smooth and stable, but hey, for less than $1 a bearing, why not?

Joint1

Hip Joint, with flat flex cable routing

In the picture to the right, you can see some details of the joint, and how I’m routing the flat flex cable for the motor controller (I’m offloading one motor controller onto each leg, to control the two motors in the leg). It took a lot of thought in the design phase on how to route the cable. The design requirements were for minimal strain on the cable, and minimum interference to other parts. That meant routing the cable as close to the axles as possible, so that they don’t bow out as much. This, however, means keeping them out of the gears. The control cable is a 0.5mm pitch, 10 pin flat flex cable.

joint2

Hip Joint, with flat flex cable routing.

After a lot of thought, I settled on using roll pins and e-rings as guides to keep the flat flex as close to the axles as possible, and away from the gears. It works really well, and the robot maintains a full range of motion without any interference from the cable. I still have to route the power cable, but that will be a more resiliant and should be easier than routing the flat flex.

I’m ready to order the waterjet cut parts for the next three legs, and am hoping to get that order out sometime this week. Hopefully by the end of February, I’ll have the entire body of the robot completed, then can concentrate on getting it to walk…..

,

No Comments

MUAV Musings

This is an old post from December 2007 which got lost while I was reshuffling my website, but thanks to the wonders of Google Caching, here it is again, updated a bit of course.

Mid 2007, I picked myself up a tiny R/C Helicopter in Hong Kong, the Walkera 5-6 Genius, as pictured here.

Walkera 5-6 Genius

Walkera 5-6 Genius

After several weeks of crashing it into random objects around my apartment, I “sort of” figured out how to fly it. Not a bad little toy. Now the gears are spinning in my head.. Why can’t I make this autonomous?

I’ve been laying out the circuit for a tiny autopilot, with full 6 degree of freedom IMU and a tiny GPS and altimeter for sensors. I haven’t quite decided on the brains for the MUAV, but right now I’m leaning towards an FPGA. I think the reconfigurability and power derrived from an FPGA outweighs the increased power consumption for this particular application, as it will allow for some more complicated functions to be implemented in the future.

Several ideas are bumping around in my head right now for indoor navigation (more effectively, making it smart enough to not smash into walls), but apart from small rudimentary IR reflection sensors, other options are too heavy (Sharp IR Range finders) or too complicated (Machine Vision) to workout without a lot more thought.

Since the origional posting, I have managed to strip the drive gears on the chopper from excessive crashing (oops). Luckily I have found a source for spare parts, so I’ll have to order some up. But, in the process I found another nice tiny Helicopter that would be neat to make Autonomous, the Buzz Fly SE. Unfortunatley, all the UAV stuff is on the backburner for me, as my Quadruped is my current main project.

,

1 Comment

Quadruped Prototype Machining

IMG_4616

Checking vertical alignment prior to drilling

Over the past week, I had a couple of nights free to get some machining done on the Quadruped. Initially I had to clean the edges of the waterjet cut parts, and eliminate the connecting bits. After that, filing some corners into sharp edges where parts fit together. Plenty of drilling and tapping was next in order, as the design is held together mainly with screws. For the body and one leg, so far I’ve had to drill and tap a little over 50 holes to keep it all together, all without breaking a tap. (This is my first project that involved tapping screw holes)

For those who are just venturing into machining, tapping small holes such as 2-56 is nowhere near as hard as it sounds, and horror stories of broken taps ruining parts can be easily avoided if you take your time and do everything carefully.

IMG_4614

Tapping 2-56 Holes

Here are a few hints for easily tapping small holes that I found useful:
(experienced machinists can skip on ahead)

  • Make sure your pilot hole is drilled perpendicular to the surface, and free from metal chips before tapping
  • Use lubrication. I used WD-40, although there are specialty tapping fluids available
  • Use a tapping block to ensure the tap is perpendicular to the part’s surface, and cocentric with the pilot hole. You can easily make one by drilling a hole the size of your tap’s shank into any firm material large enough to keep the tap straight. I don’t recommend using wood, metal is the best choice.  Unfortunately, wood was all I had available and I found it absorbed the WD-40, and the tap did bring some sawdust off.
  • Make sure your part is firmly held in place so that it’s easy to keep the tapping block firmly on the surface. For thin parts, using a vise is a very good idea.
  • Make sure that you back off a quarter of a turn often while tapping, when you feel increased resistance. This will break the forming chips and keep them from clogging your tap. I usually did three half twists forward, then one half twist back and it seemed to flow nicely
  • Keep in mind how deep you have to tap. Typically twice the width of the screw you are using should be enough to properly secure your part. Just me mindful of the type of tap you are using, since a plug tap will have to go a bit deeper than this, and a taper tap will have to go much deeper.
  • Clean the tap often. The chips will build up and stick, especially with the use of lubricants.
  • Wikipedia has more information on tapping, and if you look around there is a lot of wisdom floating around on the net, but hopefully I have brought some of the best points togethor here

IMG_4620

First Leg mock-up (minus gears, bearings and shafts)

After all the finishing, drilling and tapping, I finally put the parts togethor to form a leg. Although there is still a lot of work to go in boring the holes to seat shaft bearings, making the shafts, boring holes to fit gear hubs, making more holes to mount various sensors, pins, cable guides, etc, it’s starting to finally come togethor. So far it looks really good, and I don’t think I will need any major changes to the design before I send out to get the parts for the other three legs waterjet cut.

, ,

No Comments

Quadruped Robot Introduction

Sometime in the mid to late 90s, I got the idea to build a quadrupedal walking robot. Ideas bounced around my head constantly since then, but school and work got in the way of “free time”. Over the years I gained more knowledge and experience in electronics and robotics design, and constantly refined the ideas I had in my head. In mid-October 08, with the local diving season comming to the time of year where it no longer takes up most of my free time, I finally began to get concrete design work done on the robot. The picture below is what I came up with.

Spyder Sketch 600

Concept Sketch of Spyder (aka Bert) the Quadruped

An admittedly ambitious project, this Quadruped is to be named Bert and/or Spyder, I haven’t really decided yet. It will be powered by 3 PortEscap gear motors per leg (a sum total of 12), due to a lucky surplus find a couple of years back, at BG Micro. Each joint will have bearings for smoothness (another surplus find, care of the the Electronics Goldmine). The frame will be rough cut from from Aluminum by the Big Blue Saw. Although it’ll add a bit of cost, it will save me an imense ammount of time making some intricate parts and fancy shapes, so I decided it would be worth it. The rest of the machining to be completed on my Dad’s Sherline mill and lathe.

The brains will be a Gumstix computer I picked up a while back and have been playing with, and eventually I plan on creating a head to go in the center of the robot, however I haven’t quite decided how I want to go about this. The entire robot will be powered by some LiPo batteries, which hopefully should provide a good life time.

Water_Jet_Panel

Waterjet Cut Parts


After a couple of months of design work, I finally sent the files off to have the core, and one leg water jet cut. I only ordered one leg to start with in order to make sure everything works out properly before committing to building the other four legs. Today I got the water jet cut parts back, and they look nice! All the parts came connected as one big piece, so some dremel work was required to seperate them without damaging the parts, and I’ll have to take care in filing the connecting bits flush to the part.


Another issue with water jet cutting is the kerf diameter, or diameter of the waterjet stream, in this case approximatley 1mm, so some corners that I had cut to that diameter will need to be filed into square points, but that’s no big deal.

Bunch of Parts

Bunch o' Parts

Next up, I’ll have to do the boring and drilling of various holes that will fit bearings, shafts, screw threads, screw counter-bores, and various pins for the various parts of the robot. This will probably take a while to do since I’ll have to take it easy to make sure everything lines up correctly.


To the left you can see some of the parts that will make up one leg of the robot. I’m still waiting on some small parts such as teflon washers to use in the joints, but that should be arriving any day now. You can see my H-Bridge in the mix, I’ll need 6 of those dual H-Bridge boards on the final robot.


All in all an exciting build!

, , ,

No Comments

H-Bridge Fundamentals

An introduction into basic H-Bridge theory and operation, this article covers the fundamentals you need to know to make a working H-Brigde with N and P Channel MOSFETs

Read the rest of this entry »

, ,

52 Comments

H-Bridge Prototype Build

IMG_4596

Driver Board with solder paste

I received the PCB for my prototype motor controller the other day, courtesy of the good folks at Batch PCB. For under $20 USD shipped for the motor controller PCB and the USB to Serial programming adapter PCB, I didn’t mind the one-month wait to get the PCBs back. Over my lunch break today I made use of the lab to do the re-flow work. It was actually my first time doing solder re-flow, my only previous experience being observing it in both small scale and mass production overseas through work.

Re-flowing this design is a must, as I’m employing “Direct FET” packages from IRF. The package is basically a metal can with the bare FET on the bottom side. This is supposed to allow for very good heat dissipation, and minimal packaging loss (read: Low RDS-on). I’m expecting this PCB to handle approximatley 10 amps per channel (it will handle two motors) continuous if properly cooled, but for the next few projects I have on the go, it will be much less. The PCB is small itself, measuring a little over 1″x1.5″!

IMG_4606

"Completed" Controller with PortEscap motor

The brain of this motor controller is a Freescale 9s12c micro controller. This MCU will handle PWM, ramping, optional position/speed encoder input, thermal monitoring, current monitoring, and RS-232 or I2C communications for a main processor. The main objective of this is to have all those tasks offloaded from a main robot CPU, allowing to have several of these drivers in one robot (i.e. 12 motor Quadruped robot)

Unfortunately, it appears that ths 9s12 I put on there has a maximum bus speed of 16 MHz, however the internal serial bootloader I was hoping to use to load code needs to ramp the PLL up to 24 MHz for proper operations, so testing is on hold until I get a 24 MHz capable part, hopefully early next week.

Edit: 14 December – I borrowed a BDM programmer from a colleague, and managed to load code into the 9s12, and currently have the motor driver actually driving a motor, complete with ramping up and down in speed.

,

3 Comments