Archive for category Quadruped
Code Progress is Still Progress
It’s been a long time since I’ve updated, and to those following my project I apologize, I know how annoying it is to see an interesting project on the net stall for years. (well, at least I hope my project the info I’m putting is useful/interesting/inspiring to others)
Long story short, I left my old job last December, moved cities and started a new job in a different industry. Needless to say, life has been busy, and I haven’t had as much time for my projects as I’d like, which may or may not be a good thing depending how you view it. Moving 1,154 km away from my Dad’s basement workshop hasn’t helped either. No more driving to my parents place to do machine work in my spare time. I’m left to slowly acquire my own tools now.
I haven’t forgotten about the quadruped, and have even managed to get some work done on it. I’ve powered up the motor drivers and haven’t found any major design errors yet, which is a good sign. Motors are spinning, and potentiometers are being sensed properly. I still need to do a bit of work to tap the 0-80 holes to mount the angle sensors, and machine the drive shafts a little bit to engage said angle sensors properly, before I can get the PID controller working properly to move the joint to the appropriate angle.
I’m also considering moving to brass gears, at least on the motor. I’m not overly concerned about the Delrin gears stripping, as there shouldn’t be a massive loads on them that cause outright concern, but I am having trouble mounting them securely to the motor shafts. As it ends up, Delrin is a bit flexible, enough so that it won’t hold a set screw securely, and even with a set screw the motor shafts end up spinning inside the gear. Moving to a brass screw should solve this problem, and is likely the easiest solution, albeit a little bit expensive.
On that note, you may have noticed I’ve put up ads. For the longest time I’ve been against ads on my personal website, but web hosting and robotics as a hobby does cost money. I haven’t really settled on whether or not I’ll keep the ads yet…
Quadrupeds Need a Whole Lot of Motor Controllers
It’s been a while since my last update on the Quadruped’s build progress, but I finally got my PCBs back for the motor controllers. Since the robot has twelve motors, I need six motor controllers in total (Each of my controllers controls two motors). They’re an updated version of the h-bridge I prototyped last fall, and used in my mini sumo robot. Although definately more than is really required, the motor controllers boast ultra-low RDSon Direct FETs, and HC9S12C32 micro-controller to handle the control and monitoring of the h-bridges. The black soldermask really enhances the look of the PCBs mounted in the robot.
Each leg has it’s own motor controller to manage the two motors in each leg, and another two motor controllers will manage the four motors in the core. The leg motor controllers are shaped specifically to fit within the frame on one side. The other side of the upper leg frame will hold another PCB with some sensors (I’m planning on e-field and/or pressure sensors in the robot’s feet and on the leg itself.)
Each joint requires angular feedback for the motor controller’s closed loop system. This is accomplished by using special potentiometers through which the joint shaft will pass. The potentiometer is wired as a simple voltage divider, and as the angle of the shaft changes, the potentiometer will give a different voltage output. This voltage will in turn be read by the motor controller and turned into useful data. The special potentiometers used here were a bit of an obscure find, but luckily they are a stock item at Digikey.
In order to ease the routing of all the connections on a 2 layer PCB, I decided to offload the large BDM header onto a separate board, which can be screwed onto the leg frame when I load the motor controller firmware. Several pogo pins then make the programming connections to the test points on the controller PCB. I decided to get creative with the shape, and it turned out pretty neat.
I’m toying with the idea of putting a customized boot loader in the 9s12 controller, and giving the main processor (the Gumstix) programming control over all motor drivers. This way, instead of individually updating firmware on the motor controllers as I continue development down the road, I can instead just load one hex file into the Gumstix’ file system, and it will automatically update the firmware on all six motor controllers.
I also recently ordered the batteries I will be using to power the robot, 4x 2000 mAh LiPo batteries. I will be running then in a 2-series 2-parallel configuration to get 4000 mAh at 7.2 volts to run the entire robot. I still need to design and build a board that will fit underneath the batteries in the core of the robot, which will be responsible for battery protection/charging as well as power and control signal distribution to the four legs.
Still a lot of work to go, but it’s getting closer to walking…
Some Random Stuff
Posted by Roko in Mini Sumo v6, Quadruped, Robotics on May 9, 2009
First Assembly of all Four Legs
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.
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)
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. 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. 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) [caption id="" align="alignright" width="150" caption="Perfect Fit of Bearing assembly"]Carbon Fiber: Sometimes it’s Just Gotta Look 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?
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. 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…..
Quadruped Prototype Machining
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.
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
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.
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.
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. 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!