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.
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!
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 ;)
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