I think that it’s only fair that you consider entering Hexy into the special hexapod olympics instead. He’s got a gammy knee so he’s at a disadvantage!
Thank you very much for your explanation. Just one question: why does the robot deviate from its path when it is walking? I have a simulation about this kind of robot and I have the same problem.
Unfortunately I haven't had the time, I haven't uploaded a video in so long (until today) because I've just had so much going, some things not so good but mostly good things, i'm really hoping to get some momentum going in the channel again and this is definitely on the list, perhaps with something bigger and better though ;)
hey man. I made my little robots have a webserver on board the esp32 and then expose the various values through the web page and allow for realtime adjustment that way. Pretty certain this was just a demo somewhere that I extended upon. Not hard to do. Easy to do things like steer crudely or even accurately depending on how you manage the info, and adjust things like global stride lengths or individual leg offsets in realtime for tuning. Hope it helps.
Thank you, yes I was thinking of using Http Get/Put for my two way comms so it could be web based or ESP32 to ESP32. My biggest battle is how much power the little servos use but aren't really strong enough to carry more batteries, I might end up making a bigger one!
You can program ESP32's over WIFI! There's an OTA code block you add to your sketch, Arduino IDE will send it and you'll never need to dissemble again. :)
Subbed: void CartesianMove(double X, double Y, double Z){ // Slap on the rest positions to Y and Z, because we ain't got time for zeros Y += Y_Rest; Z += Z_Rest; // Time to whip out some trigonometry, brace yourselves double J1 = atan(X / Y) * (180 / PI); // J1, just casually chilling in the XY plane // H, the hypotenuse in the XY plane. Pythagoras is spinning in his grave double H = sqrt((Y * Y) + (X * X)); // L, the line from the origin to the point in 3D space. Pythagoras is now breakdancing double L = sqrt((H * H) + (Z * Z)); // J3, the angle between J2 and J3. Law of cosines, eat your heart out double J3 = acos(((J2L * J2L) + (J3L * J3L) - (L * L)) / (2 * J2L * J3L)) * (180 / PI); // B, the angle between L and J2. Law of cosines, round two double B = acos(((L * L) + (J2L * J2L) - (J3L * J3L)) / (2 * L * J2L)) * (180 / PI); // A, the angle in the XZ plane. But Z rest is negative, so it's throwing a tantrum double A = atan(Z / H) * (180 / PI); // J2, the sum of B and A. But 'A' is negative at rest, so we're flipping the bird to subtraction double J2 = (B + A); // Finally, we update the position with our calculated angles. Take that, physics! UpdatePosition(J1, J2, J3); } ChatGPT4 commenting on your code in the style of the Quake square root hack. Yup... it can do that ;) Fun fun fun
I think that it’s only fair that you consider entering Hexy into the special hexapod olympics instead. He’s got a gammy knee so he’s at a disadvantage!
Hopefully when I get the remote control sorted I can make the walking a bit better too.
Thank you very much for the explanation and especially for the code
You are very welcome.
Thank you very much for your explanation. Just one question: why does the robot deviate from its path when it is walking? I have a simulation about this kind of robot and I have the same problem.
This is some nice quality right here 😊
Thank you, very kind :)
How is your hexapod steering progressing (assuming you've had the time)?
Unfortunately I haven't had the time, I haven't uploaded a video in so long (until today) because I've just had so much going, some things not so good but mostly good things, i'm really hoping to get some momentum going in the channel again and this is definitely on the list, perhaps with something bigger and better though ;)
@@JustAnotherMakerChannel I hope the good things increase for you/. :)
hey man. I made my little robots have a webserver on board the esp32 and then expose the various values through the web page and allow for realtime adjustment that way.
Pretty certain this was just a demo somewhere that I extended upon. Not hard to do. Easy to do things like steer crudely or even accurately depending on how you manage the info, and adjust things like global stride lengths or individual leg offsets in realtime for tuning. Hope it helps.
Thank you, yes I was thinking of using Http Get/Put for my two way comms so it could be web based or ESP32 to ESP32.
My biggest battle is how much power the little servos use but aren't really strong enough to carry more batteries, I might end up making a bigger one!
@@JustAnotherMakerChannel cool. yeah its doable anyway. Done it with bits of scrap
Hi, How can I get the stl files to print the hexapod😅
Hi, I've finally uploaded them, you can find them here:
www.thingiverse.com/thing:6463619
I'll also put this in the description.
You can program ESP32's over WIFI! There's an OTA code block you add to your sketch, Arduino IDE will send it and you'll never need to dissemble again. :)
I’ve looked at this but never tried it, yet!
just a question, how do you control multiple servos at the same time? or it is just because it is incredibly fast?...
I kinda like how I wobbles 😂
It certainly adds character!
Subbed:
void CartesianMove(double X, double Y, double Z){
// Slap on the rest positions to Y and Z, because we ain't got time for zeros
Y += Y_Rest;
Z += Z_Rest;
// Time to whip out some trigonometry, brace yourselves
double J1 = atan(X / Y) * (180 / PI); // J1, just casually chilling in the XY plane
// H, the hypotenuse in the XY plane. Pythagoras is spinning in his grave
double H = sqrt((Y * Y) + (X * X));
// L, the line from the origin to the point in 3D space. Pythagoras is now breakdancing
double L = sqrt((H * H) + (Z * Z));
// J3, the angle between J2 and J3. Law of cosines, eat your heart out
double J3 = acos(((J2L * J2L) + (J3L * J3L) - (L * L)) / (2 * J2L * J3L)) * (180 / PI);
// B, the angle between L and J2. Law of cosines, round two
double B = acos(((L * L) + (J2L * J2L) - (J3L * J3L)) / (2 * L * J2L)) * (180 / PI);
// A, the angle in the XZ plane. But Z rest is negative, so it's throwing a tantrum
double A = atan(Z / H) * (180 / PI);
// J2, the sum of B and A. But 'A' is negative at rest, so we're flipping the bird to subtraction
double J2 = (B + A);
// Finally, we update the position with our calculated angles. Take that, physics!
UpdatePosition(J1, J2, J3);
}
ChatGPT4 commenting on your code in the style of the Quake square root hack. Yup... it can do that ;)
Fun fun fun
Love it!