PDA

View Full Version : [Project] My Humble Hexapod



adammck
01-04-2015, 09:27 PM
Hello!

I'm not a regular poster, but I've been lurking for a while admiring the hexapods, so I thought I'd post my own. It just started walking around untethered this weekend. It's 50cm in diameter, and about 4½ pounds. The chassis was designed in SketchUp, 3d-printed with a Printrbot Simple Metal, and bolted to 24 Dynamixel AX-12A servos. (Although most posters here seem to prefer the more powerful MX series, I've been very impressed with the AXs so far!) It's powered by a standalone Go program running on a Raspberry Pi (running Pidora 2014), and controlled by a Sony Sixaxis (PS3) controller.

Here's a video of it strutting around:


https://vimeo.com/115932070
(https://vimeo.com/115932070)

Each leg has 4DOF, which makes the gait pretty flexible. The ground clearance and step height are controllable at runtime, which can make for some bizarre movements (and note the legs crashing into each other when rotating fast, and the feet dragging in the carpet pile), but it is at least conceivable now that it will one day be graceful. Here's a more detailed photo:

5771

And here's a screen grab of the SketchUp model it was printed from:

5772

It's my first real hardware project, and I didn't really know anything about this stuff when I started, so I've deliberately reinvented a lot of stuff from scratch just to get the hang of it. (Next time, I'll probably start with ROS.) The source code is atrocious, but it's available on GitHub (https://github.com/adammck/hexapod). Along the way, I wrote a Dynamixel interface in Go (https://github.com/adammck/dynamixel) and a Sixaxis interface, also in Go (https://github.com/adammck/sixaxis). Those might be more useful to other people. Next, I'm planning to add some basic sensors -- In particular, pressure sensors on the feet to make the gait more robust.

Any feedback about my hardware and/or software would be very much appreciated. I've learned a huge amount from projects and advice posted to this forum, but I still have a long way to go. In particular, the advice from KevinO, jwatte, and Zenta has been incredibly valuable, even though it wasn't directed at me. Thank you guys so much! I'll try to pay it forward.

jwatte
01-04-2015, 10:01 PM
Looks good!

Did you compare the pro/con of mounting the toe servo in the same plane as hip/knee (like you do here) versus transversely (front/back tilt)? I've been wanting to think about which would work better, but haven't found any good comparison.

KevinO
01-04-2015, 10:23 PM
Great start! If you have any questions on ROS when you get to it, let me know! (Wish I had a 3D printer.)

Zenta
01-05-2015, 12:31 AM
Congratz with your first hexapod, looking good so far. Maybe try to increase the leg lift height a little?

adammck
01-05-2015, 08:03 AM
Thanks!


Did you compare the pro/con of mounting the toe servo in the same plane as hip/knee (like you do here) versus transversely (front/back tilt)?

I didn't put a huge amount of thought into it, I'm afraid. This approach seemed the simplest when sketching the kinematics, so I went with it. I'm having trouble imagining how things would work if the servo were in any other orientation. Do you have an example of how that might look?


Wish I had a 3D printer.

They're quite wonderful, if fickle, devices. I'm really glad that I got one. I'm having a lot of fun with it.


Maybe try to increase the leg lift height a little?

Yep, that works much better. No idea why it was set so low.

KurtEck
01-05-2015, 09:34 AM
I would like to second what others have said, It is looking like a great start. Congrats!

I have also found the AX servos work reasonably well, but would some day like to try out the MX ones as from stuff I have heard from Kevin and others, it not only has 4 times the resolution of the AX servos (which might be nice), but to me more importantly the processors on the servos work well enough to do their own interpolation. It would be interesting to see how much difference that would make versus having either the main processor do it for them, or currently with my USB2AX code I have it do it...

Again great work!
Kurt