Monday, December 28, 2009

Walking again for the holidays

For demonstrations at various parties and family gatherings over the holidays I have rebuilt the walking robot. The issues which arose with the robot over the summer appeared to be due to the unsatisfactory reliability and poor accuracy of the cheap HX12K / MG995 servos. The combination of the higher than recommended voltage and amble gait was too much for the motors, which were failing frequently, but what was most unacceptable was the terrible servo feedback loops which made the entire robot shake uncontrollably when trying to hold a leg in the air.

I can't afford to buy 8 new higher-quality servos at the moment, and most of the choices of servos designed for operation above 6 volts would require significant redesign of the entire robot. I did have on hand the 8 HS5645MG servos used on the previous version of the robot. I had stopped using them because of the high rate of gearbox failure in that design, but the electrical and structural failure rate of the HX12K servos was a lot worse. I had also cut the mounting flanges off all those servos as on the previous version I was epoxying the servos to the robot structure.

The new chassis needs servos to be mounted by their mounting tabs, so I couldn't use the old servos as-is. Here I was in luck. Dissassembly and comparison of the HS5645MG and HX12K reveals them to be suspiciously similar internally. The HX12K / MG995 appears to be basically a cheap knockoff version of the HS5645MG, similar enough that I was able to take the electrical and mechanical guts of the HS5645MG and install them inside a HX12K case. I haven't figured out a way to use the HX12K gear train with the HS5645MG electronics and motor yet, so I'm still using the more fragile HS5645MG gears. The gears have the same pitch diameters and axles, which lets me install the gears from one servo in the case of another, but the tooth count is different so I can't mix build a hybrid gear train from both.

The HX12K does have somewhat flimsy mounting tabs, several of which failed at GenCon. For the rebuild I dug through my junkbox and found the largest rubber grommets and ferrules I had, in an attempt to spread the load out as much as possible. This is admittedly a temporary solution. I am still looking into ways to reinforce the servo cases where they mount to the frame.

One surprise when wiring up and testing everything is that the HX12K and HS5645MG seem to have the opposite direction of movement in response to servo commands. When adjusting the mixing logic and pre-programmed poses in the controller I'm having to change signs and invert position settings throughout the code. Although it's possible this is the result of something I did when rebuilding the servos and robot - I might have accidentally reversed the connections between servos on the left and right sides of the robot or something.

At the moment the robot seems to be working well, and held up for several days with family and friends through the holidays. I haven't stripped any more gears yet, but it remains to be seen if this is just a matter of time, or if the shock absorbers and other structural design improvements are actually making a difference.