Thought id tell you about my latest robot project. As mentioned before im working on a hexapod. Its a 2DOF per leg type, using a parralell leg design. Mechanicaly its relativly simple. Its similar to the 2DOF per leg robot that lynxmotion makes. I wanted to draw and cut evrything myself tho, as i prefer that over building kits.
Ive drawn evrything in AutoCAD and cut the pices out of gray PVC plastic. Using 12 servos (Hitec 422 for swing and 485 for lift) to generate locomotion. Ive put alot of effort into minimizing the weight of the thing, but still keeping it rigid and solid. And of course it has to look cool and fun ("1st rule of robotics: Have fun!").
The electronics is based on a 18f452 PIC controler, wich i programed using ccs c-compiler + a icd-2 system. I like that cus after building the vero-board brain i can plugg the icd directly into the robots brain and do programing and live debugging directly on the bot.
The servo PWM control signals is generated by 2 timers. Had to do some nifty trickering with the code there to get the PWM's to run completly on interupts so not to be disturbed by any other code going on. This controller then controls the gait of the robot, based on several parameters (like turning speed, forwar speed etc.). These parameters can be set over I2C buss interface. In adition the robot has 3 ultrasound range sensors pluss a compas, all on i2c buss. This is all connected thru i2c buss to a radio link, wich comunicates to a PC. I chose this option becays ultimatly i want this robot to do surveys, and i want some way of getting that information to the pc, where i can draw grafics maps and things like that.
On the PC i run a windows app that does the control logic, behvior level based. Ive spend alot of time perfecting the comunication from PC. As anyone who tried this knows, it can be a problem when trying to comunicate to a PC in a real time system. So i have built in a bunch of diagnosis (similar to what is done in a CANbus system) to avoid any faulty moduels messing up my com link. I have built in objects for joystick control (saves me from going to pick up the robot if the control logic fails, i can manualy return it to home :P ), pluss using skinned dialogs to make the program look good (and give me control of the windows grafixs engine, so i can draw maps and stuffs). I have over the years made a library of CStatic inharited objects that i use for representing stuff on screen, like compas arrows, level bars and the like. I also have one CStatic inharited object that works like a skinned button. I know there are lots of these out there, but i couldnt find one i liked, so i desided to make my own instead. Works better for me i feel.
The control logic is not quite finished yet, so this is mostly future plans. (im focusing on making teh gait work perfectly before moving on, finetuning the motion of the legs, sensor array placment etc.) It will use a behavior level architecture, and the basic goal is a survaying robot that has wall follwing behaviors. i will acomplish that thru 2 ultrasound rangers(as mentioned). These will tell me if there is any walls nearby. Im going to grid the room, and then basicly the robot will walk all over the place mapping out which grids are ocupied by an object.
I dont have any pictures of the thing yet, but i will see about that during weekend if anyone is intrested. Ill post them on the project webpage (www.bedko.com/robot). The pics on the site now is for the last hexapod i build. That one didnt work to well tho, cus i screwed up the mechanics of the legs. But thats ok, live and learn. And now i know how not to make a hexapod :P ... and my latest atempt on hexapod making works much better. This one walks very nicly now.(ill make a video of it too, and post)
Im no expert robot builder (yet) but after several more or less sucsessfull atempts i belive ive done my share of mistakes and learned from them, so if anyone wants to try making their first hexapod, iw ould love to help out with what info i can. When i started i didnt join any groups or anything, so it was alitle rough from the get-go. It was a learning by doing kind og thing for me. So id be happy to lend what litle insight ive gained, iff anyone is intrested.
Ok that was a very long entry so i gues i should thank anyone who actualy bothered to read it all ;)