To demonstrate the dynamic capability of the full rotation quadruped, I figured I would start by doing some full machine jump tests to a relatively low height, just to show that it was capable.
Thus, I rigged up an open loop script which squatted a small fraction of the available distance, and then powered up at a relatively small fraction of the available maximum speed. I don’t have the telemetry yet to extrapolate how high this will be able to go at maximum, but I think it should be a fair amount higher. For now, I want to do some more instrumentation and walking testing (and have more spares) before I manage to break things by jumping really high.
Now that I could stand up and sit down, I needed to be able to walk reliably for the length of a match. This wasn’t going to be easy because the direct drive motors were always a bit marginal in their power output to support the full robot, so I had my work cut out for me.
The short story is, I tried many things, spent about a day examining high speed video of walking, and made some improvements:
- Inverse Kinematics: I discovered that my inverse kinematics were broken when the coaxial lower leg had a non-unity belt drive ratio, which I switched to partway through my mammal leg experiments.
- Less bounce: I updated the leg to stay in the world frame until it was fully lifted and to enter the world frame before lowering. This would ensure it had zero lateral velocity relative to the ground when starting and stopping the swing phase.
- More less bounce: I added a separate slew time for the lowering part of the phase, this allowed it to lower more slowly for a more gentle landing.
- Event more less bounce: I used the moteus servo’s advanced features to lower the P controller term while the leg was lowering, so that it would hit more softly.
Despite all these improvements, the walking was still barely functional. Also, the robot was just too tippy. The servos didn’t have enough control authority for the mass of the machine, and it was likely going to tip over if another mech did so much as graze it. Also servos that were hot for long periods of time kept having their encoder calibration drift. This seemed to occur in a positive feedback cycle… if a motor was a little bit out of calibration, it might be a bit saggy, and thus would need more torque, which would make it hotter, which would make it more out of calibration.
Here’s a quick slow motion video of about the best walking gait I had achieved:
At this point, I was certainly somewhat dispirited. It was pretty clear that this machine could not reliably walk around the arena for the length of a match. But, there was still some time left and I figured I would not give up just quite yet.
In the spirit of failing upward, I decided to try and make a sprint towards a fully gearbox driven machine. Granted, I didn’t really have enough time to pull this off. The first 4 gearboxes I built each required about a day of 3d printing time and took me about 1.5 days of machining and assembly. When I made this call, there were about 8 days before my plane flight to Maker Faire. I would need to make at least 8 more gearboxes, as well as entirely new legs and shoulders, along with spares and then make it all work in an incredibly short period of time.
To be continued…