hexapod robot

Thread Starter

jlon

Joined Aug 13, 2009
13
This is my second significant electronics/robotics project. It is a small, designed from scratch hexapod robot. It uses small digital hobby servos for power. It features a main circuit board with an Atmel AVE mega168 main processor and a mega8515 coprocessor. The two communicate over an asynchronous interrupt-driven 4-bit parallel bus with bidirectional handshaking.

The walking sequences are created using C# software I wrote. It implements a GUI to show various views of the machine, and outputs C structs that are then compiled into the main processor's firmware.

What I'm proudest of is the parallel data bus and an original algorithm for controlling all 18 leg servos off the 8515 coprocessor using one 8-bit and one 16-bit timer. My oscilloscope confirms that all timings are spot-on, well inside the deadband tolerances (4 μs) for these servos.

A video of its first steps is located here:
http://www.youtube.com/watch?v=0qHDCCIkAqs

It's a humble start, though, and I have several additional refinements to add. Comments and questions about any aspect are welcome!
 

Attachments

Thread Starter

jlon

Joined Aug 13, 2009
13
Thanks blue!

There is no metalwork to speak of. I used 1/8" aircraft plywood, the dense, strong stuff that model airplane folks use for the top and bottom chassis parts. I connected them with aluminum threaded rod and nuts with thread lock.

On the coxa (hip) servos, I used aluminum rivets, filed flat and epoxied exactly opposite the servo output spline, to create a top pivot point. The commercial robots use a finely machined set of parts to hold the coxa and femur servos in place. The rivet thing is my cheap substitute. :) The inner servos are hot-glued together, and the tibia servo is hot-glued into its leg member.

I got the servos at HobbyPartz. They're both cheap AND inexpensive.

Mainly I wanted to see if I could make a proof-of-concept before, for example, buying and mastering a mini-mill (which I feel is in my future, because this stuff is FUN!). I wanted to make it from scratch, not a kit, and for as little money as possible.

Total parts amounts to something like USD $160.

The cool thing about using the tiny servos -- about 10 grams apiece -- is that the total weight is about 300 grams without batteries. So small servos seem to be okay, with four or more legs supporting at all times.

Now I have to master the C# sequencing program I wrote to make smoother, more fluid travel sequences... tonight I got it to turn left and right, but I'm not happy with the travel sequences yet. But with the ISP connector onboard, I can compile new firmware and drop it in without unsocketing the main processor.

Thanks again,

Joe
 

THE_RB

Joined Feb 11, 2008
5,438
Very nice implementation, especially the minimalist rivet bearings! :)

If you wanted to reduce the weight a little more you could replace the big metal bolts with wooden blocks (to give the same internal spacing) and secure with more glue or tiny wood screws.
 

Thread Starter

jlon

Joined Aug 13, 2009
13
Thanks for the compliments on my work, folks.

The pivot bearings are key. Every commercial implementation I've seen has a robust pivot opposite the coxa output spline. My first "test leg" did not and the coxa servo soon was ruined by torque forces it was never meant to suffer. So I realized I needed a bearing, and it had to be cheap and light. Doesn't get much cheaper than 6 rivets and a dab of epoxy. 8^)

The threaded rod is actually very light, contributes only a small percentage to the weight. If I were to make another one with similar construction, I think I'd first thin down the width of all the chassis members. That 1/8" aircraft plywood is pretty stiff. It tested out much stiffer than 1/8" acrylic sheet I had down in the shop, though not nearly so stiff as 1/8" tempered aluminum.

As far as eye candy goes, it's not yet finished. Once I add the mast and servo for the Sharp IR rangefinder, it'll look even more menacing as it scans left and right looking for objects in its path. The tracking algorithm computes range and direction for any object in its path, when then feeds the "travel" state machine, deciding which direction to go.

Thanks again!
 

jj_alukkas

Joined Jan 8, 2009
753
Have you added tactile feedback to the legs to sense when the legs touches the ground? i have seen lots of hexapods with that feature as it helps it to run on uneven surfaces like a living being more than just on precoded algorithm with timing. If you add such a feature, it'll get Artificial Intelligence.

Also i suggest to check out some hexapod videos on Revver.com, its cool...
 
Top