Older blog entries for ROB.T. (starting at number 3)

16 Feb 2002 (updated 16 Feb 2002 at 21:49 UTC) »

I've finished a rough-draft model (UML) of the base module, and guess what? I'll be using one microcontroller, the Atmel AT90S8535 for each leg. The definitive factor was the number of ADCs required - 5 per leg - to gather all the leg information. I've also decided to build one complete leg and use my Atmel emulator to test the concept.

After laying it all down on paper, it looks like the base module - which is basically the 8 legs and battery pack - is going to have 12 processors. The disadvantages of this approach - money and battery power. The advantage is I can break the tasks into small hardware/software components that are a lot easier to handle. Also I shouldn't have the timing headache I might encounter trying to get everything to work on one big processor with a lot of I/O. Lastly this leaves room for future expansion like more sensors on the legs.

The motor controller I've decided to use is the L298. The LMD18200 looked real good, but since my processors can perform all the functions that the `200 provides with the exception of temperature handling, I opted for the much cheaper motor controller with 2 H-bridges in it. This is an important decision since I want to order chips this Monday.

For the CAD part of the robot, I've gotten the individual axis components drawn out in 3D, but have yet to put the stuff together.

As a side note I want to include logging, error checking, and testing in all modules. I still want all of the intricacies of getting a leg moving to be transparent to the robot system with most functions stored for the base module, at the base module. If all goes well, the base module promises to be very robust or at the very least helpful at troubleshooting itself.

I've finally completed an axis prototype - and everything is working great (1 down, 22 to go...). I ended up using some aluminum rectangular tube-stock, and I found some channel stock which I will use to mount the Pot to the side of the axis - I'll call joint - for position sensing. I have to tighten some things up but so far so good.

I plan to CAD parts using TrueSpace 5.1 so I can head off physical problems before they occur. I'm also thinking about taking pictures of the project at various stages - but where to post this stuff? I've never learned how to put a web page together, and at this point I would rather build Predecessor. Maybe I'll ask one of my TCRobots buddies to help me out, or maybe I'll just save it for my book ... ;-)

I asked Jeff Sampson, one of our resident guru's, what motor driver I should use. He's recommending the LMD18200. I was going to try another more complicated controller from Allegro, but I don't think it delivers enough power.

I anticipate having the legs done in about a month, the motor controllers within 3 months.

Other concerns -

I want to have some current sensing ability for each motor.

Each leg needs some sort of foot sensor, probably a strain gage derivative.

Do I include a rudimentary form of direction at this level? Probably not. Should I have one controller a leg? Seems like a waste. I'll try for one controller a plate, maybe a third controller for the extra motors, maybe balance or part of the balance, and to handle the interface with the rest of the system.

My ideal would be this component , the base (most gearheads would call it a platform) , should only accept higher level commands from the robot system, and this is where the integration of these systems gets tricky. If I include stuff like direction and body orientation in relation to gravity, then the robot system can simply send the base commands like `get up' or `walk over there'. But then where does it end, after all it wouldn't be too much of a leap to add clinometers, GPS, and accelerometers at this level. At some point the base would need some sort of rudimentary decision software just to deal with relative position in the real world.

Of course this is all on the premise that the controllers will be configured like a tree. What if the controllers communicate more like peers instead of Master/slaves?

Anyway, these are some of the problems I'm struggling with. Luckily I can model (as in UML) these systems out and come up with a better solution - probably along the lines of KISS. I should also work on getting a solid definition of what I'm trying to accomplish before I risk scope creep.

Slight change of plans -

I've done some more analyzing as I get closer to building. I no longer believe I need 4 joints per leg, I think I can get by with 2. This would eliminate 16 motors from my robot and make it considerably lighter. New motor total = 26.

This was a painful decision - honestly I was in love with the 4-axis-leg idea, but hey I can always add extra leg segments later. At this point it is important to get the design complete.

Dear diary - ;-)

This is great, a public record to motivate me into working on my robot. Sweet! It's going to take a looonnngggg time to get this project built because this thing called 'life' keeps getting in the way. Hopefully, using this diary, I can make some good gains over the next year or two.

My current project is an 8-legged robot named Predecessor. I've done some modeling and made some initial determinations.

4 motors per leg,8 legs = 32 motors. 4 legs per plate, 2 plates, each plate has an additional 3 motors. Battery pack - pending on design 1 to 3 motors, lets say 3. Extra motor for the top plate brings the total motors to 42.

The motors I'm using are 19 volt - naturally I'm running them at 24VDC - worm gear 24 lbs/in max torque at 1.3 Amps. Batteries are 12V 5A each, I figure I'll start out with 4 and work my way up to 8 batteries. total weight is approximately 30 - 40 lbs. Sounds heavy. Obviously I'm going need to use a few tricks to get the thing to walk properly, this should be a good time.

Each motor will have a potentiometer to signal position, and each leg will have a strain gage or a pressure sensor to determine contact. Groups of motors will be controlled using an Atmel controller. The Atmels will be linked to a parent controller, probably in m-tree fashion. The controllers will talk to each using a SPI interface. I would like to incorporate a small LCD with the base, maybe some LEDs.

Getting the above working will essentially complete the base module. Additional modules such as navigation, ethernet communication, sensing, and action-planning will be added later. One thing at a time!

Alright, my first task is to properly mount the motors. It appears that the best method would be to use the actual motor body as part of the leg-frame since there are mounting screw-holes on each end of the motor. I can't find the channel-stock aluminum I want to use, but I found some straight aluminum stock that will make due though I'll have to bend them. Since I need to make good contact between the gears, I'm going to put in a mounting plate and a slotted gear cradle(?) so I can vary the distance between the gears.

Step 1. - make legs. Construction starts 2/11/02.

Share this page