Journal98 mar
From Simreal
Contents |
March 1998
Mon, 2 Mar 98
I skipped last weeks update. I did this on purpose, because I really didn't have much new to say. I've been heads-down, balls-to-the-wall, every-spare-moment working to get the rolling robot project to an important milestone.
Got the PWM controller circuit working -- a couple of resisters were transposed in the schematic I had from a couple of weeks back. It is a simple VCO -- the PWM out from the PIC is averaged to a voltage level via black magic, a triangular ramp signal is created with some more black magic, and a comparitor is used to trigger the pulses. Standard R/C pulse format; every 10ms (should be every 20ms or so) I output a pulse from .5 to 1.5ms in width. 1ms is stopped. The others are forward and reverse (or is that reverse and forward)? It isn't terribly stable right now, but the wiring is of the variety "Rat's Nest" so I'm not surprised.
Anyway, the Radio Modems (BiM from Radiometrix, out of the UI) work moderately well. The biggest problem I have is synchronization of the RS232 signal from the PIC to the PC... the PIC reads it just great, but the PC has challenges. It worked well enough for the demo, but the response time was poor.
I had a friend track down a video camera, and I ran this poor bucket of wires through its paces -- showing how it responds to bumper signals for different directions, etc. The Brain on the PC was working pretty darn good, and most of the other systems worked pretty darn good to -- for Alpha-cut hardware, etc. Now I get to take a breather from that project for a while. Other people get to make advances.
I now get to think about Boris again. The Brain programs are hard to debug right now, so I am going to add a user-flexible interface: The user identifies Brain variables to watch, and I will do a graph of them in real-time. Kind of like an EKG. It should be fun! Since most values in the Fuzzy logic are constrained from 0..1, it simplifies things a bit, too.
Lessons I have learned from making this simple, R/C via computer controlled wheeled robot:
1. Radio control via a computer is harder than it looks. Sure, the radios have nice digital interfaces. Sure, they say you can just run RS232 through them with appropriate startup bytes to get the "bit-slicer" synchronized. But in practice, there is more Black Magic involved than I like. Maybe the Lynx radios will be better... they sound better at least. I'll just have to see.
2. R/C PWM control is kind of lame. I just, on a basic level, don't like the R/C control format. I want something like a fast H-Bridge that can handle pure 0 to 100% duty cycle PWM, at a high frequency such as comes out of a PIC. No messing with external translation circuits, no writing fancy clock-interrupt control schemes, etc.
3. Even simple robots are harder than they look! (See points 1 and 2 above).
Anyway, I've pretty much decided to go with 2 1/2" or 3" diameter cylinders on Boris -- the speed seems to be in a good range still, and I get a significant increase in strength. I still need to do some detailed calculations... but if I do upsize, I'll need to fiddle with the frame again. One thing, too -- I want to add either a different dimension tube (say, 1x.5 instead of the .5x.5) or add a strengthening support to where the cylinders mount... 400lbs on that tiny stuff will be bad. Need to spread the force out among the different supports.
I don't know what I'll be doing this week -- maybe just recovering from the last month or two of project, maybe cleaning my workshop again, maybe getting my Boris notes together. I probably won't be able to avoid doing more software work! It is getting very close there.
As for the PIC for Boris -- the 16C74 is nice, but I looked at the Microchip site, and for $10 more the 17C56 is much nicer! The biggest hassle with that chip is that it is a 68-pin PLCC format... which means the ZIF test socket costs $60 instead of $20 and the programmer needs a $120 add-on adapter. But for $30... that's a nice chip. 33Mhz. 50 I/O ports. *2* serial ports. <sigh>. Decisions.
On a personal note -- I still don't have the cash to do much purchasing to get Boris moving again. My corporate sponser (of the aforementioned project) is on track for its startup (eg: We have investors lined up, the demo video version 0.0 is made)... but isn't in a position to add to the Boris fund yet. I *am* however lining up to sell my back-yard (we live on a big lot -- zoned for 2 houses), and probably the entire lot. And moving. Moving will be a pain, especially since I am thinking of moving cross-country to Austin, Texas. But I *will* come out of it with a stack of cash. Then I could buy that next Boris upgrade. Heck, whats $3,000 between friends?
Hopefully, over the next few weeks, the journal will pick-up again as there is more news to report.
Oh, one list thing. I always respond to mail sent to me! Except once... if you are reading this page, I lost your message by accident. Anyway, the next Robot Wars is in Mid August, near San Francisco. They will eventually update the robot wars page (they expected to by now, but had unforseen delays). And, if you e-mail to them, you get added to their list, and you may get random e-mail updates. That's what I did, anyway.
Wed, 11 Mar 98
Yee-ha! Put in an electronics order today... a couple more PIC's and some random parts I want to test out. Put in a metal order today...
- all* of the steel I should need to build the six legs and a body.
Plus some extra, with any luck.
After thinking about the PIC17C56 a lot, I've decided to stay with the 16C74. It is plenty big enough for a dedicated leg controller, and will save me hundreds of dollars in equipment and parts costs. I'm going to hang an external A/D on it, since the eight A/D ports on-board won't be sufficient... I think the Maxim's MAX147 12-bit serial ADC will be fine. Kind of expensive ($14 each), but fast, efficient, and doesn't use very many ports. I'm going to hook it into the SPI port, along with several other serial connections. I can use the chip-enable via a multiplexer to control which of several devices is active (the two ADC, or the RS485 to the main CPU). Everything runs fast enough that it should all work very nicely.
I've been a bit concerned about the electronics for Boris -- I don't want a bunch of spaghetti-wired circuits dangling about. A PC board manufacturer contacted me this week, looking for me to add his site to my list. Dangerously close to being SPAM, but after looking I conceded -- he has a good service, and the prices seem fair. As part of his service, they provide a fairly nice PC board layout program (free!). Check him out at [1] . Unless something a lot better comes up, I expect I'll be using his services soon. I am also doing schematic layout with a demo copy of Ivex's WinDraft. It works, but (Ivex, you listening?) still seems a bit buggy. However, they have excellent technical support, and it seems a workable enough package. The update I got from them seems to work very nicely.
To connect all of my computers and circuits together, I plan on using 8-conductor Category-5 modular plugs and twisted pair wire.... your basic phone-jack style plug, with data-net grade components. Not terribly expensive, should give me fabulous RS485 service, and really really easy to reconfigure the networks. Especially important, since Boris needs to be field-serviced; easy replacement of parts counts for a lot.
Now for a big shock to the project... it seems that we are moving to Austin, Texas this year. I still intend to finish Boris in time for competition, too. This means, however, that I need to finish the big mechanicals very soon -- hence the steel order today. This weekend, I build one sample leg. If that looks good to go under my new pneumatic cylinder sizes, I will whip up some jigs and make me a stack of robot legs. Also, the trial body. Before I move, all of the frameworks will be in place.
My commercial robot project looks like it is about to start paying off soon, so I'll have the 3-grand needed to buy my pneumatics soon. Also, the sale of our house should provide a bit of extra spending money. Far too exciting! I even have my Parker representative checking with the company to see if they can build the cylinder I want with a mounting that is not standard for it... I guess a dozen units in one order is a fairly big deal around here.
I've only got about five months left. I might make it. I've got a stack of MCU experience under my belt, plus workable brain software... I still need to build a bunch of stuff, and put together both the air power source and a main computer for Boris. Not insignificant tasks.
I also want to re-organize my links... there are too many for my current structure! Hmmm... I suppose I should get some work done for my employer, too.
Mon, 16 Mar 98
I spent my Sunday cutting and filing little bits of metal. Whee! But now I have the blanks for 72 joint flanges. Next step -- drill lots of holes. Then off to the skeleton! The metal for Boris only cost about $150.. dang cheap. The power is what really hurts... and I suppose the time involved.
I think I'll build one leg and power it up to full power and sensory, and make sure it is still good according to my calculations. Then I build the other 5. Hmmm.... I should build some spares, too.
Checking my stats, I see that the Brains3.zip is a hot ticket... and now I see why. I have the wrong description on the link! It is not "source and executable" but my exploration in text of different Brain technologies. I apologize to anyone I may have disappointed.
Mon, 23 Mar 98
Yee-ha! This weekend I drilled those holes in the flanges... 72 flanges, step-drilling in 1/8 inch increments up to the 1/2 inch final hole -- 288 drilling operations. Cutting oil is now spread in a thin (well, mostly thin) layer over most of my workshop. Maybe if I put a shield around the drill press...
Other than that, I took it pretty easy this weekend. Cleaned up some sticks of metal, painted them with blue layout dye.
Today I cut the 35 pieces that comprise the lower leg, upper leg, and hip joint. It only took about 2 hours to mark, cut, stamp a part number, grind the burs, and clean. Next, I weld them together. I had a brief scare when I laid out the first ten pieces to check the fit... they didn't! It was off by only 1/8" on the diagonal per piece, but that was enough to make a mess of my calculations. What if I got the math wrong? That would put quick egg on my face, since I've sent those calculations and CAD files out to a couple of people already... but no, I just measured wrong before I cut. That was last night, and I just wasn't grasping things clearly. So I re-cut eight pieces today, and they look just fine now. This leg is smaller than the second trial leg... it looks very sweet; I just hope it works as well as it looks.
Last week I got a shipment of some more electronics... some I bought at DigiKey, and a nice sample from Motorola of 6 pressure sensors. Today I ordered two more cylinders (2.5" and 3" diameter) to play with, plus the two extra valves and a nice manifold mounting. This gives me enough parts to drive a full leg, with several different size cylinders for testing.
I also sent out a check ordering a Vision CCD camera (chip on a board, with lens .. $116, serial output, good deal). I hope to give Boris vision, for autonomous running... either simple one-camera motion tracking (should be almost easy, but only if Boris is holding still), two-camera stereo, or my preference -- active vision, where a laser (the $59 laser-keychain at Radio Shack, perhaps?) beams out a dot or short line, and that bright area is triangulated for range finding. Simple triangles, not too fancy, but surely the technical details can get interesting. I'm also planning on dropping some acceleration sensors ($15 each, Analog Devices through Hamilton-Hallmark)... ultimately, I want Boris to learn and not be programmed, so I'm looking for maximum feedback. It also just seems that, well, a sense of motion would be darn handy in a mobile robot.
And finally, I keep looking for affordable strain gauges... dang, that technology is spendy. Ever since I read that real spiders use a form of in-the-chitin strain gauge to manage their sense of touch and loading, I've wanted to duplicate that. It's really neat. Too rich for Boris' blood, though.
This week I should be able to weld this entire leg together and also cut and weld the full body. Then, I can do a full system test on one leg... put together the PIC MCU, wire all three cylinders for pressure sense, run all three valves together, and see how much I underestimated the difficulty of leg control software ;-} I'll use the high-level brain and monitoring software I developed for that other project, to babysit the low-level MCU control. Don't quite know how I am going to divide the software duties yet. But I am going to have to move the leg, body, and compressor into my office so the serial cable can reach. I already warned my wife, and I don't think she will hurt me too much
- -} (actually, she has been amazingly, unbelievably supportive of
this completely mad project... and suggested I just move a table to the side to make room. If you had my wife, you could build Boris too... she is what makes it possible. Heck, she actually reads this journal so she knows what I'm doing all day [Hi Sweetie!]).
The test won't be this week. I'll be happy if I get the basic mechanicals built this week what with all the real work I need to do... maybe in two or three weeks I can do the test (heck, It will take that long for my pneumatic parts to come in; for some reason, they don't stock the odd stuff I like to use).
I found the cause of one of the ineffeciency factors that had me so confused when I did the strength tests... remember, way back when, I calculated I should get a 1:3 loss of power through leverage, but I measured a 1:6 loss? It seems that it pays to read the reference pages of the catalogs... pneumatic cylinders only develop about half their total strength when in motion; the calculated strength of a cylinder is its holding strength. So ... I will try the 3" cylinder. The dimensions go to heck on cylinders that big, though -- these legs are fairly petite, so it may not fit. Failing that, I'll go for the 2.5" cylinder. If I go weak, at least the holding strength is ample to hold Boris up, it just can't do push-ups.
It keeps getting closer... but there is still so much to do. Not the least of which is cross my fingers (and write to some officials) about the very existence of the US Robot Wars Competition. A good overview of the state of affairs can be had on comp.robotics.misc, or on the Team Delta web page. Whatever happens, I have faith in Marc Thorpe; and failing that, I'll find a different competition for Boris. But Boris has too much of my time, sweat, and blood (yes, I keep cutting myself on the damn thing) to quit now. I also seem to have a bit of a following... thanks for all of the encouraging letters; sometimes it is the knowledge of all those eyes peering over my virtual shoulder that keeps my nose to the grindstone. I'm sure you are as curious as I am as to how Boris will work out!
Mon, 30 Mar 98
Well, I didn't weld up as much stuff as I wanted... though the entire framework for one leg is now all welded (the Hip Jount, Thigh, and Shin). The lengths are the same as the second prototype, except the diameter is less -- giving a more streamlined, petite look.
I need to cut and weld a body section (maybe half the body?), and I need to weld-up the joint flanges. Half of them need the axle-retaining tube, and I'll need three sensor mounts. Then all of the joints get attached to the framework. I can get that done this week.
So -- it only takes a couple of hours to cut the parts for a full leg. But it takes about 12 hours of welding. And gas welding is surprisingly tiring work!
Early last week I found a cool device at the local hardware store (Jerry's -- locally owned, the friendliest shop in town, and great selection) -- an adjustable clamp. It is like two C-clamps on a pivot, with an adjustable angle between them. I started out with one of these, and Sunday I ran out and bought 3 more. It sped up my work a lot to have such good clamping ability.
I also learned a bit about assembly order -- I started out one way (it would be tricky to describe), but by the second leg section, discovered a new (better) way. Between both of these innovations, I should have leg assembly down to 8 hours each (dare I hope?). So, with five more to go... a good week's work. Spread out along evenings and weekends, it's hard to say how long it will take to make the rest of the legs. Longer than I like -- maybe things will go faster once I get the whole clamping process down (I spent a lot of time fiddling with clamps and parts, trying to get good alignment).
I have some hope that my pneumatics order will come in this week. Next week for sure, if not. I'm almost ready for it! Same expectations on the CCD camera, though I'm not nearly ready for that part.
