iHexi - The iPhone and Android controlled Hexapod

As part of a project Im working on at the moment, I am converting my hexapod code so that it can be configured to control any 3Dof hexapod.
i.e. Phoenix, CH3-R, BH3 or any DIY hexapod. To do this there obviously have to be configuation parameters. The following are a list of the
parameters that I have currently implemented.

  • Co-ordinates of the hip joints relative to the center of the body (x,y)

  • Rotation of the leg when centered (allowing for inline legs like BH3 or circular spread like CH3-R etc.)

  • Length of both Leg components

  • offset between the rotational axis of both hip servos

  • distance that the foot is from the body when stood

  • the ability to invert the direction of rotation for all servos

  • enable a pan head

  • enable a tilt head (enable both for pan/tilt)

Are there any other parameters that I have not listed but would be required to make the code universal?

Looks like you’ve made a good start on your parameters. You might also consult the code generated by PowerPod, and the newer Phoenix code.

The Phoenix code is especially noteworthy, in that it allows the user to easily specify a gait.

Why not also make it for 4 to 8 (10?) legs? Wouldn’t be that much harder. Especially with good conditional statements in your compiler.

Alan KM6VV

I like the idea of different leg numbers aswell. I have previously used the same kinematic model on my hexapod and my quadruped.
But the gait code for the quadruped was vastly different from the hexapods tripod and wave gaits. So im not sure if I will implement
a quadruped option but the hexapod gaits can be easily modified to work with a user defined number of legs > 4.
The Kinematic model can already handle 6, 8 or 10 leg’s… add on another ssc, and go all the way up to 20 legs!!
maybe thats a bit over the top… :smiley:

Hi,
Interesting topic.
What language are you using, and what mcu? Do you use a static or dynamic gait engine?

The Phoenix code gait engine looks like it’s easily adaptable for different numbers of legs, and different actions in the gaits. I believe it could (I’m betting on it) handle from 4 to 10 legs!

I’m currently working on a quadruped, but intend to convert my hexapod to an octopod as soon as a chassis is available.

Alan KM6VV

Hi Zenta, my engine is (badly) writen in a mixture of C and Object Orientated C++.
My quadruped was runing a dynamic engine because of its inherrant stability issuses,
but my hexapod runs a static gait for simplicity.

Hi Alan, I enjoyed making my quad, the challenge would be to make two quads that can
link together to opperate as an octopod.

I was going to wait until it was working correctly before posting but ive got a 3 week wait
for a component before it’ll work. But its 90% there so…
**
My Project - iPod/iPhone App to control a wifi equiped Hexapod.
**
There has been a few topics about using a iPod Touch or iPhone as an onboard the processor for
a hexapod. I liked the idea but I thought it would be missing an opportunity to use the
iPod/iPhone as the controller interface aswell as the hex engine. Thus ive been writing an App that
allows the user to run a hexapod wirelessly with only the iPod, no need for computers.

The following is a brief run through the app so far, some of the graphics need finishing but it is
basically all there.

What the video does not show is that throughout, the program was running the kinematic model in
the background giving realtime output commands for the servo controller. I just need a wifi chip for
my hexapod and It should work…

If you are unsure what I mean by the manipulate mode see the following video of my hexapod running
an older version of my code, manipulation starts at 1min 10sec.

Wow!

I saw the video first on youtube…
That iPod demonstration was truly awesome! Must be the best control software I’ve ever seen on a phone!
8)

Thanks Zenta

Ive decided that to make the app easier to use with a kit hexapod i.e. phoenix, CH3-R or MSR-H01
I will give the user an option for platform type, this will give them the option to choose between
preloaded config files for each kit type or choose Custom to enter information for custom hexapods
and any octopods or polypods.

One of the other options im working on is the ability to stream video off an ip camera aboard the hex
and display the result on the screen behind the controls.

Impressive work. 8)

Keep us updated.

Interesting idea. Make two 'quads and have them hitch-up to form an octopod!

I was flipping channels last night or so, and I saw a History channel piece on dinosaurs. They were saying that one of the huge vegetarians had a little brain on his spinal column by the rear legs because it was so far from the front legs that the messages wouldn’t get there fast enough.

Well there are several problems with their appraisal of this beast, namely that they’ve never seen the nervous system or probably even the flesh of theses beasts, much less the brains and how they work. [rant off]

But it would be a similar situation, I think. What they didn’t go on to explain is how the nerve impulses would be able to travel any faster then leg commands to “sync up” the two brains; all four legs have to work in some form of cooperation for the beast to be able to walk.

It you combine two 'quads, then you’d be able to use four legs in each of the support “pods”, which would be much easier to walk with.

Alan KM6VV

Blobbington,

I was wondering if you were going to make the app you created for the iPhone/itouch available for others to use. Im really interested in that feature although im just a begginner in the hexapod world.

THanks,

Hi, Thank you for the interest. It is my intention to make this app available. However there are two hurdles to get over, first making sure that program is stable and woking correctly with other configurations of hexapod. Hopefully some time around Mid/Late Jan I should have the programming finished. Second larger hurdle will be Apple and their application approval process. But I shall know more about that closer to the time.

Cheers

Great my friend, thanks! I look forward to the release of your app! And if you cant get it out though Apple, you could always try through Cydia.

Cheers

I made the changes to the engine so that it can run 6,8 or 10 legs, which has not been tested but is theorectically working.
I am also changing my configuration pages to allow easier setup for kit users. Rather than having to enter all the paramters
by hand the user can choose from the menu which configuration they wish to use. Custon Designers will still have to enter
the parameters themselves.

http://i291.photobucket.com/albums/ll284/blobbington/Configuration.png

The options are as follows:

Number of Legs
- 6
- 8*
- 10*

Body Type
- H3
- H3-R
- Phoenix
- MSR-H01
- Custom**

Leg Type
- A
- B
- C
- Phoenix
- MSR-H01
- Custom**

(* these lock the body to custom)
(**these unlock extra parameter entry windows)

I have looked through Xans code and the powerpod code to find the dimensions of the different legs and chassis,
but I have not been able to find the dimensions for the H3 or H3-R chassis.
If someone could help me with the following dimensions:

H3-R - Radius from center to the Horizontal Servo
H3 - Distance between the Left and Right Horizontal Servos And Distance between Front and Back Horizontal servos

Hi,

I hope this help’s.

[code];-------------- Round Body (H3-R) ---------------

;****************************************************
; 3DOF-A Leg Dimensions (TibiaAngle constant = 0)
;HipV_HipH con 38 ;1.50" = 38mm (1.50 * 25.4)
;Femur_Length con 57 ;2.25" = 57mm (2.25 * 25.4)
;Tibia_Length con 124 ;4.875" = 124mm (4.875 * 25.4)

; 3DOF-B Leg Dimensions (TibiaAngle constant = 0)
;HipV_HipH con 29 ;1.14" = 29mm (1.14 * 25.4)
;Femur_Length con 57 ;2.25" = 57mm (2.25 * 25.4)
;Tibia_Length con 108 ;4.25" = 108mm (4.25 * 25.4)

; 3DOF-C Leg Dimensions (TibiaAngle constant = 0)
;HipV_HipH con 29 ;1.14" = 29mm (1.14 * 25.4)
;Femur_Length con 57 ;2.25" = 57mm (2.25 * 25.4)
;Tibia_Length con 141 ;5.55" = 141mm (5.55 * 25.4)

; 3DOF-(Old) Leg Dimensions (TibiaAngle constant = 0)
;HipV_HipH con 32 ;1.25" = 32mm (1.25 * 25.4)
;Femur_Length con 70 ;2.75" = 70mm (2.75 * 25.4)
;Tibia_Length con 108 ;4.25" = 108mm (4.25 * 25.4)
;****************************************************[/code]

Here are the measurement depending on the Coxa Servo distance.

Center chassis to Center Coxa Servo 136mm

from left Coxa Servo to right Coxa Servo 272mm

from Coxa Servo left front to Coxa Servo right back 235mm

Do you think you can add a serial interface aswell? You can use minicom for that. (cydia)
then it would be able to attach the iphone to the hexapod instead of the whole pc. And you can ise vnc to controll the hexapod with every vmc suppprted device.

Maybe it would be even easyer to let the iphone read .bas files with nbasic in that case it can be used with different codes and robots. I can’t programm myself but i have it all figured out allready.

The dock connector (adjusted) will function as a serial cable. Pin 11,12,13 grnd rx tx.

As things have not been going well getting my Wifly chip to work. I have decided, while I wait for it to decided to work properly,
I would use a PC to convert the Wifi socket to a bluetooth socket.
This has allowed me to test the App. :smiley:

The app is in manipulate mode (or Attack) which gives the user control of the front legs.
It shows the reaction times from the users input and the hexapods response, which I had always worried would be too slow but
apears acceptable. When I have finished reassembling my hexapod I shall be able to test out more of the functions and post
more vids. :smiley:

Rob

Finally I have got my app working :smiley:

comments welcome

Rob

first of all, congratulations with getting things up and running like you intended. looks great by the way. :wink:

is there a limit (mechanically) so that if you dropped your ipod the robot wouldn’t move beyond its limits.?

the App works really well and looks nice. very very cool.
you have opened doors.
the double single leg feature was really well executed.
any plans for a quadruped App. how customizable is it?

maybe set some “Themes” so others can select colors and backgrounds for it.