After a deep discharge one of the legs of the cat started shaking in some positions, so it cannot walk anymore. I cannot calibrate it because of shaking (see video below). Does anyone has the similar problem? Any ideas what is the reason and how to fix it?
top of page
bottom of page
Ah, I have to say that the MG90S servos I ordered when I was in the US was not optimized for legged robots. Its PID parameters were set for smaller load. I've been solving the problem in some Chinese factories and the current ODMed servos are much steadier.
I have replaced one of the died MG90D on the leg by MG90S. The servo size is almost the same so no work were required. The servo works well, the cat started walking again :-)
My experiment with the potentiometer failed I set it to the maximum counter clockwise but the cat freezes after a second. I measured the voltage on the servo and see that it constantly changes.
In fact I cannot tell anything interesting. I gave the remote control to my daughters and they played with Nybble until it started moving abnormally. Only when they asked me to find out what happened I realized that the batteries are discharged. The cumulative voltage were about 5V. I recharged the batteries to 4.2V each but the cat started walking abnormally like backward legs doesn't work properly.
I tried to re-calibrate the cat but one of the MG92B were shaking when the backward leg goes to the position which is orthogonal to the bottom (like on video). Only few steps in any direction and the servo works normally. I tried to find out whether it depends on the pin which is used to connect the servo so I exchanged two servos connections and used testServo.ino to check them. I found the servo connected to another pin works abnormally as well so it doesn't depend on Nybble board. But suddenly I found the second servo (MG90D ) doesn't move anymore and at the same time the tail started moving without stopping after cat is turned on.
I rewrote the firmware, resetted the calibrations, updated the reflexes and recalibrated MPU and it stopped the tail. I disassembled the died MG90D servo and powered the engine from 3 AA batteries to check that it works. I measured input voltage on the servo PCB and it was about 7.8V. Finally I tried to replace the MG90D on the leg by the MG90D on the tail and found that it doesn't work either. I double checked the pin using a servo from another leg and found that the pin works.
A long story but almost no output :-) I am almost sure that the discharge itself didn't kill the servos. But at least shaking of the MG92B started right after the discharge. May be I killed the MG90Ds accidentally moving them when they were powered but I tried not doing this. For me it looks like: I try to do something on the console, the servo starts rotating to the wrong position and stucks, I switch the power off, when I start the Nybble again the servo doesn't work.
I am going to switch V_S back to V+, increase voltage to 6V using potentiometer (in fact I didn't realize that it is required reading assembling instructions) and check Nybble replacing the servos.
What was the “deep discharge” event? I’m very curious to record this incident. I have experienced two kinds of servo failures in previous tests. One is gear damage if crashed in accident. The other is the brush in the motor worn out after certain period of use. (In that case the motor won’t rotate by itself). The high voltage may be a problem. However, the voltage on servos will drop when they work at once, because the wires will take some voltage down (the resistance of the circuit is about 0.8 Ohms. When the current is about 3A, the wire will take 2.4V). The servo’s chip can also handle high voltage. Most of failures happens when stall torque happens (servo forced to stop or get stuck from outside)
In fact two MG90D died. I am in doubt whether the reason is V_S connected to BATT. As the battery voltage is greater than 6.6V (the max operating voltage from MG90D specification, see https://www.towerpro.com.tw/product/mg90d-2/). I have disassembled one and found that the motor itself works well, so it is the electronic inside servo which died. I going to try replacing died servos by MG90S which is simpler to buy.
Using testServo I found that couple of servos died. One MG90D doesn't move at all and one MG92B shakes on the center of trajectory. Looks like MG90D is relatively common, but I cannot find MG92B.