Project Phoenix, a hexapod robot

Where have you been! :wink:

Glad to see you’re back.

unenployeed for to long and other life misshaps.

Rebuilding my hobbies, waiting for a e-mail from sales :wink:

Hi,
Thanks!

Yes, it’s easy to be “lost and confused” after a year.

Hi!

I have not spend much time on my Phoenix lately, because I have been working with a new project: “Felix, a SES based 4 DOF quad”. I’ll later today post a thread in the multileg section about that project.

Meanwhile I have also got the Lynxmotion Phoenix parts!

And I’m really looking forward to play with it 8) , just have to find more time … :unamused:

But I’m a bit uncertain about how to calibrated the front and rear coxa servos. When I calibrated my Phoenix I placed the coxa servo with its centre position for travel (1500) in the position that gave the front and rear leg as much travel as possible without crashing into the body. (sorry my bad english…). For my Phoenix that means an offset of about 42 - 45 deg (EDIT: relative to the Y axis). Since powerpod for Phoenix is not available yet I’m wondering what offset Jim or Laurent used for their Phoenix?

Hey look at all the cool stuff! 8)

We used a uniform 60° angle for the chassis holes. The Hitec servo spline has 24 teeth, which means there is 15° between positions. You should be able to position the servos to 45° with no problem. :wink:

Let me know if this makes any sort of sense at all. :blush:

Oh nice parts…

I understand the issue with time.

Hi!

I must say I’m a bit thrilled right know… For a long time I’ve been puzzled of how Matt Denton (micomagicsystems) managed to program the balance gesture engine. Who hasn’t been fascinated when watching his hexapod walking so smooth and elegant. For example, pay extra attention to the very first second of this video of the ic hexapod (as soon as you see the hexapod of course :wink: ), then you can see that the whole body of the hexapod is trying to balance towards the lifted legs. I’m pretty sure that this is caused by Matt Denton’s excellent balance gesture.

Anyway, I think I’ve solved the balance gesture thing… :smiling_imp: For know I’ve just added it to 2D (X and Y axis). I’ve posted a test video of Phoenix doing some simple balancing on youtube. This is only a demonstration where Phoenix is balancing her body while one leg is moving around.

Of course this ability is not useful on an excel sheet (PEP) but it would be great to have on an onboard brain. Especially for terrain adaption, this should be a very useful ability.

Looks great! It would be great to integrate that into the hex code!!!

Kurt

Wow Zenta,

Thats pretty cool, I cant wait to see you make it walk using that method.

Hi KÃ¥re,

Not sure what you mean by “added it to 2D (X and Y axis)”? Accelerometers? I’ve got one to play with. Also a new compass!

Your moves look good.

Alan KM6VV

Hi Alan,
Did you take a look at the balance gesture at micromagisystems?

No need for accelerometers, it’s just calculations to make the body balance between all legs. Imagine the legs like an imaginary spring.

For example if you move one of the middle legs along the X-axis the body are only doing a X-translate movement to balance. But if you move the leg along both X and Y axis the body need to do a X- and Y-translate and a Z-rotate to make balance.

Wow! very smooth and natural movements Zenta! I see that my IK can use some updates already :wink:

Xan

Thanks Xan!

Yes I do think adding the balance gesture to your IK would be awesome! This ability are much more useful on a “live” brain.

Hi Zenta,

I guess that you’ve used your PEP to generate the sequence used for your video. Does this mean that you already have some calculations that I could use to get some good inspiration? 8) That would be great! :stuck_out_tongue:

Xan

That is correct. Actually it’s rather simple but I’ve to “polish” the calculations a bit. For now I’ve just added a button I’m calling “Balance”. Hit the button and the legs moves for balancing. But I think it would be more useful to make this function to an on/off issue, meaning that it runs balancing continous when moving the legs. One part that still puzzle me is that when the hexapod is very out of balance I’ve to run the balancing function two times.

Very short explanation of how it works:
X-axis translation balance:
First add all global X-coord of each tars(foot) together. Divide this value by 6 (6 legs). The body are in X-balance when this value is zero. Then do a X translation of the body equal this last (div/6) value. Then you have outbalanced the X-axis.

Do the same for the Y-axis.

Z-rotate balance:
This is bit more tricky. It’s a bit difficult for me to explain but what I’ve done here is to calculate how much each tars are rotated relative to the centre of body (using arctan :blush: and you get +/- 180 deg). Add all these six angle values together. Divide by 6 and then do a Z-rotate equal this last (div/6) value to balance.

Done. :unamused:
Does this make any sense at all?

Hi Zenta,

I’ll get the global idea 8) implementing the balance calculations for position shouldn’t be to hard. The Rotation will be much harder on the way that I implemented IK. I calculate body IK and leg IK for one leg at the time. But if I’ve got it right, I’ll need the angles of the feet as input for the balance rotation calculations. Maybe it is also possible to use the position of the feet to calculate the rotation of the body… (I hope this makes any sense :wink:)

Currently I’m working on my (Ripple) gait. The easiest way to start walking is by moving the legs to the walking position for a good balance. Since I want to change walking speed according to the position of my joystick I don’t want to initialize the position of the legs every time I change speed. So I’m working on some kind of “on the flyâ€

Hi Xan,

Yes I think you got it. I use the global coordinates for the feet to calculate the rotation for each leg relative to center of body. And use all these angle values to calculate the final rotation value for body to balance.

Hi Zenta,

I’ve spent some time on the gait sequence last evening. Some changes where needed to use the balance calculations. Now it looks that I’ve got my gait working in both X and Z without initialization. :smiley: I didn’t include the balance calculations jet so including them would even made it better.

It was kind of a long evening so maybe I missed something with my sleepy head :wink: more updates tomorrow.

Xan

Sounds great Xan! Looking forward about your progress!

Hi KÃ¥re,

OK, I get it. A balance thing. Not sure if/how I can apply it.

Does make for nice moves!

Alan KM6VV