It should be very possible to have different leg sizes and configuration but you would need to some coding of course. I’ve also been thinking of using different sizes on the legs and when Jim revealed that he is going to make different sizes on the legs (tibia and femur) for Phoenix this is something I sure want to do for my Phoenix too. Having the rear legs a bit longer than the other would make it look even better and more insect-like.
yes i like the T-hex leg design as they look very strong and stable. i also plan to arrange them so they are not isometric to the body and have different start positions.
i have had the opportunity to play with the 4" femurs already and personally i think they look better.
im also thinking about adding some Small scaled down versions of this:
here iv used the new 4" femur and the 3" femur with a standoff as the tibia. i hope to shrink this down and have them as small mandibles of some sort. (not really for manipulation but more for effect) http://i531.photobucket.com/albums/dd355/innerbreed/100_2320.jpg
kinda giving away my ideas here but im all for sharing ideas as you know.
The longer femur/tibia parts sure look great. A very interesting setup, I guess this design demand even more of the ball joints so I hope you find a solution for it.
Unless I am missing something (which is probable ), I don’t think that would be very difficult to modify the IK code to handle different lengths of legs. That is for example using the 2.x version of the code.
For example in the config file you would need to go from: cFemurLength con 76 ;Length of the Femur [mm]
to a define for each leg. You would need to define a wordtable for each of the lengths in the same way we do for angles and offsets.
You would then need to modify the one function: LegIK
In here you would need to modify the few lines that use it, like:
Temp1 = (((cFemurLength*cFemurLength) - (cTibiaLength*cTibiaLength))*c4DEC + (IKSW2*IKSW2))
to something like:
Temp1 = (((cFemurLength(LegIKLegNr)*cFemurLength(LegIKLegNr)) - |
(cTibiaLength(LegIKLegNr)*cTibiaLength(LegIKLegNr)))*c4DEC + (IKSW2*IKSW2))
This assumes you named the word or byte tables the same as the earlier defines…
Of course it might be fun to generate a hex or an oct with some long legs and some short legs and then generate some gaits where maybe the short legs take twice as many steps or the like…
I have not looked at Zenta’s 4dof code. My guess is it would not be hard to integrate it such that it can do both. You could then for example simply add another set of defines in the Tars (I think that is what he called them…
You could then generate another set of tables for the tars and if a legs TAR length is 0 use the 3dof code else use the 4dof code. Should not be overly hard, but would probably take some debug time to get things right…
I also have a situation where the rear legs of a quadrapod (ASTRID) are different than the front legs. The rear legs are longer than the front legs to allow for more extension when climbing.