View Full Version : Spectre - 3D printed android Hexapod

11-28-2012, 08:01 AM
Greetings fellow roboticists! I am have been gone from these forums for a bit post-graduation as I started working professionally. I am returning from forays into quadcopters and 3d printers to my first love, the hexapod.

I have started production of a 3d printed hexapod built around my telepresence android code using AX-18 motors. I am calling this project Spectre. Here is an early solidworks sketch:
https://lh6.googleusercontent.com/9Lzrg4dZrgrKfvWiFCJ3i6V-2tZETJStSj_mNyQIBe_ca0eOqFdN6pfYHtu9raR-MveZ6XVW3wq08KEHgGse1lEUvouPfymcLl4SrrQafWPgjGEwhH M

The central body houses a 4400mAh lithium battery (my first land based robot to use lithium; I guess I am behind the times there). The Android phone will interface the dynamixel controller through a IOIO board or Roving Network WiFly module (undecided at the moment).

I finished assembly of the center body with my 3d printer and added the electronics/motors: https://lh4.googleusercontent.com/Lxn_ctIvS9kLCAPcgVVgRpdhuzwTUypmggYIvWou3zIH7xlBgi LW_MXoXGgY9wi6uW-65ER-5qy5emoLCNWJs0pCp5afQ-_nktSL6oRDTCnfA42jfVE

Here is another Snapshot with the phone mounted in the front:https://lh6.googleusercontent.com/thVsNRHe4uGfZcqyRcvcTyL5sR0je0kPF5xe5_ZERLNE9bNbp3 XyPBuCOmT_9EoQ9R7VnN157prJ0HjEUaD5aBE6QtHc8X2ElPHD fmtmPh3U2ukq_bc

Currently I am thinking of redesigning the body for an even more lightweight, compact design. One of my goals is to have the robot roll onto its back and walk upside down, but I am concerned the electronics are too exposed when the body rolls over. My next printer iteration will address these concerns.

11-28-2012, 11:32 AM
That looks neat. I love the evil pumpkin grin :-)
How long did all that take to print?

11-28-2012, 12:40 PM
The big center part took 39 hours while the 4 other parts took 2 hours each!

11-28-2012, 12:48 PM
Very cool.

Are you going to use the smartphone as an IP camera?

11-28-2012, 12:55 PM
Yes. I should talk about that. Android's built in codecs for video all buffer for 6 to 8 seconds before playing. This is unavoidable in all the open source IP cameras I have checked out online, since they all use the built in codecs. 8 seconds of delayed action in video is terrible for real time control. So I wrote my own video codec a month ago for android that has very low latency (<50 ms). I am planning on turning it into an IP telepresence library for robotics and posting it on sourceforge or github as the project progresses. My hope is that others, like the Mech Warfare people, find having a low latency local network IP camera for Android useful.

11-28-2012, 12:57 PM
39 hours?!? Wow...!

What printer are you using?

11-28-2012, 01:02 PM
A "Bits From Bytes" Rapman 3.2 printer; its over a year old now. Now that I am payed in something other than stock options (read: not funny money), and have some disposable income, I think I might upgrade.

03-04-2013, 12:32 PM
I finished the construction of the Spectre.
I also have coded about half the spectre control code. The trick was writing my own video codecs for android. The default codecs in android all buffer for around 10 seconds causing unbearable delay in the live video. To eliminate latency I wrote my own drivers. Currently I am using a logitech gamepad to control the robot. Hopefully I’ll have walking videos up soon!
My plan (assuming my application is accepted) is to show it off at my booth in the upcoming Bay Area Maker Faire.

03-04-2013, 02:09 PM
It looks like you changed the orientation of the edge servos, compared to the sketch. Was there a particular reason? Torque in the knee joint?

03-04-2013, 04:35 PM
The reason was simpler then torque; I needed the robot to compactly fold up tight in the x-y plane to fit in a carrying container! Silly, I know. However, the android control code I wrote makes this kind of change easy, because I employ least square inverse kinematics as opposed to fixed-structure trigonometry- all I had to change were a few variables in an xml instead of a bunch of equations.

03-04-2013, 09:05 PM
all I had to change were a few variables in an xml instead of a bunch of equations

I don't quite understand the difference. The change you made was not a topological change; you just shortened the middle segment and changed the default angle of the first knee joint.
I use trigonometric IK, and those are just values that configure my solver. That's not "changing equations" at all. If you were to change the orientation of an axis of rotation, then yeah, equations would have to be changed, but so would a least-squares solver.

03-05-2013, 10:02 AM
You are right that a segment length change wouldn't change equations. I went back and looked at the original drawings and saw that what I posted was actually three revisions behind what I built, not one. (Silly me.) The prior revision I had, the one I thought I was refering to, involved these crazy shaped legs meant for letting the robot flip off its back easier. Turns out new design still can flip off its back just fine.

A damped least squares solver wouldn't need to change the code or equations by changing an orientation or even adding an extra motor since the equations involved are matrix manipulations of a pseudo jacobian. Yes the dimensions of that pseudo jacobian change but thats a coding parameter not a hard coded value. The following link discusses the basics of pseudo jacobians:


Essentially, my code has a generalized forward kinematic calculator that is xml-configured around number of motors, number of end effectors (feet), and their position/orientation. By calculating derivatives each motor has on the end effectors around small movement perturbations, I construct a pseudo inverse jacobian matrix which is then used to calculate movement of the leg.

03-05-2013, 03:11 PM
Yes the dimensions of that pseudo jacobian change but thats a coding parameter not a hard coded value.

Any hard-coded value can trivially turn into a text-tunable value. I read my configuration from JSON rather than XML, but there's no difference between matrix solvers or trig IK solvers there. Totally orthogonal.

The following link discusses the basics of pseudo jacobians:

Thanks. I've actually been a committer to the Open Dynamics Engine software physics simulation library for many years -- simulation through matrix solving is great for many things :-)

03-07-2013, 01:57 PM
The big center part took 39 hours while the 4 other parts took 2 hours each!

Amazing work!

I have been thinking of getting a 3d printer as well.

I personally would be fine with the amount of time it takes, but how do you find the plastic costs? The 3d printer companies make it to be basically pennies to print things, but something like that must take a whole roll of plastic right?

03-07-2013, 02:28 PM
I think the plastic would be about $10 per pound wholesale. Makerbot charges $48 per kilo, which is just over $20 per pound retail. eBay is cheaper.
By contrast, raw aluminum is about $4.50 per pound at my local supply, and I mill away a good 70-80% of what I put in, so the finished per-weight cost is probably above $25/pound.

If you're a large-scale maker, the raw plastic is about $1/kilo in bulk from China and then you have to melt/extrude it to filament, which you could conceivably use your own machine for -- it's allegedly not complicated, but I've never tried it :-)

03-07-2013, 05:47 PM
Considering that the strength and price of PLA printed with a 1/4 fill (remember you don't print solid plastic) is incredibly solid, I find that my costs per part are even smaller than the prior estimate. For the hexpod I printed above, I spent around 25$ to 35$ in plastic for the printer, and even then only because I was stupid and printed the large body part in 60% fill before I realized I could down grade that (25% is drop proof and very solid, it gets weakish around 15%).

03-08-2013, 05:37 AM
Thanks guys, this is interesting. I really want to get one of these. It seems that it would open up a whole new world of possibilities for robot building.